arydshln.sty Фрагмент

arydshln.sty Фрагмент

Я пытаюсь понять пакет arydshln. Насколько я понимаю, все это построено на основе базового TeX \xleaders. Я бы тоже хотел вернуться к основам. К сожалению, хотя файл стилей хорошо организован, сложно понять, какие значения где оказываются.

  • \adl@drawi#1#2#3
  • \adl@drawii#1#2#3
  • \adl@drawiii#1#2#3

А потом происходит что-то вроде этого:

  • \let\adl@draw\adl@drawi

Так что #3должна быть коробка или правило, потому что это то, что \xleadersожидает, затем #2какой-то клей. Я не уверен, что #1это.

введите описание изображения здесь

arydshln.sty Фрагмент

После быстрого \xleadersпоиска я нашел это. Каковы значения #1, #2, и #3в коде ниже? Я пытался разобраться, но все время теряюсь в коде.

\def\adl@drawi#1#2#3{%
        #1{.5}#2.5\@tempdimb
        \xleaders#3{#2.5\@tempdimb #1{1}#2.5\@tempdimb}%
                #2\z@ plus1fil minus1fil\relax
        #2.5\@tempdimb #1{.5}}
\def\adl@drawii#1#2#3{%
        \setbox\adl@box#3{#2.5\@tempdimb #1{1}#2.5\@tempdimb}%
        #1{.5}#2.5\@tempdimb
        \copy\adl@box #2-\@tempdima #2-\@tempdimb
        \xleaders\copy\adl@box#2\z@ plus1fil minus1fil\relax
        #2-\@tempdima #2-\@tempdimb \copy\adl@box
        #2.5\@tempdimb #1{.5}}
\def\adl@drawiii#1#2#3{{\let\xleaders\cleaders \adl@drawi#1#2#3}}
\let\adl@draw\adl@drawi

решение1

Ответ можно найти вруководство дляarydshln(на момент написания статьи стр. 43-44).

  1. правило
  2. пропускать
  3. коробка

Эти три макроса имеют общий интерфейс, \@tempdimaа \@tempdimbдля длины тире и пробела,гиг, и три аргументаправило,пропускатьикоробкас помощью которого \adl@drawвызывается следующим образом.

\adl@draw\adl@vrule\hskip\hbox. . . горизонтальный

\adl@draw\adl@hrule\vskip\vbox. . . вертикальный

Связанный контент