texlive-fonts-extra + \ssfamily + microtype + [T1]{fontenc} = pdflatex 崩溃?

texlive-fonts-extra + \ssfamily + microtype + [T1]{fontenc} = pdflatex 崩溃?

PdfLaTex 现在在处理我的书(一本没有数学的小说)时会因致命错误(未生成 PDF)而终止。它之前可以与我的所有 PSNFSS 字体配合使用,这些字体是每个 TeX 发行版都普遍安装的 PostScript 字体。现在只有新分套餐(新世纪教科书 [roman] 加先锋派 [sans] 和书人软件包(Bookman [roman] Avant Garde [sans])可以正常工作,而不会导致我的项目崩溃。

在反复试验的过程中,我发现即使是我的默认 TeX 字体(Computer Modern)现在每次都会崩溃。其他标准字体包只有在调用 \sffamily fonts [sans fonts] 时才会崩溃。顺便说一句,经过更多的反复试验,我发现这些崩溃只发生在我使用微型包装(用于精湛排版)[T1]方藤克字体编码。因此,只要我不将 fontenc 与 microtype 一起使用,我就可以使用所有通用的 PSNFSS TeX 字体(以及我的默认 Computer Modern 字体)。(我没有对 microtype 使用任何特殊选项,我只是通过调用 \usepackage{microtype} 来加载包,仅此而已)

这些崩溃是在从 Ubuntu 存储库安装 texlive-fonts-extra 软件包以添加额外字体后立即开始的。几个月前,我已经将 getnonfreefonts 安装在 TeX 中,这样我就可以访问 garamondx 和其他字体,这似乎根本没有造成任何问题。

除此之外,我有一个未经修改的 TeXLive 发行版。我安装了 LyX 和 Kile 来与 TeXLive 配合使用。我使用 Kile 进行我的项目,偶尔在 LyX 中捣鼓一下,主要是为了在更图形化地操作之后查看 LaTeX 代码是什么,以学习代码。我的操作系统是Ubuntu 14.04Linux,所有与 LaTeX 相关的内容都直接从 Ubuntu 软件包存储库中提取出来,但以下情况除外获取非免费字体安装。

以下是确切的错误输出:

***** PDFLaTeX 输出: ***** cd "/home/mark/BOOk DESIGN/Three B" ***** pdflatex -interaction=nonstopmode test_article.tex ***** 这是 pdfTeX,版本 3.1415926-2.5-1.40.14(TeX Live 2013/Debian)限制 \write18 启用。进入扩展模式 (./test_article.tex LaTeX2e <2011/06/27> Babel <3.9h> 和 7 种语言的连字符模式已加载。 (/usr/share/texlive/texmf-dist/tex/latex/base/book.cls 文档类:book 2007/10/19 v1.4h 标准 LaTeX 文档类 (/usr/share/texlive/texmf-dist/tex/latex/base/bk10.clo)) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.sty (/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype-pdftex.def) (/usr/share/texlive/texmf-dist/tex/latex/microtype/microtype.cfg)) (/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty (/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def)) (./test_article.aux) (/usr/share/texlive/texmf-dist/tex/latex/microtype/mt-cmr.cfg) (/usr/share/texlive/texmf-dist/tex/latex/base/t1cmss.fd) [1{/var/lib/texmf/font s/map/pdftex/updmap/pdftex.map} ! pdfTeX 错误(字体扩展):只有可缩放字体才能自动扩展。\endgroup \set@typeset@protect l.15 \end{document} ! ==> 发生致命错误,未生成输出 PDF 文件!记录写在 test_article.log 上。

从我的序言中有关字体的部分开始,我选择了下面的字体:

%%%%%% novel project %%%%%%%%%

\documentclass{book}

\usepackage{microtype}

\usepackage[T1]{fontenc}

%  %   %  %   % PSFNSS2e font packages %     %     %      %    %    %    %    %
%  %   %  %   %       select one package     %     %     %      %    %    %    % 
% \usepackage{mathptmx}   % Times font, default sans
% \usepackage{charter}    % Bitstream's Charter font, default sans
% \usepackage{mathpazo}   % Palatino font, default sans
% \usepackage{bookman}    % Bookman font, Avant Garde sans 
% \usepackage{utopia}     % Utopia font, default sans
% \usepackage{chancery}   % Zapf Chancery font, default sans
% \usepackage{newcent}    % New Century Schoolbook font, Avant Garde sans
%   %   %   %  %  SELECT NONE ABOVE TO USE Computer Modern default %  %   %   % 

%%%%%%% END PREAMBLE  %%%%%%% 

为什么我现在会遇到崩溃?我该怎么做才能防止这种情况发生?

答案1

根据收到的评论,我能够回答我的问题。

请参阅当前手册的第 27 页以了解 microtype。!pdfTeX 错误(字体扩展):自动扩展仅适用于可缩放字体。pdfTeX 1.40 中的自动字体扩展已得到改进,现在它不仅适用于 Type 1 字体,还适用于 TrueType、OpenType 甚至非嵌入字体。上述错误消息表明您正在尝试将扩展应用于位图 (pk) 字体(这仍然不可能),或者根本找不到字体,例如,由于缺少映射条目。– cfr

因此,Computer Modern 默认字体是罪魁祸首,因为它无法通过 LaTeX Microtype 包进行扩展。Bookman 和 Newcent 之所以能正常工作,只是因为它们同时调用了 Roman 替代字体和 Sans 替代字体(我的小说同时使用了这两种字体)。其他包失败了,因为它们只实现了自己的 Roman 字体,而使用了我的 TeX 发行版默认字体,即我所用的 Computer Modern。

解决方案是将我的所有 LaTeX 序言模板(我在此机器上使用的)中的默认字体设置为 Latin Modern,它具有相同的度量,设计为看起来相同,但具有 [T1]fontenc 编码功能,我的 Microtype 包将处理此功能。即便如此,PdfLaTeX 也不应该崩溃,但既然它崩溃了,这就是解决办法。对于后人和其他可能遇到同样问题的人,以下是问题中序言部分的修复:

%%%%%% novel project %%%%%%%%%

\documentclass{book}

\usepackage{microtype}

\usepackage[T1]{fontenc}

%%%  % FIX: change to [T1]fontenc microtype expandable fonts  %  %%% 

 \renewcommand{\ttdefault}{lmtt} % FIX: default Computer Modern TT 
                                 % changed to Latin Modern TT (typewriter)

 \renewcommand{\rmdefault}{lmr} % FIX: default Computer Modern Roman 
                                % changed to Latin Modern Roman

 \renewcommand{\sfdefault}{lmss} %FIX: default Computer Modern Sans Serif 
                                % changed to Latin Modern Sans Serif
%   %   %   %   %   %   %   %   %   %   %   %   %   %   %   %   %   %   %

%  %   %  %   % PSFNSS2e font packages %     %     %      %    %    %    %    %
%  %   %  %   %       select one package     %     %     %      %    %    %    % 
% \usepackage{mathptmx}   % Times font, default sans
% \usepackage{charter}    % Bitstream's Charter font, default sans
% \usepackage{mathpazo}   % Palatino font, default sans
% \usepackage{bookman}    % Bookman font, Avant Garde sans 
% \usepackage{utopia}     % Utopia font, default sans
% \usepackage{chancery}   % Zapf Chancery font, default sans
% \usepackage{newcent}    % New Century Schoolbook font, Avant Garde sans
%   %   %  SELECT NONE ABOVE TO USE Latin Modern new defaults %  %   %   % 

%%%%%%% END PREAMBLE  %%%%%%%%%%%%%%%%

相关内容