\Protect 的错误 我知道最近 MiKTeX 出现了问题,但我不确定它们是否适用于此。-6ren">
gpt4 book ai didi

latex - "Error Producing PDF"当 markdown 包含水平线时 : --- or ***

转载 作者:行者123 更新时间:2023-12-04 02:43:08 25 4
gpt4 key购买 nike

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

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

自昨天早上以来,我一直遇到这个问题,当时我正在尝试让 Lato 字体包与一组我需要转换为 PDF 的 Markdown 文件一起使用。它一直运行良好(除了字体问题)。

这可能是在我更新 MiKTeX 时发生的,尽管当时我还没有意识到可能是这种情况,因为我也在玩模板、YAML、PS 脚本等。

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

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

原始文件更长更复杂,但是这个 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}

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

我不确定 linethickness 是否在图形包中,当我查看包信息时,我看不到任何明显表明它是的内容。

我会简单地删除有问题的行,但它们会在整个 Markdown 文件的其余部分中使用,如果可能的话,我希望在您的帮助下找到修复程序!如果我在最近的 MiKTeX 问题上找错了树,请告诉我,如果不是,我可能哪里出错了。非常感谢。

更新:我运行了这个命令

pandoc -s sample.md -o sample.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}

最佳答案

与此同时,我尝试了这个(在最新的 RStudio Debian 安装中以 root 用户身份):

~# 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再见

关于latex - "Error Producing PDF"当 markdown 包含水平线时 : --- or ***,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58397380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com