多年来,我一直在使用polyglossia
和minted
软件包与 XeLaTeX 和英文文本进行工作,没有任何问题。现在我必须用一些代码用德语编写一份文档,所以我想使用polyglossia
和 软件包作为主要语言,并babelshorthands
同时启用 和 软件包minted
。当我尝试编译此文档时,.out.pyg
文件未生成,XeLaTeX 会抛出错误。
如果我禁用,这个问题就会消失babelshorthands
。
请考虑以下 MWE:
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{german}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
x = 1
\end{minted}
\end{document}
上面的代码会抛出上述错误。现在babelshorthands=true
从命令中删除选项\setmainlanguage
:
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage{german}
\usepackage{minted}
\begin{document}
\begin{minted}{python}
x = 1
\end{minted}
\end{document}
现在该文档应该可以顺利编译。
这是一个错误还是我做错了什么polyglossia
?minted
提前感谢您的支持。
答案1
babel
和之间存在差异polyglossia
(可能被认为是一个错误):前者使速记字符在 时处于活动状态\begin{document}
,而polyglossia
则使它们立即处于活动状态。
由于内部宏的定义\minted@pygmentize
包含"
,因此出现了问题。
解决方法:minted
先加载polyglossia
。