我正在尝试找到一种方法将%
符号定义为二元运算符,其行为基本上与+
符号相同。我听说过命令DeclareMathOperator
,但我认为这是针对对数和正弦函数之类的运算符。什么是合适的命令?例如,我希望以下两行具有相似的间距。
\begin{equation*}
a % b % c
\end{equation*}
\begin{equation*}
a + b + c
\end{equation*}
答案1
如果使用宏来表示新符号是可以的,那么您有几个选择:
\documentclass{article}
\newcommand{\percA}{\mathbin{\%}}
\newcommand{\percB}{\mathbin{\ooalign{$\hidewidth\%\hidewidth$\cr$\phantom{+}$}}}
\begin{document}
\[\begin{array}{|@{}c@{}|}
a \percA b \percA c \\[\jot] % Option A
a \percB b \percB c \\[\jot] % Option B
a + b + c % Control
\end{array}\]
\end{document}
选项 A使用\percA
插入\%
二进制数学符号\mathbin{\%}
。但是,\%
比 略宽+
。这就是选项 B 提供的地方,它用\percB
覆盖了零宽度。\%
\phantom{+}
有关内部工作原理\ooalign
,请参阅\subseteq
+\circ
作为单个符号(“开子集”)。
答案2
虽然迟到了,但我认为这是更好的建议:百分比字符的自然大小太突出了,所以我将其缩放到相同的宽度+
(但也增加一些侧边距)。
\documentclass{article}
\usepackage{graphicx}
\makeatletter
\DeclareRobustCommand{\perc}{%
\mathbin{\mathpalette\scaletoplus@{\mkern1mu\%\mkern1mu}}%
}
\newcommand{\scaletoplus@}[2]{%
\vcenter{%
\hbox{\sbox\z@{$\m@th#1+$}\resizebox{\wd\z@}{!}{$\m@th#1#2$}}%
}%
}
\makeatother
\begin{document}
$a\perc b \cdot c + d_{u\perc v}$
$a+b$
\end{document}