我有一个最小的乳胶文件,使用 markdown 和 babel 包:
\documentclass{book}
\usepackage{markdown}
\usepackage[ngerman]{babel}
\markdownSetup{pipeTables,tableCaptions}
\begin{document}
\markdownInput{./test.md}
\end{document}
测试.md文件:
# H1
## H2
Text
当我用
pdflatex --shell-escape document.tex
它会给我以下错误:
(_markdown_document/e0cf625f64983b2c015d517273d026f8.md.tex
Kapitel 1.
! Argument of \__cmd_expandable_grab_D:NNNwNNn has an extra }.
<inserted text>
\par
l.2 \markdownRendererHeadingOne{H1}
\markdownRendererInterblockSeparator
?
Runaway argument?
! Paragraph ended before \__cmd_expandable_grab_D:NNNwNNn was complete.
<to be read again>
我尝试使用markdown
或babel
删除来编译它,它可以编译成功。此外,似乎与 babel 选择的语言无关,它会产生完全相同的错误。
据我了解,错误 ( _markdown_document/e0cf625f64983b2c015d517273d026f8.md.tex
) 中提到的文件是由markdown
包生成的。其内容如下:
\markdownRendererDocumentBegin
\markdownRendererHeadingOne{H1}\markdownRendererInterblockSeparator
{}\markdownRendererHeadingTwo{H2}\markdownRendererInterblockSeparator
{}Text\markdownRendererDocumentEnd
编译lualatex
会产生同样的错误。
对我来说,它看起来并不像错误中所提到的那样有一个“额外的}”。
我有点困惑,因为我无论如何也想不出为什么只在使用 babel 时会出现这个错误。我在互联网上也找不到任何关于这个或类似错误的提及。
我的系统:
- MacBook Air 2020 配备 M1 处理器。
- MacOS 13.0.1 Ventura
- MikTex。这是 MikTex 的报告:
ReportDate: 2022-11-17 12:24:14
CurrentVersion: 22.1
SetupDate: 2022-07-13 11:58:00
SetupVersion: 22.1
Configuration: Regular
GitInfo: 6b3d82b7d / 2022-01-30 11:05:07
OS: Darwin 22.1.0 Darwin Kernel Version 22.1.0: Sun Oct 9 20:14:30 PDT 2022; root:xnu-8792.41.9~2/RELEASE_ARM64_T8103 x86_64
SharedSetup: no
LinkTargetDirectory: /Users/henry/bin
PathOkay: no
LastUpdateCheck: 2022-11-17 09:41:58
LastUpdate: 2022-11-17 09:42:24
LastUpdateDb: 2022-11-17 09:41:58
SystemAdmin: no
RootPrivileges: no
AdminMode: no
Root0: /Users/henry/Library/Application Support/MiKTeX/texmfs/config
Root1: /Users/henry/Library/Application Support/MiKTeX/texmfs/data
Root2: /Users/henry/Library/Application Support/MiKTeX/texmfs/install
UserInstall: /Users/henry/Library/Application Support/MiKTeX/texmfs/install
UserConfig: /Users/henry/Library/Application Support/MiKTeX/texmfs/config
UserData: /Users/henry/Library/Application Support/MiKTeX/texmfs/data
如果有人知道发生了什么,我将非常感激。
答案1
原始代码在执行时失败\MakeUppercase
:
\chaptermark #1->\markboth {\MakeUppercase
问题是 babel 重新定义了它,现在它已经失效了。firstaid 包包含一个修复程序,但 miktex 忘记更新它了。已经有错误报告了,所以下次更新时它应该可以再次工作。
作为解决方法,您可以通过编译来使用 latex-dev pdflatex-dev
,或者您可以手动禁用重新定义:
\documentclass{book}
\def\BabelCaseHack{} %work-around
\usepackage{markdown}
\usepackage[ngerman]{babel}
\markdownSetup{pipeTables,tableCaptions}
\begin{document}
\markdownInput{./test.md}
\end{document}