我刚刚在这篇帖子中看到:如何访问 TeX Gyre 字体(例如 pagella)中的西里尔字母? - comp.text.tex注释:“TeX Gyre Pagella 字体,包括西里尔字母的字形。”。那里有一个 MWE,显然在 2009 年有效;它在这里(我只是移动了行fontenc
前的那行babel
,因为pdflatex
我抱怨过):
\listfiles
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A]{fontenc} % before babel!
\usepackage[ngerman,russian]{babel}
\usepackage{tgpagella}
\begin{document}
Добро пожаловать!
\selectlanguage{ngerman}
Some german umlauts: ÄÖÜ, äöü, ß
\end{document}
我使用 构建了它pdflatex test.tex
,但在 Texlive 2014 上失败了:
...
This is METAFONT, Version 2.7182818 (TeX Live 2014) (preloaded base=mf)
kpathsea: Running mktexmf larm1000
! I can't find file `larm1000'.
<*> ...ljfour; mag:=1; nonstopmode; input larm1000
Please type another input file name
! Emergency stop.
<*> ...ljfour; mag:=1; nonstopmode; input larm1000
Transcript written on mfput.log.
grep: larm1000.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input larm1000' failed to make larm1000.tfm.
kpathsea: Appending font creation commands to missfont.log.
! Font T2A/cmr/m/n/10=larm1000 at 10.0pt not loadable: Metric (TFM) file not fo
und.
<to be read again>
relax
l.100 \fontencoding\encodingdefault\selectfont
?
显然我可能缺少一些包裹,但我不知道是哪一个。
是否可以让这个示例一起工作pdflatex
,如果可以的话-如何?
编辑:刚刚发现西里尔文包有什么问题?因此我设法通过安装 TexLivelh
包解决了该问题,然后我得到了要编译的文档:
tlmgr install lh # passes, font not really tgpagella?
tlmgr install collection-langcyrillic # installs 36 packages, like babel-bulgarian,... lcyw, lhcyr...
这样,输出就是:
... 西里尔字体看起来不像tgpagella
。所以我安装了collection-langcyrillic
,但这也没有改变输出;仍然进入转录:
LaTeX Font Warning: Font shape `T2A/qpl/m/n' undefined
(Font) using `T2A/cmr/m/n' instead on input line 3.
... 显然,输出显示的是“Computer Modern”的西里尔文。现在,如果西里尔字体可以像那样制作tgpagella
,那就太好了……
答案1
是的,正如 @egreg 和 @cfr 指出的那样,西里尔文中没有 Tex Gyre Pagella;进一步研究后,我发现:
您的选择可能取决于您所说的 Palatino 风格字体的含义,以及您是否愿意为商业字体支付费用以及愿意支付多少钱。开源 Linux Libertine 字体是一种带有西里尔字母的衬线字体,但它并不是真正的 Palatino 风格字体
我现在得到了罗马字母的整个 palatino 系列(包括 \em、\sc 等)。……但没有任何字体属性命令对西里尔文本起作用。
...如果这还不够的话,以下是我得到的fontforge /path/to/texlive/2014/texmf-dist/fonts/opentype/public/tex-gyre/texgyrepagella-regular.otf
:
...这证实该字体确实有一些希腊字符,但没有西里尔字符。
所以我正准备放弃这一切,却发现CTAN:替代字体,其中指出:
结合字体系列 [...]
测试/示例 [...]
* Times/Helvetica/Courier (TeX Gyre) 与西里尔文 ParaType_ 字体:<cyrillic-paratype.tex>
__,<cyrillic-paratype.pdf>
__
...当我读到西里尔文副典本.tex,似乎paratype
可以作为palatino
/Tex Gyre Pagella 的西里尔字母的替代品 - 而且它实际上对我来说看起来已经足够好了(不完全相同,但肯定不会像那里的 Computer Modern 西里尔字母那样刺眼):
下面是产生该输出的 MWE - 我只是paratype
在之前加载tgpagella
,并在tgpagella
加载之后,substitutefont
当使用 T2A 编码时,我用来将 paratype 设置为默认的“roman”:
\listfiles
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A]{fontenc} % before babel!
\usepackage[ngerman,russian]{babel}
\usepackage{paratype} % tlmgr install paratype
\usepackage{tgpagella}
\usepackage{substitutefont}
\substitutefont{T2A}{\rmdefault}{PTSerif-TLF}
\begin{document}
Добро пожаловать!
\selectlanguage{ngerman}
Some german umlauts: ÄÖÜ, äöü, ß
\end{document}