我发现http://jblevins.org/notes/latex我可以使用独立标志:
\newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}} \def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}}
我想知道这是如何工作的。有人能解释一下吗?我不知道命令mathpalette
、rlap
和mkern2mu
。
答案1
\mathpalette
: 看的奥秘\mathpalette
。\rlap
:这称为r
左对齐lap
。也就是说,它制作一个宽度为 的框0pt
,并将其中的内容左对齐,类似于\makebox[0pt][l]{<stuff>}
,导致内容向右重叠。\mkern
:数学模式下的字距调整(或间距)。测量单位是mu
(或m
athu
nits)。因此,水平方向\mkern2mu
插入一个 的字距或间距2mu
。有关这些长度(和其他长度)的说明,请参阅LaTeX 可以理解哪些可能的尺寸 / 大小 / 单位?
具体到你关于其工作原理的问题:
\documentclass{article}
\newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}}
\def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}}
\begin{document}
$X \independent Y$ \par
$\scriptstyle X \independent Y$ \par
$\scriptscriptstyle X \independent Y$ \par
\bigskip
$X \independent Y_{X \independent Y_{X \independent Y}}$
\end{document}
使用\mathpalette
- 内部定义为专门的\mathchoice
- 允许输入以捕获当前数学样式的方式进行定义。请注意,有四种不同的数学样式:\displaystyle
、\textstyle
和。\scriptstyle
\scriptscriptstyle
上面的 MWE 显示了单个命令如何\independent
缩放到,无论它在哪里使用,这全都归功于巧妙地使用了\mathpalette
和辅助宏\independenT
。辅助宏捕获当前的数学样式并在 中重新使用它\rlap
。符号的双重使用只是为了间隔目的,添加到\mkern
插入中。也就是说,它设置符号\perp
(宽度0pt
和r
高度在 上lap
),插入2mu
kern(将“光标”推到右边2mu
s ),然后再次插入符号。由于符号设置为相同的样式,水平条重叠,但垂直条隔开2mu
。作为对数学间距的最终看法,整个符号设置为使用 的关系\mathrel
。
答案2
也可以使用
\newcommand{\ind}{\perp\!\!\!\!\perp}
它基本上使两个正交符号彼此非常接近。 \! 的数量控制每个正交符号之间的空间。 感谢所有有用的评论。