我正在使用自定义类文件。
我的主文件如下所示:
\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。
我必须执行以下步骤:
- 启动“MiKTeX 包管理器(管理员)”
- 安装该
cm-super
包。 - 我建议将所有软件包更新到最新版本,如所述https://tex.stackexchange.com/a/108490/9075。
- 启动“MiKTeX 设置(管理员)”
- 按“刷新 FNDB”
- 按“更新格式”
- 按“确定”(关闭应用程序)
- 重新编译。一切都应该正常工作。
(来源: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 字体的配置文件;但是我可以像这样使用字体扩展(为了演示,它们太大了)stretch
:shrink
% in preamble:
\SetExpansion[stretch = 70, shrink = 70,] { encoding = {T2A} } { }
\DeclareMicrotypeSet{t2atext}{encoding=T2A}
\UseMicrotypeSet{t2atext}
我得到的结果如下:
很明显,我在这里有字体扩展功能。
重点是配置文件包含字符凸出和字体扩展的命令 --- 就像这个 --- 没有什么特殊的或神奇的。
因此,您可以编写自己的命令,并将它们收集到您自己的配置文件中,以获得您喜欢的字体。
阅读手册,指定您的价值观(编码!)并享受。