当我的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}
答案 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 再见