%% BEGIN tvz-hax.sty %% 93/04/01 %% Tim Van Zandt Timothy.VAN-ZANDT@insead.edu %% %% These are some lousy hacks for typesetting the code %% and User's Guide in the Seminar and PSTricks packages. %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.2 of this license %% or (at your option) any later version. The latest version of this %% license is in: %% %% http://www.latex-project.org/lppl.txt %% %% and version 1.2 or later is part of all distributions of LaTeX version %% 1999/12/01 or later. %% %%%%%%%%%%%%%%%%%%%%%%%%%% PAPER SIZES %%%%%%%%%%%%%%%%%%%%%% % Default paper size is 8.5in by 11in. % Just include the `a4' style option for A4 paper size. % For other paper sizes, define \paperwidth and \paperheight % before the \documentstyle command. \@ifundefined{paperwidth}{\def\paperwidth{8.5in}}{} \@ifundefined{paperheight}{\def\paperheight{11in}}{} \@namedef{ds@a4}{\def\paperwidth{210mm}\def\paperheight{297mm}} %%%%%%%%%%%%%%%%%%%% INPUTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\iftwoup \@namedef{ds@2up}{\input 2up.tex \twouptrue} \input article.sty \input fancybox.sty % Version 0.93 or later. \iftwoup \if@twoside \targetlayout{twosided} \fi \fi \if@twoside \def\twosideclearpage{% \clearpage \ifodd\c@page\else \thispagestyle{empty}% \null\leavevmode \clearpage \fi} \else \let\twosideclearpage\clearpage \fi %%%%%%%%%%%%%%%%%%%%% MISC %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\arraystretch{1.2} \hfuzz 1pt % Just in case I'm using AmS-LaTeX. \def\makeatother{\catcode`\@=12\relax} %%%%%%%%%%%%%%%%%%%%%%%%%% SHORT META %%%%%%%%%%%%%%%%%%%%%%%% % Works in verbatim environments, unless specially designed. \begingroup \catcode`\<=\active \gdef\ShortMeta{% \catcode`\<=\active \def<##1>{{\MetaFont ##1\/}}} \endgroup \def\DeleteShortMeta{\catcode`\<=12\relax} \def\MetaFont{\sl} % For meta arguments. %%%%%%%%%%%%%%%%%%%%%%%%%% FILE VERSIONS %%%%%%%%%%%%%%%%%%%%% % \GetVersion{file} scans first ten lines of for % \filedate and \fileversion definitions. % % \CheckVersion{file} scans file for \filedate and \fileversion % and then compares these witha \FileDate and \FileVersion. % \def\GetVersion#1{% \immediate\openin1=#1 \count@=0 \let\fileversion\relax \let\filedate\relax \@testtrue \loop \if@test \advance\count@1 \immediate\read1 to \@tempa \@tempa \ifnum\count@=10 \@latexerr{Couldn't find fileversion}\@eha \@testfalse \else \ifx\fileversion\relax \@testtrue \else \ifx\filedate\relax \@testtrue \else \@testfalse \fi \fi \fi \repeat} \def\CheckVersion#1{% \GetVersion{#1} \ifx\FileVersion\fileversion \ifx\FileDate\filedate\else \@latexerr{Doc date (\FileDate) and file date (\filedate) do not match}\@eha \fi \else \@latexerr{Doc version (\FileVersion) and file version (\fileversion) do not match}\@eha \fi} % This expands the date, as defined in \filedate. \def\expanddate#1/#2/#3/{% \number#3{} \month=#2 \ifcase\month\or January \or February \or March \or April \or May \or June \or July \or August \or September \or October \or November \or December \fi 19#1} \def\thefiledate{\expandafter\expanddate\filedate/} \date{\thefiledate} %%%%%%%%%%%%%%%%% LOGOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\AmS{{\protect\the\textfont\tw@ A\kern-.1667em\lower.5ex\hbox{M}\kern-.125em S}} \def\b@LaTeX{% \begingroup \csname reset@font\endcsname \rm\bf L\kern-.32em \raise.36ex\hbox{% \ifx\@currsize\Huge\LARGE\else \ifx\@currsize\huge\Large\else \ifx\@currsize\LARGE\large\else \ifx\@currsize\Large\normalsize\else \ifx\@currsize\large\small\else \ifx\@currsize\normalsize\footnotesize\else \ifx\@currsize\small\scriptsize\else \ifx\@currsize\footnotesize\scriptscriptsize \fi\fi\fi\fi\fi\fi\fi\fi \bf A}% \kern-.15em T\kern-.1667em \lower.7ex\hbox{E}\kern-.125em X% \endgroup} \def\bLaTeX{\b@LaTeX} %%%%%%%%%%%%%%% PAGE STYLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The `docheadings' page style uses footers rather than headers. \def\ps@docheadings{% \let\@mkboth\markboth \def\@oddhead{}% \let\@evenhead\@oddhead% \def\@oddfoot{% \small\sf \rightmark \hfil \thepage}% \def\@evenfoot{% \small\sf \thepage \hfil \theheadertitle}% \def\sectionmark##1{\markright {##1}}}% \pagestyle{docheadings} %%%%%%%%%%%%%%%%%%%%%%%% Table of Contents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Tighten up spacing in TOC: \newskip\tempskip \def\TOCshrink{.5} \def\TableOfContents{% \begin{quote} \begin{center} \Large\bf Contents \end{center} \def\numberline##1{\hbox to 0pt{\hss##1\hskip 1em}}% \let\oldaddvspace\addvspace \def\addvspace##1{% \tempskip##1\relax \oldaddvspace{\TOCshrink\tempskip}} \@starttoc{toc}% \end{quote}} \def\tableofcontents{% \clearpage \markright{Table of contents}% \TableOfContents \clearpage} %%%%%%%%%%%%%%%%%%%%%%%% code and examples %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % `Ex' is an environment for putting samples of code. % It is a variant of % \begin{quote}\tt ... \end{quote}. % It is NOT verbatim. \def\NotNested{% \def\begin##1{% \@latexerr{Bad nesting of environments. Perhaps missing \end{\@currenvir}}\@eha \end{\@currenvir}% \begin{##1}}} \def\Ex{% \NotNested \list{}{}\item[]% \if@minipage\else\vskip\parskip\fi \leftskip\@totalleftmargin \rightskip\z@ \parindent\z@ \parskip\z@ \parfillskip\@flushglue \hfuzz 1pt \@@par \global\@inlabelfalse} \def\endEx{\endlist} % Various things to make it easier to write code and examples: \begingroup \catcode`\{=12 \catcode`\}=12 \catcode`\(=1 \catcode`\)=2 \catcode`\+=0 \catcode`\\=12 +gdef+|(\) % \| = character \ +gdef+{({) % \{ = character { +gdef+}(}) % \} = character } +endgroup \def\Backslash{\protect\|} % Define some functional font commands: \def\MainFont{\tt} % For macro definitions. \def\UsageFont{\tt} % For in-line macro names. \def\InlineFont{\tt} % For other in-line snipets of code. \def\DisplayFont{\tt} % For displayed code. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput %% END tvz-hax.sty