% /////////////////////////////////////////////////////////////// % // // % // Macros for the "New Horse's Mouth" newsletter ... // % // ------------------------------------------------- // % // M.J. Elphick Last modified: 16.3.1993 // % // // % /////////////////////////////////////////////////////////////// \let\manfnt=\tenrm %% Inserted to avoid warnings ... %% \let\manfntsl=\tenrm %% ... \manfnt and \manfntsl not used here %% \let\nobibtex = t \input eplain %% Read the EPLAIN macros (no BiBTeX stuff) %% \newif\ifpress %% Used to control "overfull" bars ... %% \pressfalse % +--------------------------------------------+ % | Parameters for global formatting ... | % +--------------------------------------------+ \parindent = 0pt %% No paragraph indentation ... %% \parskip = 5pt plus 1pt %% Increase paragraph skip ... %% \topskip = 14pt %% Increase top-skip ... %% \pretolerance = 1000 %% Increase tolerances ... %% \tolerance = 1000 %% for paragraph spacing ... %% \hbadness = 2000 %% Allow more "badness" before reporting %% \hfuzz = 2pt %% Allow 2pt extra in paragraphing ... %% % \emergencystretch = 2pt %% Try more "elasticity" in setting ... %% \input psfont.map %% Set up mappings for PostScript font names %% \font\ttlfnt = \PBI@22pt %% Font for main title ... %% \font\newfnt = \ZCMI@24pt %% Font for 'New' ... %% \font\idnfnt = \PO@12pt %% Font for no & date ... %% \font\hdrfnt = \PO@12pt %% Font for headers ... %% \font\bf = \PB@10pt %% Font for Bold items ... %% \font\rm = \PR@10pt %% Font for body text ... %% \font\it = \PO@10pt %% Font for italics ... %% \font\tt = \CB@10pt %% Font for 'type' text ... %% \font\tentt = \CB@10pt %% Font for 'verbatim' ... %% \font\snsfnt = \HO@10pt %% Sans-serif font ... %% \font\bigfnt = \HBO@36pt %% 'Big' font ... %% % \loggingall \\\\\ Commented out - use for diagnostics ///// % +--------------------------------------------+ % | Set up definitions for frequent use ... | % +--------------------------------------------+ \def\CS{Computing Science} \def\CSD{Department of Computing Science} \def\CSV{Computing Service} \def\CLB{Computing Laboratory} \def\EDITORS{Michael Elphick \& Trevor Kirby} \def\MAILADDRESS{{\tt M.J.Elphick@ncl.ac.uk, Trevor.Kirby@ncl.ac.uk}} \def\THM{The Horse's Mouth} \def\NHM{The New Horse's Mouth} \def\TA{Tom Anderson} \def\EDB{Elizabeth Barraclough} \def\MJE{Michael Elphick} \def\TGK{Trevor Kirby} \def\JAL{John Law} \def\BR{Brian Randell} \def\HIS{Ian Scoins} \def\CRS{Dick Snow} \def\HW{Harry Whitfield} % +--------------------------------------------+ % | | % | Define some useful macros ... | % | | % +--------------------------------------------+ % +------------------------------------------+ % | Set material (#2) "ragged right" | % | in a paragraph of width #1 ... | % +------------------------------------------+ \long\def\para#1#2{% {\vtop{\hsize = #1% \lineskip = 1pt \lineskiplimit = 1pt % \raggedright\noindent #2 \strut} } } % \looseness = 3 % % \noindent #2 \strut} } } % +------------------------------------------+ % | Set material (#2) within a framed | % | box, with a label #1 at the top | % +------------------------------------------+ \long\def\lbox#1#2{% \hbox{% \vrule% \vbox{% \vtop{\dimen1 = \hsize% \advance\dimen1 by -2em% \advance\dimen1 by -2pt% \line{\hrulefill\hphantom{\quad\hdrfnt #1\quad}\hrulefill}% \kern -0.75\baselineskip% \line{\hrulefill{\quad\hdrfnt #1\quad}\hrulefill}\kern 1em% \line{\quad\para{\dimen1}{#2}\quad}\kern 1em% \line{\hrulefill}% }% }% \vrule}% } % +------------------------------------------+ % | Set material (#1) within horizontal | % | "stripes to full width (\hsize) | % +------------------------------------------+ \def\stripes#1{\vbox{% \kern -0.75\baselineskip% \line{\hrulefill\hphantom{\quad\hdrfnt #1\quad}\hrulefill}% \kern -0.75\baselineskip% \line{\hrulefill\hphantom{\quad\hdrfnt #1\quad}\hrulefill}% \kern -0.75\baselineskip% \line{\hrulefill\hphantom{\quad\hdrfnt #1\quad}\hrulefill}% \kern -0.75\baselineskip% \line{\hrulefill{\quad\hdrfnt #1\quad}\hrulefill} }} % +------------------------------------------+ % | Set text (#1) as a "corner" item, | % | with hanging indents for #2 lines | % +------------------------------------------+ \def\cornerbox#1#2{\setbox1=\hbox{\vbox{\hbox{#1}}} \dp1=0pt % \def\cornerbox#1#2{\setbox1=\hbox{#1} \dp1=0pt \par\hangindent\wd1 \hangafter-#2 \noindent \hskip-\wd1 \box1 \ignorespaces} \def\ENDPAGE{\vfill\eject} \def\BLANKPAGE{\vfill\eject\null\vfill\eject} % +--------------------------------------------+ % | | % | The title and item formats ... | % | | % +--------------------------------------------+ \def\HORSE#1{ % \def\ISSUE{#1} \setbox1=\hbox{% \vtop{\hbox{\ttlfnt THE {\newfnt New}} % \ttlfnt\smallskip % \hbox{HORSE'S\quad} % \medskip % \hbox{MOUTH}}} % \dp1=0pt \par\hangindent\wd1 \hangafter-7 \noindent \hskip-\wd1 \raise0pt\copy1 \ignorespaces {\idnfnt Number #1 \hfill \today\break} { \ \hfill\break \ \hfill\break} {\hdrfnt An occasional \& informal news\-letter for staff of the \CSD\ and the \CSV.} \medskip \hrule width \hsize height 1.2pt \medskip \line{\kern\wd1 \hdrfnt Edited by: \hfil \EDITORS } \bigskip\bigskip \ifpress \overfullrule = 0pt \fi \rm } % +------------------------------------------+ % | The editorial matter, set with | % | dots ... | % +------------------------------------------+ \def\leaderfill{\leaders\hbox to 1em{\hss.\hss}\hfill} \def\EDITORIAL#1{\bigskip{\hdrfnt #1\leaderfill\break}} % +------------------------------------------+ % | Standard item format, with the | % | heading set in "stripes" ... | % +------------------------------------------+ \def\ITEM#1{\bigskip\bigskip\stripes{#1}\medskip\nobreak\ignorespaces} % +------------------------------------------+ % | Another item format, with the | % | text set in a labelled frame ... | % +------------------------------------------+ \long\def\BOXITEM#1#2{\bigskip\bigskip\lbox{#1}{\ignorespaces #2}} % +------------------------------------------+ % | A simple rule to separate items? | % +------------------------------------------+ \def\RULE{\medskip\hrule\medskip} % +--------------------------------------------+ % | Define headers and footers ... | % +--------------------------------------------+ \advance\voffset by \baselineskip \advance\vsize by -\baselineskip \def\makeheadline{ \baselineskip = 5pt% \lineskip = 5pt% \vbox to 0pt{\vss\noindent % \idnfnt \ifnum\pageno > 1 \ifodd\pageno\NHM\ (Number \ISSUE)\hfil\folio\else % \folio\hfil\NHM\ (Number \ISSUE)\fi% \else\fi % \break \hrule height 1.2pt} } \def\makefootline{\lineskip = 20pt \vbox{\noindent \hrule\break \idnfnt Complaints \& contributions to: \hfil \MAILADDRESS} }