这个简单的文件
\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}
附注:使用独立类的一个例子是不是一个简单的文件,该类相当复杂,只有在真正需要演示错误时才应该使用。