# Avoiding placing ,\, everywhere in mathmode

Whenever I write ", " (with a space after the comma) in mathmode, I really want a space there. usually, this is either something like

the points, $a, b$, and $c$....

or in an explicit vector:

Let the vector $x=(x_1, x_2, x_3)$ be...

Since TeX removes this space, my text is often riddled with explicit short spaces: $x_1,\,x_2,\,x_3)$.

Is there a way to tell TeX that this is not desirable or to hack TeX into submission?

This is kind of a non-answer, but here's what I'd do. For vectors, I'd always just use

Let the vector $x=(x_1,x_2,x_3)$ be ...


In math mode, TeX inserts a thin space after the , (\thinmuskip, as Lev points out in his answer), and I find that exactly right. In your other example, I'd write

the points $a$, $b$, and~$c$ ...


(with or without the , after $b$), and this is also what Knuth recommends in the TeXbook. (Note the tie after and!) This yields correct spacing; moreover, it allows a linebreak after $a$.

• Right. There is some space after a comma in math mode, even if it's not how much you wanted. Dec 31 '10 at 18:25
• Indeed, the point here is that the comma has textual rather than mathematical meaning, and so should not be in math mode. Dec 31 '10 at 18:45
• @Joseph: Is your comment addressed to me or to Ben? (I'm no sure what you mean by here.) Dec 31 '10 at 20:46
• @Hendrik. To Ben: sorry if that was not clear. Dec 31 '10 at 20:51
• @morbusg: I don't like it since it adds space before the comma in $a$, $b$. Jan 1 '11 at 9:26

You can change the size of the skip after commas, semicolons and \colons (\mathpunct) by changing \thinmuskip, eg. \thinmuskip=5mu, but thin spaces are used in many other places so this is not a great solution.

You could make the comma an active character in mathmode (see, eg, this answer), but this could maybe cause compatibility problems with some packages.

Personally I would do as Hendrik said, enter your first example as

the points $a$, $b$, and~$c$ ...


and not mess with TeX's spacing for the second example (your version with the explicit thin spaces looks too big to me, although I accept that my judgement on these things has been calibrated by working with TeX so much).

In LuaTeX you can control the spacing between objects for each pair of classes individually:

Let the vector $x=(x_1, x_2, x_3)$ be\par
\Umathpunctordspacing\textstyle=20mu
Let the vector $x=(x_1, x_2, x_3)$ be
\bye


It is not correct mathematical typesetting, but you can increase the spaces after commas with this code:

\documentclass{article}
\makeatletter
\def\Vec#1{\expandafter\Vec@i#1,,\@nil}
\def\Vec@i#1,#2,#3\@nil{%
$#1\ifx\relax#2\relax$\else,\mkern\thickmuskip\$%
\Vec@i#2,#3\@nil\fi}
\makeatother

\begin{document}

Let the vector \Vec{x=(x_1,x_2,x_3)} be...

and can simply be reverted
\let\Vec\ensuremath

Let the vector \Vec{x=(x_1,x_2,x_3)} be...

\end{document}

• I tried to make your answer clearer. Please revert my edit if it isn't OK. Jan 1 '11 at 9:01
• @Hendrik: thanks and happy new year :-)
– user2478
Jan 1 '11 at 9:22