summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/seminar/doc/tvz-code.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/seminar/doc/tvz-code.sty')
-rw-r--r--macros/latex/contrib/seminar/doc/tvz-code.sty291
1 files changed, 291 insertions, 0 deletions
diff --git a/macros/latex/contrib/seminar/doc/tvz-code.sty b/macros/latex/contrib/seminar/doc/tvz-code.sty
new file mode 100644
index 0000000000..68a52701aa
--- /dev/null
+++ b/macros/latex/contrib/seminar/doc/tvz-code.sty
@@ -0,0 +1,291 @@
+%% BEGIN tvz-code.sty
+%% 93/04/01
+%% Tim Van Zandt Timothy.VAN-ZANDT@insead.edu
+%%
+%% Lousy hacks for typesetting the documented code for the
+%%
+%% 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.
+%%
+%% seminar.sty and PSTricks packages.
+
+\input tvz-hax.sty
+\input doc.sty % Tested with v1.7k
+\input art11.sty
+
+
+%%%%%%%%%%%%%%%%%%% PAGE PARAMETERS %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Paragraphs are marked by space rather than indentation:
+\parindent 0pt
+\parskip 4pt plus 1pt minus 1pt
+
+% Textwidth just wide enough for 78 characters of code.
+\setbox\@tempboxa=\hbox{\small\tt f}
+\textwidth 78\wd\@tempboxa
+\oddsidemargin\paperwidth\relax
+\advance\oddsidemargin -\textwidth
+\divide\oddsidemargin 2
+\advance\oddsidemargin -1in
+\setbox\@tempboxa=\hbox{\tiny 999\ }
+\advance\oddsidemargin\wd\@tempboxa
+\evensidemargin\oddsidemargin
+
+\if@twoside
+ \advance\oddsidemargin .3in
+ \advance\evensidemargin -.3in
+\fi
+
+% No headers, 1in top margin
+\topmargin 0pt
+\headheight 0pt
+\headsep 0pt
+
+% Total bottom margin 1in, text height 9in
+\textheight 9in
+\footskip .625in
+
+% Now adjust for different paper size:
+\@tempdima=\paperheight
+\advance\@tempdima-11in
+\divide\@tempdima 2
+\advance\topmargin \@tempdima
+
+% Marginal notes always on left.
+\marginparwidth 3.5cm
+\marginparsep .5cm
+\reversemarginpar
+
+
+%%%%%%%%%%%%%%%%%%% MACROCODE PATCH FOR SHORT META %%%%%%%%%%%
+
+\expandafter\def\expandafter\macrocode\expandafter{%
+ \expandafter\DeleteShortMeta
+ \macrocode}
+
+%%%%%%%%%%%%%%%%%%%% DOC PREAMBLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newbox\junkbox
+\def\DocInput#1{%
+ \MakePercentIgnore
+ \setbox\junkbox=\hbox\bgroup
+ \input{#1}%
+ \MakePercentComment}
+\let\EndDocPreamble\egroup
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% VERBATIM %%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Use fancybox.sty's LVerbatim environment. Each line should contain
+% percent plus three spaces (or other char), including blank lines. E.g.,
+% \begin{LVerbatim}
+% foo
+% bar
+% \end{LVerbatim}
+
+\def\EveryVerbatimLine#1#2#3#4{}
+\begingroup
+ \catcode`\%=12
+ \catcode`\ =\active
+ \global\EndVerbatimTokens{% }
+\endgroup
+\AltGetVerbatim
+
+
+%%%%%%%%%%%%%%%%%% INDEXING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Things are faster without \MakeIndex
+
+\def\MakeIndex{\makeindex\EnableCrossrefs}
+\DisableCrossrefs
+
+% Use \codelabel[int]{foo} to label last line of code plus int.
+% E.g., to label first and then last line of some code:
+% \codelabel[1]{foo}
+% \begin{macrocode}
+% foo
+% bar
+% \end{macrocode}
+% \codelabel{foo}
+
+\def\codelabel{\@ifnextchar[{\@codelabel}{\@codelabel[0]}}
+\def\@codelabel[#1]#2{%
+ \@bsphack
+ \begingroup
+ \advance\c@CodelineNo #1
+ \def\@currentlabel{\the\c@CodelineNo}%
+ \label{#2}%
+ \endgroup
+ \@esphack}
+
+% Definitions in code are indexed by page number, but other occurences
+% are indexed by the line of code.
+
+\CodelineIndex
+\def\SpecialMainPageIndex#1{%
+ {\let\special@index\index\SpecialMainIndex{#1}}}
+\renewcommand{\theCodelineNo}{{\rm\tiny\arabic{CodelineNo}}}
+
+% Index numbers for main definitions are set in bold rather than underlined.
+
+\def\main#1{{\bf #1}}
+
+% two column index
+
+\setcounter{IndexColumns}{2}
+
+% Customize index prologue:
+
+\def\index@prologue{%
+ \section*{Index}\markboth{Index}{Index}%
+ \addcontentsline{toc}{section}{Index}%
+ The {\bf bold} numbers denote the pages where the entries are defined,
+ and all other numbers indicate the {\em lines of code} where
+ the entries are used.}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%% MACRO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% A change to the macro environment; prints macro names within the margins
+% of the text, instead of as marginal notes. Use one \macro command,
+% with comma separated macro names.
+
+\newif\iffirst@macroname
+\newif\ifnestedmacro
+
+\def\macro{%
+ \ifnum\macro@level=\z@
+ \def\next{\MakePrivateLetters \m@cro@}%
+ \else
+ \def\next{\@latexerr{Nested \string\begin{macro}}\@eha
+ \endgroup\end{macro}\macro@level=\z@\begin{macro}}
+ \fi
+ \next}
+\def\m@cro@#1{%
+ \first@macronametrue
+ \m@@cro@@#1,\@nil,}
+\def\m@@cro@@#1,{%
+ \def\@tempa{#1}\def\@tempb{\@nil}%
+ \ifx\@tempa\@tempb
+ \let\next\finishm@@cro@@
+ \else
+ {\advance\c@CodelineNo\@ne\SpecialMainPageIndex{#1}\nobreak}%
+ \DoNotIndex{#1}%
+ \iffirst@macroname
+ \edef\saved@macronames{\string#1}%
+ \first@macronamefalse
+ \else
+ \def\comma{\noexpand\comma}%
+ \edef\saved@macronames{\saved@macronames\comma\string#1}%
+ \fi
+ \let\next\m@@cro@@
+ \fi
+ \next}
+\def\finishm@@cro@@{%
+ \advance\macro@level\@ne
+ \def\comma{{\rm, }}%
+ \ListMacroNames{\saved@macronames}}
+
+\let\endmacro\relax
+
+\def\ListMacroNames{%
+ \@startsection{subsubsection}{3}{\z@}{-2.25ex plus -.5ex minus-.2ex}%
+ {1.3ex plus.2ex}{\csname reset@font\endcsname\large\tt}*}
+
+\MacroIndent 0pt
+
+\def\MacroFont{\small\tt}
+
+
+%%%%%%%%%%%%%%%%%%%%% DoNot Index %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\DoNotIndex{\ ,\!,\[,\\,\],\^,\`,\{,\},\~}
+\DoNotIndex{\@warning,\active}
+\DoNotIndex{\begingroup,\catcode,\char,\csname,\def,\do}
+\DoNotIndex{\docdate,\dospecials,\edef,\else,\endcsname,\endgroup}
+\DoNotIndex{\expandafter,\fi,\filedate,\fileversion}
+\DoNotIndex{\gdef,\if,\ifcat}
+\DoNotIndex{\ifx,\immediate,\lccode,\let}
+\DoNotIndex{\lowercase,\next,\noexpand}
+\DoNotIndex{\relax,\space,\the}
+\DoNotIndex{\toks@,\typeout,\write}
+\DoNotIndex{\@M,\@arabic,\@author,\@auxout,\@bsphack,\@car,\@date}
+\DoNotIndex{\@dblarg,\@dblfloat,\@eha,\@empty,\@esphack,\@evenfoot}
+\DoNotIndex{\@evenhead,\@float,\@gobble,\@gobbletwo,\@gtempa,\@ifnextchar}
+\DoNotIndex{\@ifundefined,\@ixpt,\@latexerr,\@listI,\@listi,\@listii}
+\DoNotIndex{\@listiii,\@listiv,\@listv,\@listvi,\@makefnmark,\@mkboth}
+\DoNotIndex{\@namedef,\@nameuse,\@mne,\@nil,\@normalsize,\@oddfoot}
+\DoNotIndex{\@oddhead,\@tempa,\@tempb,\@tempc,\@tempd}
+\DoNotIndex{\@tempdima,\@testfalse,\@testtrue,\test@member}
+\DoNotIndex{\@thanks,\@thefnmark,\@title}
+\DoNotIndex{\@topnum,\@viiipt,\@viipt,\@vipt,\@vpt,\@xiipt}
+\DoNotIndex{\@xipt,\@xpt,\@xivpt,\@xviipt,\@xxpt,\@xxvpt}
+\DoNotIndex{\addcontentsline}
+\DoNotIndex{\advance,\aftergroup,\baselinestretch,\begin}
+\DoNotIndex{\belowdisplayshortskip,\belowdisplayskip,\bf,\bgroup}
+\DoNotIndex{\box,\c@@page,\c@page,\c@secnumdepth,\clearpage,\columnsep}
+\DoNotIndex{\columnwidth,\copy,\dimen@,\dimen@i,\dimen@ii,\divide}
+\DoNotIndex{\dp,\ds@article,\ds@notes,\ds@notesonly}
+\DoNotIndex{\ds@slidesonly,\egrou,\end,\end@dblfoloat,\end@float}
+\DoNotIndex{\endinput,\fnsymbol,\footheight,\footnotesep,\footskip}
+\DoNotIndex{\global,\globaldefs,\hbox,\headheight,\headsep,\hfil}
+\DoNotIndex{\hrule,\hskip,\hss,\ht,\Huge,\huge}
+\DoNotIndex{\if@filesw,\if@test,\if@twocolumn,\if@twoside}
+\DoNotIndex{\ifcase,\ifdim,\ifvmode,\ignorespaces}
+\DoNotIndex{\input,\interlinepenalty,\itemsep,\ixpt,\label}
+\DoNotIndex{\labelsep,\labelwidth,\LARGE,\large,\Large}
+\DoNotIndex{\leavevmode,\leftmargin,\leftmargini,\leftmarginii}
+\DoNotIndex{\leftmarginiii,\leftmarginiv,\leftmarginv}
+\DoNotIndex{\leftmarginvi,\leftmark,\leftskip,\lineskip}
+\DoNotIndex{\magstep,\marginparsep,\marginparwidth,\markboth}
+\DoNotIndex{\markright,\medbreak,\multiply,\newbox,\newcount}
+\DoNotIndex{\newcounter,\newdimen,\newif,\newlabel,\newpage}
+\DoNotIndex{\newtoks,\nobreak,\nointerlineskip,\normallineskip}
+\DoNotIndex{\normalsize,\null,\number,\numberline,\oddsidemargin}
+\DoNotIndex{\offinterlineskip,\or,\par,\parbox,\parskip,\partopsep}
+\DoNotIndex{\prevdepth,\protect,\ref,\refstepcounter,\rightmrk}
+\DoNotIndex{\rm,\scriptsize,\section,\sectionmark,\setbox,\setcounter}
+\DoNotIndex{\sl,\small,\stepcounter,\string,\textheight,\textwidth}
+\DoNotIndex{\thefootnote,\thepage,\thesection,\thesubsection}
+\DoNotIndex{\thispagestyle,\tiny,\topmargin,\topsep,\uppercase}
+\DoNotIndex{\vbox,\vfill,\viiipt,\viipt,\vipt,\vpt,\vskip,\vss}
+\DoNotIndex{\wd,\xcommentloaded@,\xdef,\xiipt,\xipt,\xivpt,\xpt}
+\DoNotIndex{\xviipt,\xxpt,\xxvpt,\z@}
+\DoNotIndex{\abovedisplayskip,\abovedisplayshortskip,\@currentlabel}
+\DoNotIndex{\@dottedtocline,\@ne\@setsize,\@starttoc,\@tempboxa,\@}
+\DoNotIndex{\arraystretch,\centerline,\egroup,\end@dblfloat}
+\DoNotIndex{\evensidemargin,\footnotesize,\ifnum,\parindent,\parsep}
+\DoNotIndex{\rightmark,\@afterindenttrue,\@ne,\if@specialpage.\long}
+\DoNotIndex{\fboxrule,\fboxsep,\@for,\vfil}
+\DoNotIndex{\@@fortmp,\@@tempa,\@@tempb,\@ehd,\@for,\@fortmp,\@m}
+\DoNotIndex{\@mparswitchfalse,\@mparswitchtrue,\@nnil,\@spaces}
+\DoNotIndex{\@specialstyle,\@temptokena,\@twosidefalse,\@twosidetrue}
+\DoNotIndex{\@whilenum,\alph,\arabic,\count@,\errhelp,\errmessage}
+\DoNotIndex{\fbox,\index,\minipage,\newcommand,\overfullrule}
+\DoNotIndex{\pagestyle,\raggedright,\ref@stepcounter,renewcommand}
+\DoNotIndex{\semcolor@loaded,today,\@tempcnta,\@tempcntb,\trivlist,\t,\p}
+\DoNotIndex{\today,\item,\@colht,\@currenvir,\@thefoot,\@thehead}
+\DoNotIndex{\@totalleftmargin,\allowbreak,\@captype,\@footnotetext}
+\DoNotIndex{\@listdepth,\@minipagefalse,\@minipagetrue,\@mpfn,\@mpfootins}
+\DoNotIndex{\endtrivlist,\everypar,\hsize,\ifvoid,\lastskip}
+\DoNotIndex{\linewidth,\skip,\thempfn,\thempfootnote,\topskip,\unvbox}
+\DoNotIndex{\@@input,\@@par,\@acci,\@accii,\@acciii,\@cclv,\@height}
+\DoNotIndex{\@maxdepth,\@tempdimb,\@tempg,\@temph,\@texttop,\@twocolumnfalse}
+\DoNotIndex{\@xfloat,\addvspace,\alloc@,\bigskipamount,\botmark,\chardef}
+\DoNotIndex{\closein,\closeout,\count,\countdef,\dimen,\glossary,\goodbreak}
+\DoNotIndex{\insc@unt,\intextsep,\kern,\mag,\marginpar,\maxdepth,\medskip}
+\DoNotIndex{\moveleft,\newinsert,\newskip,\onecolumn,\openin,\openout}
+\DoNotIndex{\read,\renewcommand,\repeat,\rightskip,\strut,\vfuzz,\voffset}
+\DoNotIndex{\vsize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
+
+%% END tvz-code.sty