blob: 0edb50e539356148c8985debfcdfdaf289fff12b [file] [log] [blame]
Fred Drake6659c301998-03-03 22:02:19 +00001%
2% manual.cls for the Python documentation
3%
4
5\NeedsTeXFormat{LaTeX2e}[1995/12/01]
6\ProvidesClass{manual}
Fred Drake28f13911998-03-04 21:47:59 +00007 [1998/03/03 Document class (Python manual)]
8
Fred Drake724473f1998-04-25 04:12:17 +00009\RequirePackage{pypaper}
Fred Drake6659c301998-03-03 22:02:19 +000010
Fred Drake724473f1998-04-25 04:12:17 +000011% Change the options here to get a different set of basic options, but only
12% if you have to. Paper and font size should be adjusted in pypaper.sty.
Fred Drake6659c301998-03-03 22:02:19 +000013%
Fred Drake724473f1998-04-25 04:12:17 +000014\LoadClass[\py@paper,\py@ptsize,twoside,openright]{report}
Fred Drake6659c301998-03-03 22:02:19 +000015
16
17% Optional packages:
18%
19% If processing of these documents fails at your TeX installation,
20% these may be commented out (independently) to make things work.
21% These are both supplied with the current version of the teTeX
22% distribution.
23%
24% The "fancyhdr" package makes nicer page footers reasonable to
25% implement, and is used to put the chapter and section information in
26% the footers.
27%
28% The "times" package makes the default font the PostScript Times
29% font, which makes for smaller PostScript and a font that more people
30% like.
31%
32\RequirePackage{fancyhdr}\typeout{Using fancier footers than usual.}
33\RequirePackage{times}\typeout{Using times fonts instead of Computer Modern.}
34
35
Fred Drake55730311998-03-25 15:41:23 +000036% Required packages:
37%
38% The "fncychap" package is used to get the nice chapter headers. The
39% .sty file is distributed with Python, so you should not need to disable
40% it. You'd also end up with a mixed page style; uglier than stock LaTeX!
41%
42\RequirePackage[Bjarne]{fncychap}\typeout{Using fancy chapter headings.}
43% Do horizontal rules it this way to match:
Fred Drake2a3ab4f1998-04-28 18:31:50 +000044\newcommand{\py@doHorizontalRule}{\mghrulefill{\RW}}
Fred Drake55730311998-03-25 15:41:23 +000045%
Fred Drake6659c301998-03-03 22:02:19 +000046%
47% This gives us all the Python-specific markup that we really want.
48% This should come last. Do not change this.
49%
50\RequirePackage{python}
Fred Drake28f13911998-03-04 21:47:59 +000051
52
53% Change the title page to look a bit better, and fit in with the
54% fncychap ``Bjarne'' style a bit better.
55%
56\renewcommand{\maketitle}{%
57 \begin{titlepage}%
58 \let\footnotesize\small
59 \let\footnoterule\relax
Fred Drake2a3ab4f1998-04-28 18:31:50 +000060 \py@doHorizontalRule%
Fred Drake28f13911998-03-04 21:47:59 +000061 \@ifundefined{pdfinfo}{}{
Fred Drakec0b2e451998-03-25 14:53:43 +000062 \pdfinfo{
63 /Author (\@author)
64 /Title (\@title)
65 }
Fred Drake28f13911998-03-04 21:47:59 +000066 }
67 \begin{flushright}%
Fred Drake2a3ab4f1998-04-28 18:31:50 +000068 {\rm\Huge\py@HeaderFamily \@title \par}%
69 {\em\LARGE\py@HeaderFamily \py@release \par}
Fred Drake28f13911998-03-04 21:47:59 +000070 \vfill
Fred Drake2a3ab4f1998-04-28 18:31:50 +000071 {\LARGE\py@HeaderFamily \@author \par}
Fred Drake28f13911998-03-04 21:47:59 +000072 \vfill\vfill
73 {\large
74 \@date \par
75 \vfill
Fred Drake2a3ab4f1998-04-28 18:31:50 +000076 \py@authoraddress \par
Fred Drake28f13911998-03-04 21:47:59 +000077 }%
78 \end{flushright}%\par
79 \@thanks
80 \end{titlepage}%
81 \setcounter{footnote}{0}%
82 \let\thanks\relax\let\maketitle\relax
83 \gdef\@thanks{}\gdef\@author{}\gdef\@title{}
84}
85
86
Fred Drakeaa54e2d1998-03-05 16:41:42 +000087% Catch the end of the {abstract} environment, but here make sure the
88% abstract is followed by a blank page if the 'openright' option is used.
89%
Fred Drake2a3ab4f1998-04-28 18:31:50 +000090\let\py@OldEndAbstract=\endabstract
Fred Drakeaa54e2d1998-03-05 16:41:42 +000091\renewcommand{\endabstract}{
92 \if@openright
93 \ifodd\value{page}
94 \typeout{Adding blank page after the abstract.}
95 \vfil\pagebreak
96 \fi
97 \fi
Fred Drake2a3ab4f1998-04-28 18:31:50 +000098 \py@OldEndAbstract
Fred Drakeaa54e2d1998-03-05 16:41:42 +000099}
100
Fred Drake28f13911998-03-04 21:47:59 +0000101% This wraps the \tableofcontents macro with all the magic to get the
102% spacing right and have the right number of pages if the 'openright'
103% option has been used. This eliminates a fair amount of crud in the
104% individual document files.
105%
Fred Drake2a3ab4f1998-04-28 18:31:50 +0000106\let\py@OldTableofcontents=\tableofcontents
Fred Drake28f13911998-03-04 21:47:59 +0000107\renewcommand{\tableofcontents}{%
108 \setcounter{page}{1}%
109 \pagebreak%
110 \pagestyle{plain}%
111 {%
112 \parskip = 0mm%
Fred Drake2a3ab4f1998-04-28 18:31:50 +0000113 \py@OldTableofcontents%
Fred Drake28f13911998-03-04 21:47:59 +0000114 \if@openright%
115 \ifodd\value{page}%
116 \typeout{Adding blank page after the table of contents.}%
117 \pagebreak\hspace{0pt}%
118 \fi%
119 \fi%
120 \cleardoublepage%
121 }%
122 \pagenumbering{arabic}%
123 \@ifundefined{fancyhf}{}{\pagestyle{normal}}%
Fred Drake2a3ab4f1998-04-28 18:31:50 +0000124 \py@doing@page@targetstrue%
Fred Drake28f13911998-03-04 21:47:59 +0000125}
Fred Drake255284b1998-04-20 16:55:14 +0000126% This is needed to get the width of the section # area wide enough in the
127% library reference. Doing it here keeps it the same for all the manuals.
128%
129\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}}
130\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}}
Fred Draked579ed81998-04-17 02:45:41 +0000131
132
133% Fix the theindex environment to add an entry to the Table of
134% Contents; this is much nicer than just having to jump to the end of
135% the book and flip around, especially with multiple indexes.
136%
Fred Drake2a3ab4f1998-04-28 18:31:50 +0000137\let\py@OldTheindex=\theindex
Fred Draked579ed81998-04-17 02:45:41 +0000138\renewcommand{\theindex}{
139 \cleardoublepage
Fred Drake2a3ab4f1998-04-28 18:31:50 +0000140 \py@OldTheindex
Fred Draked579ed81998-04-17 02:45:41 +0000141 \addcontentsline{toc}{chapter}{\indexname}
142}