一些 OpenType 字体在无法通过 Unicode 访问的插槽中提供了一些最有趣的字形(限制为 0x10FFFF)。例如:字体系列分别在插槽和中EB Garamond
提供了称为f.short
和的字形。(如果您好奇:这些字形是字形和的变体——后者是连字——它们的“臂”较短,即,与“常规”字形和的臂相比,臂向右突出的程度要小得多。)f_f.short
0x110367
0x110360
f
ff
f
ff
附言:我通过在 FontForge 中打开 otf 文件0x110367
获得了插槽号。0x110360
如果我尝试f.short
通过\symbol{"110367}
或进行访问\symbol{1114983}
,我会收到以下错误消息:
! Bad character code (1114983)
除了游说字体设计师停止在超出 Unicode 范围的位置放置诸如f.short
和之类的字形ff.short
之外,如何访问这些字形呢?
以防万一不清楚:我对基于 LuaLaTeX 的解决方案感兴趣。如果解决方案与软件包兼容fontspec
,那就更好了。
完整的 MWE(使用 LuaLaTeX 进行编译):
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\begin{document}
\symbol{"110367} % "f.short"
\end{document}
答案1
我无法重现您的问题。EB Garamond 12 Regular 中的最后一个字符位于插槽 中0xF0477
,而f.short
和分别f_f.short
位于插槽0xF0367
和中0xF0360
。确实,
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\begin{document}
f \symbol{"F0367} ff \symbol{"F0360}
\end{document}
生产
以下为相关摘录ebgaramond12-regular.lua
:
[983904]={
["boundingbox"]=449,
["index"]=2822,
["name"]="f_f.short",
["unicode"]={ 102, 102 },
["width"]=579,
},
[983911]={
["boundingbox"]={ 24, -3, 332, 706 },
["index"]=2829,
["name"]="f.short",
["unicode"]=102,
["width"]=317,
},
["f.short"]=983911,
["f_f.short"]=983904,
使用 XeLaTeX 编译的相同输入不会显示“短”字形。可以通过按名称寻址来使用 XeLaTeX 获取字形:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\begin{document}
f \XeTeXglyph\XeTeXglyphindex"f.short"\ %
ff \XeTeXglyph\XeTeXglyphindex"f_f.short"
\end{document}