JV5*_*V53 3 markdown latex miktex pdflatex pandoc
当我的 Markdown 文件包含水平规则 --- 或 *** 我收到关于 \Linethickness -> \Protect 的错误
我知道 MiKTeX 最近出现了问题,但是我不确定它们是否适用于此。
从昨天早上开始,我就一直在遇到这个问题,当时我正在尝试让 Lato 字体包与一组我需要转换为 PDF 的 Markdown 文件一起使用。它一直工作正常(除了字体问题)。
这可能发生在我更新 MiKTeX 时,虽然当时我没有意识到可能是这种情况,因为我也在玩模板、YAML、PS 脚本等。
从那时起,我一直在阅读有关 MiKTeX 的问题,并尝试了进一步的更新、更新包数据库、构建格式、刷新文件名数据库以及卸载和重新安装。我已经阅读了GitHub评论部分的背景,但那里的建议似乎并没有为我解决这个问题,而他们为其他人解决了这个问题。
这让我怀疑这是否相关,但我对 Tex、Markdown 等比较陌生。
原始文件更长更复杂,但是这个 Markdown
# Sample File
Test Test Test
---
Run Code Online (Sandbox Code Playgroud)
产生同样的错误
Error producing PDF.
! Missing number, treated as zero.
<to be read again>
\protect
\linethickness ->\protect
\linethickness
\setlength #1#2->#1 #2
\relax
\@rule ...@tempdimb {#2}\setlength \@tempdimc {#3}
\advance \@tempdimc \@temp...
l.362 ...nter}\rule{0.5\linewidth}{\linethickness}
Run Code Online (Sandbox Code Playgroud)
删除 --- 允许在上面的示例和我更复杂的 Markdown 文件中生成 pdf,即使使用模板也是如此。
我不确定 linethickness 是否在图形包内,当我查看包信息时,我看不到任何明显表明它的内容。
我会简单地删除有问题的行,但它们会在整个降价文件的其余部分中使用,如果可能的话,我更愿意在您的帮助下找到修复程序!请你让我知道我是否在最近的 MiKTeX 问题上咆哮了错误的树,如果没有,我可能会出错。提前谢谢了。
更新:我运行了这个命令
pandoc -s sample.md -o sample.tex
Run Code Online (Sandbox Code Playgroud)
产生这个tex:
% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
]{article}
\usepackage{lmodern}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}}
}{% if KOMA class
\KOMAoptions{parskip=half}}
\makeatother
\usepackage{xcolor}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
hidelinks,
pdfcreator={LaTeX via pandoc}}
\urlstyle{same} % disable monospaced font for URLs
\usepackage[margin=1cm]{geometry}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\date{}
\begin{document}
\setcounter{errorcontextlines}{40}
\hypertarget{sample-file}{%
\section{Sample File}\label{sample-file}}
Test Test Test
\begin{center}\rule{0.5\linewidth}{\linethickness}\end{center}
\end{document}
Run Code Online (Sandbox Code Playgroud)
小智 5
同时,我尝试了这个(在最新的 RStudio Debian 安装中以 root 身份):
~# sed 's,\\linethickness,0.5000000000pt,g' < pandoc/pandoc > /usr/lib/rstudio-server/bin/pandoc/pandoc
Run Code Online (Sandbox Code Playgroud)
其中第一个 pandoc/pandoc 是包中原始文件的副本。这保持相同的字符串长度和有效数字,以便二进制不会中断。这将 hrule 写为:
\begin{center}\rule{0.5\linewidth}{0.5000000000pt}\end{center}
Run Code Online (Sandbox Code Playgroud)
和 MiKTeX 似乎没问题(至少 TeXworks 编译了 pdf)。
再见
| 归档时间: |
|
| 查看次数: |
1476 次 |
| 最近记录: |