Voilà celle de plain TeX avec mes annotations et une petite simplification:
% Notre OTR est plainoutput\output{\plainoutput}% La commande cruciale est ici shipout qui écrit% une page (une vbox) dans le fichier de sortie\def\plainoutput{%\shipout\vbox{%\makeheadline% On prépare le haut,\pagebody% le corps,\makefootline% et le pied}%\advancepageno% Màj compteur de page}% Préparation du corps de la page,% approche érotique de pagecontents\def\pagebody{%\vbox to\vsize{%\boxmaxdepth\maxdepth\pagecontents}}% Prépration du haut de page,% \z@ est un autre nom de zéro\def\makeheadline{%\vbox to\z@{%\vskip-22.5\p@ % Recule de 22.5 pt dans le blanc de page\line{%\vbox to8.5\p@{}% Calibre de 8,5 pt de haut\the\headline% La headline (enfin)!}%\vss% Padding}\nointerlineskip% Pas d'extra-interligne*}% Préparation du pied de page,% je zappe un peu les détails\def\makefootline{%\baselineskip24\p@
\lineskiplimit\z@
\line{\the\footline}%}% Alors voilà,% c'est finalement cette routine la plus importante,% elle prépare le contenu de la page\def\pagecontents{%% Ici \topins est une boîte verticale contenant% les inserts à placer au haut de la page% comme une table ou une image p.ex.%% Si cette boîte n'est pas vide,% on copie son contenu\ifvoid\topins\else\unvbox\topins\fi% Mainentant on ajoute le contenu% de la main vertical list% \dimen@=\dimen0 (registre de dimension 0)% \@cclv = \box255 (registre de boîte 255)\dimen@=\dp\@cclv
\unvbox\@cclv
% Enfin, on regarde si on a des notes de bas% de page, un peu pareil que pour topins% mais on décore avec une footnoterule.\ifvoid\footins\else% footnote info is present\vskip\skip\footins\footnoterule\unvbox\footins\fi% Si un certain paramètre est actif,% on tasse tout notre beau monde vers le haut…\ifr@ggedbottom \kern-\dimen@ \vfil\fi}% Et voilà la footnoterule\def\footnoterule{%\kern-3\p@
\hrule width 2truein \kern 2.6\p@
}
*: Dans l'empilement habituel des boîtes verticales il y a un extra-interligne (les cas typique est celui des lignes d'un paragraphe).
[^] # Re: troff
Posté par Michaël (site web personnel) . En réponse au journal Exemple d'interface en ligne de commande. Évalué à 4.
Voilà celle de plain TeX avec mes annotations et une petite simplification:
*: Dans l'empilement habituel des boîtes verticales il y a un extra-interligne (les cas typique est celui des lignes d'un paragraphe).