sphinxmanual.cls
133 lines
| 3.7 KiB
| text/x-openedge
|
OpenEdgeLexer
Jonathan Frederic
|
r9736 | % | ||
% sphinxmanual.cls for Sphinx (http://sphinx-doc.org/) | ||||
% | ||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01] | ||||
\ProvidesClass{sphinxmanual}[2009/06/02 Document class (Sphinx manual)] | ||||
% chapters starting at odd pages (overridden by 'openany' document option) | ||||
\PassOptionsToClass{openright}{\sphinxdocclass} | ||||
% 'oneside' option overriding the 'twoside' default | ||||
\newif\if@oneside | ||||
\DeclareOption{oneside}{\@onesidetrue} | ||||
% Pass remaining document options to the parent class. | ||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\sphinxdocclass}} | ||||
\ProcessOptions\relax | ||||
% Defaults two-side document | ||||
\if@oneside | ||||
% nothing to do (oneside is the default) | ||||
\else | ||||
\PassOptionsToClass{twoside}{\sphinxdocclass} | ||||
\fi | ||||
\LoadClass{\sphinxdocclass} | ||||
% Set some sane defaults for section numbering depth and TOC depth. You can | ||||
% reset these counters in your preamble. | ||||
% | ||||
\setcounter{secnumdepth}{2} | ||||
\setcounter{tocdepth}{1} | ||||
% Change the title page to look a bit better, and fit in with the fncychap | ||||
% ``Bjarne'' style a bit better. | ||||
% | ||||
\renewcommand{\maketitle}{% | ||||
\begin{titlepage}% | ||||
\let\footnotesize\small | ||||
\let\footnoterule\relax | ||||
\rule{\textwidth}{1pt}% | ||||
\ifsphinxpdfoutput | ||||
\begingroup | ||||
% These \defs are 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\\{, } | ||||
\def\and{and } | ||||
\pdfinfo{ | ||||
/Author (\@author) | ||||
/Title (\@title) | ||||
} | ||||
\endgroup | ||||
\fi | ||||
\begin{flushright}% | ||||
\sphinxlogo% | ||||
{\rm\Huge\py@HeaderFamily \@title \par}% | ||||
{\em\LARGE\py@HeaderFamily \py@release\releaseinfo \par} | ||||
\vfill | ||||
{\LARGE\py@HeaderFamily | ||||
\begin{tabular}[t]{c} | ||||
\@author | ||||
\end{tabular} | ||||
\par} | ||||
\vfill\vfill | ||||
{\large | ||||
\@date \par | ||||
\vfill | ||||
\py@authoraddress \par | ||||
}% | ||||
\end{flushright}%\par | ||||
\@thanks | ||||
\end{titlepage}% | ||||
\cleardoublepage% | ||||
\setcounter{footnote}{0}% | ||||
\let\thanks\relax\let\maketitle\relax | ||||
%\gdef\@thanks{}\gdef\@author{}\gdef\@title{} | ||||
} | ||||
% Catch the end of the {abstract} environment, but here make sure the abstract | ||||
% is followed by a blank page if the 'openright' option is used. | ||||
Jonathan Frederic
|
r9746 | % | ||
Jonathan Frederic
|
r9744 | \let\py@OldEndAbstract=\endabstract | ||
\renewcommand{\endabstract}{ | ||||
\if@openright | ||||
\ifodd\value{page} | ||||
\typeout{Adding blank page after the abstract.} | ||||
\vfil\pagebreak | ||||
\fi | ||||
\fi | ||||
\py@OldEndAbstract | ||||
} | ||||
Jonathan Frederic
|
r9736 | |||
% This wraps the \tableofcontents macro with all the magic to get the spacing | ||||
% right and have the right number of pages if the 'openright' option has been | ||||
% used. This eliminates a fair amount of crud in the individual document files. | ||||
% | ||||
\let\py@OldTableofcontents=\tableofcontents | ||||
\renewcommand{\tableofcontents}{% | ||||
\setcounter{page}{1}% | ||||
\pagebreak% | ||||
\pagestyle{plain}% | ||||
{% | ||||
\parskip = 0mm% | ||||
\py@OldTableofcontents% | ||||
\if@openright% | ||||
\ifodd\value{page}% | ||||
\typeout{Adding blank page after the table of contents.}% | ||||
\pagebreak\hspace{0pt}% | ||||
\fi% | ||||
\fi% | ||||
\cleardoublepage% | ||||
}% | ||||
\pagenumbering{arabic}% | ||||
\@ifundefined{fancyhf}{}{\pagestyle{normal}}% | ||||
} | ||||
% This is needed to get the width of the section # area wide enough in the | ||||
% library reference. Doing it here keeps it the same for all the manuals. | ||||
Jonathan Frederic
|
r9746 | % | ||
Jonathan Frederic
|
r9744 | \renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.6em}} | ||
\renewcommand*\l@subsection{\@dottedtocline{2}{4.1em}{3.5em}} | ||||
Jonathan Frederic
|
r9736 | |||
% Fix the bibliography environment to add an entry to the Table of | ||||
% Contents. | ||||
% For a report document class this environment is a chapter. | ||||
\let\py@OldThebibliography=\thebibliography | ||||
\renewcommand{\thebibliography}[1]{ | ||||
\cleardoublepage | ||||
\phantomsection | ||||
\py@OldThebibliography{1} | ||||
\addcontentsline{toc}{chapter}{\bibname} | ||||
} | ||||