![全局启用 libertine 包的字体功能](https://linux22.com/image/284126/%E5%85%A8%E5%B1%80%E5%90%AF%E7%94%A8%20libertine%20%E5%8C%85%E7%9A%84%E5%AD%97%E4%BD%93%E5%8A%9F%E8%83%BD.png)
该libertine
软件包适用于 PDFLaTeX 和 XeLaTeX;对于后者,它会自动加载并用于fontspec
OpenType 字体加载。此外,使用 XeLaTeX,可以加载一种名为 Variant 01 的字体功能,该功能将 ÖÜ 字符更改为匈牙利语中使用的样式(重音更接近)。但是,我无法将此功能设为全局功能:
\documentclass{book}
\usepackage{fontspec}
\defaultfontfeatures{Variant=01}
\usepackage{libertine}
\begin{document}
\addfontfeature{Variant=01}
\section{Ö}
\Large\textbf{Ö}
\end{document}
有没有办法在整个文档中使用变体 01,同时保留便利性\usepackage{libertine}
?
答案1
我认为这是不可能的,因为主字体的定义方式是:
\setmainfont
[ Numbers = {\libertine@figurealign,\libertine@figurestyle},
UprightFont = *_R,
ItalicFont = *_RI,
BoldFont = *_\libertine@boldstyle,
BoldItalicFont = *_\libertine@boldstyle I,
] {\libertine@base}
此代码前面是
\defaultfontfeatures{
Ligatures = TeX ,
Extension = .otf ,
SmallCapsFeatures={Letters=SmallCaps}
}
所以没有Variant
提供。
我做了一些修改libertine.sty
,添加
\DeclareOptionX{defaultfeatures}{\def\libertine@defaultfeatures{#1}}
\def\libertine@defaultfeatures{}
在选项声明部分,然后将上述代码修改为
\defaultfontfeatures{
Ligatures = TeX ,
Extension = .otf ,
SmallCapsFeatures={Letters=SmallCaps} ,
\libertine@defaultfeatures
}
现在我测试了
\documentclass{book}
\usepackage[defaultfeatures={Variant=01}]{libertine}
\begin{document}
\section{Ö}
\Large\textbf{Ö}
\end{document}
结果如下:
这应该是对 维护者的功能请求libertine
。
更新:在 2014/02/11 版本中libertine.sty
,建议的新增内容已经实施。