update to the latest Haddock style
[haskell-report.git] / report / haddock.sty
1 % Modified version of the Haddock style sheet
2
3 \usepackage{tabulary} % see below
4
5 \newenvironment{haddocktitle}
6   {\begin{center}\bgroup\large\bfseries}
7   {\egroup\end{center}}
8 \newenvironment{haddockprologue}{\vspace{1in}}{}
9
10 \newcommand{\haddockmoduleheading}[1]{\chapter{\texttt{#1}}}
11
12 \newcommand{\haddockbeginheader}{\hrulefill}
13 \newcommand{\haddockendheader}{\noindent\hrulefill}
14
15 % a little gap before the ``Methods'' header
16 \newcommand{\haddockpremethods}{\vspace{2ex}}
17
18 % inserted before \\begin{verbatim}
19 \newcommand{\haddockverb}{\small}
20
21 % an identifier: add an index entry
22 \newcommand{\haddockid}[1]{\haddocktt{#1}\index{#1@\texttt{#1}}}
23
24 % The tabulary environment lets us have a column that takes up ``the
25 % rest of the space''.  Unfortunately it doesn't allow
26 % the \end{tabulary} to be in the expansion of a macro, it must appear
27 % literally in the document text, so Haddock inserts
28 % the \end{tabulary} itself.
29 \newcommand{\haddockbeginconstrs}{\begin{tabulary}{\linewidth}{@{}llJ@{}}}
30 \newcommand{\haddockbeginargs}{\begin{tabulary}{\linewidth}{@{}llJ@{}}}
31
32 \newcommand{\haddocktt}[1]{{\small \texttt{#1}}}
33 \newcommand{\haddockdecltt}[1]{{\small\bfseries \texttt{#1}}}
34
35 \makeatletter
36 \newenvironment{haddockdesc}
37                {\list{}{\labelwidth\z@ \itemindent-\leftmargin
38                         \let\makelabel\haddocklabel}}
39                {\endlist}
40 \newcommand*\haddocklabel[1]{\hspace\labelsep\haddockdecltt{#1}}
41 \makeatother
42
43 % after a declaration, start a new line for the documentation.
44 % Otherwise, the documentation starts right after the declaration,
45 % because we're using the list environment and the declaration is the
46 % ``label''.  I tried making this newline part of the label, but
47 % couldn't get that to work reliably (the space seemed to stretch
48 % sometimes).
49 \newcommand{\haddockbegindoc}{\hfill\\[1ex]}
50
51 % spacing between paragraphs and no \parindent looks better
52 \parskip=10pt plus2pt minus2pt
53 \setlength{\parindent}{0cm}