这个错误是什么意思以及为什么它一直在继续?

这个错误是什么意思以及为什么它一直在继续?

以下 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),这很可能解释了您的注释“第二页上的第一个空白行”。

相关内容