使用 minted 时,babel 包导致 Missing \endcsname 错误

使用 minted 时,babel 包导致 Missing \endcsname 错误

在下面的 tex 文件中,如果我将该babel包与该minted包一起使用,则会出现此错误:

! Missing \endcsname inserted.
<to be read again>
                   \protect
l.1 \begin{Verbatim}[commandchars=\\\{\}]

我的系统是 macOS 10.7.5 上的 Tex Live 2020,命令是:

xelatex --shell-escape minted-tryin.tex

如果我注释掉所有相关的行,则包含minted时它可以编译成功。babel

如何同时使用这两个包?

\documentclass[a4paper,12pt]{book}

\usepackage[british, turkish]{babel}
\selectlanguage{turkish}

\usepackage{minted}
\usepackage[left=1.5cm]{geometry}

\begin{document}
Ok let's start...

\begin{minted}{python}
import sys, math
if (len(sys.argv)>1) :
    print (math.factorial(int(sys.argv[1])))
\end{minted}

\end{document}

答案1

语言turkish将(至少在 下pdflatex)转换!:=为活动字符。您可能需要禁用它们,minted因为它可能会影响key=value界面minted内部使用,并且因为:示例中的 。

将此添加到序言中似乎有效

\usepackage{etoolbox}
\AtBeginEnvironment{minted}{
  \shorthandoff{=}
  \shorthandoff{:}
}

我没有添加!我的测试。

相关内容