我刚刚从 切换到babel
,并遇到了几个与中polyglossia
的使用相关的错误。只有设置为并且已加载时才会出现问题。当使用 而不是 时,不会出现这些问题。有人知道如何解决这个问题吗?\enquote
\section
babelshorthands=true
polyglossia
hyperref
babel
polyglossia
例子
\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{german} % problems
%\setmainlanguage{german} % no problems
%\usepackage[german]{babel} % no problems
\usepackage{csquotes}
\usepackage{hyperref}
\begin{document}
\section{\enquote{Test}}
\end{document}
错误信息
! Argument of \language@active@arg" has an extra }.
<inserted text>
\par
l.9 \section{\enquote{Test}}
答案1
您过早启用了简写。这会干扰不期望 catcode 更改的软件包的加载。因此,\enquote
用于书签的版本定义为活动字符"
,而不是非活动字符。
解决方案:提前加载包csquotes
:
...
\usepackage{csquotes}
...
\setmainlanguage[babelshorthands=true]{german}
顺便说一句,包babel
已经吸取了教训,并稍后通过激活简写\AtBeginDocument
。