同时使用 polyglossia 和 soul 包时出现的问题

同时使用 polyglossia 和 soul 包时出现的问题

以下代码显示了使用polyglossiasoul包时发现的一个奇怪的错误。

\documentclass{article}
\usepackage{polyglossia}
\setmainlanguage[variant=brazilian]{portuguese}
\setotherlanguage[variant=american]{english}
\usepackage{soul}
\begin{document}
\textit{bbb \& \ul{aaaaa}}
\end{document}

错误信息是:

! Extra \else.
\portuguese@sh@tmp ...\portuguese@sh@next --\else
                                                  \expandafter \portuguese@@...
l.7 \textit{bbb \& \ul{aaaaa}}

请注意,删除一个“a”确实\ul{aaaaa}可以编译而不会出现错误。

这是 bug 吗?来自polyglossiasoul

答案1

polyglossia该不兼容性将在v.1.64中修复。

在此之前的解决方法是禁用splithyphens灵魂宏,如下所示:

    \documentclass{article}
    \usepackage{polyglossia}
    \setmainlanguage[variant=brazilian]{portuguese}
    \setotherlanguage[variant=american]{english}
    \usepackage{soul}
    \begin{document}
    \textit{bbb \& \textportuguese[splithyphens=false]{\ul{aaaaa}}}
    \end{document}

相关内容