fontspec 找不到小型大写字母,尽管它们似乎存在

fontspec 找不到小型大写字母,尽管它们似乎存在

我正在使用fontspecmacOS 附带的 Baskerville 字体(使用 XeLaTeX 编译,MacTeX 版本 2020 已完全更新),它是 中的 truetype 集合/Library/Fonts/Baskerville.ttc。除了小型大写字母外,一切似乎都运行良好,即使我在 Font Book 中检查字体,我也可以看到它有小型大写字母的字形。

[根据 Marcel Krüger 的评论进行了编辑]

从日志来看fontspec不是意识到他们:

Package fontspec Info: Font family 'Baskerville(0)' created for font
(fontspec)             'Baskerville' with options [Ligatures=TeX].
(fontspec)              
(fontspec)              This font family consists of the following NFSS
(fontspec)             series/shapes:
(fontspec)              
(fontspec)             - 'normal' (m/n) with NFSS spec.:
(fontspec)             <->"Baskerville/AAT:mapping=tex-text;"
(fontspec)             - 'small caps'  (m/sc) with NFSS spec.: 
(fontspec)             - 'bold' (b/n) with NFSS spec.:
(fontspec)             <->"Baskerville/B/AAT:mapping=tex-text;"
(fontspec)             - 'bold small caps'  (b/sc) with NFSS spec.: 
(fontspec)             - 'italic' (m/it) with NFSS spec.:
(fontspec)             <->"Baskerville/I/AAT:mapping=tex-text;"
(fontspec)             - 'italic small caps'  (m/scit) with NFSS spec.: 
(fontspec)             - 'bold italic' (b/it) with NFSS spec.:
(fontspec)             <->"Baskerville/BI/AAT:mapping=tex-text;"
(fontspec)             - 'bold italic small caps'  (b/scit) with NFSS spec.: 

稍后我在日志文件中收到以下警告:

LaTeX Font Warning: Font shape `TU/Baskerville(0)/m/sc' undefined
(Font)              using `TU/Baskerville(0)/m/n' instead on input line 68.

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

以下是 MWE:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Baskerville}

\begin{document}

\textsc{Lorem ipsum dolor sit amet,} consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

\end{document}

有什么建议么?

答案1

我在我的旧 iMac 上查看了这一点,发现这种字体(在我的 High Sierra 机器上是 Monotype Baskerville v13.0)的小型大写字母编码有问题。它们在 AZ 和 Deseret 字母表中可用(但不适用于组合标记或标点符号)。但我甚至在 InDesign 中也无法访问它们。实际上,InDesign 确实显示小型大写字母,但它们似乎是伪造的,即缩放的大写字母,其粗细不对(太细)。当我使用字体编辑器检查字体时,它在选项卡中什么也不显示features

作为测试,我.ttf使用字体编辑器 Glyphs2 打开了,将小型大写字母从 重命名.small.sc,更新了smcp功能,将字体重命名为“BaskervilleSC”并导出为.otf。我.otf在系统上安装了生成的文件,在用它编译测试文件时,xelatex生成了正确的小型大写字母:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{BaskervilleSC}

\begin{document}

Barry

\textsc{Barry}

\end{document}

在此处输入图片描述

因此,为了解决你的问题,你可以

  • 尝试找到没有此问题的较新/不同版本的 Baskerville,或者
  • 尝试按照我描述的方式修改手头的字体(我不确定许可证是否允许这样做)。

相关内容