为什么对齐时忽略跳过长度?

为什么对齐时忽略跳过长度?

我创建了一个新命令,通过适当调整和长度\mathloose来拉伸方程中的间距。该命令在和中运行良好,但在对齐环境中不起作用。\thinmuskip \medmuskip\thickmuskip\[ \]\( \)

以下是一个 mwe:

\documentclass{article}
\usepackage{amsmath}
\newcommand\mathloose
{
\thinmuskip=5mu   %Unary operator-arg   sin·x   Default: 3mu
\medmuskip=7mu    %Binary operator-LR   x·+·y   Default: 4mu
\thickmuskip=15mu  %Relations-LR         x·=·y   Default: 5mu plus 5mu
}

\begin{document}
\[
a=b + \sin x
\]
\[
\mathloose
a=b + \sin x
\]

\begin{align*}
a= & b + \sin x
\end{align*}
\begin{align*}
\mathloose
a= & b + \sin x
\end{align*}
\end{document}

这是输出(删除&对齐中的分隔符并不能解决问题):

在此处输入图片描述

是因为 align 使用了不同的跳过长度还是我做错了什么?

附加问题有没有办法让对齐&的分隔符符合关系符号的间距? 您可能会注意到,对齐方程式中符号左侧和右侧的间距=不同,这是由于&紧跟在 之后造成的=。解决方案可能是写出来a=&\;b,但我正在寻找更自动化的方法来处理它。可行吗?

答案1

首先,您必须将&分隔符放在等号前面才能正常align工作。

对于 MWE 来说,问题在于您的新命令不知道应用于何处,因为对齐环境将方程式拆分为多个单元格(列/项)。您必须在 前面设置命令align。为了仅在本地更改间距,您应该用 将其包围\begingroup\endgroup。(我想大括号也可以)

请注意,我已在命令定义中添加了%。这是必需的。如果没有它,在方程式外使用命令时会出现换行符(就像我在这里做的那样)。

% arara: pdflatex

\documentclass{article}
\usepackage{amsmath}
\newcommand\mathloose
{%
    \thinmuskip=5mu   %Unary operator-arg   sin·x   Default: 3mu
    \medmuskip=7mu    %Binary operator-LR   x·+·y   Default: 4mu
    \thickmuskip=15mu  %Relations-LR         x·=·y   Default: 5mu plus 5mu
}

\begin{document}
    \begin{align*}
    a &=  b + \sin x
    \end{align*}
    \begingroup
    \mathloose
    \begin{align*}
    a &=  b + \sin x
    \end{align*}
    \endgroup
\end{document}

在此处输入图片描述


另外,您在评论中提出的问题在印刷上存在问题,我会尝试在这里帮助您:

环境align基本上使用这个模板来为您设置间距。

\hfil $\displaystyle #$ & $\displaystyle {}#$ \hfil

您可以在这里看到为什么您的命令一开始不起作用。您的单元格align被包裹在内$$,因此无法访问。如果您只想重新定义右侧,我会手动设置对齐公式tabular,将等号放在左侧,然后将命令应用于右列。

% arara: pdflatex

\documentclass{article}
\usepackage{mathtools}
\usepackage{array}
\newcommand\mathloose
{%
    \thinmuskip=12mu   %Unary operator-arg   sin·x   Default: 3mu
    \medmuskip=7mu    %Binary operator-LR   x·+·y   Default: 4mu
    \thickmuskip=15mu  %Relations-LR         x·=·y   Default: 5mu plus 5mu
}

\begin{document}
    \begin{align*}
    a &=  b + \sin x
    \end{align*}
    \[\begin{tabular}{@{}r@{}>{\mathloose}l@{}}
    \hfil $\displaystyle a ={}$ & $\displaystyle {} b + \sin x$ \hfil
    \end{tabular}\]
\end{document}

在此处输入图片描述

相关内容