# Silent problems: bugs that do not result in an error or warning

If you do not use the inputenc package and have non-ascii characters in your source, this does not generate a error or warning. It does generate a

Missing character: There is no ▒ in font cmr7!

in the log, but this is easy to miss.

My question: are there any other common 'silent' problems, i.e. situations where something is clearly going wrong, but no error or warning is generated? And for each such situation, is there anything one can do to make the error explicit (as inputenc does for my example)?

-
I'm not expecting to get a warning for non 7 bit characters in my input, if I don't use inputenc. Nor LaTeX is: it just follows instructions. It can receive 8 bit input, so why should it complain? –  egreg Oct 18 '12 at 17:03
AFAICS it is complaining. What is 'Missing character: There is no ▒ in font cmr7!' if not a complaint? It's just complaining in a very shy, retiring fashion... –  Mohan Oct 18 '12 at 18:19
That's a font related matter; you'd get no warning with \usepackage[T1]{fontenc}, but probably a character you didn't intend to produce. –  egreg Oct 18 '12 at 19:30

If you want to get warned about non-ASCII characters in the input, you can use package inputenc:

\usepackage[ascii]{inputenc}


There are lots of other things that can go wrong silently. A comprehensive list would require years for writing. Therefore just a few examples:

• \addcontentsline shows an entry with wrong page number, because the user is surprised that the command was yet executed on the previous page.
• \small{...} does not take an argument and the user is probably surprised that also the text after it is smaller than expected.
• \begin{small}...\end{small} followed by a newline results in a paragraph with the wrong line spacing, because TeX uses the settings that are active at the end of the paragraph (right outside of \end{small}).
• hyperref: wrong links, anchors, …
-

In the case of the warning message

Missing character: There is no ▒ in font cmr7!


you get when some 8 bit character is used and inputenc with a suitable option is not loaded, the warning is not related to inputenc.

Indeed, with this simple input (say it's Latin-1 encoded, I add the proper magic line for Emacs)

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


you wouldn't get any warning of missing character, as the following excerpt of the .log file shows:

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)


However the output would probably be unexpected, as it would show

StraSSe

This is because the T1 encoded font that has been used has SS in the slot where Latin-1 has ß.

Therefore the warning has nothing to do with inputenc, but it's rather generated in your case by the fact that the font you're using has only 128 characters rather than the 256 of the T1 encoded font in my example. The warning is related to output and not to input.

-