在另一个答案中(https://tex.stackexchange.com/a/494739/81928)答题者使用了以下代码。(这是他们答案的“附加内容”;问题的主要部分是关于不同主题的,但仍与对齐有关。因此,我问了一个新问题,而不是跟进该答案。)
\usepackage{eqparbox}
\newcommand{\eqmathsbox}[2][M]{%
\eqmakebox[#1]{$\displaystyle{}#2{}$}}
这个想法是能对于对齐很有用:它将命令放在居中的框中(其内容的最宽自然宽度)。我对它的使用有几个问题和担忧,希望在下面的 MWE 中说明。(第一个问题没有第二个那么严重。)
1
这似乎增加了一些间距:查看行和3
与k
vs之间的区别\log n
。这是最大宽度整个文档,而不是在那个特定的显示器上。
我想知道如何消除这些问题。但是,我不太明白命令是如何工作的,所以我自己也很难做到……
这是 MWE。(我使用minipage
它只是为了让它以“横向”模式显示下面的 SE 图片。)
\documentclass[]{article}
\usepackage{amsmath,amssymb}
\usepackage{eqparbox}
\newcommand{\eqmathsbox}[2][M]{%
\eqmakebox[#1]{$\displaystyle{}#2{}$}}
\begin{document}
\begin{minipage}{0.3\linewidth}
\begin{align*}
a &\vert b
\\
a &\wr b
\\
a &\eqmathsbox{\vert} b
\\
a &\eqmathsbox{\wr} b
\end{align*}
\end{minipage}
%
\begin{minipage}{0.3\linewidth}
\begin{align*}
k &\ll \log n
\\
k &\gtrsim \log n
\\
k &\eqmathsbox{\ll} \log n
\\
k &\eqmathsbox{\gtrsim} \log n
\end{align*}
\end{minipage}
%
\begin{minipage}{0.3\linewidth}
\begin{align*}
a &\vert b
\\
a &\wr b
\\
a &\eqmathsbox{\vert} b
\\
a &\eqmathsbox{\wr} b
\end{align*}
\end{minipage}
\end{document}
为了更清楚地了解间距问题(1.),可以使用以下代码片段(带有相同的序言)。
\begin{document}
\begin{align*}
k &\ll \log n
\\
k &\eqmathsbox{\ll} \log n
\end{align*}
\end{document}
答案1
在您使用“均衡框”的上下文中,您需要不同的定义。特别是,您必须为要均衡的框集提供唯一的标签。
\documentclass[]{article}
\usepackage{amsmath,amssymb}
\usepackage{eqparbox}
\newcommand{\eqmathsbox}[3][\mathord]{%
% #1 = atom type, #2 = label, #3 = object
#1{\eqmakebox[#2]{$\displaystyle#3$}}%
}
\begin{document}
\begin{minipage}{0.3\linewidth}
\begin{align*}
a &\vert b
\\
a &\wr b
\\
a &\eqmathsbox[\mathbin]{A}{\vert} b
\\
a &\eqmathsbox[\mathbin]{A}{\wr} b
\end{align*}
\end{minipage}
%
\begin{minipage}{0.3\linewidth}
\begin{align*}
k &\ll \log n
\\
k &\gtrsim \log n
\\
k &\eqmathsbox[\mathrel]{B}{\ll} \log n
\\
k &\eqmathsbox[\mathrel]{B}{\gtrsim} \log n
\end{align*}
\end{minipage}
\end{document}
原始定义中的对
{}
是错误的,它们是对数前面多余的空间的原因。标签应该明确使用,因为它是全局的。根据原始定义,所有
\eqmathsbox
没有可选参数的构造都将相等自始至终该文件。我添加了一个可选参数来说明原子类型。