54

Near the beginning of the definition of the amsmath environments aligned and gathered (and also mathtools' multlined) there's an explicit thin space \,. This often has to be cancelled with \!, as has been observed various times: 1 2 3 4 5 6 7

I'd like to know why this explicit \, is there – what would go wrong without it?


From amsmath.dtx:

\newcommand{\start@aligned}[2]{%
    \RIfM@\else
        \nonmatherr@{\begin{\@currenvir}}%
    \fi
    \savecolumn@ % Assumption: called inside a group
%    \end{macrocode}
%    The \cs{null} here is to keep the \cs{,} glue from causing the
%    invocation of the clause in \tex/'s built-in tag placement
%    algorithm that can cause an equation to be shifted all the way over
%    to the margin.
%    \begin{macrocode}
    \null\,%
6
  • 3
    I can only imagine it's there to somehow emulate a \mathinner atom, but the fact that there's not a corresponding \, at the end is puzzling (see smallmatrix
    – egreg
    Feb 16, 2013 at 16:25
  • @Karl'sstudents I don't think that there's an answer smarter than "because the developers decided so". The .dtx file doesn't say more than what reported in the question.
    – egreg
    Mar 16, 2013 at 23:40
  • @egreg: OK. I let the bounty expire by itself if no such smarter answer available. Mar 16, 2013 at 23:56
  • @egreg There’s a second question in this question: What could possibly go wrong if I re-defined \start@aligned without \, (assuming a new document without cancelling \!s)? Mar 17, 2013 at 4:20
  • 1
    @egreg: I could also ask why there's \thickmuskip around binary relations, and you could say "because the DEK decided so" :-) But we both know that one can say more to answer that question. Mar 17, 2013 at 7:08

3 Answers 3

38

it will probably take a few tries until i get to the bottom of this, but so far this much is certain:

amsmath was derived from amstex, by michael spivak. \, was already in the amstex \aligned definition, and the adaptation to amsmath didn't remove it.

i'm trying to unearth the (somewhat sparse) amstex documentation to determine if it's explained anywhere. (this is akin to an archaeological dig.)

update: the string \null\, is endemic throughout definitions for anything in amstex that is matrix-like. from the (internal, undistributed) documentation:

\aligned@ is similar to \matrix, [...]

[Update (2019/10/25):
Before retiring from the AMS, I obtained permission to post the original amstex documentation on CTAN. This consists of two files, both located in https://ctan.org/tex-archive/macros/amstex/doc : amstex.txt and amsppt.txt.]

later on, some particular features are addressed:

\matrix is very much like \multilimits@, used before. However, now there are two \bgroups, corresponding to the {'s for \vcenter{ and \halign{; and \endmatrix contributes two \egroups. [...]

There are two other new features. First, we put \, around the \vcenter; this looks better, especially with delimiters. The second feature is the \null before the first \, This is because of the rule regarding numbered formulas on TB, p. 189---if a very wide \matrix is used in a formula with a \tag, we don't want TeX to assume that we put glue before the \matrix in order to control its positioning with respect to that tag!

so one must reach the conclusion that the \, is there on the assumption that aligned structures will often(?)/usually(?) be used within delimiters, as is usual with matrices.

it would have been reasonable to question this assumption during the migration to amsmath, but i can't find any evidence that this was done.

i'll put the matter onto the "research" list for the next overhaul of amsmath, but (as usual) can't make any promises.

3
  • 1
    I'm curious, did you find something in your dig that looks like an explanation? May 17, 2013 at 6:14
  • 1
    @HendrikVogt -- i did find some relevant comments, and have added them to the answer. not an ideally satisfying explanation, but at least a window into the thinking on which the ams-tex decision was based. May 17, 2013 at 15:11
  • 1
    Thanks a lot for the update! I guess this is the best answer I can hope for without asking Michael Spivak. Thanks in particular for answering the question I hadn't asked: what the \null is doing there. One thing I find very curious: for \matrix and \smallmatrix there's indeed a \, at the end, as the cited text ("around the \vcenter") suggests, but for \aligned it's not there (which Frank discusses at some length in his nice answer). May 18, 2013 at 6:59
38
+150

I went into my archives (had to use the paper versions as the development of AMS-LaTeX was prior to my electronic ones) and it very much looks as if this is a design decision that originates with amstex, i.e., with Mike Spivak.

When Rainer and I got tasked to produce a LaTeX compatible version of amsTeX for LaTeX (2e or rather back then for 2.09 plus NFSS) the goal was to provide the amstex typography and only translate it to LaTeX conventions and the extended font setup etc.

Initially, when I saw this question, I thought that we may have messed up and forgot to add the corresponding \, at the right side, but looking at the sources from 1990 this is the way amstex was designed in the first place. (doesn't mean this is correct for sure :-)

I also consulted the documented source of amstex (unfortunately only available to me in paper form --- does anybody still have this or know a source on the internet?) but that doesn't help here, as this level detail or rather the reason for this decision isn't documented.

When looking at this I think it is simply a bug --- in the code for 20+ years: originated in amstex and added into the amsmath version. It probably makes sense to put a bit more space around constructs like "aligned" or "gathered" but there is no reason whatsoever, that I can see, why this space should be only on the left.

So to answer your question: what would go wrong if it is not there: most certainly nothing whatsoever, except that all your "aligned" or "gathered" or whatever environments would be slightly tighter typeset on the left.

I can't really see any good reason for it being only on the left at all. Putting it on both side might make sense, in fact with typical italic fonts in math putting it just on the right side might make some sense as well, but on the left only, really looks wrong (so file a bug with the AMS :-)

3
  • Thanks a lot for looking into this and for confirming my feeling that this \, is somewhat odd. Mar 24, 2013 at 11:06
  • @mafp I think this is what it boils down to. It may have been on both sides at one time (in which case it would make some sense) and then got lost when the macros got split and restructured. But if so that must have been really early on, i.e., before 1990 as there is no hint or explanation in the documented sources from that time. May 17, 2013 at 17:24
  • @mafp re-reading my answer I see more than one typo. Feel free to correct in such cases ... will do so tomorrow but not now, thanks for pointing out May 17, 2013 at 21:37
15

With the release 2016/11/05 v2.16a of amsmath the extra space is not added by default.

It is just added if the environment is preceded by a negative space, so that existing documents with a correction \!\begin{aligned}.. continue to work correctly.

This behaviour may be controlled by three package options:

  • alignedleftspaceyes keep the old behaviour of adding this space.

  • alignedleftspaceno disable adding the space.

  • alignedleftspaceyesifneg the new default behaviour, do not add the space unless the environment is preceded by a negative skip or kern, so that \!\begin{aligned} works as before.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .