有关背景信息,请参阅我之前的问题
我一直在尝试更改我的 LaTeX 文档,以便数学显示为黑色,文本显示为红色。感谢 Stefan Kottwitz 和 Torbjørn T。我已经能够在这方面取得一些进展。目前我已经
\usepackage{amsmath}
\usepackage{color}
\usepackage{everysel}
\EverySelectfont{\color{red}}
\everymath{\color{black}}
\let\originaldisplaystyle\displaystyle
\renewcommand\displaystyle{\color{black}\originaldisplaystyle}
\let\oldeq\equation
\def\equation{\oldeq\color{black}}
align
这会将文本颜色更改为红色,然后将内联数学、环境和环境的颜色更改equation
为黑色。这一切都很好。但是,当我尝试对环境进行类似的更改时equation*
:
\let\oldeq*\equation*
\def\equation*{\oldeq*\color{black}}
我收到错误。我猜编译器正在读取\equation*
文本\equation
星号:如果我输入
\newenvironment{oldeq*}{\equation*}{\endequation*}
\renewenvironment{equation*}{\begin{oldeq*}}{\end{oldeq*}}
然后文档编译,但\equation*
环境现在呈现为\equation
环境(即带有编号),但在等式前面放置了一个星号。这是我迄今为止唯一设法编译的东西。我做错了什么?
答案1
这里是在原有amsmath
定义的基础上加上颜色命令的重新定义:
\makeatletter
\renewenvironment{equation*}{%
\mathdisplay@push
\st@rredtrue \global\@eqnswfalse
\color{black}
\mathdisplay{equation*}%
}{%
\endmathdisplay{equation*}%
\mathdisplay@pop
\ignorespacesafterend
}
\makeatother
使用这个包可以实现一个更简单的解决方案,并且不需要了解 amsmath 的内部结构etoolbox
:
\usepackage{etoolbox}
\AtBeginEnvironment{equation*}{\color{black}}