使用 XeLaTex 和 OpenType 字体 Goudy Bookletter 1911,命令\ldots{}
生成 ❏(无阴影)。
我的问题是:为什么 XeLaTeX 没有自动找到替代品?
我猜想这个方块是用来替换字体中不存在的字符的。fontmatrix
我可以验证该字符U+2026
(省略号)不存在。
以下是测试用例:
\documentclass{article}
\usepackage{fontspec}
\usepackage{xunicode}
\setromanfont{Goudy Bookletter 1911}
\begin{document}
Trois petits points \ldots{}
\end{document}
现在(结语问题),我修改测试用例以使用该包babel
。
在第一行之后插入此行:
\usepackage[french]{babel}
并且三个点正确显示。希望这是预期的行为。但是,为什么会有这种差异呢?
答案1
不同之处在于(在最新的 TeX 发行版中,xunicode
它由包加载,因此不需要明确加载)定义为fontspec
\ldots
\char"2026
在文本模式下,而french
模块将babel
其定义为
\FBtextellipsis
它“手动”设置三个点,而不是依赖于特定的字形。
您可以通过以下方式解决缺少字符的问题
\renewcommand{\textellipsis}{.\kern\fontdimen3\font.\kern\fontdimen3\font.\@}
在文档序言中(这就是它的french
作用)。然后
Three little dots~\ldots
会给予所要的东西。