现在,在使用 XeTeX 的 fontspec 包时,我遇到了一些字体大小声明问题。我阅读了 fontspec 手册。其中没有关于字体大小的明确部分,但我看到手册的作者使用 \fontsize{48}{48} 命令来声明字体大小。它也适用于我,例如:
\fontsize{60}{66}
\fontspec{Garamond Premier Pro}
Some text with font size 60 pt.\\
或者如果 Garamond 是默认的,我可以使用:
\fontsize{60}{66}\selectfont
Some text with font size 60 pt.\\
这很好,但是如果我想使用一些特殊的字形,例如大字体大小的花形,pdf 中就会出现一些丑陋的方框而不是字符:
\fontsize{60}{66}\selectfont
Some text, and a fleuron: \symbol{\string"E1C0} or simply: \char"E1C0\\
我试验过,限制在 14 pt 和 15 pt 之间:14 pt 大小时,会出现花饰,15 pt 大小及以上时,会出现方框。这种现象的原因是什么?我如何才能将这些特殊字形缩放到大于 14 pt?
答案1
我认为问题在于“Garamond Premier Pro”系列选择了不同大小的字体(例如,大尺寸的“显示”)并且符号仅为“文本”大小。
一个解决方法是为花饰定义一个字体:
\newfontface{\fleurons}[Path=/path/to/the/font/]{GaramondPremierPro-Regular.otf}
替换为/path/to/the/font/
实际路径(这个可选参数可能是不必要的,具体取决于字体所在的位置),并在强制参数中使用实际文件名(它可能与我编造的名称不同)。然后
\fontsize{60}{72}\fleurons\symbol{\string"E1C0}
应该使用“固定”字体。
抱歉,答案中有很多“自己动手”的内容,但我碰巧没有 Garamond Premier Pro。
测试文件
我已经设法访问了“Minion Pro”字体,确实字体规格为不同的尺寸定义不同的字体。您可以通过编译以下测试文件来查看我的诊断是否正确:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Garamond Premier Pro}
\begin{document}
\fontname\font
\fontsize{60}{72}\selectfont
\fontname\font
\end{document}
PDF 文件应该显示所用字体的名称,并且它们应该有所不同。
答案2
如果您有另一种主字体并且我无法通过 fontforge 看到该位置有花形符号。
\documentclass{article}
\usepackage{fontspec}
\newfontface\Fleurons{Garamond Premier Pro}
\newcommand*\fleurons[1][{60}{66}]{{\Fleurons%
\fontsize#1\selectfont\symbol{\string"E1C0}}}
\begin{document}
\fleurons
\fleurons[{80}{90}]
\end{document}
还有免费字体Fleurons.ttf
可用