summaryrefslogtreecommitdiff
path: root/2005/flow-accounting-ols2005/OLS2005/Texmf/ols.cls
diff options
context:
space:
mode:
Diffstat (limited to '2005/flow-accounting-ols2005/OLS2005/Texmf/ols.cls')
-rw-r--r--2005/flow-accounting-ols2005/OLS2005/Texmf/ols.cls248
1 files changed, 248 insertions, 0 deletions
diff --git a/2005/flow-accounting-ols2005/OLS2005/Texmf/ols.cls b/2005/flow-accounting-ols2005/OLS2005/Texmf/ols.cls
new file mode 100644
index 0000000..bfa1a60
--- /dev/null
+++ b/2005/flow-accounting-ols2005/OLS2005/Texmf/ols.cls
@@ -0,0 +1,248 @@
+%%
+%% 'ols.cls': Ottawa Linux Symposium house style.
+%%
+%% Based on Usenix/IEEE style file by Matthew Ward, David Beazley,
+%% De Clarke, et al. Revised for OLS by John Lockhart. Rewritten as
+%% a class file, and 'proceedings' mode added, by Zack Weinberg.
+%%
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{ols}[2005/01/31 v1.1 Ottawa Linux Symposium house style]
+
+% This class faces a dilemma. On the one hand, article.cls does a lot
+% of work which we would prefer not to duplicate. On the other hand,
+% a surprisingly large amount of that work is wrong for OLS style,
+% particularly in proceedings mode, and has to be overridden.
+% Presently I think the tradeoff is in favor of reading article.cls
+% and then overriding big chunks of it.
+
+% Options: formatting mode.
+% Galley mode suppresses everything that gets in the way of
+% composition: page numbers, references, and as many 'this doesn't
+% fit' type diagnostics as possible.
+\newif\if@galley % checked by \ref wrapper
+\newif\if@proceedings % checked by \maketitle etc.
+
+\DeclareOption{galley}
+ {\@galleytrue\@proceedingsfalse%
+ \setlength{\overfullrule}{0pt}%
+ \hbadness10000\vbadness10000\tolerance10000\let\@largefloatcheck\@empty%
+ \AtBeginDocument{\pagestyle{empty}}}
+% Proof mode corresponds to standard article.cls' ``draft'' mode.
+\DeclareOption{proof}
+ {\@galleyfalse\@proceedingsfalse%
+ \setlength{\overfullrule}{5pt}}
+% Final mode corresponds to standard article.cls' ``final'' mode.
+% This is the default.
+\DeclareOption{final}
+ {\@galleyfalse\@proceedingsfalse%
+ \setlength{\overfullrule}{0pt}}
+% Proceedings mode is used when formatting the entire proceedings as
+% one volume. In this mode, we use fancy page headings, leave a
+% gutter for binding, inject a blank page at the end of the document
+% if it ends on a right-hand page, and write out some extra
+% information for use by the scripts that glue all the .dvi files
+% together.
+\DeclareOption{proceedings}
+ {\@galleyfalse\@proceedingstrue
+ \setlength{\overfullrule}{0pt}%
+ \PassOptionsToPackage{twoside}{geometry}%
+ \PassOptionsToClass{twoside}{article}%
+ \AtBeginDocument{\pagestyle{proceedings}}}
+
+% Enable use of article.cls leqno,fleqn,openbib options.
+\DeclareOption{leqno}{\PassOptionsToClass{leqno}{article}}
+\DeclareOption{fleqn}{\PassOptionsToClass{fleqn}{article}}
+\DeclareOption{openbib}{\PassOptionsToClass{openbib}{article}}
+
+\ExecuteOptions{final}
+\ProcessOptions\relax
+
+\LoadClass[12pt,twocolumn]{article}
+
+% Global page layout. The author does not get a choice: 12 point
+% text, two columns, US letter paper, no marginal notes. The geometry
+% package does most of the work.
+% If your version of the geometry package is too old,
+% please get a new one from http://www.ctan.org, or ask "papers" for help.
+\RequirePackage[paper=letterpaper,textheight=9in,textwidth=6.5in,%
+ heightrounded,twocolumn,columnsep=0.25in]{geometry}[2002/07/08] % >= v3.2
+\setlength\columnseprule{0pt}
+
+% Blank-line-between-paragraphs style.
+\setlength\parindent{\z@}
+\setlength\parskip{12\p@ \@plus3\p@ \@minus3\p@}
+
+% Section titles are bold and 18 point, 2 blank lines before, 1 after.
+\renewcommand\section%
+ {\@startsection {section}{1}{\z@}%
+ {24\p@ \@plus6\p@ \@minus6\p@}%
+ {12\p@ \@plus3\p@ \@minus3\p@}%
+ {\large\bfseries}}
+
+% Subsection titles are bold and 12 point, 1 blank line before, 1 after.
+\renewcommand\subsection%
+ {\@startsection {subsection}{2}{\z@}%
+ {12\p@ \@plus3\p@ \@minus3\p@}%
+ {12\p@ \@plus3\p@ \@minus3\p@}%
+ {\normalsize\bfseries}}
+
+% Font and encoding choice. To consider: a different choice of fonts
+% might be more pleasant.
+\RequirePackage[T1]{fontenc}
+\RequirePackage{mathptmx}
+%% times and mathptmx both set up tt/sans
+% \RequirePackage[scaled=.92]{helvet}
+% \RequirePackage{courier}
+\RequirePackage{times}
+
+
+
+% Title handling. The article.cls definition of \maketitle and
+% \@maketitle must be completely overridden. For \maketitle, the
+% principal differences are the removal of the undesirable
+% \thispagestyle, the removal of the unnecessary single-column logic,
+% and the added logic to handle proceedings mode. For \@maketitle,
+% the principal change is the addition of \subtitle.
+
+% Define \shortauthor along the lines of \author; the \author value
+% tends to contain stuff that cannot be safely written to a toc file
+% (and to be too long, to boot). Same same \subtitle.
+\def\shortauthor#1{\gdef\@shortauthor{#1}}
+\def\@shortauthor{\@latex@error{No \noexpand\shortauthor given}\@ehc}
+\def\subtitle#1{\gdef\@subtitle{\\{\normalsize #1}}}
+\def\@subtitle{} % You don't have to have a subtitle.
+
+\renewcommand\maketitle{\par
+ \if@proceedings
+ \date{}% Do not print a date in the proceedings.
+ % Write out a table-of-contents fragment giving the paper title and
+ % authors.
+ \addcontentsline{toc}{toctitle}{\@title}%
+ \addcontentsline{toc}{tocauthor}{\@shortauthor}%
+ \fi
+ \begingroup
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \long\def\@makefntext##1{\parindent 1em\noindent
+ \hb@xt@1.8em{%
+ \hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi
+ \endgroup
+ \setcounter{footnote}{0}%
+ \global\let\thanks\relax
+ \global\let\maketitle\relax
+ \global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ \global\let\@shortauthor\@empty
+ \global\let\@date\@empty
+ % In proceedings, \@title is preserved for use in left-hand-page headers.
+ \if@proceedings \else
+ \global\let\@title\@empty
+ \fi
+ \global\let\title\relax
+ \global\let\author\relax
+ \global\let\shortauthor\relax
+ \global\let\date\relax
+ \global\let\and\relax
+}
+
+\renewcommand\@maketitle{%
+ \newpage
+ \null
+ \vskip 2em%
+ \begin{center}%
+ \let \footnote \thanks
+ {\LARGE \@title \@subtitle \par}%
+ \vskip 1.5em%
+ {\large
+ \lineskip .5em%
+ \begin{tabular}[t]{c}%
+ \@author
+ \end{tabular}\par}%
+ \vskip 1em%
+ {\large \@date}%
+ \end{center}%
+ \par
+ \vskip 1.5em}
+
+% Proceedings page style.
+% The wrapper file is expected to define \ProcName.
+\newcommand\ps@proceedings{%
+ % No footers.
+ \let\@oddfoot\@empty
+ \let\@evenfoot\@empty
+ % Odd header gives the page number and name of the proceedings volume.
+ \renewcommand\@oddhead{%
+ \leaders\hrule\hfil\kern0.25em\relax
+ {\slshape \ProcName}~~\textbullet~~\thepage}
+ % Even header gives the page number and title of the current
+ % article.
+ \renewcommand\@evenhead{%
+ \thepage~~\textbullet~~{\slshape \@title} \kern0.25em \leaders\hrule\hfil}
+}
+
+% Special begin-document and end-document handling for proceedings
+% mode. The wrapper file is expected to define \ProcPage.
+\if@proceedings
+ \AtBeginDocument{\setcounter{page}{\ProcPage}\thispagestyle{empty}}
+ \AtEndDocument{\cleardoublepage
+ % This is sorta like lastpage.sty, and sorta not (it generates the
+ % page number of the first page of the next document, not the page
+ % number of the last page of this document). The \immediate is
+ % necessary because we just did \cleardoublepage, so there isn't
+ % going to be another invocation of the output routine.
+ \immediate\write\@auxout{\string\newlabel{NextPage}{{}{\thepage}}}}
+\fi
+
+% In galley mode, cross-references are suppressed: \label is ignored,
+% \ref, \pageref, \cite print ``[refname]'' in typewriter font. The
+% point is mainly to make LaTeX shut up about undefined references
+% while one is composing. (If you use varioref, we cannot help you.)
+\if@galley
+ \renewcommand{\label}[1]{}
+ \renewcommand{\ref}[1]%
+ {{\footnotesize\ttfamily\bfseries [#1]}}
+ \let\pageref=\ref
+ \let\cite=\ref
+\fi
+
+% Prevent the use of a number of commands whose functionality is
+% incompatible with the paper-concatenation logic or the page layout.
+\newcommand\@notproceedings[3]{%
+ \renewcommand{#1}[#2]{%
+ \ClassError{ols}{\string #1 not supported.}%
+ {Papers to be collected into proceedings may not have #3.%
+ \MessageBreak Press RETURN to ignore and continue.}}}
+
+\newcommand\@notlayout[3]{%
+ \renewcommand{#1}[#2]{%
+ \ClassError{ols}{\string #1 not supported.}%
+ {This page layout does not permit #3.%
+ \MessageBreak Press RETURN to ignore and continue.}}}
+
+\@notlayout{\marginpar}{1}{marginal notes}
+% For now, allow \thispagestyle because FrontMatter needs it.
+%\@notlayout{\thispagestyle}{1}{page style overrides}
+\@notproceedings{\tableofcontents}{0}{tables of contents}
+\@notproceedings{\listoffigures}{0}{lists of figures}
+\@notproceedings{\listoftables}{0}{lists of tables}
+\@notproceedings{\glossary}{1}{glossaries}
+\@notproceedings{\index}{1}{indices}
+
+% Provide a means to tell if we're running under pdflatex
+\newif\ifpdf
+\ifx\pdfoutput\undefined
+\pdffalse
+\else
+\pdfoutput=1
+\pdftrue
+\fi
+
+
+\endinput
personal git repositories of Harald Welte. Your mileage may vary