请考虑以下示例:
\documentclass[11pt]{paper}
\usepackage[usenames]{color}
\definecolor{foo}{rgb}{0.75,0.0,0.0}
\everymath{\color{foo}}
\title{something}
\author{someone}
\begin{document}
\maketitle
this is some math: $a^2$.
\end{document}
数学按预期被染成红色。但是,作者列表也被染成红色。如果我注释掉该\everymath
命令,那么作者和数学都会变回黑色。
我了解 的功能\everymath
,但我没有意识到它也会影响作者规范。这是一个已知功能吗?
答案1
对你的问题的主要回答是这\everymath
不是一个 LaTeX 命令,也就是说,你不应该从任何 LaTeX 手册或说明中获得它。不幸的是,许多 TeX 原语都被赋予了非常好听的名字,而且由于历史原因,大多数格式(包括 LaTeX)都保留了这些名称(也来自普通的 TeX 扩展),即使它们在更复杂的环境(如 LaTeX)中使用并不安全。
这种行为的技术原因是 TeX 缺少一些重要的构建块,或者只是以迂回的方式提供它们。例如,垂直居中可用,\vcenter
这只有在数学模式下才可用,因此许多高级构造使用“假”数学模式来实现这样的特殊效果,即使从技术上讲根本没有构建公式。
话虽如此,但可能有办法解决这个问题(但风险自负:-)
尝试
\makeatletter \def\m@th{\mathsurround\z@\color{black}} \makeatother
除了您的代码之外。这很可能起作用的原因是,任何“假”数学都应该包括\m@th
取消可能添加到公式周围的额外空间。因此,如果所有包中的所有构造都正确构建,那么这应该可以解决问题。