我尝试让 microtype 的跟踪工作但没有成功:最新的 TeXlive 2011(lualatex 0.70.1)和 microtype v2.5 beta 07。示例代码:
\documentclass{article}
\usepackage[no-math]{fontspec}
\usepackage[tracking,letterspace=500]{microtype}
\begin{document}\parindent0em
\fontspec[SmallCapsFont={Latin Modern Roman Caps}]{Latin Modern Roman}
\textsc{stealing sheep}
\fontspec{Linux Libertine O}
\textsc{stealing sheep}
\end{document}
Latin Modern 可以正常工作(带字母间距的小型大写字母),但 Libertine 不行(带字母间距的小写字母)。这两种字体之间的唯一区别是 Latin Modern 的小型大写字母位于单独的文件中。有什么想法可以让 Libertine 也正常工作吗?但是,以下方法不起作用:
\fontspec[SmallCapsFont={Linux Libertine O}]{Linux Libertine O}
也不会:
\fontspec[SmallCapsFont={Linux Libertine O},SmallCapsFeatures={Letters=SmallCaps}]{Linux Libertine O}
欢迎任何建议。
编辑:以下确实有效(有副作用,见下文):
\fontspec[Renderer=Basic]{Linux Libertine O}
第二次编辑:参见相关问题。
答案1
这是由于 luatex 中的一个错误(或者,更礼貌的说法是:不兼容)造成的。我刚刚报告了这个问题在 luatex 列表中。
编辑:...我得到了一个答案,确实说服我变得更有礼貌 - 这不是一个错误,而是微类型使用了遗留命令。
简单的解决方案是:加载字体Renderer=Basic
(副作用尚未发现)。
答案2
\documentclass{article}
\usepackage[no-math]{fontspec}
\fontspec[SmallCapsFont={LinLibertineCapitalsO},
SmallCapsFeatures={Letters=SmallCaps}]{Linux Libertine O}
\usepackage[tracking,letterspace=500]{microtype}
\begin{document}\parindent0em
stealing sheap
\textsc{Stealing Sheep}
\textls[800]{\scshape Stealing Sheep}
\end{document}