一些奇怪的发货行为(纯文本)

一些奇怪的发货行为(纯文本)

我试图理解页面大小是如何根据 TeX 基元确定的。作为第一次尝试,我试图用一个简单的页眉(一行)、一个页脚(大 T 的形式)和集中的文本内容完全占据整个页面。但我没有完成这个任务(“你输了!”)。请查看我的代码。

 % initial configuration
\voffset=-1in
\hoffset=-1in
\hsize=10em
\vsize=10em

% defining layout page (at least, trying it)
\output{%
    \shipout\vbox{% this layout was uncaple to eliminate all margins! Bottom and right margins persist
    \leftskip=0pt
    \rightskip=0pt
    \hrule height 0pt depth 7pt
    \vfill
    \box255
    \vfil
    \hrule height 7pt depth 0pt
    \hbox to \hsize{\hfil\vrule height 70pt \hfil}}}

% hyphining at will (or almost this)
\pretolerance=45
\tolerance=10000

% local defintions
\def\correction#1{%
            \ifcase#1
                \moveright
          \or \moveright-
          \or \moveleft
          \or \moveleft-
            \or \kern % this generates a disaster! It's reasonable, but I haven't got it
            \or \kern-
            \else
                    \def\eliminatehsize##1{}
                    \expandafter\eliminatehsize\fi}

\def\arg{4} % in this cases, leads to \kern

% finally, text content of page
\vfil

\noindent Umas verdades quar seram tambem \vadjust{\correction\arg\hsize\vbox to 0pt{\hbox to 0pt {\vbox{\hsize=7em\noindent Mulambo Silvestre}}}} semper que tardia nostrum vitae moscaribatus.
\vfil
\penalty-10000 
\end

乍一看可能有点丑,但其实很简单。所以...问题是:

1)为什么输出中有右边距和下边距?(我正在使用 bTeX 3.14159265(TeX Live 2019/dev/Debian)并使用 evince 显示 dvi 文件)

2)为什么box255没有集中?

3)为什么当 \arg 值为 4(使用 kern 作为 \correction)时会出现奇怪的输出(创建新页面!!!)。我希望它只丢失了部分内容,与 \arg = 5 或 \arg = 1 的情况相同。

提前致谢。

答案1

ad 1) 使用 dvi 输出时,没有控制页面大小的 TeX 基元。页面大小由 pdf 查看器的配置或使用模糊的 \special 来设置。Dvi 是旧格式,不包含有关页面大小的信息。

ad 2) box255 未垂直居中,因为其中只有一行,并且 \vsize 设置为 10em。然后\setbox255=\vbox to10em{single line}内部处理平滑,box255 的高度为 10em,单行位于顶部(带有underfull \vbox,但未附加有关它的消息)。

广告 3) \vadjust 插入垂直材料:\kern\hsize后跟\vbox。这比给出的要多得多\vsize,因此第一行(没有\vadjust)被处理为第一页(有underfull \vbox),第二行(有大\vadjust)被处理为第二页(有overfull \vbox)。

我不知道你的意图是什么,但我知道事情可以做得更简单。

相关内容