pdfTeX 错误(字体扩展):自动扩展只能通过可扩展的方式实现

pdfTeX 错误(字体扩展):自动扩展只能通过可扩展的方式实现

我正在使用自定义类文件。

我的主文件如下所示:

\documentclass[12pt,a4paper]{thesis}
\begin{document}
\frontmatter
    \pagenumbering{alph}

    \pagenumbering{roman}
    \clearpage

    \cleardoublepage
    \tableofcontents
    \clearpage
    \listoffigures
    \clearpage
    \listoftables

 \mainmatter
       \part{test}
      \input{test}
\end{document}

如果我把它放在我的test.tex它确实有效:

\chapter{test}
\label{chapter:test}
test 

当它变成更多文本时(比如说 40 倍单词“测试”),我会收到问题标题中指出的错误。

为了测试它,我将我的类文件简化如下:

\ProvidesClass{thesis}
\NeedsTeXFormat{LaTeX2e}

% Based on the memoir class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}}
\ProcessOptions
\LoadClass{memoir}

我现在完全搞不清楚是什么导致了我的错误。

这是完整的错误:

! pdfTeX error (font expansion): auto expansion is only possible with scalable 
fonts.
\AtBegShi@Output ...ipout \box \AtBeginShipoutBox 
                                                  \fi \fi 

答案1

您必须加载可缩放字体,如 lmodern:

\usepackage[T1]{fontenc}
\usepackage{lmodern}

或安装cm-super字体。

答案2

使用 texlive-full 从头安装 latex 后,我遇到了同样的错误。我解决这个问题的方法是使用 updmap 更新字体(https://www.tug.org/texlive/doc/updmap.html

  • 在 *nix 上你可以运行updmap
  • 在 Windows 上,您可以导航到C:\Program Files\MiKTeX <version>\miktex\bin\x64并运行updmap.exe。该程序可能似乎会挂起一段时间,但这可能是因为它试图更新整个字体树。

重新编译后,一切都应该正常工作。

答案3

更新:添加了 cm-super。如果这对您的情况没有帮助,请发表评论。

首先(正如@Herbert 指出的那样),您必须加载可缩放字体,例如 lmodern 或 mathptmx:

\usepackage[T1]{fontenc}
\usepackage{lmodern}

然而,这并没有解决我刚安装的 MiKTeX 系统上的问题。我不得不安装cm-超级包并完全更新 MiKTeX。

我必须执行以下步骤:

  1. 启动“MiKTeX 包管理器(管理员)”
  2. 安装该cm-super包。
  3. 我建议将所有软件包更新到最新版本,如所述https://tex.stackexchange.com/a/108490/9075
  4. 启动“MiKTeX 设置(管理员)”
  5. 按“刷新 FNDB”
  6. 按“更新格式”
  7. 按“确定”(关闭应用程序)
  8. 重新编译。一切都应该正常工作。

MiKTeX 设置
(来源:miktex.org

也可以看看https://docs.miktex.org/manual/configuring.html#fndbupdate

安装提示cm-super取自https://tex.stackexchange.com/a/310169/9075@Herbert 也表示

使用 microtype 时,MiKTeX 不会自动安装 cm-super。在 2016 年 11 月的邮件列表中进行了讨论,但未采取任何行动。

答案4

字体的配置文件可以在tex/latex/microtype/TeX 安装的子目录中找到。

但是等等,我没有 PSCyr 字体的配置文件;但是我可以像这样使用字体扩展(为了演示,它们太大了)stretchshrink

% in preamble:
\SetExpansion[stretch = 70, shrink = 70,] { encoding = {T2A} } { }
\DeclareMicrotypeSet{t2atext}{encoding=T2A}
\UseMicrotypeSet{t2atext}

我得到的结果如下:

在此处输入图片描述

很明显,我在这里有字体扩展功能。

重点是配置文件包含字符凸出和字体扩展的命令 --- 就像这个 --- 没有什么特殊的或神奇的。

因此,您可以编写自己的命令,并将它们收集到您自己的配置文件中,以获得您喜欢的字体。

阅读手册,指定您的价值观(编码!)并享受。

相关内容