我正在使用fontspec
macOS 附带的 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,或者
- 尝试按照我描述的方式修改手头的字体(我不确定许可证是否允许这样做)。