我有以下 MWE:
\documentclass{article}
\usepackage{ulem}
\newcommand\deeperuline{\bgroup\markoverwith{\rule[-1.1ex]{2pt}{0.4pt}\ULon}
\begin{document}
This \deeperuline{does} work \uwave{nicely}.
This \deeperuline{gives \uwave{an} error} but renders nicely.
\end{document}
目的是让句子的一部分带有波浪形下划线,而另一部分(包含波浪形下划线部分)的下划线比正常下划线更深(以便它不会与波浪形下划线相交)。
上面的代码为第二句生成了“维度太大”的错误,但两句都渲染得很好。我能做些什么来消除这个错误?
我在 pdflatex 和 xelatex 中都发现了该错误。
答案1
出于测试目的,ulem.sty
设置\ULdepth
为\maxdimen
,然后您就不能以安全的方式使用它进行算术运算。
但是,由于您希望下划线的深度固定,因此您可以将参数设置为其他值。
设置。\ULdepth
\maxdimen
\documentclass{article}
\usepackage{ulem}
\newcommand\deeperuline{%
\bgroup\ULdepth=\maxdimen \markoverwith{\rule[-1.1ex]{2pt}{0.4pt}}\ULon
}
\begin{document}
This \deeperuline{does} work \uwave{nicely}.
This \deeperuline{gives \uwave{an} error} but renders nicely.
\end{document}
我使用 1000pt 和 0pt 进行了测试,得到了相同的结果。