如何使数学和文本获得不同的颜色?

如何使数学和文本获得不同的颜色?

我想在我的 LaTeX 文章中添加一些内容,使所有数学公式都显示为黑色,而所有文本(包括\text{}数学公式中间的 s 内的所有内容)都显示为红色。理想情况下,我希望将其包含在序言或文件.cls或类似内容中。最快的方法是什么?

答案1

一种快捷方式是使用\everymath\everydisplayeverysel

\documentclass{article}
\usepackage{amsmath}
\usepackage{color}
\usepackage{everysel}
\EverySelectfont{\color{red}}
\everymath{\color{black}}
\everydisplay{\color{black}}
\begin{document}
text $x=0$
\[ \text{Text in math, }y= 1 \]
\end{document}

文本和数学中的颜色

但是,在更复杂的amsmath环境中,align可能会出现问题\everydisplay,请参见:修改 \everydisplay 导致 align 环境停止工作。如果您愿意这样做,也许可以省略\everydisplay内部align使用内联数学,然后重新定义基本显示数学以使用所需的颜色。

答案2

如果您可以使用xelatexlualatex来编译文档,fontspec则和的组合unicode-math可以提供帮助:

\documentclass{article}
\usepackage{fontspec}
\setmainfont[Color=FF0000]{Latin Modern Roman}
\setsansfont[Color=FF0000]{Latin Modern Sans}
\setmonofont[Color=FF0000]{Latin Modern Mono}

\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{unicode-math}
\setmathfont[Color=000000]{lmmath-regular.otf}

\begin{document}
A bunch of text, then an equation.
\begin{equation}
  f(x) = \sin (x) \text{ and } g(x) = e^x\cos(x)
\end{equation}
Some \textsf{inline} math \( a = b \), and then an \texttt{align}
\begin{align}
 N^2 &= -\frac{g}{\rho_0} \frac{\partial \rho}{\partial z} \\
   N &= \sqrt{-\frac{g}{\rho_0} \frac{\partial \rho}{\partial z}}
\end{align}
\end{document}

在此处输入图片描述

相关内容