% $Id$
\documentclass[12pt,paper=a4]{scrartcl}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Packages
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% ...
%\usepackage[margin=3cm]{geometry}
\usepackage{a4wide}

% ...
\usepackage[english]{babel}

%\usepackage[latin1]{inputenc}
%\usepackage[T1]{fontenc}

% Do not indent paragraphs, instead separate them via vertical spacing
\usepackage{parskip}

% Support for graphics, provides \includegraphics
\usepackage{graphicx}
%\graphicspath{{images/}}	% Specify subdir containing the images

% Hyperref enriches the generated PDF with clickable links,
% and provides many other useful features.
\usepackage{nameref}
\usepackage[colorlinks]{hyperref}
\def\sectionautorefname{Section}	% Write section with capital 'S'
\def\subsectionautorefname{Subsection}	% Write subsection with capital 'S'


% The fancyvrb package provides the "Verbatim" environment, which,
% unlike the built-in "verbatim", allows embedding TeX commands, as
% well as tons of other neat stuff (line numbers, formatting adjustments, ...)
\usepackage{fancyvrb}
\fvset{tabsize=4,fontsize=\scriptsize,numbers=left}

% Normally, one can not use the underscore character in LaTeX without
% escaping it (\_ instead of _). Since the Vorbis specs use it a lot,
% we use the underscore package to change this default behavior.
\usepackage[nohyphen]{underscore}

% In LaTeX, pictures are normally put into floating environments, and it is
% left to the typesetting engine to place them in the "optimal" spot. These
% docs however expect pictures to be placed in a *specific* position. So we
% don't use \begin{figure}...\end{figure}, but rather a center environment.
% To still be able to use captions, we use the capt-of package.
\usepackage{capt-of}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Custom commands
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Custom ref command, using hyperrefs autoref & nameref, to simulate the 
% behavior of DocBook's '<xref>'.
\newcommand{\xref}[1]{\autoref{#1}, ``\nameref{#1}''}

% Emulat DocBook's '<link>'.
\newcommand{\link}[2]{\hyperref[#1]{#2}}

% Simple 'Note' environment. Can be customized later on.
\newenvironment{note}{\subparagraph*{Note:}}{}

% Map DocBook's <programlisting> to fancyvrb's Verbatim environment
\let\programlisting\Verbatim
\let\endprogramlisting\endVerbatim

% Fake some more DocBook elements
\newcommand{\function}[1]{\texttt{#1}}
\newcommand{\filename}[1]{\texttt{#1}}
\newcommand{\varname}[1]{\texttt{#1}}
\newcommand{\literal}[1]{\texttt{#1}}

% Redefine \~ to generate something that looks more appropriate when used in text.
\renewcommand{\~}{$\sim$}

% Useful helper macro that inserts TODO comments very visibly into the generated
% file. Helps you to not forget to resolve those TODOs... :)
\newcommand{\TODO}[1]{\textcolor{red}{*** #1 ***}}

% Configure graphics formats: Prefer PDF, fall back to PNG or JPG, as available.
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.jpeg}


% NOTE: Things to watch out for: Some chars are reserved in LaTeX. You need to translate them...
%   ~ -> $\sim$ (or \~ which we defined above)
%   % -> \%
%   & -> \&
%   < -> $<$
%   > -> $>$
% and others. Refer to any of the many LaTeX refs out there if in doubt!

\begin{document}


\title{Vorbis I specification}
\author{Xiph.org Foundation}
\maketitle

\tableofcontents

\include{01-introduction}
\include{02-bitpacking}
\include{03-codebook}
\include{04-codec}
\include{05-comment}
\include{06-floor0}
\include{07-floor1}
\include{08-residue}
\include{09-helper}
\include{10-tables}

\appendix
\include{a1-encapsulation-ogg}
\include{a2-encapsulation-rtp}

\include{footer}

 
% TODO: Use a bibliography, as in the example below?
\begin{thebibliography}{99} 
 
\bibitem{Sporer/Brandenburg/Edler} T.~Sporer, K.~Brandenburg and B.~Edler, 
The use of multirate filter banks for coding of high quality digital audio,
\url{http://www.iocon.com/resource/docs/ps/eusipco_corrected.ps}.


\end{thebibliography}

\end{document}
