\everymath 和 \underline 颜色

\everymath 和 \underline 颜色

我使用 \everymath 来更改所有数学的颜色(蓝色)。然而,出乎我的意料的是,这种颜色恰好自动应用于任何带下划线的文本。请指导我如何解决这个问题,即将所有带下划线的文本恢复为正常颜色(黑色)。任何帮助都将不胜感激。

下面是一个小例子来说明我的问题。

\documentclass[11pt]{paper}
\usepackage[usenames]{color}
\everymath{\color{blue}}
\makeatletter \def\m@th{\normalcolor\mathsurround\z@} \makeatother

\begin{document}
\underline{Problem 1.} This is \underline{some} math: $a^2$. 
\end{document}

答案1

的定义\underline

% latex.ltx, line 5128:
\def\underline#1{%
  \relax
  \ifmmode\@@underline{#1}%
  \else $\@@underline{\hbox{#1}}\m@th$\relax\fi}

并且的位置\m@th就是对你的输出的解释。

这是必要的否则\m@th,可能会影响要下划线的文本中的数学运算。

您可能想要重新定义它:

\def\underline#1{%
  \relax
  \ifmmode\@@underline{#1}%
  \else $\normalcolor\@@underline{\hbox{#1}}\m@th$\relax\fi}

ulem但您应该考虑使用包裹或的设施soul

更好的是,根本不要划线。

相关内容