此宏/命令如何工作?以及如何改进它

此宏/命令如何工作?以及如何改进它

在另一个答案中(https://tex.stackexchange.com/a/494739/81928)答题者使用了以下代码。(这是他们答案的“附加内容”;问题的主要部分是关于不同主题的,但仍与对齐有关。因此,我问了一个新问题,而不是跟进该答案。)

\usepackage{eqparbox}
\newcommand{\eqmathsbox}[2][M]{%
    \eqmakebox[#1]{$\displaystyle{}#2{}$}}

这个想法是对于对齐很有用:它将命令放在居中的框中(其内容的最宽自然宽度)。我对它的使用有几个问题和担忧,希望在下面的 MWE 中说明。(第一个问题没有第二个那么严重。)

  1. 1这似乎增加了一些间距:查看行和3kvs之间的区别\log n

  2. 这是最大宽度整个文档,而不是在那个特定的显示器上。

我想知道如何消除这些问题。但是,我不太明白命令是如何工作的,所以我自己也很难做到……

这是 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}
  1. 原始定义中的对{}是错误的,它们是对数前面多余的空间的原因。

  2. 标签应该明确使用,因为它是全局的。根据原始定义,所有\eqmathsbox没有可选参数的构造都将相等自始至终该文件。

  3. 我添加了一个可选参数来说明原子类型。

在此处输入图片描述

相关内容