使用多语制时 PDF 书签中的引文

使用多语制时 PDF 书签中的引文

我正在创建一个多语言文档,使用polyglossia。我想使用 在章节标题中包含引用文本csquotes,并且我还想在最终文件中有一个 PDF 书签树,每个章节一个书签,使用bookmark。最后,我还使用了polyglossia的 babel 样式简写 ( babelshorthands=true)。

以下 MWE 失败:

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{german}
\usepackage{csquotes}
\usepackage{bookmark}
\begin{document}
\section{This works}
\section{\enquote{This breaks}}
\end{document}

错误信息如下:

! Argument of \language@active@arg" has an extra }.
<inserted text> 
                \par 
l.10 \section{\enquote{This breaks}}
[...]

谷歌搜索让我得出结论,babel这里的问题在于简写(事实上,不启用它们可以消除错误),并且我应该"在章节标题之前禁用简写,然后分别使用\shorthandoff和重新启用它\shorthandon(这些babel命令也是由提供的polyglossia;事实上,babel自己的文档特别推荐使用这些命令来解决上述错误):

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[babelshorthands=true]{german}
\usepackage{csquotes}
\usepackage{bookmark}
\begin{document}
\section{This works}
\shorthandoff{"}%
\section{\enquote{This breaks}}
\shorthandon{"}%
\end{document}

然而,这仍然会导致与上面相同的错误消息。

使用babel其本身来代替polyglossia作品;以下内容:

\documentclass{article}
\usepackage[german]{babel}
\usepackage{csquotes}
\usepackage{bookmark}
\begin{document}
\section{This works}
\shorthandoff{"}%
\section{\enquote{This breaks}}
\shorthandon{"}%
\end{document}

生成所需的输出,没有任何错误。或者,只要未加载包,使用polyglossia也可以(甚至不禁用简写)。"bookmark

我的问题是:

  1. 这是polyglossia我应该报告的一个错误(\shorthandoff并且\shorthandon不能按预期工作),和/或bookmark?和
  2. 因为我更愿意继续使用polyglossiababel简写,同时保留章节标题和 PDF 书签中的引文,是否有其他方法可以解决原始错误,或者这是“给定 X,选择任意(X-1)”的情况?

提前谢谢了!

答案1

稍后加载语言。该选项babelshorthands=true使简写直接生效,因此会干扰稍后加载的软件包:

\documentclass{article}
\usepackage{polyglossia}
\usepackage{csquotes}
\usepackage{bookmark}

\setmainlanguage[babelshorthands=true]{german}
\begin{document}
\section{This works}
\section{\enquote{This breaks}}
\end{document}

相关内容