% Style parameters and macros used by most documents here

% This has to be tuned each time the repair person takes the printer apart:
\addtolength{\oddsidemargin}{-2.5mm}
\addtolength{\evensidemargin}{-2.5mm}

% Style parameters
\raggedbottom
\sloppy
\parindent =       0mm
\parskip =         2mm

% Frequently used system name
\newcommand{\UNIX}{U{\sc nix}}

% Variable used by begin code command
\newlength{\codewidth}

% Command to start a code block (follow this by \begin{verbatim})
\newcommand{\bcode}{
	% Calculate the text width for the minipage:
	\setlength{\codewidth}{\linewidth}
	\addtolength{\codewidth}{-\parindent}
	%
	\par
	\vspace{3mm}
	\indent
	\begin{minipage}[t]{\codewidth}
}

% Command to end a code block (precede this by \end{verbatim})
\newcommand{\ecode}{
	\end{minipage}
	\vspace{3mm}
	\par
	\noindent
}

% Underscores are not magic throughout the Python documentation
\catcode`_=12

% Dummy \cbstart and \cbend so I can leave changebars in...
\newcommand{\cbstart}{}
\newcommand{\cbend}{}

% Define \itembreak: force the text after an item to start on a new line
\newcommand{\itembreak}{
\mbox{}
\\*[0mm]
}

% Command to generate two index entries (using subentries)
\newcommand{\indexii}[2]{
\index{#1!#2}
\index{#2!#1}
}

% And three entries (using only one level of subentries)
\newcommand{\indexiii}[3]{
\index{#1!#2 #3}
\index{#2!#3, #1}
\index{#3!#1 #2}
}

% And four (again, using only one level of subentries)
\newcommand{\indexiv}[4]{
\index{#1!#2 #3 #4}
\index{#2!#3 #4, #1}
\index{#3!#4, #1 #2}
\index{#4!#1 #2 #3}
}

% Command to generate a reference to a function, statement, keyword, operator
\newcommand{\stindex}[1]{\indexii{statement}{#1@{\tt#1}}}
\newcommand{\kwindex}[1]{\indexii{keyword}{#1@{\tt#1}}}
\newcommand{\opindex}[1]{\indexii{operator}{#1@{\tt#1}}}
\newcommand{\bifuncindex}[1]{\index{#1@{\tt#1} (built-in function)}}

% Add an index entry for a module
\newcommand{\modindex}[2]{\index{#1@{\tt#1} (#2module)}}
\newcommand{\bimodindex}[1]{\modindex{#1}{built-in }}
\newcommand{\stmodindex}[1]{\modindex{#1}{standard }}

% Additional string for an index entry
\newcommand{\indexsubitem}{}
\newcommand{\ttindex}[1]{\index{#1@{\tt#1} \indexsubitem}}

% Define \itemjoin: some negative vspace to join two items together
\newcommand{\itemjoin}{
\mbox{}
\vspace{-\itemsep}
\vspace{-\parsep}
}

% Define \funcitem{func}{args}: define a function item
\newcommand{\funcitem}[2]{
\ttindex{#1}
\item[{\tt #1(#2)}]
\ 
}

% Define \dataitem{name}: define a data item
\newcommand{\dataitem}[1]{
\ttindex{#1}
\item[{\tt #1}]
\ 
}

% Define \excitem{name}: define an exception item
\newcommand{\excitem}[1]{
\ttindex{#1}
\item[{\tt #1}]
\itembreak
}
