Heading Macros

plain TeX


The following code defines four levels of headings. The bold math macro is necessary for this macro to function properly. Mini-examples are given before each macro.


%============================================================================================
% necessary definitions
%--------------------------------------------------------------------------------------------
\newdimen\oldparindent\oldparindent=1.5em
\parindent=1.5em
%--------------------------------------------------------------------------------------------
\let\lasttitle=N
%============================================================================================
% form: \titlea{...}{...}       
%   do: \titlea { section number}  { section title }
%   example: \titlea{1}{Introduction}
%   result: skip two lines then flush left in bold "1.  Introduction." then skip a line
%--------------------------------------------------------------------------------------------
 \def\titlea#1#2{\if N\lasttitle\else\vskip-24pt
     \fi
     \vskip24pt plus 4pt minus4pt
     \bgroup
\textfont0=\tenbf \scriptfont0=\sevenbf \scriptscriptfont0=\fivebf
\textfont1=\tenmb \scriptfont1=\sevenmb \scriptscriptfont1=\sixmb
     \lineskip=0pt
     \pretolerance=10000
     \noindent
     \bf
     \rightskip 0pt plus 6em
     \setbox0=\vbox{\vskip23pt\def\fonote##1{}%
%     \noindent
     \if!#1!\ignorespaces#2
     \else\setbox0=\hbox{\ignorespaces#1\unskip.\enspace}%
     \hangindent=\wd0
     \hangafter=1\box0\ignorespaces#2\fi
     \vskip10pt}%
     \dimen0=\pagetotal\advance\dimen0 by-\pageshrink
     \ifdim\dimen0<\pagegoal
     \dimen0=\ht0\advance\dimen0 by\dp0\advance\dimen0 by
     3\normalbaselineskip
     \advance\dimen0 by\pagetotal
     \ifdim\dimen0>\pagegoal\eject\fi\fi
     \noindent
     \if!#1!\ignorespaces#2
     \else\setbox0=\hbox{\ignorespaces#1\unskip.\enspace}%
     \hangindent=\wd0
     \hangafter=1\box0\ignorespaces#2\fi
     \vskip12pt plus4pt minus4pt\egroup
     \nobreak
     \parindent=0pt
     \everypar={\global\parindent=\oldparindent
     \global\let\lasttitle=N\global\everypar={}}%
     \global\let\lasttitle=A%
     \ignorespaces}
%============================================================================================
% form: \titleb{...}{...}       
%   do: \titleb { section number}  { section title }
%   example: \titleb{1.1}{Title b}
%   result: skip two lines then flush left in italics "1.1.  Title b." then skip a line
%--------------------------------------------------------------------------------------------
 \def\titleb#1#2{\if N\lasttitle\else\vskip-24pt
     \fi
     \vskip24pt plus 4pt minus4pt
     \bgroup
     \it
     \lineskip=0pt
     \pretolerance=10000
     \noindent
     \rightskip 0pt plus 6em
     \setbox0=\vbox{\vskip23pt\def\fonote##1{}%
     \noindent
     \if!#1!\ignorespaces#2
     \else\setbox0=\hbox{\ignorespaces#1\unskip.\enspace}%
     %\hangindent=\wd0\hangafter=1
     \box0%
     \ignorespaces#2\fi
     \vskip6pt}%
     \dimen0=\pagetotal\advance\dimen0 by-\pageshrink
     \ifdim\dimen0<\pagegoal
     \dimen0=\ht0\advance\dimen0 by\dp0\advance\dimen0 by
     2\normalbaselineskip
     \advance\dimen0 by\pagetotal
     \ifdim\dimen0>\pagegoal\eject\fi\fi
     \noindent
     \if!#1!\ignorespaces#2
     \else\setbox0=\hbox{\ignorespaces#1\unskip.\enspace}%
     %\hangindent=\wd0\hangafter=1
     \box0%
     \ignorespaces#2\fi
     \vskip12pt plus4pt minus4pt\egroup
     \nobreak
     \parindent=0pt
     \everypar={\global\parindent=\oldparindent
     \global\let\lasttitle=N\global\everypar={}}%
     \global\let\lasttitle=B%
     \ignorespaces}
%============================================================================================
% form: \titlec{...}       
%   do: \titlec { Title c }
%   example: \titlec{Title c}
%   result: skip two lines then flush left in italics "Title c."
%--------------------------------------------------------------------------------------------
 \def\titlec#1{\if N\lasttitle\else\vskip-\baselineskip
     \fi
     \vskip12pt plus 4pt minus 4pt
     \bgroup
     \it
     \noindent
     \ignorespaces#1\unskip.\ \egroup
     \ignorespaces}
 \def\titlecb#1{\if N\lasttitle\else\vskip-\baselineskip
     \fi
     \vskip12pt plus 4pt minus 4pt
     \bgroup
     \bf
     \noindent
     \ignorespaces#1\unskip.\ \egroup
     \ignorespaces}
%============================================================================================
% form: \titled{...}       
%   do: \titled { Title d }
%   example: \titlec{Title d}
%   result: skip two lines then flush left in bold "Title d."
%--------------------------------------------------------------------------------------------
 \def\titled#1{\if N\lasttitle\removelastskip\vskip\baselineskip
     \fi
     \bgroup
     \noindent
\textfont0=\tenbf \scriptfont0=\sevenbf \scriptscriptfont0=\fivebf
\textfont1=\tenmb \scriptfont1=\sevenmb \scriptscriptfont1=\sixmb
     \tenbf
     \ignorespaces#1\unskip.\ \egroup
     \ignorespaces}
%=================================================================

Blackboard Bold Macros / Proclaiming Macros

MESmith Spinneret / TeXSpot / smith@math.fsu.edu


FSU Math Home Page


Last modified: 14 August 1995