在许多字体中,数字1
左侧有大量空白。在 512 这样的数字中,这也许是可取的,但当 出现1
在单词开头时,在我看来是错误的,如下例所示。有没有办法让 LaTeX 自动检测 何时1
出现在单词开头并删除不需要的填充?
\documentclass[12pt]{article}
\begin{document}
\noindent
The article appears in vol.\ 16 of the encyclopedia. \\
The article appears in vol.\ sixteen of the encyclopedia.
\end{document}
答案1
问题是数字通常设置为相同宽度,因此表格中的对齐方式看起来更好。但是,数字1
相当细,因此它具有较大的侧边距:
\documentclass[12pt]{article}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{.1pt}
\begin{document}
\Huge
\fbox{1}\\
\fbox{2}
\end{document}
对于 来说, 的左边界和字符的起始位置(左侧边界)之间的距离比1
对于 数字 的左边界和字符的起始位置之间的距离要大得多2
。
找到合适的字体是比较棘手的部分。以下示例使用 LuaLaTeX 来使用 Latin Modern 作为 OpenType 字体,其中比例数字可用作字体功能。
\documentclass[12pt]{article}
\usepackage{fontspec}
\begin{document}
\begingroup
\noindent
The article appears in vol.\ 16 of the encyclopedia. \\
\fontspec[Numbers=Proportional]{Latin Modern Roman}%
The article appears in vol.\ 16 of the encyclopedia.\\
The article appears in vol.\ sixteen of the encyclopedia.
\endgroup
\begingroup
\setlength{\fboxsep}{0pt}
\setlength{\fboxrule}{.1pt}
\Huge
\noindent
\fbox{1}\\
\fontspec[Numbers=Proportional]{Latin Modern Roman}%
\fbox{1}\\
\fbox{2}
\endgroup
\end{document}
答案2
如果您愿意插入某种“钩子”,那么您当然可以知道句点后面是否跟着数字 1:
\documentclass[12pt]{article}
\makeatletter
\def~{\nobreakspace\@ifnextchar1{\kern-.2em}{}}
\makeatother
\begin{document}
\noindent
The article appears in vol.~16 of the encyclopedia. \\
The article appears in vol.~26 of the encyclopedia. \\
The article appears in vol.~sixteen of the encyclopedia.
\end{document}
使用连字符可以让vol.
和 后面的数字连在一起,这是件好事。例如,用 来结束一行vol.
会让读者认为句子结束得太早了,从而导致句子不够流畅。