以下 MWE 给出了一个错误:
%Page layout here
\documentclass[letterpaper]{article}
\usepackage{kantlipsum}
%Font stuff here
\usepackage{tgtermes}
\begin{document}
\kant
\oldstylenums{314159} %This is line 11
\kant
\end{document}
LaTeX 字体信息:尝试在输入行 11 上加载 OML+qtm 的字体信息。LaTeX 字体信息:输入行 11 上没有文件 OMLqtm.fd。
LaTeX 字体警告:输入行 11 上的字体形状为 OML/cmm/m/it'。
OML/qtm/m/it' undefined (Font)
using[2] [3] [4](./MWE.aux)
LaTeX 字体警告:某些字体形状不可用,已用默认字体替代。
\oldstylenums{314159}
现在,这似乎很明显,使用with是一个问题tgterms
。但是,我不得不编辑掉除此代码之外的所有内容,以发现:在此 MWE 中(基于我的原始文档)
%Page layout here
\documentclass[letterpaper]{article}
\usepackage{kantlipsum}
%Font stuff here
\usepackage{tgtermes}
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt} % remove lines as well
\setlength{\headheight}{30pt}
\chead{\oldstylenums{314159}}
\begin{document}
Here is some normal text
\kant
More normal text %This is line 18
\end{document}
错误指向文档结束前的最后一行,即第 18 行。
然而,我做了另一个 MWE,我手动粘贴了几页 lipsum,得到了一些奇怪的事情,似乎复制了我原来的问题:错误信息似乎随机移动(在这种情况下,它位于命令后的第一个空白行;在我更复杂的文档中......我不知道,它是第 97 行,即第二页的第一个空白行,但第一页上有很多命令。可能是之后的第一个空白行\emph{}
?
%Page layout here
\documentclass[letterpaper]{article}
\usepackage{kantlipsum}
%Font stuff here
\usepackage{tgtermes}
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt} % remove lines as well
\setlength{\headheight}{30pt}
\chead{\oldstylenums{314159}}
\begin{document}
Here is some normal text As any dedicated reader can clearly see, the Ideal of practical
reason is a representation of, as far as I know, the things in themselves; as I have
shown elsewhere, the phenomena should only be used as a canon for our understanding.
The paralogisms of practical reason are what first give rise to the architectonic of
practical reason.
Kant here
\kant %This is line 23, error occures on next line unless I put a comment there
As we have already seen, what we have alone been able to show is that the objects
in space and time would be falsified; what we have alone been able to show is that,
our judgements are what first give rise to metaphysics. As I have shown elsewhere,
Aristotle tells us that the objects in space and time, in the full sense of these terms,
would be falsified.
\end{document}
那个将错误放在 之后的第一个空白行上\kant
。有人能解释一下这个错误是什么以及它为什么一直在移动吗?
答案1
您不会收到错误,但会收到警告。默认定义\oldstylenums
切换到 OML 编码。由于tgtermes
不知道,LaTeX 会回退到 cm 字体并在第一次使用旧式数字时发出警告。
加载textcomp
包以获取旧式数字tgtermes
。
答案2
\oldstylenums
基本 LaTeX 格式中定义的数字实际上是为了从原始 TeX 字体古怪的编码布局中提取数字而设计的。具体来说,它
\usefont{OML}{\rmdefault}{\f@series}{it}
使用 OML 编码,这是用于原始 7bit TeX 字体(例如计算机现代数学斜体)的编码。
因此 LaTeX 告诉您,对于您拥有的字体系列,没有为数学字母编码定义字体:
OML/qtm/m/it'
因此将改用 cmmi(计算机现代数学斜体)。
请注意,这不是错误,“只是”一个警告。
如果有与 tgtermes 匹配的字体具有旧式数字,那么您要么需要使用 OML 编码对其进行编码并在 fd 文件中告知 LaTeX,要么需要在本地重新定义\oldstylenums
以从您正在使用的字体集中的任何位置获取数字。
在您的较长示例中,命令位于页眉中,因此当输出例程组合第一页时,您会收到警告。输出例程的常见触发器是空白行 ( \par
),这很可能解释了您的注释“第二页上的第一个空白行”。