![arkandis 字体的 odf 文件缺少 tex 定义中的功能](https://linux22.com/image/403187/arkandis%20%E5%AD%97%E4%BD%93%E7%9A%84%20odf%20%E6%96%87%E4%BB%B6%E7%BC%BA%E5%B0%91%20tex%20%E5%AE%9A%E4%B9%89%E4%B8%AD%E7%9A%84%E5%8A%9F%E8%83%BD.png)
这Arkandis 数字铸造厂在开放许可下发布多种综合字体系列,显然具有很高的艺术价值。
通过外部包对 LaTeX 的支持已提交至 CTAN。
例如,venturisadf
软件包集成了文丘里管字体系列。
来自 文档对于 CTAN 包:
…压缩和标准宽度的 Venturis 常规和粗体提供了旧式和衬线数字、直立和斜体小写字母和替代花饰字符的选择,而常规直立字体还提供单词结尾花饰。所有这些功能都可以通过包含的包文件在 LaTeX 中访问……
同一文档展示了这些特征的示例,包括小写字母。
CTAN 索引显然错误地表明该包包含字体的 OTF 表示。
然而,更大的差异在于,可供一般使用的 OTF 表示直接从铸造厂smcp
通过检查发现,似乎不包含该功能otfinfo -f
。事实上,当通过包在 XeLaTeX 中使用这些文件时fontspec
,使用 格式化的块中不会显示小写字母\scshape
,并且引擎会警告命令的出现。
铸造厂网站上的一条注释部分但不充分地解决了这一差异,该注释似乎表明大多数收藏品目前缺少小写字母字形。
如果在 LaTeX 包中看到小写字母字形,则字体集合必须包含它们,并且理想情况下使用 OTF 的通用应用程序(包括 XeLaTeX)都可以使用它们。
TeX 字体定义的小写字母字形来自哪里?这些字形是否也可以用于 OTF 文件?如果不能,为什么?
答案1
我编写的 LaTeX 支持包包含小型大写字母,当且仅当在创建包时字体中支持小型大写字母时。
文丘里这是一个复杂的案例,因为有些字形是从不同的字体中取出的,大致符合字体设计者所陈述的意图。本质上,LaTeX 软件包提供了三组字体系列。这些字体系列并不完全符合原始设计者的意图,但我尽了最大努力尽可能接近这些意图。
一般来说,“标题”字体包含小型大写字母,旨在补充非小型大写字母字体。为了使所有这些在 LaTeX 中无缝工作,该包定义了一组系列,从适当的底层字体中绘制字形和度量。然后将它们分组为三组,对应于.sty
包中包含的三个文件。有些有小型大写字母(其中有小型大写字母旨在与基本字体一起使用),有些没有(其中没有)。
为了使其与 (pdf)LaTeX 一起工作,需要做的就是:
- 字形
- 指标
- 了解字体设计师的意图。
其余工作由支持文件完成。
这与 OTF 字体是否支持特定功能完全不同。基本上,fontspec
可以使用各种 opentype 功能如果字体设计者是否正确设置了 opentype 或 truetype 字体。如果没有,那你就倒霉了(除非你特别努力)。
传统字体支持包可以事半功倍。我不需要正确配置字体表或功能来提供支持字尾花饰或斜体小写字母等的包。我只需要字形和度量。字尾花饰是否与常规字符的字体不同也无关紧要。这意味着,字体的功能更多地取决于使用字体的软件,而不是字体设计者,或者在 LaTeX 的情况下,取决于支持包的作者。
因此,从某种意义上说,它fontspec
为您提供了更大的灵活性。但是,从另一个角度看,它更加严格。如果字体中提供了所有内容,那就太好了。不需要软件包作者。如果没有,那就太难了。例如,如果您有单独的小型大写字母的 opentype 字体,您可以使用它fontspec
来指定要用于小型大写字母的字体。否则,就没什么可做的了。
在 的情况下venturisadf
,您可以将字体与“标题”系列进行匹配,并将它们指定为小型大写字体。要了解 LaTeX 包是如何完成的,请查看源文件。rename.*
向您展示了到 Berry 字体名称的映射。*.etx
、*-drv.tex
和*.mtx
文件向您展示了如何对原始字体中的字符进行编码和组合以创建*.fd
LaTeX 使用的文件中指定的字体系列。但请注意,这里进行了大量组合 - LaTeX 使用的最终字体是从多种 type1 postscript 字体中获取字形和指标的。例如,'t' 可能在一种字体中,而花饰'w' 在另一种字体中,但您仍然可以twin
在 LaTeX 中使用花饰书写并使其正常工作,因为 LaTeX 使用“虚拟字体”,其中根本不包含任何字形。这不是工作原理fontspec
。