设置语言时出现多语错误

设置语言时出现多语错误

这个简单的文件

\documentclass{standalone}

\usepackage{polyglossia}
   \setdefaultlanguage{portuguese}

\begin{document}
O modelo bond-plus.
\end{document}

产生错误:

! Illegal unit of measure (pt inserted).
<to be read again> 
                   \unskip 
l.8 \end{document}

看起来xelatex有点神秘。它与 配合得很好lualatex。将术语“bond-plus”封装在里面\emph{bond-plus}会产生一个更加神秘的错误:

! Missing number, treated as zero.
<to be read again> 
                   \aftergroup 
l.7 O modelo \emph{bond-plus}

这是意料之中的事吗?我正在运行 TL'22。

答案1

polyglossia 不能正确终止 \hskip,因此它将plus作为延续,然后抱怨缺少一个维度。

\documentclass{article}

\usepackage{polyglossia}
\setmainlanguage{portuguese}
\makeatletter
\def\portuguese@@@splhyphen#1{%
  \ifnum\hyphenchar \font>0%
    \kern\z@\discretionary{-}{\char\hyphenchar\the\font}{#1}%
    \nobreak\hskip\z@\relax%added relax
  \else%
    #1%
  \fi%
}
\makeatother
\begin{document}

 O modelo bond-plus. 
\end{document}

附注:使用独立类的一个例子是不是一个简单的文件,该类相当复杂,只有在真正需要演示错误时才应该使用。

相关内容