fontspec、lua、microtype:Renderer=Basic 不再适用于特定字体样式

fontspec、lua、microtype:Renderer=Basic 不再适用于特定字体样式

您可能已经注意到,到目前为止,* 字母间距小写字母并不像在 pdfTeX 中那么容易,在 pdfTeX 中我们可以简单地\textsc与微类型相结合\textls。考虑这个例子,它应该给你非字母间距的小写字母;字母间距 u&lc; 和字母间距 u&lc 再次:

(例 1)

\documentclass{article}
\usepackage{fontspec,microtype}

\listfiles
\setmainfont[
%Renderer=Basic
]{Minion Pro}

\begin{document}
\textsc{Lorem Ipsum}\par
\textls{Lorem Ipsum}\par
\textls{\textsc{Lorem Ipsum}}\par
\end{document}

解决此问题的方法是设置Renderer=Basic.** 如果您取消注释我示例中的相应行,您会发现小写字母的字母间距正确。但是,将渲染器全局设置为基本模式可能会在其他地方引起问题,因为它似乎禁用了一些 OpenType 功能(整个渲染器似乎没有在 fontspec 文档中很好地记录下来,但如果您感兴趣,我可以详细说明)。在早期版本的 fontspec 中,我所做的是这样的:

(例 2)

\documentclass{article}
\usepackage{fontspec,microtype}
\setmainfont[SmallCapsFeatures={Renderer=Basic}]{Minion Pro}
\begin{document}
\textsc{Lorem Ipsum}\par
\textls{Lorem Ipsum}\par
\textls{\textsc{Lorem Ipsum}}\par
\end{document}

...这将使渲染器仅针对小写字母设置为基本模式,而其他所有模式都设置为完整模式——我对这个解决方法非常满意。不幸的是,在较新版本的 fontspec 中,这变得不可能了。我们仍然可以使用渲染器键(如示例 1 所示),但不能将其用作特定字体样式的选项:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! LaTeX error: "keys/key-unknown"
! The key 'fontspec/Renderer' is unknown and is being ignored.
! See the LaTeX3 documentation for further information.
! For immediate help type H <return>.
!...............................................

基本上,我想知道的是,是否有其他方法可以仅为小型大写字母选择基本模式,或者你们建议什么其他方法让小型大写字母和微字体的字母间距再次协同工作 - 除了重新定义小型大写字母命令以包含Renderer=Basic,这对我来说似乎不太优雅:

\textls{\textsc{\addfontfeatures{Renderer=Basic}Lorem Ipsum}}

* 这是 LuaTeX,版本 beta-0.70.1-2011082320 (rev 4277)
fontspec.sty 2011/09/13 v2.2 XeLaTeX/LuaLaTeX 的高级字体选择
luaotfload.sty 2011/04/21 v1.25 OpenType 布局系统
microtype.sty 2011/08/18 v2.5 微印刷细化 (RS)
** 感谢 Hans 和 Ulrike 对此的提及,http://archive.contextgarden.net/message/20110615.105120.bf868745.en.html

答案1

我真的要为这个答案拖延了这么久而道歉。正如你所发现的,这是在重新实施大量软件包时无意中做出的更改。

我今天花了一些时间研究如何解决这个问题;我不太确定最好的选择是什么,所以我将包恢复到了旧的行为(但请注意,不是旧代码)。我对此表示怀疑,因为我不确定选择使用不同渲染器的系列中的面是否明智,但在这种情况下可能不会有什么坏处。

这将在 fontspec v2.3 中修复。

答案2

Rnderer=Basic可以将其影响限制在您想要使用的特定位置\textls(例如标题),通过插入渲染并\addfontfeatures在两个命令和目标文本周围添加分组括号。

相关内容