我有以下代码来soul
允许带有降部的字母加下划线。
\usepackage{xcolor}
\usepackage{xparse}
\usepackage{soul}
\makeatletter
\ExplSyntaxOn
\cs_new:Npn \white_text:n #1
{
\fp_set:Nn \l_tmpa_fp {#1 * .01}
\llap{\textcolor{white}{\the\SOUL@syllable}\hspace{\fp_to_decimal:N \l_tmpa_fp em}}
\llap{\textcolor{white}{\the\SOUL@syllable}\hspace{-\fp_to_decimal:N \l_tmpa_fp em}}
}
\NewDocumentCommand{\whiten}{ m }
{
\int_step_function:nnnN {1}{1}{#1} \white_text:n
}
\ExplSyntaxOff
\NewDocumentCommand{ \varul }{ D<>{5} O{0.2ex} O{0.1ex} +m } {%
\begingroup
\setul{#2}{#3}%
\def\SOUL@uleverysyllable{%
\setbox0=\hbox{\the\SOUL@syllable}%
\ifdim\dp0>\z@
\SOUL@ulunderline{\phantom{\the\SOUL@syllable}}%
\whiten{#1}%
\llap{%
\the\SOUL@syllable
\SOUL@setkern\SOUL@charkern
}%
\else
\SOUL@ulunderline{%
\the\SOUL@syllable
\SOUL@setkern\SOUL@charkern
}%
\fi}%
\ul{#4}%
\endgroup
}
\makeatother
我曾尝试将其用于拼音音节 xiě 但它就是不打印 ě ,结果如下:
\begin{document}
\varul{xiě}
\end{document}
代码在字符集上工作正常,áàéèíìóòú}
但在 上却不行āǎēěīǐōǒūǔǖǘǚǜ
。这或多或少是有道理的,我通常只是假设它是一个ASCII
东西或某样东西。然而,它对真正的中文工作正常,如下所示:
\begin{document}
\varul{绿} se pronuncia \varul{lǜ}
\end{document}
这是为什么?我该如何解决?谢谢!