很奇怪整个网站上没有一个问题专门针对文学字体(尽管它在 10 年前左右经常用于俄语文档),并且只有二 问题參考它!
在新安装并更新了 TeXLive 2016 的系统上,我literat-0.2.zip
从这一页texmf-dist
分别进入(doc
、fonts
和)的正确对应目录tex
。在完成三个“神奇”的操作(更新文件名数据库、重建所有格式和更新字体映射数据库)之后,将生成以下 MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}
\usepackage{literat}
\begin{document}
О, суд людей неправый, что пьянствовать грешно!
\end{document}
pdfLaTeX
通过(仅复制尝试加载的日志的相关部分)产生以下错误literat.sty
:
(c:/texlive/2016/texmf-dist/tex/latex/literat/literat.sty
Package: literat 1999/05/20 v0.2 ParaGraph Literaturnaya as default upright
) (./literat.aux)
\openout1 = `literat.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Checking defaults for T2A/cmr/m/n on input line 8.
LaTeX Font Info: ... okay on input line 8.
LaTeX Font Info: Try loading font information for T2A+tli on input line 8.
(c:/texlive/2016/texmf-dist/tex/latex/literat/t2atli.fd
File: t2atli.fd 1999/05/20 Fontinst v1.902 font definitions for T2A/tli.
) [1
{c:/texlive/2016/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./literat.aux
LaTeX Font Info: Try loading font information for OT1+tli on input line 3.
(c:/texlive/2016/texmf-dist/tex/latex/literat/ot1tli.fd
File: ot1tli.fd 1999/05/20 Fontinst v1.902 font definitions for OT1/tli.
)) )
Here is how much of TeX's memory you used:
1729 strings out of 494319
17975 string characters out of 6169309
70210 words of memory out of 5000000
5095 multiletter control sequences out of 15000+600000
7184 words of font info for 20 fonts, out of 8000000 for 9000
452 hyphenation exceptions out of 8191
23i,4n,23p,200b,131s stack positions out of 5000i,500n,10000p,200000b,80000s
!pdfTeX error: pdflatex.exe (file rtlir6i): Font rtlir6i at 600 not found
==> Fatal error occurred, no output PDF file produced!
除了日志输出之外,这些是来自控制台的消息:
pdflatex.exe -synctex=1 -interaction=nonstopmode "literat".tex
name = rtlir6i, rootname = rtlir6i, pointsize = mktexmf: empty or non-existent rootfile!
Cannot find font rtlir6i in map file(s).
kpathsea: Running mktexmf rtlir6i.mf The command name is C:\texlive\2016\bin\win32\mktexmf
Cannot find rtlir6i.mf . I try ps2pk --> gsftopk --> ttf2pk --> hbf2gf. ps2pk cannot be used.
I try gsftopk. gsftopk.exe rtlir6i 600 gsftopk cannot be used.
Next I try ttf2pk. ttf2pk.exe -q rtlir6i 600 ttf2pk failed.
Finally I try hbf2gf. hbf2gf.exe -q -p rtlir6i 600 All trials failed.
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 rtlir6i
The command name is C:\texlive\2016\bin\win32\mktexpk kpathsea:
Appending font creation commands to missfont.log.
为了尝试复制这例如,我将.tex
文件重新编码为cp1251
并尝试\usepackage[cp1251]{inputenc}
— — 毫无效果。然后,我尝试了 OT1,同样成功。只有注释掉加载字体的行才有助于生成“默认”文档。
处理它latex.exe
并在查看器中打开生成的 DVI 会产生一堆消息,例如:
rtlir6i.600(3000)
Searched C:\Users\admin\.texlive2016\texmf-var\fonts\pk\\...
Searched C:\texlive\2016\texmf-var\fonts\pk\\...
Searched C:\texlive\2016\texmf-dist\fonts\tfm\\...
自 2015 年 1 月以来的 1.5 年里,@egreg 的回答可能发生了什么变化?如何正确配置文学字体并使其工作(如果不仅可以使其工作,而且还可以使它工作microtype
,因为它通常使用默认参数重新缩放外来/未知字体)?
答案1
这些文件应该不是转到.../texlive/2016/texmf-dist/
,但在 下.../texlive/texmf-local
。主树仅用于官方发行版中的内容:更改它可能会导致 TeX 系统不稳定。
在“分发”树中安装文件的结果是,每次发布 TeX Live 时都必须重新做所有事情。
话虽如此,程序如下:
将相关文件复制到本地树中的相应目录中,即在
.../texlive/texmf-local/
(创建必要的目录结构)下.../texmf-local/web2c/updmap.cfg
通过附加行来编辑文件literat.map
(如果需要,创建文件)跑步
mktexlsr
跑步
updmap-sys
“本地”updmap.cfg
文件避免了调用的需要updmap-sys --enable-map
,而且将继续为 TeX Live 的未来版本提供地图文件。
一个临时的解决方法是在文档中加载地图文件,方法是输入
\pdfmapfile{+literat.map}
作为第一行。
答案2
除了 egreg 的回答之外: 中的行updmap.cfg
应该不仅仅是literat.map
,而且Map literat.map