mirror of
https://github.com/python/cpython.git
synced 2025-07-28 21:55:21 +00:00

The \\ introduced in the \author in boilerplate.tex broke the PDF generation because line breaks are not allowed in the "Document Info" metadata stored in the PDF file. This changes the line break to a ", " (comma-space) in that context.
105 lines
2.7 KiB
TeX
105 lines
2.7 KiB
TeX
%
|
|
% howto.cls for the Python documentation
|
|
%
|
|
|
|
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
|
\ProvidesClass{howto}
|
|
[1998/02/25 Document class (Python HOWTO)]
|
|
|
|
|
|
% Change the options here to get a different set of basic options, This
|
|
% is where to add things like "a4paper" or "10pt".
|
|
%
|
|
\LoadClass[twoside]{article}
|
|
|
|
\setcounter{secnumdepth}{1}
|
|
|
|
% Optional packages:
|
|
%
|
|
% If processing of these documents fails at your TeX installation,
|
|
% these may be commented out (independently) to make things work.
|
|
% These are both supplied with the current version of the teTeX
|
|
% distribution.
|
|
%
|
|
% The "fancyhdr" package makes nicer page footers reasonable to
|
|
% implement, and is used to put the chapter and section information in
|
|
% the footers.
|
|
%
|
|
\RequirePackage{fancyhdr}\typeout{Using fancier footers than usual.}
|
|
|
|
|
|
% Required package:
|
|
%
|
|
% This gives us all the Python-specific markup that we really want.
|
|
% This should come last. Do not change this.
|
|
%
|
|
\RequirePackage{python}
|
|
|
|
% support for module synopsis sections:
|
|
\newcommand{\py@ModSynopsisFilename}{\jobname.syn}
|
|
|
|
|
|
% need to do one of these....
|
|
\newcommand{\py@doHorizontalRule}{\rule{\textwidth}{1pt}}
|
|
|
|
|
|
% Change the title page to look a bit better, and fit in with the
|
|
% fncychap ``Bjarne'' style a bit better.
|
|
%
|
|
\renewcommand{\maketitle}{
|
|
\py@doHorizontalRule
|
|
\@ifundefined{pdfinfo}{}{{
|
|
% This \def is required to deal with multi-line authors; it
|
|
% changes \\ to ', ' (comma-space), making it pass muster for
|
|
% generating document info in the PDF file.
|
|
\def\\{, }
|
|
\pdfinfo{
|
|
/Author (\@author)
|
|
/Title (\@title)
|
|
}
|
|
}}
|
|
\begin{flushright}
|
|
{\rm\Huge\py@HeaderFamily \@title} \par
|
|
{\em\large\py@HeaderFamily \py@release} \par
|
|
\vspace{25pt}
|
|
{\Large\py@HeaderFamily \@author} \par
|
|
\vspace{25pt}
|
|
\@date \par
|
|
\py@authoraddress \par
|
|
\end{flushright}
|
|
\@thanks
|
|
\setcounter{footnote}{0}
|
|
\let\thanks\relax\let\maketitle\relax
|
|
\gdef\@thanks{}\gdef\@author{}\gdef\@title{}
|
|
}
|
|
|
|
|
|
\let\py@OldTableofcontents=\tableofcontents
|
|
\renewcommand{\tableofcontents}{
|
|
\begingroup
|
|
\parskip = 0mm
|
|
\py@OldTableofcontents
|
|
\endgroup
|
|
\py@doHorizontalRule
|
|
\vspace{12pt}
|
|
\py@doing@page@targetstrue
|
|
}
|
|
|
|
% Fix the theindex environment to add an entry to the Table of
|
|
% Contents; this is much nicer than just having to jump to the end of
|
|
% the book and flip around, especially with multiple indexes.
|
|
%
|
|
\let\py@OldTheindex=\theindex
|
|
\renewcommand{\theindex}{
|
|
\clearpage
|
|
\py@OldTheindex
|
|
\addcontentsline{toc}{section}{\indexname}
|
|
}
|
|
|
|
\@ifundefined{fancyhf}{
|
|
\pagestyle{plain}}{
|
|
\pagestyle{normal}} % start this way; change for
|
|
\pagenumbering{arabic} % ToC & chapters
|
|
\setcounter{secnumdepth}{2}
|
|
|
|
\thispagestyle{empty}
|