Wie besprochenHier, es gibt viele Befehle, mit denen der (La)TeX-Kompositionsprozess „debuggt“ werden kann.
Ich weiß auch, dass der Befehl manchmal \show
verwendet werden kann, um die Makrodefinitionen anzuzeigen.
Trotzdem weiß ich, dass es einige Debug-/Tracing-Befehle gibt, die mit „show“ beginnen, \showboxbreadth=xx
wie man beispielsweise sehen kannHier.
Gibt es eine Liste solcher Befehle und ihrer Auswirkungen?
Antwort1
Das BuchTeX By Topic
von Victor Eijkhout beschreibt einige \show...
Makros.
In der folgenden Übersicht X
bedeutet „Y“ einen ganzzahligen Wert und „8-Bit-Zahl“ \Z
ist die Abkürzung für „interne Größe“ wie „ count
, dimen
„, \skip
„ oder „ token
Register“, W
ist eine durch Wörter oder Leerzeichen getrennte Liste von Wörtern.
\show
ist ein primitiver Befehl und zeigt die Bedeutung eines Tokens, d. h. was\meaning\foo
innerhalb des Dokuments bewirkt.\showboxdepth=X
hat den Wert der tiefsten Ebene der Box-Verschachtelung, standardmäßigX=3
in plainTeX
\showboxbreadth=X
hat die maximale Anzahl angezeigter Elemente pro Ebene Dies hat einen einfachenTeX
Standardwert vonX=5
\showlists
ist ein Primitiv und schreibt den Inhalt von partiellen Boxlisten in allen 4 nicht-mathematischen TeX-Modi (also horizontal/vertikal und die eingeschränkten Versionen)\showthe\Y
druckt den Inhalt einer\Y
Menge wie im Dokument mit\the
,\the\footoks
\showhyphens{W}
zeigt die Silbentrennung von W im Terminal/Protokoll entsprechend der Silbentrennungsregeln an.
Nun eTeX
fügt der Standard (der zum Zeitpunkt des Schreibens dieses Artikels im April 2017 bereits ein Standard ist) einige weitere \show...
Tools hinzu
\showifs
(aktiviert mit\tracingifs=1
)\showgroups
(\tracinggroups=1
)\showtokens
\show
für Token-Listen und Inhalte, die mit oder nicht angezeigt werden können\showthe
.
Diese drei eTeX
Ergänzungen sind modusunabhängig.
LaTeX fügt einige Wrapper-Makros hinzu, wie zum Beispiel
\showoutput
\showoverfull
\showhyphens
(wird neu definiert)
und setzt zunächst \showboxbreadth=-1
und \showboxdepth=-1
auch.
Hier ist ein Beispiel-LaTeX-Dokument für die einfachen TeX- \show...
Entitäten.
\documentclass{article}
\newbox\foobox
\setbox\foobox=\hbox{A nice text}
\newcount\foocnt
\foocnt=17
\newtoks\footok
\footok={Gandalf The Grey}
\tracingoutput=1
\tracingonline=1
\begin{document}
\showboxbreadth=10
\showboxdepth=2
\scrollmode
\showbox\foobox
\showthe\footok
\showthe\foocnt
% Show lists
a\hfil\break b\par
c\hfill\break d
\hbox{e\vbox{f\showlists}}
\end{document}
Die Ausgabe erfolgt sowohl auf der Konsole als auch in der .log
Datei (hier habe ich den Header und die unteren Statistiken ausgeschnitten, um \show...
nur die zugehörige Ausgabe bereitzustellen):
> \box26=
\hbox(6.83331+0.0)x48.88896
.\OT1/cmr/m/n/10 A
.\glue 3.33333 plus 1.66498 minus 1.11221
.\OT1/cmr/m/n/10 n
.\OT1/cmr/m/n/10 i
.\OT1/cmr/m/n/10 c
.\OT1/cmr/m/n/10 e
.\glue 3.33333 plus 1.66666 minus 1.11111
.\OT1/cmr/m/n/10 t
.\OT1/cmr/m/n/10 e
.\OT1/cmr/m/n/10 x
.etc.
! OK.
l.23 \showbox\foobox
> Gandalf The Grey.
l.25 \showthe\footok
> 17.
l.27 \showthe\foocnt
### horizontal mode entered at line 32
\hbox(0.0+0.0)x15.0
\OT1/cmr/m/n/10 f
spacefactor 1000
### internal vertical mode entered at line 32
prevdepth ignored
### restricted horizontal mode entered at line 32
\OT1/cmr/m/n/10 e
spacefactor 1000
### horizontal mode entered at line 31
\hbox(0.0+0.0)x15.0
\OT1/cmr/m/n/10 c
\glue 0.0 plus 1.0fill
\penalty -10000
\OT1/cmr/m/n/10 d
\glue 3.33333 plus 1.66666 minus 1.11111
spacefactor 1000
### vertical mode entered at line 0
### current page:
\write-{}
\glue(\topskip) 5.69446
\hbox(4.30554+0.0)x345.0, glue set 324.99998fil
.\hbox(0.0+0.0)x15.0
.\OT1/cmr/m/n/10 a
.\glue 0.0 plus 1.0fil
.\penalty -10000
.\glue(\rightskip) 0.0
\penalty 300
\glue(\baselineskip) 5.05556
\hbox(6.94444+0.0)x345.0, glue set 339.44443fil
.\OT1/cmr/m/n/10 b
.\penalty 10000
.\glue(\parfillskip) 0.0 plus 1.0fil
.\glue(\rightskip) 0.0
\glue(\parskip) 0.0 plus 1.0
total height 22.0 plus 1.0
goal height 550.0
prevdepth 0.0
! OK.
l.32 \hbox{e\vbox{f\showlists
}}
Overfull \hbox (12.22223pt too wide) in paragraph at lines 31--33
\OT1/cmr/m/n/10 d []
\hbox(6.94444+0.0)x345.0, glue set - 1.0
.\OT1/cmr/m/n/10 d
.\glue 3.33333 plus 1.66666 minus 1.11111
.\hbox(6.94444+0.0)x349.44444
..\OT1/cmr/m/n/10 e
..\vbox(6.94444+0.0)x345.0 []
.\penalty 10000
.\glue(\parfillskip) 0.0 plus 1.0fil
.\glue(\rightskip) 0.0
Completed box being shipped out [1]
\vbox(633.0+0.0)x407.0
.\glue 16.0
.\vbox(617.0+0.0)x345.0, shifted 62.0
..\vbox(12.0+0.0)x345.0, glue set 12.0fil []
..\glue 25.0
..\glue(\lineskip) 0.0
..\vbox(550.0+0.0)x345.0, glue set 503.94617fil []
..\glue(\baselineskip) 23.55556
..\hbox(6.44444+0.0)x345.0, glue set 170.0fil []