降价包含水平规则的情况下,“错误产生PDF”:---或***

时间:2019-10-15 14:48:49

标签: latex markdown pandoc pdflatex miktex

当我的Markdown文件包含水平线时---或***我收到关于\ Linethickness-> \ Protect

的错误

我了解到MiKTeX最近出现了问题,但是我不确定它们是否适用于此。

自昨天早上以来,我一直在遇到这个问题,当时我正在尝试让Lato字体包与一组Markdown文件一起使用,我需要将其转换为PDF。一切正常(字体问题方面也是如此)。

这可能是我更新MiKTeX时发生的,尽管当时我还没有意识到可能是这样,因为我还在玩模板,YAML,PS Script等。

从那时起,我一直在阅读有关MiKTeX的问题,并尝试了进一步的更新,更新软件包数据库,构建格式,刷新文件名数据库以及卸载和重新安装。我已经阅读了GitHub的注释部分中的背景,但是那里的建议似乎并没有为我解决,而其他人却有解决。

这使我怀疑这是否相关,但是我对Tex,Markdown等还比较陌生。

原始文件更长,更复杂,但是这次降价

# Sample File
Test Test Test

---

产生相同的错误

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}

删除---允许pdf在上述示例和我更复杂的markdown文件中生成,即使使用模板也是如此。

我不确定线厚是否在图形软件包中,当我查看软件包信息时,我看不到任何明显的迹象。

我只会删除有问题的行,但是在降价文件的其余部分中会使用它们,如果可能的话,我希望在您的帮助下找到一个解决方法! 请让我知道我是否因最近的MiKTeX问题在错误的树上吠叫,如果不​​是,则可能是我出了问题。 非常感谢。

更新: 我执行了这个命令

pandoc -s sample.md -o sample.tex

产生这个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}

1 个答案:

答案 0 :(得分:2)

与此同时,我尝试了此操作(作为RStudio Debian最新安装的根目录):

~# sed 's,\\linethickness,0.5000000000pt,g' < pandoc/pandoc > /usr/lib/rstudio-server/bin/pandoc/pandoc

其中第一个pandoc / pandoc是来自软件包的原始副本。这样可以保持相同的字符串长度和有效数字,以便二进制文件不会中断。那写成这样的小题:

\begin{center}\rule{0.5\linewidth}{0.5000000000pt}\end{center}

MiKTeX看起来不错(至少TeXworks可以编译pdf)。

HTH 再见