以下代码显示了使用polyglossia
和soul
包时发现的一个奇怪的错误。
\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 吗?来自polyglossia
或soul
?
答案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}