如何使用 xelatex 制作 TeX Gyre Pagella 小型大写字母?

如何使用 xelatex 制作 TeX Gyre Pagella 小型大写字母?

这是我的输入文件:

\documentclass{article}
\usepackage{fontspec} 
\setmainfont[Mapping=tex-text]{TeXGyrePagella}

\begin{document}
abcde ABCDE

{\scshape abcde ABCDE}

\textsc{abcde ABCDE}
\end{document}

这是 xelatex 的渲染:

据我从文档中理解,两个小写字母命令应该可以工作,因为otfinfo它们显示为 TeX Gyre Pagella 字体的一个特性:

$ otfinfo -f /usr/share/texmf/fonts/opentype/public/tex-gyre/texgyrepagella-regular.otf
...
smcp    Small Capitals
...

系统详情:Ubuntu 11.04,texlive-xetex 版本是2009-11。

以下是 的输出fc-cache | grep Pagella。它似乎表明该字符串TeXGyrePagella是正确的:

$ fc-list | grep Pagella
TeXGyrePagella:style=BoldItalic
TeXGyrePagella:style=Regular
TeXGyrePagella:style=Bold
TeXGyrePagella:style=Italic

如果我将\setmainfont命令更改为:\fontspec[Mapping=tex-text,Path=/usr/share/texmf/fonts/opentype/public/tex-gyre/]{texgyrepagella-regular.otf},我会收到此错误输出:

kpathsea: Running mktextfm texgyrepagella-regular
/usr/share/texmf/web2c/mktexnam: Could not map source abbreviation  for texgyrepagella-regular.
/usr/share/texmf/web2c/mktexnam: Need to update ?
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input texgyrepagella-regular
This is METAFONT, Version 2.718281 (TeX Live 2009/Debian)


kpathsea: Running mktexmf texgyrepagella-regular
! I can't find file `texgyrepagella-regular'.
<*> ...; nonstopmode; input texgyrepagella-regular

Please type another input file name
! Emergency stop.
<*> ...; nonstopmode; input texgyrepagella-regular

Transcript written on mfput.log.
grep: texgyrepagella-regular.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input texgyrepagella-regular' failed to make texgyrepagella-regular.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font \zf@basefont=texgyrepagella-regular.otf at 10.0pt not loadable: Metric (
TFM) file or installed font not found.
\zf@fontspec ...ntname \zf@suffix " at \f@size pt 
                                              \unless \ifzf@icu \zf@set@...
l.3 ...blic/tex-gyre/]{texgyrepagella-regular.otf}

该文件/usr/share/texmf/fonts/opentype/public/tex-gyre/texgyrepagella-regular.otf肯定存在于我的系统中。

答案1

使用时

\setmainfont[Mapping=tex-text]{TeX Gyre Pagella}

使用 OTF 字体系列名称中的空格我得到:

在此处输入图片描述

寻找姓氏:

voss@shania:~> fc-list | grep Pagella
TeX Gyre Pagella:style=Italic
TeX Gyre Pagella:style=Bold Italic
TeX Gyre Pagella:style=Regular
TeX Gyre Pagella:style=Bold
voss@shania:~> 

我的字体规格版本:

*File List*
fontspec.sty 2011/02/26 v2.1f Advanced font selection for XeLaTeX/LuaLaTeX
fontspec-patches.sty 2011/02/26 v2.1f Advanced font selection for XeLaTeX/Lu
aLaTeX
xunicode.sty 2010/11/06 v0.96 provides access to latin accents and many othe
r characters in Unicode lower plane
fontspec.cfg

答案2

该字体的 OTF 名称是“TeX Gyre Pagella”。PostScript 名称是“TeXGyrePagella”。如果您只看到 PostScript 名称,则意味着 xelatex 找不到 OTF 文件。正如其他示例所讨论的那样,这是打包(TeX Live 或 Debian)的一个错误。一些 PostScript 字体安装在系统文件夹中,但小写字母没有。解决方法是将 .otf 文件(您找到的)复制到“~/.fonts/”中。

相关内容