我使用 定义了一个新的二元运算符,\rule
以创建一个类似于\mid
但稍粗一些的自定义符号。我最初给它\mathrel
留有间距(与 相同\mid
),但我发现这往往会在运算符周围留出太多空间,所以我将其更改为\mathbin
。
\newcommand{\mg}{\mathbin{\rule[-2.5pt]{1.25pt}{10pt}}}
\mathbin
在大多数情况下,间距看起来都很好,但间距\mathbin
似乎有点“挤压”,并且在内联数学中,它有时会被挤压得太多,正如您在此处看到的那样。(下面的 MWE 代码。)
所以我想知道我是否可以更精确地控制此运算符周围的间距。我希望它看起来与\mathbin
排版系统可以减少内联数学中的空间的下限相似,但下限更大。
这是 MWE,它生成上面显示的示例。
\documentclass{article}
\newcommand{\mg}{\mathbin{\rule[-2.5pt]{1.25pt}{10pt}}}
\begin{document}
Here is the `mg' command in an equation, which looks good:
\begin{equation}
\psi(a\mg b)
\end{equation}
It also looks fine most of the time in inline math $\psi(a\mg b)$.
But sometimes it looks a bit sort of jammed together, e.g.\ $\psi(a\mg b)\,\phi(c\mg b)\,\theta(d\mg e)$.
\end{document}
答案1
\mathbin
不能替代\mathrel
。二元运算和关系的间距规则非常不同。如果您确实想要不同的间距(我不这么认为),您可以为整个复合体定义一个宏,假设 始终\mg
是中缀。
\documentclass{article}
\usepackage{amsmath}
\usepackage{showframe}
\makeatletter
\DeclareRobustCommand{\mg}{\mathpalette\mg@\relax}
\newcommand{\mg@}[2]{%
\begingroup
\sbox\z@{$#1|$}%
\sbox\tw@{$\m@th#1\mspace{18mu}$}%
\rule[-\dp\z@]{0.125\wd\tw@}{\dimexpr\ht\z@+\dp\z@}%
\endgroup
}
\makeatother
\DeclareRobustCommand{\mgrel}[2]{%
{#1}%
\nonscript\mspace{2mu}\mspace{2mu}%
\mg
\nonscript\mspace{2mu}\mspace{2mu}%
{#2}%
}
\begin{document}
It looks fine most of the time in inline math $\psi(\mgrel{a}{b})$.
And it doesn't jam even if the line is compressed,
e.g.\ $\psi(\mgrel{a}{b})\,\phi(\mgrel{c}{b})\,\theta(\mgrel{d}{e})$.
It also works in subscripts: $A_{(\mgrel{a}{b})}$
\end{document}
答案2
op
、bin
和类型的数学原子rel
通常(取决于这些数学原子之前和之后的内容)被分别由参数\thinmuskip
、\medmuskip
和控制的空格包围\thickmuskip
。我熟悉的大多数(可能是所有)LaTeX 文档类中这些参数的默认值是3mu
、4mu plus 2mu minus 4mu
和5mu plus 5mu
。(mu
定义为字母“M”宽度的 1/18,又名1em
。)换句话说,\thinmuskip
具有固定值(在 TeX 术语中它是“长度参数”),\thickmuskip
具有拉伸分量但没有收缩分量(其最小值为 5mu,最大值为 10mu),并且\medmuskip
同时具有拉伸和收缩分量(在 TeX 术语中它是“粘合参数”:其最小值为 0mu,最大值为 6mu)。
您已选择math-bin
为\mg
宏指定类型。因此,符号周围的空白量可以少至 0mu,即根本没有空格。
我的建议是不是触及 的值\medmuskip
,因为它用于各种地方和计算。鉴于 (a)\mg
应该发挥与 类似的作用\mid
,(b)\mid
的数学状态是math-rel
,以及 (c)\thickmuskip
没有收缩成分,我也会将数学相关状态分配给\mg
(并习惯于5mu
而不是4mu
分离)。