Как обсуждалосьздесь, существует множество команд, которые можно использовать для «отладки» процесса написания (La)TeX.
Я также знаю, что иногда эту \show
команду можно использовать для отображения определений макросов.
Тем не менее я знаю, что есть некоторые команды отладки/трассировки, которые начинаются с show, например, \showboxbreadth=xx
как можно увидетьздесь.
Есть ли какой-либо список таких команд и их действий?
решение1
КнигаTeX By Topic
Виктор Эйхаут описывает некоторые\show...
макросы.
В следующем обзоре X
означает некоторое целое значение и Y и 8-битное число, является сокращением от некоторой «внутренней величины» , \Z
такой как count
, или регистр, представляет собой список слов, разделенных пробелами.dimen
\skip
token
W
\show
является примитивной командой и показывает значение токена, т.е. что\meaning\foo
происходит в документе.\showboxdepth=X
имеет значение самого глубокого уровня вложенности блоков, по умолчанию -X=3
простоTeX
\showboxbreadth=X
имеет максимальное количество отображаемых элементов на уровне. Это имеет простоеTeX
значение по умолчаниюX=5
\showlists
является примитивом и записывает содержимое частичных списков ящиков во всех 4 нематематических режимах TeX (т.е. горизонтальном/вертикальном и ограниченных версиях)\showthe\Y
печатает содержимое количества\Y
, как в документе с\the
,\the\footoks
\showhyphens{W}
отображает переносы W на терминале/в журнале в соответствии с правилами переносов.
Теперь eTeX
стандарт (который является стандартом на момент написания этой статьи в апреле 2017 года) добавляет еще несколько \show...
инструментов
\showifs
(активируется с помощью\tracingifs=1
)\showgroups
(\tracinggroups=1
)\showtokens
для списков токенов и контента, которые невозможно отобразить с помощью\show
или\showthe
.
Эти троеeTeX
дополнения не зависят от режима.
LaTeX добавляет некоторые макросы-оболочки, такие как
\showoutput
\showoverfull
\showhyphens
(переопределяется)
и устанавливает изначально \showboxbreadth=-1
и\showboxdepth=-1
также.
Вот пример документа LaTeX для простых \show...
сущностей TeX.
\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}
Вывод осуществляется как на консоль, так и в .log
файле (здесь я вырезал заголовок и нижнюю статистику, чтобы предоставить \show...
только соответствующий вывод):
> \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 []