如果我在 XeLaTeX 中使用 Libertine 字体,我可以通过将其作为选项包含在设置主字体时来指定使用比例数字/图形,如下所示:
\setmainfont[Numbers={Lining,Proportional}]{Linux Libertine O}
但是,我也对使用 pdfLaTeX 时能够使用比例数字感兴趣。下面是一个 MWE,它展示了一种实现此目的的方法。但我的“解决方案”看起来非常丑陋。有没有更好的方法来实现这一点?
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\begin{document}
% this seems necessary to get proportional numbers in Libertine
% when using pdflatex. Comment / uncomment to see the difference
\usefont{T1}{fxlf}{m}{n}\selectfont
I would like the following numbers to be proportional so that 11,
doesn't take up as much space as 17. See what I mean?
\end{document}
答案1
这是针对 2014/11/25 当前版本的答案libertine
,因为 lockstep 的答案不再适用于当前版本(可能是由于自 2011 年以来维护者和概念的变化)。
一般来说,Linux Libertine 的数字是任何一个比例(不同宽度)或者表格(宽度相同),并且要么老式(不同高度)或者衬里(相同高度):
默认情况下,如果您不进行任何更改,则libertine
使用表格衬里数字。
您可以通过三种不同的方式指定数字的样式,它们具有不同的范围。
套餐选择——全球效应
oldstyle
(或osf
)表示旧式数字lining
(或nf
或lf
)用于绘制数字proportional
(或p
)用于宽度不等的数字tabular
(或t
)表示固定宽度的数字
这些适用于整个文档。当然,只有指定 或 和 或 才有oldstyle
意义lining
。proportional
例如tabular
:
\usepackage[oldstyle, proportional]{libertine}
\fontfamily{…}
– 局部效应
文档中没有描述这种方式libertine
。
- 比例旧式数字:
\fontfamily{LinuxLibertineT-OsF}\selectfont 123
- 比例衬线数字:
\fontfamily{LinuxLibertineT-LF}\selectfont 123
- 表格旧式数字:
\fontfamily{LinuxLibertineT-TOsF}\selectfont 123
- 表格内衬数字:
\fontfamily{LinuxLibertineT-TLF}\selectfont 123
这些命令位于文档正文中,而不是前言中,它们会从放置它们的位置开始更改字体。有关如何使用这些命令的更多详细信息,请查看LaTeX 答案如何在文档中的一小部分文本中使用特定字体?。 例子:
123 tabular lining figures (default) up to here
\fontfamily{LinuxLibertineT-LF}\selectfont
123 proportional lining figures from now on
宏观 – 小规模、选择性效应
\oldstylenums{123}
\liningnums{123}
\proportionalnums{123}
\tabularnums{123}
这些宏仅改变参数中数字的样式。例如:
123 tabular lining figures (default), but then \oldstylenums{123
(still tabular) oldstyle figures} and back to 123 tabular lining
figures
答案2
正如 Mico 所评论的那样,“为了实现这种效果,在包的加载时似乎没有现成的选项。”但是,如果您想将规范放在序言中,则可以使用\AtBeginDocument{\usefont{T1}{fxlf}{m}{n}\selectfont}
。另一种可能性是重新定义libertine
内部命令:
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\makeatletter
\def\libertine@param{fxlf}% comment / uncomment to see the difference
\def\biolinum@param{fxbf}
\makeatother
\begin{document}
I would like the following numbers to be proportional so that 11,
doesn't take up as much space as 17. See what I mean?
\end{document}