访问 fontspec 中字母的替代表示

访问 fontspec 中字母的替代表示

最近,我一直在尝试WatersTitlingPro-Rg通过LuaLaTeX和访问字体中的特定字母fontspec。Waters Titling Pro 字体是小写字母专用字体。具体来说,我正在寻找一个带有斜线的 R。LuaLaTeX使用我目前掌握的答案,我似乎无法在 中访问此字符。关于这个主题,有两个问题及其答案值得注意:

  1. 如何访问 LuaLaTeX/Fontspec 中的特定字形?
  2. 在 LuaTeX 中访问特定字符

Adobe InDesign 显示该字体依然活跃:

http://i.imgur.com/zNDcA0N.png?1

我似乎无法使用此特定字体的 OpenType 功能。例如,使用 Zapfino Extra LT Pro,我可以使用按键Variant=<number>轻松浏览特定字母的每个变体:

http://i.imgur.com/tu5anYC.png?1

\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage[dutch]{babel}
\usepackage{fontspec}
\pagenumbering{gobble}

\newcommand{\va}[1]{\fontspec[Variant=2]{Zapfino Extra LT Pro}#1}
\newcommand{\vb}[1]{\fontspec[Variant=3]{Zapfino Extra LT Pro}#1}
\newcommand{\vc}[1]{\fontspec[Variant=4]{Zapfino Extra LT Pro}#1}
\newcommand{\vd}[1]{\fontspec[Variant=5]{Zapfino Extra LT Pro}#1}
\newcommand{\ve}[1]{\fontspec[Variant=6]{Zapfino Extra LT Pro}#1}
\newcommand{\vf}[1]{\fontspec[Variant=7]{Zapfino Extra LT Pro}#1}
\newcommand{\vg}[1]{\fontspec[Variant=8]{Zapfino Extra LT Pro}#1}

\begin{document}

\parbox[t]{.9\linewidth}{%
\lineskiplimit=-\maxdimen\relax\linespread{1.4}{%
   \fontspec[Ligatures={Common, Rare}]{Zapfino Extra LT Pro}\fontsize{25pt}{25pt}\selectfont 
   %
   {\vc I}{\vd k} heb {\vf g}ezoc{\vd h}t {\vb n}aar {\vg d}e\hskip7pt {\va A}la{\vf dd}in la{\va m}p op e{\vd b}ay en ik heb hem {\vg g}eloof ik oo{\vd k} {\vb g}evonden! {\va M}aar i{\va k} {\vc k}wam uit rond de 120 euro, vanwe{\vb g}e de verzend{\va k}osten en dergelijke. {\vb J}e hebt mijn toestemmin{\vd g} om {\vc z}o {\vc j}i{\vd j} wi{\vc l} mi{\va j}n com{\vc p}uter en e{\vc b}a{\vc y}-accoun{\va t} {\vf t}e gebrui{\vd k}en {\vc h}ier.\par
   %
   }}

  \end{document}

当然,这对 Waters Titling Pro 字体不起作用。我没有收到明确的错误,但对日志文件的调查显示,例如ss04字体中未定义字体:

luaotfload | aux : font no 26 (WatersTitlingPro-Rg) does not define feature ss04

我也无法Variant像对 Zapfino Extra LT Pro 那样使用不同的 s 来访问变体。

进一步看,与上面完全相同的文档的输出(除了使用 Waters 标题字体外)至少显示了连字符的一些用法:

http://i.imgur.com/K9ALfor.png?1

\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage[dutch]{babel}
\usepackage{fontspec}
\pagenumbering{gobble}

\newcommand{\va}[1]{\fontspec[Variant=2]{Waters Titling Pro}#1}
\newcommand{\vb}[1]{\fontspec[Variant=3]{Waters Titling Pro}#1}
\newcommand{\vc}[1]{\fontspec[Variant=4]{Waters Titling Pro}#1}
\newcommand{\vd}[1]{\fontspec[Variant=5]{Waters Titling Pro}#1}
\newcommand{\ve}[1]{\fontspec[Variant=6]{Waters Titling Pro}#1}
\newcommand{\vf}[1]{\fontspec[Variant=7]{Waters Titling Pro}#1}
\newcommand{\vg}[1]{\fontspec[Variant=8]{Waters Titling Pro}#1}

\begin{document}

\parbox[t]{.9\linewidth}{%
\lineskiplimit=-\maxdimen\relax\linespread{1.4}{%
   \fontspec[Ligatures=TeX]{Waters Titling Pro}\fontsize{25pt}{25pt}\selectfont 
   %
   {\vc I}{\vd k} heb {\vf g}ezoc{\vd h}t {\vb n}aar {\vg d}e\hskip7pt {\va A}la{\vf dd}in la{\va m}p op e{\vd b}ay en ik heb hem {\vg g}eloof ik oo{\vd k} {\vb g}evonden! {\va M}aa{\vc r} i{\va k} {\vc k}wam uit rond de 120 euro, vanwe{\vb g}e de verzend{\va k}osten en dergelijke. {\vb J}e hebt mijn toestemmin{\vd g} om {\vc z}o {\vc j}i{\vd j} wi{\vc l} mi{\va j}n com{\vc p}uter en e{\vc b}a{\vc y}-accoun{\va t} {\vf t}e gebrui{\vd k}en {\vc h}ier.\par
   %
   }}

  \end{document}

Ligatures=<argument>例如,调整密钥Ligatures=TeX可产生完全相同的输出。

或者,我可以使用例如密钥RawFeatureStylisticSet(如第 9.7 节所述http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/fontspec/fontspec.pdf),但这些都没有产生预期的结果。

检查 Adob​​e 页面,我发现以下内容:http://store1.adobe.com/type/browser/pdfs/OTGuide.pdf(查看第 13 页,了解字体特征)

这表明我应该添加一个RawFeature=+swsh键或类似的东西。这似乎也不起作用(事实上,它在 中没有效果LuaLaTeX)。

因此,我有点困惑,不知道该如何使用 访问 swashed R。fontspec我对主文档进行了太多的改动,以至于它甚至不再识别密钥了Variant:-/


附言:由于我正在考虑字体特定问题的可能性,我将在https://mega.co.nz/#F!aEQDmY5a!aIcgBHK-vNdVMCxWfOidGg只要问题仍然存在(因为从技术上讲我不允许分发它们)。

答案1

您可以通过将Alternate选项设置为0(零)来访问此字形:

\documentclass{article}
\usepackage{fontspec}
\setmainfont[Path = <path>, Alternate = 0]{WATERSTITLINGPRO-RG}
\begin{document}
R
\end{document}

<path>是我指定下载字体的文件夹的地方……)

在此处输入图片描述

我怎么知道的?嗯,FontForge告诉我字形的名称为R.alt1,并且字体的查找表说在激活该功能R后将被替换为。我只是猜测这意味着(手册中没有提到所有 OpenType 功能,因此有时您需要猜测)。选项设置为,因为下计数来自(参见第 30 页的手册)。如果您设置,那么将被替换为。R.alt1aaltAlternatefontspec0fontspecXeTeX0Alternate = 1RR.alt2

手册fontspec上说luaotfload从 开始计算1,因此如果您使用luatex,则可能需要进行设置Alternate = 1

相关内容