# [texhax] Logging on pdftex

Mon Sep 17 19:00:36 CEST 2012

On Mon, Sep 17, 2012 at 08:02:51AM -0400, Michael Barr wrote:

> In response to my question about suppressing the list of embedded
> fonts at the end of a run of pdf(la)tex, you suggested
> \usepackage{atveryend}
> \AtVeryVeryEnd{\batchmode}
>
> That certainly suppresses the listing of fonts.  Unfortunately, at
> the cost of also suppressing the useful messages I really want to
> see, such as:
> (\end occurred inside a group at level 1)
>
> ### semi simple group (level 1) entered at line 1558 (\begingroup)
> ### bottom level
>
> Is there a better choice than \batchmode?  Unfortunately, I don't
> understand the details at a sufficient level to work this out
> myself.

\documentclass{article}

\usepackage{atveryend}
\makeatletter
\AtVeryVeryEnd{%
\ifnum\currentgrouplevel>0 %
\@latex at warning@no at line{Open groups at end of document}%
\fi
\batchmode
}
\makeatother

\begin{document}

Hello \begingroup World

\end{document}

Many messages (also the messages at the end of the job) are not in control
of the TeX macro level. You can turn off all messages from screen using
\batchmode, but you cannot select them individually. Then you need a filter
program that filters the output of the compile run:
pdflatex test | mytexmessagefilter
Or use an IDE that is able to show only the important stuff.

Yours sincerely
Heiko Oberdiek