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划线和间隙的长度,dG以及三个参数规则跳过盒子with\adl@draw以下列方式调用。

\adl@draw\adl@vrule\hskip\hbox。 。 。 水平的

\adl@draw\adl@hrule\vskip\vbox。 。 。 垂直的

相关内容