如何灵活地在文本和数学环境中突出显示字符?

如何灵活地在文本和数学环境中突出显示字符?

我想使用相同的命令在文本段落和方程式中为字符(单词、句子或数学变量)的背景着色。该命令\colorbox{color}{some text}无法完成这项工作,因为它无法换行,并且无法用于数学内容。

然后我尝试使用soul给定的包这里。这与我想要的非常接近,只是它在数学环境中不起作用。

这是一个 MWE(有问题的部分已在图像上用红点标记):

\documentclass{article}
\usepackage{xcolor}
\usepackage{soul}

\sethlcolor{gray} 

\begin{document}
This is a long text without highlighting. \hl{This is a long text with highlighting over the line break.} This is a long text without highlighting.

This is an equation with highlighted variable:
$
1+x^2+ %\hl{x^3}
$
\end{document}

带红点的编译代码

感谢您的帮助。

答案1

请不要这样。;-)

\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{soul}

\sethlcolor{gray}

\DeclareRobustCommand{\mhl}[1]{%
  \text{\hl{$#1$}}%
}

\begin{document}
This is a long text without highlighting. \hl{This is a long
text $x^3$ with highlighting over the line break.} This is a long
text without highlighting.

This is an equation with highlighted variable:
$
1+x_{\mhl{zz}}^2+\mhl{x^3}
$
\end{document}

有人可能会考虑制作一个在文本和数学中都有效的命令:

\DeclareRobustCommand{\mhl}[1]{%
  \ifmmode\text{\hl{$#1$}}\else\hl{#1}\fi
}

在此处输入图片描述

该示例表明,在标准版本中,灰色背景也没有完全覆盖指数,因此这是一个soul问题。

相关内容