strayman.dtx: Format part headings correctly in article mode.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 4 Sep 2020 20:55:29 +0000 (21:55 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 5 Sep 2020 15:23:33 +0000 (16:23 +0100)
strayman.dtx

index 279c5f0..8d1e5ed 100644 (file)
@@ -35,7 +35,7 @@
 %<+strayman>              [2003/09/04 1.10 Straylight document class]
 % \end{meta-comment}
 %
-% \CheckSum{3090}
+% \CheckSum{3167}
 %% \CharacterTable
 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
 % and ensure printing in a single column.
 %
 %    \begin{macrocode}
-\newcommand\part{%
-  \cleardoublepage%
-  \thispagestyle{empty}%
-  \if@twocolumn%
-    \onecolumn%
-    \@tempswatrue%
-  \else%
-    \@tempswafalse%
-  \fi%
-  \hbox{}\vfil%
-  \secdef\@part\@spart%
-}
+\if@article
+  \newcommand\part{%
+    \if@noskipsec\leavevmode\fi\par%
+    \addvspace{4ex}%
+    \@afterindentfalse
+    \secdef\@part\@spart%
+  }
+\else
+  \newcommand\part{%
+    \cleardoublepage%
+    \thispagestyle{empty}%
+    \if@twocolumn%
+      \onecolumn%
+      \@tempswatrue%
+    \else%
+      \@tempswafalse%
+    \fi%
+    \hbox{}\vfil%
+    \secdef\@part\@spart%
+  }
+\fi
 %    \end{macrocode}
 %
 % \begin{macro}{\@part}
 % |\@endpart| to do some common cleaning up.
 %
 %    \begin{macrocode}
-\def\@part[#1]#2{%
-  \ifnum\c@secnumdepth>-2\relax%
-    \refstepcounter{part}%
-    \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
-  \else%
-    \addcontentsline{toc}{part}{#1}%
-  \fi%
-  \markboth{}{}%
-  \begin{centrepage}%
-  \centering%
-  \interlinepenalty\@M%
-  \reset@font%
-  \ifnum\c@secnumdepth>-2\relax%
-    \huge\bfseries\headfam\partname~\thepart%
-    \par%
-    \vskip20\p@
-  \fi%
-  \normalfont\Huge\bfseries\headfam#2\par%
-  \@endpart%
-}
+\if@article
+  \def\@part[#1]#2{%
+    \ifnum\c@secnumdepth>\m@ne\relax%
+      \refstepcounter{part}%
+      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+    \else%
+      \addcontentsline{toc}{part}{#1}%
+    \fi%
+    \begingroup%
+      \parindent\z@ \raggedright \interlinepenalty\@M%
+      \reset@font\bfseries\headfam%
+      \ifnum\c@secnumdepth>\m@ne%
+        \Large\partname\nobreakspace\thepart \par\nobreak%
+      \fi%
+      \huge #2%
+      \markboth{}{}\par%
+    \endgroup%
+    \nobreak \vskip3ex \@afterheading%
+  }
+\else
+  \def\@part[#1]#2{%
+    \ifnum\c@secnumdepth>-2\relax%
+      \refstepcounter{part}%
+      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+    \else%
+      \addcontentsline{toc}{part}{#1}%
+    \fi%
+    \markboth{}{}%
+    \begin{centrepage}%
+    \centering%
+    \interlinepenalty\@M%
+    \reset@font%
+    \ifnum\c@secnumdepth>-2\relax%
+      \huge\bfseries\headfam\partname~\thepart%
+      \par%
+      \vskip20\p@
+    \fi%
+    \normalfont\Huge\bfseries\headfam#2\par%
+    \@endpart%
+  }
+\fi
 %    \end{macrocode}
 % \end{macro}
 %
 % |\@part|.
 %
 %    \begin{macrocode}
-\def\@spart#1{%
-  \begin{centrepage}%
-  \centering%
-  \interlinepenalty\@M%
-  \reset@font%
-  \normalfont\Huge\bfseries\headfam#1\par%
-  \@endpart%
-}
+\if@article
+  \def\@spart#1{%
+    \begingroup%
+      \parindent\z@ \raggedright \interlinepenalty\@M%
+      \reset@font\bfseries\headfam%
+      \huge #1%
+      \markboth{}{}\par%
+    \endgroup%
+    \nobreak \vskip3ex \@afterheading%
+  }
+\else
+  \def\@spart#1{%
+    \begin{centrepage}%
+    \centering%
+    \interlinepenalty\@M%
+    \reset@font%
+    \normalfont\Huge\bfseries\headfam#1\par%
+    \@endpart%
+  }
+\fi
 %    \end{macrocode}
 % \end{macro}
 %