使用 LaTeX 进行英文排版时哪种方式才是正确的?
\documentclass{article}
\begin{document}
$f(x,y)= \ldots$
$f(x,\ y) = \ldots$
$f(x,\,y) = \ldots$
The coordinates $(x,y,z,t)$ \ldots
The coordinates $(x,\ y,\ z,\ t)$ \ldots
The coordinates $(x,\,y,\,z,\,t)$ \ldots
The coordinates $(x^0,x^1,x^2,x^3)$ \ldots $\leftarrow$ seems bad.
The coordinates $(x^0,\ x^1,\ x^2,\ x^3)$ \ldots
The coordinates $(x^0,\,x^1,\,x^2,\,x^3)$ \ldots
\end{document}
我在倒数第二行写下“看起来很糟糕”,因为我觉得逗号前后的空格相同。
有没有一个包可以自动化这个操作?例如,一个包提供了一个命令,\mycoord
我们可以使用它,\mycoord{x,y,z,t}
并在输出的逗号之间添加正确的空格?
我知道这个问题:排版坐标但是答案并不清楚坐标之间的间距,而且,我不想用 LaTeX 3 来回答,除非它在一个不是那么新的包中(为了与我无法控制的有点旧的系统兼容)。
编辑:在变量带有指数的情况下,在逗号前添加与负空格的比较。
\documentclass{article}
\begin{document}
1) The coordinates $(x,y,z,t)$ \ldots
2) The coordinates $(x^0,x^1,x^2,x^3)$ \ldots
3) The coordinates $(x^0\!,x^1\!,x^2\!,x^3)$ \ldots
\end{document}
第三个看起来比第二个好吗?
第二次编辑:
我如何看待间距(可能错了...,但第三个似乎比第二个好一点,但也许负空间有点太大):
答案1
该软件包semantex
(免责声明:我是作者)可以以可定制的方式执行许多类似操作。不幸的是,这是一个相对较新的软件包,但我相信它也适用于旧版本的 LaTeX3,尽管我还没有检查过这一点。
\documentclass{article}
\usepackage{amsmath,semantex}
\NewVariableClass\MyVar
\NewObject\MyVar\mycoord[
left par=(,
right par=),
set arg sep={,},
set arg dots=\dotsc,
]
\begin{document}
$ \mycoord{x^0, x^1, ... , x^p} $
\SetupObject\mycoord{
% Let’s change the settings:
set arg sep={,\,},
}
$ \mycoord{x^0, x^1, ... , x^p} $
\end{document}
否则,为了获得更便携的解决方案,您可以尝试编辑egreg 的这个答案。正如他在评论中指出的那样,逗号可以很容易地被其他任何符号替换。我相信这应该可以完美地与更早版本的 LaTeX3 配合使用。