From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 macros/plain/contrib/tugboat/tugproc.sty | 363 +++++++++++++++++++++++++++++++
 1 file changed, 363 insertions(+)
 create mode 100644 macros/plain/contrib/tugboat/tugproc.sty

(limited to 'macros/plain/contrib/tugboat/tugproc.sty')

diff --git a/macros/plain/contrib/tugboat/tugproc.sty b/macros/plain/contrib/tugboat/tugproc.sty
new file mode 100644
index 0000000000..765151f2cb
--- /dev/null
+++ b/macros/plain/contrib/tugboat/tugproc.sty
@@ -0,0 +1,363 @@
+%% @texfile{
+%%     filename="tugproc.sty",
+%%     version    = "see below \fileversion"
+%%     date       = "see below \filedate",
+%%     filetype   = "was plain TeX macros for TUG Proceedings; now unused",
+%%     copyright  = "Copyright 1990-2016 TeX Users Group.
+%%                   Unlimited copying and redistribution of this file
+%%                   are permitted as long as this file is not
+%%                   modified.  Modifications (and redistribution of
+%%                   modified versions) are also permitted, but only if
+%%                   the resulting file is renamed."
+%%     email      = "TUGboat@tug.org",
+%%     codetable  = "ISO/ASCII",
+%%     keywords   = "tex users group, tugboat, proceedings, plain tex",
+%%     abstract   = "This file contains the plain-based macros
+%%            that were used in proceedings issues of TUGboat, the
+%%            Communications of the TeX Users Group.  Now unused."
+%%     }
+%% *********************************************************
+%%
+%%  Use of this file also requires the following files:
+%%      TUGBOAT.STY (version 1.09+)
+%%      TUGBOAT.CMN (version 1.08+) (loaded by TUGBOAT.STY)
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fileversion{v1.22}
+\def\filedate{26 Sep 16}
+
+\message{File `TUGPROC.STY' \fileversion \space\space <\filedate>}
+
+% initialize year/issue-specific elements for standalone use
+\def\mtgyear{1994}
+\def\volyr{1994}
+\def\volno{15}
+\def\issno{3}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input tugboat.sty
+
+\savecat\@ \makeletter\@
+\ifx\tugprocloaded@\undefined \let\tugprocloaded@\end
+\else \restorecat\@ \xdef\startingpage{\number\pageno}\endinput \fi
+
+\newdimen\tubpagelgt
+\tubpagelgt=\pagelgt \advance\tubpagelgt 1pc  % for running feet
+
+% fonts
+
+\font\twelverm=cmr10 scaled 1200
+\font\twelvebf=cmbx10 scaled 1200
+\font\fourteenrm=cmr10 scaled 1440
+\font\fourteenit=cmti10 scaled 1440
+\font\fourteensl=cmsl10 scaled 1440
+
+\def\twelvepoint{%
+  \normalbaselineskip=14pt
+  \def\rm{\fam\z@\twelverm}%
+  \textfont\z@=\twelverm
+  \def\bf{\fam\bffam\twelvebf}%
+  \textfont\bffam=\twelvebf
+  \normalbaselines \rm}
+
+\def\fourteenpoint{%
+  \normalbaselineskip=18pt
+  \def\rm{\fam\z@\fourteenrm}%
+  \textfont\z@=\fourteenrm
+  \def\it{\fam\itfam\fourteenit}%
+  \textfont\itfam=\fourteenit
+  \def\sl{\fam\slfam\fourteensl}%
+  \textfont\slfam=\fourteensl
+  \normalbaselines \rm}
+
+\def\AUTHORfont{\twelvepoint\rm}
+\def\HEADfont{\twelvepoint\bf}
+\def\TITLEfont{\fourteenpoint\rm}
+\def\addressfont{\ninepoint\rm}
+\def\netaddrfont{\ninepoint\tt}
+
+\def\br{\unskip\hfil\break}             % version for titles
+\def\degrade{\def\br{\unskip\space\ignorespaces}%
+             \let\\\br} % in running heads.
+
+% running heads & feet
+%\newcount\startingpage % Number of first page of article
+\newif\ifpreprint  \preprinttrue
+\def\preprint{\preprinttrue
+   \ifExtrAbs\breaklines\fi}       % (*)
+\newif\ifproof \prooffalse \let\filename\relax
+\def\Proof{\prooftrue\immediate\write16{File name?}
+   \immediate\read16 to\filename}
+\def\stamp{\ifproof{\tt \filename}\quad\Now\else\space\fi}
+\let\midrtitle=\null
+\def\rtitlex{%
+   \ifodd\pageno\degrade\rhtitle\else\rhauthor\fi}
+\def\rtitle{%
+   \hbox to \pagewd{%
+      \tenpoint
+      \makestrut[10pt;\z@]%
+      \ifnum\the\pageno=\startingpage\hfill\stamp\else
+      \ifodd\pageno
+         \stamp\hfill\rtitlex
+      \else
+         \rtitlex\hfill\stamp
+      \fi\fi
+      }%
+   }
+
+\ifx\startingpage\undefined \def\startingpage{1001}\fi
+\pageno=\startingpage
+\def\rfoot{%
+   \hbox to \pagewd{%
+      \tenpoint
+      \makestrut[\z@;0.5pc]%
+      \ifpreprint
+         \ifodd\pageno
+            \pfoottext\hfil\Now\hfil$^.$\number\pageno
+         \else
+            \number\pageno$^.$\hfil\Now\hfil\pfoottext
+         \fi
+      \else
+         \ifodd\pageno
+            \rfoottext\hfil\number\pageno
+         \else
+            \number\pageno\hfil\rfoottext
+         \fi
+      \fi
+      }%
+   }
+
+\v@lx                           % normalize publication info for footer
+\def\pfoottext{{\smc Preprint}: \mtgyear{} \TUG{} Annual Meeting}
+\def\rfoottext{\tenrm\TUB, \volx\Dash
+   {Proceedings of the \volyr{} Annual Meeting}}
+
+% midpage redone to align running feet.
+\def\midpage#1{%
+  \vbox{
+    \basezero
+    \hrule height\z@ depth\z@ width\p@
+    \ifTrimmarks
+      \vskip-1in                % default offset for laser printers
+                                % this puts top trim at edge of paper
+      \vbox to \trimlgt \bgroup
+      \topregister
+      \vskip \headmargin
+    \else
+      \vskip-\rheadlgt           % this puts runhead above default offset
+    \fi
+    \dlap{\vbox to\tubpagelgt{\vfil
+        \ifnum\xcol=\numcols \runfoot \else \vbox to \rfootlgt{}\fi}}
+    \vbox to \pagelgt{
+      \ifnum\xcol=\numcols \runhead \else \vbox to \rheadlgt{}\fi
+      \ifThisIsFirstPage \firsthead \fi
+      \hbox to \pagewd{#1}       % \vsize applied in \pagebody
+      \ifThisIsFirstPage \firstfoot \fi
+      \vfil                      % if no depth, avoid underfull box
+%      \ifnum\xcol=\numcols \runfoot \else \vbox to \rfootlgt{}\fi
+      }
+    \ifTrimmarks \vfill \botregister \egroup \fi
+    }}
+
+% ***************************************************
+% Bibliography
+\def\Hang{1em}
+\def\entry #1{\noindent\frenchspacing\hangindent\Hang #1}
+
+% Appendix
+\def\appendix #1\endappendix{\newpage\onecol\centerline{\HEADfont #1}}
+
+% Box for deadlines:
+\newbox\textbox         % \twocolcolwd=18.75pc [cf. tugboat.sty]
+\long\def\boxit #1{\vbox{\hrule\hbox{\vrule\kern3pt
+   \vbox{\kern3pt\vskip 4pt#1\vskip 4pt\kern3pt}\kern3pt\vrule}\hrule}}
+\long\def\boxedlist #1{$$\boxit{\setbox\textbox=\vbox{\hsize 18pc
+   \strut{#1}\strut}\box\textbox}$$}  % TeXbook, 94 & 223 (exer 21.3)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% top matter
+\def\endtitle{%
+  \global\toks@=\expandafter{\the\@argument}%
+  \endgroup
+  \edef\thetitle{\ignorespaces\the\toks@\unskip}%
+  \let\rhtitle\thetitle
+  }
+        % If your title is too long for the running head,
+        % use this to construct a shorter version:
+\def\shorttitle{%
+  \begingroup
+  \def\CurrentTag{shorttitle}%
+  \@defaultoptions
+  \@savingargumenttrue
+  \@checkoptions}
+
+\def\endshorttitle{%
+  \global\toks@=\expandafter{\the\@argument}%
+  \endgroup
+  \edef\rhtitle{\ignorespaces\the\toks@\unskip}%
+  }
+
+\def\rhauthor{\@defaultauthorlist}
+        % Use the following for running heads if more than
+        % one author or author's name is too long to fit:
+\def\shortauthor{%
+  \begingroup
+  \def\CurrentTag{shortauthor}%
+  \@defaultoptions
+  \@savingargumenttrue
+  \@checkoptions}
+
+\def\endshortauthor{%
+  \global\toks@=\expandafter{\the\@argument}%
+  \endgroup
+  \edef\rhauthor{\ignorespaces\the\toks@\unskip}%
+  }
+
+%\long\def\Abstract #1\endAbstract{\long\def\@abstract{#1}}
+\def\abstract{\@abstract[\longargument]}
+\def\@abstract{%
+  \begingroup
+  \def\CurrentTag{abstract}%
+  \@defaultoptions
+  \@savingargumenttrue
+  \@checkoptions}
+
+\def\endabstract{%
+  \global\toks@=\expandafter{\the\@argument}%
+  \endgroup
+  \edef\theabstract{\ignorespaces\the\toks@\unskip}%
+  }
+
+\newif\ifExtrAbs \ExtrAbsfalse % Extract abstract from paper
+\def\breaklines{\begingroup\catcode`\^^M=\active\newlinechar=`\^^M}
+\def\endbreaklines{\endgroup}
+
+\def\prefnote{\@prefnote[\longargument]}
+\def\@prefnote{%
+  \begingroup
+  \def\CurrentTag{prefnote}%
+  \@defaultoptions
+  \@savingargumenttrue
+  \@checkoptions}
+
+\def\endprefnote{%
+  \global\toks@=\expandafter{\the\@argument}%
+  \endgroup
+  \edef\theprefnote{\ignorespaces\the\toks@\unskip}%
+  }
+
+\let\theprefnote\relax
+
+\def\@defaultsignature{%
+  \count@=0
+  \loop
+  \ifnum\count@<\authornumber
+    \vskip20pt
+    \advance\count@ by \@ne
+    \noindent{\AUTHORfont\theauthor{\number\count@}}\endgraf
+    \noindent{\addressfont\theaddress{\number\count@}}\endgraf
+    \noindent{\netaddrfont\thenetaddress{\number\count@}}\endgraf
+  \repeat
+  }
+
+\newbox\startbox % \newdimen\startheight
+\def\article{% \ifExtrAbs\endbreaklines\fi   % (*)
+   \setbox\startbox=\hbox to\colwd
+   {\hbox to\pagewd{\vbox{
+      \hsize\pagewd\raggedright\advance\rightskip0pt plus 1fil\tenpoint\rm
+   \let\\\break
+   \noindent{\TITLEfont\thetitle\endgraf}%
+   \@defaultsignature
+   \ifx\theprefnote\relax\else
+     \vskip 20pt
+     \hbox to \pagewd{\hfil\vbox{\hsize 0.6\pagewd
+       \rightskip\z@skip \parfillskip0pt plus 1fil \spaceskip\z@skip
+       \noindent{\bf Author's Note: }\ignorespaces\theprefnote\par}\hfil}
+     \fi
+   \vskip 20pt
+   \hbox to \pagewd{\hfil\vbox{\hsize 0.75\pagewd
+     \rightskip\z@skip \parfillskip0pt plus 1fil \spaceskip\z@skip
+     \centerline{\bf Abstract}\vskip 5pt
+     \noindent\theabstract\par}\hfil}
+     \vskip 1pc}}\hss}
+   \twocolfigure\box\startbox\endfigure
+   \ifExtrAbs                                    % (*)
+      \immediate\write\titleabs{\string\TITLE\string\bf\space
+          \rhauthor:\ \string\rm \rhtitle;;}
+      \immediate\write\titleabs{\space}
+      \immediate\write\titleabs{\string\ABS\string\bf\space
+            Abstract.\ \theabstract;;}
+      \immediate\write\titleabs{\space}
+      \immediate\write\titleabs{\string\endinput}
+      \immediate\closeout\titleabs  \endbreaklines
+   \fi                                           % (*)
+}
+
+% \head  (This writes over a definition in tugboat.sty)
+\def\@domainhead{%
+  \if@removeprewhite\else\vskip\baselineskip\fi
+  \noindent{\HEADfont\baselineskip15pt % larger type than usual
+    \raggedright\bf\ignorespaces\the\@argument\unskip\endgraf}%
+  \if@removepostwhite          %  usually we want the white space
+  \else\kern0.5\baselineskip\fi
+  \nobreak
+  \gdef\@next{%
+    \if@allowindent\def\@next{}%  usually we don't want to indent here
+    \else\def\@next{\DeleteOptionalSpacesandPars{\noindent\ignorespaces}}\fi
+    \@next
+    }%
+  }
+
+\restorecat\@
+
+% \Trimmarkstrue                % for final copy
+% \overfullrule=0pt
+
+\endinput
+
+%% *********************************************************
+
+Change History
+--------------
+1.22   update header; remark that this is no longer used; no changes to code.
+
+<interim versions skipped>
+
+1.11   changed TUG address in header to Santa Barbara
+       parameterized dates, etc., in running footers
+       initialized them at top of file instead of in footer text
+
+1.10   changed \tenrm to \tenpoint in definitions of \rtitle and \rfoot
+         so that \sl will be properly defined if used in that context
+
+1.09   removed \smallcode definition; it is now in tugboat.sty
+       increased width of abstract from 60-75% of text width
+       added standard headers, prepared for archive installation
+
+1.08   changed \start to \startingpage
+       added definition of \startingpage at top of file so running heads
+         will be empty on first page of article
+
+1.07   removed \Pageno
+       added check for previous input
+       altered \\ in running heads
+
+Previous:
+
+%%% TUGPROC.sty 11-mar-90 (*) 15-mar-90 30-mar-90 10-apr-90
+%%%   26-jun-90 [changed running feet, page numbers, \start]
+%%%   28-jun-90 [added \stamp, \ifproof] 29-jun-90 [\Proof]
+%%% TUGPROC.sty  03-feb-90 (renamed 13-feb-90) 20-feb-90
+%%%
+%%% Supplementary header file for TUG Proceedings volume
+%%% for use with plain TeX.  No longer used.
+%%%
+%%% (*) This version writes the title and abstract into
+%%% a file, for use in preparing the Title-Abstract-Bio
+%%% section in the program. Author-Title and Abstract are
+%%% written into a file as one-liners; if these lines are
+%%% too long, they should be reformatted manually before
+%%% the file is \input.
-- 
cgit v1.2.3

