我有以下形式的宏
\newcommand{\typo}[1]{{\color{red}#1}}% for pointing out that there is a typo
但是,当我在数学模式下使用此命令时,它会使用二元运算符($A\otimes B$
与$A\typo{\otimes}B$
)创建不正确的间距。
我怀疑这是\otimes
在{...}
(见确保二元运算符的宏间距),但{...}
对于保持颜色的完整性是必要的。我可以通过$A\typo{\otimes}B$
用 替换 来解决这个问题$A\mathbin{\typo{\otimes}}B$
。
但有办法解决吗宏的定义\typo
,这样$A\typo{\otimes}B$
会产生与 相同的间距吗$A\otimes B$
?
以下是 MWE:
\documentclass{article}
\usepackage{xcolor}
\newcommand{\typo}[1]{{\color{red}#1}}% for pointing out that there is a typo
\begin{document}
Compare $A\otimes B$ with $A\typo{\otimes}B$ with $A\mathbin{\typo{\otimes}}B$.
The first and third have correct spacing; the middle does not.
\end{document}
答案1
组\begingroup
不会以相同的方式影响间距。
\documentclass{article}
\usepackage{xcolor}
\newcommand{\typo}[1]{\begingroup\color{red}#1\endgroup}% for pointing out that there is a typo
\begin{document}
Compare $A\otimes B$ with $A\typo{\otimes}B$ with $A\mathbin{\typo{\otimes}}B$.
The first and third have correct spacing; the middle does not.
\end{document}
如果您使用(x)color
已经可用的下一个版本,如果您使用pdflatex-dev
而不是pdflatex
在 texlive 中,您可以使用\mathcolor
基于这个想法的定义(但以更好的方式处理上标)
\documentclass{article}
\usepackage{color}
\usepackage{xcolor}
\newcommand{\typo}[1]{\mathcolor{red}{#1}}% for pointing out that there is a typo
\begin{document}
Compare $A\otimes B$ with $A\typo{\otimes}B$ with $A\mathbin{\typo{\otimes}}B$.
The first and third have correct spacing; the middle does not.
\end{document}