home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fonts 1 / freshfonts1.bin / programs / amiga / pastex / macros / misc / ltugbot.sty < prev    next >
Text File  |  1991-08-13  |  12KB  |  349 lines

  1. %        *****    LTUGBOT.STY    *****             6 Feb 88
  2. %                        last revised     1 Mar 89
  3. %
  4. %    Hacks to pieces of article.sty to support a rudimentary
  5. %    pseudo-TUGboat format.
  6. %
  7. %    Incorporates ideas and elements from these TUGboat authors:
  8. %        Adrian Clark
  9.  
  10.  
  11. %  need some more fonts that aren't activated in lfonts
  12. \font\sevbf=cmbx7
  13.  
  14. %  redo definition of 8pt from latex (lfonts), to install amcsc8 instead
  15. %  of de-magnified amcsc10
  16. %\catcode`\@=11
  17. \def\viiipt{\textfont\z@\egtrm 
  18.   \scriptfont\z@\sixrm \scriptscriptfont\z@\fivrm
  19. \textfont\@ne\egtmi \scriptfont\@ne\sixmi \scriptscriptfont\@ne\fivmi
  20. \textfont\tw@\egtsy \scriptfont\tw@\sixsy \scriptscriptfont\tw@\fivsy
  21. \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  22. \def\prm{\fam\z@\egtrm}%
  23. \def\unboldmath{\everymath{}\everydisplay{}\@nomath
  24. \unboldmath\@boldfalse}\@boldfalse
  25. \def\boldmath{\@subfont\boldmath\unboldmath}%
  26. \def\pit{\fam\itfam\egtit}\textfont\itfam\egtit 
  27.    \scriptfont\itfam\sevit \scriptscriptfont\itfam\sevit 
  28. \def\psl{\@getfont\psl\slfam\@viiipt{cmsl8}}%
  29. \def\pbf{\@getfont\pbf\bffam\@viiipt{cmbx8}}%
  30. \def\ptt{\@getfont\ptt\ttfam\@viiipt{cmtt8}}%
  31. \def\psf{\@getfont\psf\sffam\@viiipt{\@mss\@ptscale8}}%
  32. \def\psc{\@getfont\psc\scfam\@viiipt{amcsc8}}%
  33. \def\ly{\fam\lyfam\egtly}\textfont\lyfam\egtly 
  34.     \scriptfont\lyfam\sixly \scriptscriptfont\lyfam\fivly 
  35. \@setstrut \rm}
  36.  
  37. %  redo definition of 10pt, to install \sevenbf as \*scriptfont for \bffam
  38. \def\xpt{\textfont\z@\tenrm 
  39.   \scriptfont\z@\sevrm \scriptscriptfont\z@\fivrm
  40. \textfont\@ne\tenmi \scriptfont\@ne\sevmi \scriptscriptfont\@ne\fivmi
  41. \textfont\tw@\tensy \scriptfont\tw@\sevsy \scriptscriptfont\tw@\fivsy
  42. \textfont\thr@@\tenex \scriptfont\thr@@\tenex \scriptscriptfont\thr@@\tenex
  43. \def\unboldmath{\everymath{}\everydisplay{}\@nomath\unboldmath
  44.           \textfont\@ne\tenmi 
  45.           \textfont\tw@\tensy \textfont\lyfam\tenly
  46.           \@boldfalse}\@boldfalse
  47. \def\boldmath{\@ifundefined{tenmib}{\global\font\tenmib\@mbi 
  48.    \global\font\tensyb\@mbsy 
  49.    \global\font\tenlyb\@lasyb\relax\@addfontinfo\@xpt
  50.    {\def\boldmath{\everymath{\mit}\everydisplay{\mit}\@prtct\@nomathbold
  51.         \textfont\@ne\tenmib \textfont\tw@\tensyb 
  52.         \textfont\lyfam\tenlyb \@prtct\@boldtrue}}}{}\@xpt\boldmath}%
  53. \def\prm{\fam\z@\tenrm}%
  54. \def\pit{\fam\itfam\tenit}\textfont\itfam\tenit \scriptfont\itfam\sevit
  55.     \scriptscriptfont\itfam\sevit
  56. \def\psl{\fam\slfam\tensl}\textfont\slfam\tensl 
  57.      \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
  58. \def\pbf{\fam\bffam\tenbf}\textfont\bffam\tenbf 
  59.     \scriptfont\bffam\sevbf \scriptscriptfont\bffam\sevbf 
  60. \def\ptt{\fam\ttfam\tentt}\textfont\ttfam\tentt
  61.     \scriptfont\ttfam\tentt \scriptscriptfont\ttfam\tentt
  62. \def\psf{\fam\sffam\tensf}\textfont\sffam\tensf
  63.     \scriptfont\sffam\tensf \scriptscriptfont\sffam\tensf
  64. \def\psc{\@getfont\psc\scfam\@xpt{\@mcsc}}%
  65. \def\ly{\fam\lyfam\tenly}\textfont\lyfam\tenly 
  66.    \scriptfont\lyfam\sevly \scriptscriptfont\lyfam\fivly 
  67. \@setstrut \rm}
  68.  
  69. %\catcode`\@=12
  70.  
  71.  
  72. %  normal TUGboat dimensions
  73.  
  74. \@twosidetrue        % for odd/even asymmetry in running heads
  75. \twocolumn        % two columns
  76. \sloppy            % make those columns justify
  77. %\flushbottom        % but ensure they line up
  78. \columnsep 1.5pc    % space between columns
  79. \columnwidth 18.75pc    % width of each column
  80. \parindent 20pt        % paragraph indent
  81. \parskip 0pt        % no inter-paragraph space
  82. \leftmargini 2em    % unchanged
  83. \leftmarginv .5em    % unchanged
  84. \leftmarginvi .5em    % unchanged
  85. \oddsidemargin 0pt    % was 42pt
  86. \evensidemargin 0pt    % was 84pt
  87. \topmargin -2.5pc    % was 0pt
  88. \headheight 12pt    % height of running head, unchanged
  89. \headsep 20pt        % distance between header and text
  90. \marginparwidth 48pt    % don't use marginal notes
  91. \marginparsep 10pt    %  in TUGboat
  92. \textheight 54pc    % height of text on page
  93. \textwidth 39pc        % total width of a page
  94. %\nofiles
  95.  
  96. \itemsep=2pt plus 2pt minus 1pt
  97.  
  98. \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
  99. \abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip
  100. \abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt}
  101.  
  102. \def\small{\@setsize\small{11pt}\ixpt\@ixpt
  103. \abovedisplayskip=2.5pt plus2.5pt minus1pt\belowdisplayskip=\abovedisplayskip
  104. \abovedisplayshortskip=\z@ plus2pt \belowdisplayshortskip=1pt plus2pt minus1pt}
  105.  
  106. \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
  107. \abovedisplayskip=3pt plus 3pt minus 1pt \belowdisplayskip=\abovedisplayskip
  108. \abovedisplayshortskip=\z@ plus3pt \belowdisplayshortskip=1pt plus3pt minus1pt}
  109.  
  110. \def\@listi{\parsep=1pt plus 1pt minus 1pt
  111. \itemsep=\parsep}
  112. \def\@listii{\leftmargin\leftmarginii
  113.  \labelwidth=\leftmarginii \advance\labelwidth-\labelsep
  114.  \topsep=2pt plus 1pt minus 1pt
  115.  \parsep=1pt plus 1pt minus 1pt
  116.  \itemsep=\parsep}
  117. \def\@listiii{\leftmargin=\leftmarginiii
  118.  \labelwidth=\leftmarginiii \advance\labelwidth-\labelsep
  119.  \topsep=1pt plus 1pt minus 1pt
  120.  \parsep=\z@
  121.  \itemsep=\topsep}
  122. \partopsep=\z@ \topsep=3pt plus1pt minus1pt
  123. \parsep=3pt plus 1pt minus 1pt \itemsep=\parsep
  124.  
  125. %  not ordinarily in LaTeX, but usually wanted in TUGboat
  126.  
  127. \clubpenalty=10000
  128. \widowpenalty=10000
  129.  
  130.  
  131. %  modify some style elements
  132.  
  133. %    Section titles
  134.  
  135. \newif\ifSecTitle     \SecTitlefalse
  136.  
  137. \newskip\Tabskss
  138. \Tabskss=0pt plus 1000pt minus 1000pt
  139. \newskip\AboveTitleSkip  \AboveTitleSkip=12pt   % 10pt plus 2pt minus 2pt
  140. \newskip\BelowTitleSkip  \BelowTitleSkip=8pt    % plus 1pt minus 1pt
  141.  
  142. \font \sixteenssb=cmssbx10 scaled \magstep3
  143. \let\titlefont=\sixteenssb
  144. \newbox\T@stBox
  145. \setbox\T@stBox=\hbox{\titlefont O}
  146. \newdimen\stfontheight          \stfontheight=\ht\T@stBox
  147. \newdimen\strulethickness       \strulethickness=.6pt
  148. \newcount\n@stnum               \n@stnum=0
  149. \def \sthrule{\hrule height\strulethickness depth 0pt }
  150. \def \stvrule{\vrule height 2\stfontheight depth\stfontheight
  151.                         width\strulethickness }
  152. \def \sectitlebox #1<{\vbox{\sthrule
  153.         \hbox to \hsize{\stvrule\hfil #1\hfil\vrule width\strulethickness }%
  154.         \sthrule }}
  155.  
  156. \def \secsep{\vskip 5\baselineskip}
  157.  
  158. \def \sectitle#1{\SecTitletrue \def\s@ctitle{#1}}
  159.  
  160. \def \@sectitle#1{\par\penalty-1000\secsep
  161.         \n@stnum=0
  162.         {\def\\{ }\setbox\T@stBox=\hbox{\titlefont#1}%
  163.         \ifdim\wd\T@stBox < \hsize \def\result{\unhbox\T@stBox}%
  164.         \else \def\\{\cr\noalign{\global\advance\n@stnum by 1 }}%
  165.                 \setbox\T@stBox=\vbox{\titlefont
  166.                         \halign{\hfil##\hfil\cr#1\crcr}}%
  167.                 \def\result{\vbox{\unvbox\T@stBox}}\fi
  168.         \ifnum\n@stnum=1 \def\stvrule{\vrule height 3.5\stfontheight
  169.                         depth\stfontheight width\strulethickness }\fi
  170.         \centerline{\sectitlebox \titlefont\result<}}%
  171.         \nobreak \vskip\baselineskip }
  172.  
  173. \newskip\AboveTitleSkip  \AboveTitleSkip=12pt
  174. \newskip\BelowTitleSkip  \BelowTitleSkip=8pt
  175. \newdimen\PreTitleDrop     \PreTitleDrop=0pt
  176.  
  177. \def\maketitle{\par
  178.  \ifdim\PreTitleDrop > 0pt
  179.    \loop
  180.    \ifdim \PreTitleDrop > \textheight
  181.      \vbox{}\vfil\eject
  182.      \advance\PreTitleDrop by -\textheight
  183.    \repeat
  184.    \vbox to \PreTitleDrop{}
  185.    \PreTitleDrop=0pt
  186.  \fi
  187.  \begingroup
  188.  \def\thefootnote{\fnsymbol{footnote}}
  189.  \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}} 
  190.  \@maketitle
  191.  \@thanks
  192.  \endgroup
  193.  \setcounter{footnote}{0}
  194.  \let\maketitle\relax
  195.  \let\@maketitle\relax
  196.  \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
  197.  
  198. % modified \@maketitle to prevent 2 occurrences of \@thanks in footnote
  199. % rw 12 Feb 89
  200. %\def\@maketitle{\ifSecTitle \SecTitlefalse
  201. %        \else \vskip\AboveTitleSkip \fi
  202. %    {\hyphenpenalty=10000 \interlinepenalty=10000
  203. %    \setbox0=\hbox{\ignorespaces\@author}%
  204.  
  205. % rule added above title to conform to updated (89) style
  206. % bb 18 Feb 89
  207. \newdimen\strulethickness       \strulethickness=.6pt
  208. \def\emptythanks#1{}
  209. \def\@maketitle{\ifSecTitle \SecTitlefalse
  210.         \@sectitle{\s@ctitle}%
  211.         \else \vskip\AboveTitleSkip
  212.         \kern\topskip
  213.         \hrule height\z@ depth\z@ width 10pt
  214.         \kern-\topskip
  215.         \kern-\strulethickness
  216.         \hrule height\strulethickness depth\z@
  217.         \kern\medskipamount
  218.     \fi
  219.     {\hyphenpenalty=10000 \interlinepenalty=10000
  220.     \setbox0=\hbox{\let\thanks\emptythanks\ignorespaces\@author}%
  221.     {\noindent\bf\ignorespaces\@title\endgraf}%
  222.     \ifdim \wd0 < 5pt        % omit if author is null
  223.     \else \nobreak \vskip 4p