xcolor、ulem 和 no-break 空格之间的交互

xcolor、ulem 和 no-break 空格之间的交互

使用不间断空格似乎会破坏xcolor和之间的交互ulem

\documentclass{article}

\usepackage{xcolor}
\usepackage[normalem]{ulem}

\begin{document}
\textcolor{green}{\uline{\textcolor{blue}{TeX~StackExchange}}}
\end{document}

发生了什么事?我尝试将最后一行换行\traceon…\traceoff,但即使只有这一行也产生了大约 900 行输出,我不知道该如何处理它们。XeLaTeX 和 pdfLaTeX 都存在此问题。

“StackExchange”颜色不正确

答案1

正如文档所述(我强调):

下划线特别支持几种文本格式化命令:\-,,,,,,,,,,,,,,。不支持显示 数学运算。\~\\\newline\linebreak\nolinebreak\penalty\hskip\hspace\hfil\hfill\hss

特殊命令确实存在一个问题:它们结束一个组,因此任何本地分配都会丢失。

如果你想要彩色文本,你应该从外面开始着色\uline。你也可以使用文档中描述的命令来获取彩色规则:

\documentclass{article}

\usepackage{xcolor}
\usepackage[normalem]{ulem}

\newcommand\coloruline{\bgroup\markoverwith
{\textcolor{ulinecolor}{\rule[-0.5ex]{2pt}{0.4pt}}}\ULon}
\colorlet{ulinecolor}{green}

\begin{document}
\textcolor{blue}{\coloruline{TeX StackExchange}}
\end{document}

在此处输入图片描述

相关内容