读入手稿并输出

读入手稿并输出

我想将我的源纯 TeX 文件放在同一个纯 TeX 文件的输出中。

我记得曾经遇到过一个宏,它可以将文件的内容放入输出中,但我只\input想到了它。那会是什么呢?

感到沮丧和疲惫后,我决定使用\openin\read\closein宏,但失败了。对于同一个文件,什么都没读出。只有对于文本文件,才会读取第一行,但前提是条件在循环体之后。

但是,当我写这个问题时,这里显示了一个建议,我从中了解到我遗漏了\unless。没问题,但现在一切都被解释。我该如何避免这种情况?

答案1

\input eplain

This is my plain \TeX{} file that contains a listing of itself.

\listing{\jobname.tex}

\bye

\listing命令定义为

\def\listing#1{%
   \par \begingroup
   \@setuplisting
   \setuplistinghook
   \input #1
   \endgroup
}%
\let\setuplistinghook = \relax
{%
  \makeactive\^^L
  \let^^L = \relax
  \gdef\@setuplisting{%
     \uncatcodespecials
     \obeywhitespace
     \makeactive\`
     \makeactive\^^I
     \makeactive\^^L
     \def^^L{\vfill\break}%
     \parskip = 0pt
     \listingfont
  }%
}%

这取决于许多其他定义。如果你的文件不包含奇怪的内容,那么更简单的定义可能会起作用:

\def\listing#1{\par\begingroup
  \parindent=0pt
  \def\do##1{\catcode`##1=12 }\dospecials
  \def\par{\endgraf\leavevmode}%
  \obeyspaces\obeylines\tt
  \input #1 \endgroup}

它不适用于西班牙语的倒置标记。

相关内容