无提示问题:不会导致错误或警告的错误

无提示问题:不会导致错误或警告的错误

如果您不使用该inputenc包并且源中有非 ASCII 字符,则不会生成错误或警告。它确实会生成

缺少字符:字体 cmr7 中没有 ▒!

在日志中,但这很容易被忽略。

我的问题是:其他常见的“无提示”问题,即某些事情明显出错,但没有产生任何错误或警告的情况?对于每种此类情况,是否可以采取任何措施使错误明确化(如inputenc我的示例一样)?

答案1

如果您想要对输入中的非 ASCII 字符发出警告,您可以使用包inputenc

\usepackage[ascii]{inputenc}

还有许多其他事情可能会悄无声息地出错。一份完整的清单需要花上数年时间才能写出来。因此,仅举几个例子:

  • \addcontentsline显示错误页码的条目,因为用户惊讶地发现命令还在上一页执行。
  • \small{...}不接受参数,并且用户可能会感到惊讶,它后面的文本也比预期的要小。
  • \begin{small}...\end{small}后面跟着换行符会导致段落的行距错误,因为 TeX 使用段落末尾( 外面\end{small})的活动设置。
  • hyperref:错误链接、锚点……

答案2

这只是对 Heiko 的好答案的补充。

如果出现警告信息

Missing character: There is no ▒ in font cmr7!

当使用一些 8 位字符并且inputenc没​​有加载合适的选项时,会出现以下警告不是相关inputenc

确实,通过这个简单的输入(假设它是 Latin-1 编码,我为 Emacs 添加了适当的魔法行)

% -*- coding: latin-1 -*-
\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
Straße
\end{document}

你不会得到任何缺少字符的警告,如以下文件摘录.log所示:

This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012) (format=pdflatex 2012.10.11)  18 OCT 2012 22:40
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**mohan.tex
(./mohan.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english,
[...omitted lines...]
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 4.
LaTeX Font Info:    ... okay on input line 4.
[1

{/usr/local/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./mohan.aux) ) 
Here is how much of TeX's memory you used:
 410 strings out of 493488
 3732 string characters out of 3141325
 49432 words of memory out of 3000000
 3798 multiletter control sequences out of 15000+200000
 4403 words of font info for 15 fonts, out of 3000000 for 9000
 957 hyphenation exceptions out of 8191
 23i,4n,17p,160b,113s stack positions out of 5000i,500n,10000p,200000b,50000s
{/usr/local/texlive/2012/texmf-dist/fonts/enc/dvips/cm-super/cm-
super-t1.enc}</usr/local/texlive/2012/texmf-dist/fonts/type1/public/cm-super/sf
rm1000.pfb>
Output written on mohan.pdf (1 page, 11830 bytes).
PDF statistics:
 13 PDF objects out of 1000 (max. 8388607)
 8 compressed objects within 1 object stream
 0 named destinations out of 1000 (max. 500000)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)

然而输出可能会出乎意料,因为它会显示

街道

这是因为所使用的 T1 编码字体位于SSLatin-1 所在的插槽中ß

因此,警告与无关inputenc,但在你的情况下,它是由于字体您使用的只有 128 个字符,而不是我示例中的 T1 编码字体的 256 个字符。警告与输出有关,与输入无关。

相关内容