将西里尔文与 Tex Gyre Pagella 和 pdflatex 一起使用?

将西里尔文与 Tex Gyre Pagella 和 pdflatex 一起使用?

我刚刚在这篇帖子中看到:如何访问 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...

这样,输出就是:

测试.png

... 西里尔字体看起来不像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

fontforge.png

...这证实该字体确实有一些希腊字符,但没有西里尔字符。

所以我正准备放弃这一切,却发现CTAN:替代字体,其中指出:

结合字体系列 [...]
测试/示例 [...]
* Times/Helvetica/Courier (TeX Gyre) 与西里尔文 ParaType_ 字体:<cyrillic-paratype.tex>__, <cyrillic-paratype.pdf>__

...当我读到西里尔文副典本.tex,似乎paratype可以作为palatino/Tex Gyre Pagella 的西里尔字母的替代品 - 而且它实际上对我来说看起来已经足够好了(不完全相同,但肯定不会像那里的 Computer Modern 西里尔字母那样刺眼):

测试.png

下面是产生该输出的 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}

相关内容