在大多数字体中,阿拉伯数字的宽度不成比例,这意味着 1 和 8 的宽度完全相同,即使前者的自然宽度较小。这对于排版表格很有用,但在连续文本中,这会分散注意力:
\documentclass{article}
\pagestyle{empty}
\begin{document}
Look at this figure:
1,123,456 cars.
How to remove the extra space between the first two 1?
\end{document}
我觉得前两个“一”之间的间距有点太大。排版师对这个问题有什么看法?如何在连续文本中启用数字字距调整(或仅使用其自然宽度)?
答案1
OpenType 是其众多标准字体功能“表格数字”选项tnum
(每个数字的宽度相同,适用于表格)对阵 pnum
对于“比例数字”(数字可能有不同的宽度,正如您所要求的)。
lnum
请注意,这与“衬线图形”的选择不同且正交。对阵 onum
“旧式人物”。
如果您使用的字体支持这些功能,则支持 OpenType 的 TeX 引擎 LuaTeX 和 XɘTeX 可以访问这些字形。使用 LuaLaTeX 或 XeLaTeX 尝试此示例:
\documentclass[12pt]{article}
\usepackage{fontspec}
\begin{document}
\fontspec{Linux Libertine O}
{\addfontfeatures{Numbers={Lining,Monospaced}} 0123456789}
{\addfontfeatures{Numbers={Lining,Proportional}} 0123456789}
{\addfontfeatures{Numbers={OldStyle,Monospaced}} 0123456789}
{\addfontfeatures{Numbers={OldStyle,Proportional}} 0123456789}
\end{document}
fontspec
(的默认字体 Latin Modern Roman中的替代数字很丑陋;请避免使用它们。)