我从事数学工作,其中长而多行的计算是日常生活中必不可少的,我主要使用包align*
中的(及其同类)amsmath
来显示它们。然而,我还没有找到一种简单、万无一失的方法来排版这些表达式。在多行表达式中正确水平对齐行的最简单方法是什么?
理想情况下,解决方案不应过于技术化,以免我的合著者采用更简单但不正确的解决方案。
以以下多行计算的漫画为例:x = -y [newline] -y
。如果我理解了 Knuth 和 Swanson1正确的话,上面的排版应该为
也就是说,
x [thickspace] = [thickspace] - [no space] y
- [medium space] y
(其中减号水平对齐)。(第一个减号后不应有空格,因为它是一元运算符;第二个减号后应有中等大小的空格,因为它是二元运算符。)
我在 StackExchange 上搜索过解决方案,但一无所获。以下是我目前找到的解决方案,底部是 MWE。
正确,但是过于复杂方式:
\documentclass{article} \usepackage{amsmath} \begin{document} \begin{align*} x &= -y \\ &\mathrel{\phantom{=}} -\:y \end{align*} \end{document}
没做什么。减号排列不正确。
x &= -y \\ &-y
(我只改变这里的内容
align*
。)任意缩进,例如使用 \quad 或 \qquad。减号排列不正确。
x &= -y \\ &\quad -y
使用 \phantom。减号排列不正确。
x &= -y \\ &\phantom{=} -y
使用 \mathrel{\phantom}。减号对齐不正确,并且第二个减号后没有中等间距。
x &= -y \\ &\mathrel{\phantom{=}} -y
使用 {}&。等号后面似乎有一个细空格和一个粗空格,第一个减号后面有一个细空格。
x ={}& -y \\ & -y
使用对齐。产生的结果与(6)相同。
x &= \begin{aligned}[t] &-y \\ &-y \end{aligned}
1:唐纳德·克努斯:TeXbook,第 170 页和艾伦·斯旺森:数学类型,第 3.3.5 节。
1 月 29 日编辑:我误读了 Knuth 的表格;第二个减号后应该有一个 medspace。此外,将片段变成了完整文档。
答案1
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
x ={}& {-}y \\
& {-}\:y
\end{align*}
\end{document}
这会产生您要求的间距,如评论中所述:
x={}
给出标准厚度空间 =
{-}y
然后强制前缀 - 不添加空格,
并{-}\:
在 - 和 y 之间产生一个 medmuspace,就像你在x-y
但是,上述内容不是我会使用的布局,因为没有真正的语义原因来对齐 - 并且(从涉及第二个 = 或不等式的更典型的对齐中可以更好地看出)它使区分换行的连续行和第二个对齐的等式变得更加困难。
将使用上面给出的间距的第一个形式与第二个形式进行比较,第二个形式具有更简单的标记,并且我认为布局更清晰。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
x ={}& {-}y \\
& {-}\:y \\
={}&{-}2y
\end{align*}
\begin{align*}
x &= -y \\
& \qquad - y \\
& =-2y
\end{align*}
\end{document}
答案2
像这样:
\def\n{\mathrel{\phantom{=}}\mskip-\thinmuskip{}}
$$\eqalign{
x &= -y \cr
&\n -y
}
$$
\bye