我创建了一个新命令,通过适当调整和长度\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}