我在访问特定字体的希腊字母时遇到问题 - 例如字体 TeX Gyre Pagella。我使用程序检查了字体这个字体有希腊字母。但是当我尝试这样的操作时:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[LGR]{fontenc}
\usepackage[greek]{babel}
\usepackage{tgpagella}
\begin{document}
κφγ φγψ ψγκφ ααηχ
\end{document}
我得到了标准字体的希腊字母,并显示如下信息:
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
我当然知道我可以使用 LuaLaTeX,但我必须坚持使用,pdftex
因为该microtype
包的字距和间距功能,而且 LuaLaTeX 在我的旧机器上编译得太慢了。
答案1
TeX Gyre Pagella 不支持希腊语。opentype 字体和 type1 变体都是如此。字体确实包含希腊字形,但这些并不构成对希腊文本排版的支持。许多字体,尤其是那些设计用于支持数学的字体,包含一些希腊字符,即使它们不是为排版希腊文本而设计的。
以下是 TeX Gyre Pagella 的 opentype 常规字体支持的脚本:
DFLT Default
cyrl Cyrillic
latn Latin
latn.AZE Latin/Azeri
latn.CRT Latin/Crimean Tatar
latn.MOL Latin/Moldavian
latn.NLD Latin/Dutch
latn.PLK Latin/Polish
latn.ROM Latin/Romanian
latn.TRK Latin/Turkish
您可以使用 测试 opentype 字体是否支持otfinfo
。例如,上面的输出是使用
otfinfo -s fonts/opentype/public/tex-gyre/texgyrepagella-regular.otf
我不知道你使用的是哪个版本的 MinionPro,也不知道它是否支持希腊语,但仅仅包含一些希腊字符并不能确定它是否支持希腊语排版文本。
对于 type1 字体,您可以查找相关编码的字体定义文件。例如,tex/latex/gfsbodoni/
包括以下文件:
gfsbodoni.sty lgrbodoni.fd ot1bodoni.fd t1bodoni.fd ubodoninums.fd
第一个是你可能在文档中gfsbodoni.sty
调用的 LaTeX 包。其他的是\usepackage{gfsbodoni}
字体定义( .fd
) 文件。名称的第一部分告诉您文件支持的编码:
lgr
-> 激光雷达ot1
-> OT1t1
-> T1u
-> 未编码/原始 - 通常这是一种没有标准编码的符号字体。
因此我们可以看到 GFS Bodoni 的软件包支持希腊语以及 T1 和 OT1 编码支持的语言,并且可能还有一些特殊符号。
相反,我们发现tex/latex/tex-gyre/
:
il2qag.fd l7xqbk.fd ly1qcr.fd ot1qcs.fd ot4qhv.fd qxqag.fd t1qag.fd t5qbk.fd tgchorus.sty ts1qhv.fd
il2qbk.fd l7xqcr.fd ly1qcs.fd ot1qhv.fd ot4qhvc.fd qxqbk.fd t1qbk.fd t5qcr.fd tgcursor.sty ts1qhvc.fd
il2qcr.fd l7xqcs.fd ly1qhv.fd ot1qhvc.fd ot4qpl.fd qxqcr.fd t1qcr.fd t5qcs.fd tgheros.sty ts1qpl.fd
il2qcs.fd l7xqhv.fd ly1qhvc.fd ot1qpl.fd ot4qtm.fd qxqcs.fd t1qcs.fd t5qhv.fd tgpagella.sty ts1qtm.fd
il2qhv.fd l7xqhvc.fd ly1qpl.fd ot1qtm.fd ot4qzc.fd qxqhv.fd t1qhv.fd t5qhvc.fd tgschola.sty ts1qzc.fd
il2qhvc.fd l7xqpl.fd ly1qtm.fd ot1qzc.fd qbookman.sty qxqhvc.fd t1qhvc.fd t5qpl.fd tgtermes.sty
il2qpl.fd l7xqtm.fd ly1qzc.fd ot4qag.fd qcourier.sty qxqpl.fd t1qpl.fd t5qtm.fd ts1qag.fd
il2qtm.fd l7xqzc.fd ot1qag.fd ot4qbk.fd qpalatin.sty qxqtm.fd t1qtm.fd t5qzc.fd ts1qbk.fd
il2qzc.fd ly1qag.fd ot1qbk.fd ot4qcr.fd qswiss.sty qxqzc.fd t1qzc.fd tgadventor.sty ts1qcr.fd
l7xqag.fd ly1qbk.fd ot1qcr.fd ot4qcs.fd qtimes.sty qzapfcha.sty t5qag.fd tgbonum.sty ts1qcs.fd
TeX Gyre Pagella 的相关字体定义文件如下:
il2qpl.fd
-> 捷克语和斯洛伐克语??l7xqpl.fd
-> 立陶宛语ly1qpl.fd
-> 'texnansi' 编码(拉丁语,但与 T1 不同,有空闲位置,因此排除了该编码涵盖的一些字符)ot1qpl.fd
-> OT1ot4qpl.fd
-> 波兰语??qxqpl.fd
-> ‘GUST’ 编码 (拉丁文)t1qpl.fd
-> T1t5qpl.fd
-> 越南语ts1qpl.fd
->“文本伴侣”编码(计算机现代提供的文本符号,例如通过特殊命令访问的旧式数字、版权和商标符号、附加货币符号等)
如您所见,字体中存在希腊文字形并不表示支持希腊文这种语言,无论使用 type1 还是 opentype 字体。
当然,在很多情况下,软件包文档会比检查字体定义文件更快地回答有关覆盖率的问题。不过,并非所有字体都有文档记录或完整记录,因此了解如何通过检查软件包内容本身来确定这一点可能会有所帮助。
如果字形存在,您可以创建支持文件来使用它们。(autoinst
Tim S. 提到的方法就是这样一种方法,尽管我不知道它是否支持希腊语。)但是,在这种情况下,问题在于字体本身缺乏支持,而不是(仅仅)缺少适当的 LaTeX 支持包。