使 INITEX 产生可打印输出的最短代码

使 INITEX 产生可打印输出的最短代码

经过处理后,最短的字符序列是什么,可以产生可打印的输出页面INITEX?这意味着没有plain.tex预加载之类的格式,并且输出正宽度和高度。到目前为止,我能做的最好的是以下 19 个字符:

\font\@=cmr9\@A\end

是否有任何可排版的材料不需要加载字体并且可以自行出现在页面顶部?

答案1

这是 19 个字符,没有字体

\hrule width9in\end

或者,如果你被允许滚动浏览错误,请保存 2 个字符(17)

\hrule width9\end

如果你滚动浏览缺失单位错误,你就会得到 9pt 规则。

这与您的输出相同,但少了一个字符输入(18)

\font\@cmr9\@A\end

更改字体后,字符数减少到 17 个

\font\@pxr\@A\end

texlive 中有几种三字母字体,但没有两字母或单字母字体,但如果允许重命名(任何)字体,z.tfm则数量会降至 15

\font\@z\@A\end

或者 14,字体名称长度为 0(tex 很满意,但你的 dvi 驱动程序可能不太满意)

cp /usr/local/texlive/2019/texmf-dist/fonts/tfm/public/cm/cmr10.tfm .tfm
cp /usr/local/texlive/2019/texmf-dist/fonts/pk/ljfour/public/cm/dpi600/cmr10.pk .pk

然后你可以使用(14)

\font\@\@A\end

在评论中,OP 询问

\hrule1\end

它较短但不会产生可见的输出,而是两页空白页。

生成的框结构为:

Completed box being shipped out [0]
\vbox(0.0+0.0)x0.0
.\glue(\topskip) 0.0
.\rule(0.4+0.0)x*


Completed box being shipped out [0]
\vbox(0.0+0.0)x0.0
.\glue(\topskip) 0.0
.\hbox(0.0+0.0)x0.0
..\hbox(0.0+0.0)x0.0
..\penalty 10000
..\glue(\parfillskip) 0.0
..\glue(\rightskip) 0.0
.\hbox(0.0+0.0)x0.0
.\glue 0.0 plus 1.0fill

 )

\vsize是 0pt,所以或多或少会采取任何可行的断点,在这里第一页上你得到具有非零高度但零宽度的 hrule,因为hsize是零,然后第二页有由文本生成的段落1,只是它被设置为 nullfont,所以没有任何内容被排版。

相关内容