diff options
Diffstat (limited to 'docs/xslt/latex/sambadoc.cls')
-rw-r--r-- | docs/xslt/latex/sambadoc.cls | 466 |
1 files changed, 466 insertions, 0 deletions
diff --git a/docs/xslt/latex/sambadoc.cls b/docs/xslt/latex/sambadoc.cls new file mode 100644 index 0000000000..c55bc970a5 --- /dev/null +++ b/docs/xslt/latex/sambadoc.cls @@ -0,0 +1,466 @@ +% +% $Id: sambadoc.cls,v 1.4 2003/12/11 19:30:50 jelmer Exp $ +% + +% phstyle.cls -- Macros for formatting Prentice-Hall Books +% -- Compiled by J.K. Shultis, Dec. 1993 +% -- Modified and enhanced for LaTeX2e mdh/rlm 1997/02 +% -- Style Modifications Lori Hughes June 2002 + +\NeedsTeXFormat{LaTeX2e}% +\ProvidesClass{sambadoc}[1997/02/20 Prentice Hall Book Class, February 1997] + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} + +\ProcessOptions% + +% Base everything on the default class 'article'. +\LoadClass{report}% + + +%================================================================================ +% 1. Page layout dimensions +% 3. Define new fonts for headings +% 4. Define LaTeX logos (usually ot needed) +% 5. Redefines the way "figure" amd "table" are formated in a \caption +% 6. Defines a \capt macro which defines (1) \captwidth, (2) \captsize +% and \beforetableskip. +% 7. New Environemnts: Eqnarray, reflist, exerlist +% 8. Defines and modifies FANCYHDS.STY for headers and foots +% 9. Change sectioning headings to bold sans serif fonts +%10. Turn off leader dots in Table of Contents +%====================================================================== + +%====================== Page Layout +% \oddsidemargin 0.750in \evensidemargin 0.750in \textwidth 5.00in +% \topmargin 0.625in \headheight 0.3in \headsep 0.2in +% \textheight 7.3in %\footheight .2in +% \footskip 0.3in +% \parskip 0ex \marginparwidth 1.00in \marginparsep 0.5in +%\setlength\arraycolsep{1pt} + +\textwidth 5.00in + +%====================== Define special fonts +\newfont{\BIG}{cminch} %--- One-inch font +\newfont{\sfbHuge}{cmssbx10 scaled\magstep5} %-- 25pt sans serif bold +\newfont{\sfblarge}{cmssbx10 scaled\magstep1} %-- 12pt sans serif bold +\newfont{\sfbeleven}{cmssbx10 scaled\magstephalf} %-- 11pt sans serif bold +\newfont{\sfb}{cmssbx10} %-- 10pt sans serif bold +\newfont{\sfeight}{cmss8} %-- 8pt sans serif +\newfont{\sfnine}{cmss8 at 9pt} %-- 9pt sans serif + +\newfont{\defnem}{cmbxti10} %-- 10pt sans serif bold +\def\spacingset#1{\def\baselinestretch{#1}\small\normalsize} + +%-----------Change section heading font sizes here---- +\newfont{\sfbsection}{cmssbx10 at 13pt} +\newfont{\sfbsubsec}{cmssbx10 at 12pt} +\newfont{\sfbsubsub}{cmssbx10 at 11pt} +\newfont{\sfbpara}{cmssbx10} +%--------------------------------------------------- + + +%===================== LaTeX and TeX type logos +\newcount\TestCount +\def\La{\TestCount=\the\fam \leavevmode L\raise.42ex + \hbox{$\fam\TestCount\scriptstyle\kern-.3em A$}} +\def\LaTeX{\La\kern-.15em\TeX} +\def\AllTeX{{(\La)\TeX}} + +% +% Theorem hack +% + +\def\@begintheorem#1#2{\trivlist + \item[\hskip \labelsep{\bfseries #1\ #2:}]\itshape} + +%===================== Redefine the \@makecaption command + \long\def\@makecaption#1#2{\vskip 10\p@ +%% \setbox\@tempboxa\hbox{#1: #2}% %% original label definition + \setbox\@tempboxa\hbox{\textbf{ \small #1.} \small #2}% %% bold and . instead of : + \ifdim \wd\@tempboxa >\hsize +%% #1: #2\par %% original definition + \textbf{ \small #1.} \small #2\par %% bold and . instead of : + \else + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% %% original +%% \hbox to\hsize{\box\@tempboxa\hfil}% %% no centering + \fi} + +%===================== New caption macro +\newlength{\captsize} \let\captsize=\footnotesize +\newlength{\captwidth} \setlength{\captwidth}{\textwidth} +\newlength{\beforetableskip} \setlength{\beforetableskip}{.5\baselineskip} +\newcommand{\capt}[1]{\begin{minipage}{\captwidth} + \let\normalsize=\captsize + \caption[#1]{#1} + \end{minipage}\\ \vspace{\beforetableskip}} + + +%---------- Change Figure Label +\newcommand{\thefigurename}{Figure} %-- set default: Figure +\def\fnum@figure{\thefigurename\ \thefigure} + +% This is to get the equation numbers in the form (section.equation), +% and to have the equation counter reset every time the section +% counter is incremented. + +\def\theequation{\thechapter.\arabic{equation}} +\@addtoreset{equation}{chapter} + + +%===================== New Environments + +%------ Reference List Macro +\newenvironment{reflist}{\begin{list}{}{\leftmargin 1em \labelwidth 0in +\labelsep 0in \itemsep 0ex \rightmargin 0in}}{\end{list}} +\newcommand{\refitem}{\item \hspace*{-1em}} %--- item for ref list +\newcommand{\SC}{\scriptsize} %--- small capitals for reference lists + + +%------ New environment for better spacing in Eqnarray +\def\eqnarray{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue + \m@th + \global\@eqcnt\z@ + \tabskip\@centering + \let\\\@eqncr + $$\everycr{}\halign to\displaywidth\bgroup + \hskip\@centering$\displaystyle\tabskip\z@skip{##}$\@eqnsel + &\global\@eqcnt\@ne\hskip \arraycolsep \hfil${##}$\hfil + &\global\@eqcnt\tw@ \hskip \arraycolsep + $\displaystyle{##}$\hfil\tabskip\@centering + &\global\@eqcnt\thr@@ \hb@xt@\z@\bgroup\hss##\egroup + \tabskip\z@skip + \cr +} + + + + + +%\newenvironment{Eqnarray}{\arraycolsep 0.14em\begin{eqnarray}}{\end{eqnarray}} + +% The hangitem environment -- like description, but text lines up with +% the item descriptor. You give an additional argument containing text +% of the width that you want indentations. +% +\def\hangitem#1{\list{}{\settowidth\labelwidth{#1} + \leftmargin\labelwidth\advance\leftmargin\labelsep }} +\let\endhangitem\endlist + +%------ Problem List Macro +\newcounter{probnum} +\newenvironment{exerlist}% + {\begin{list}{\bf \theprobnum.}% + {\usecounter{probnum} \itemsep 1ex \leftmargin 2.0em \labelsep 0.5em + \rightmargin 0in}}{\end{list}} + + + + +%===================== Define FANCYHDS.STY +% fancyheadings.sty version 1.1 +% Fancy headers and footers. +% Piet van Oostrum, Dept of Computer Science, University of Utrecht +% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands +% Telephone: +31-30-531806. piet@cs.ruu.nl (mcvax!hp4nl!ruuinf!piet) +% Sep 23, 1992. + +\def\lhead{\@ifnextchar[{\@xlhead}{\@ylhead}} +\def\@xlhead[#1]#2{\gdef\@elhead{#1}\gdef\@olhead{#2}} +\def\@ylhead#1{\gdef\@elhead{#1}\gdef\@olhead{#1}} + +\def\chead{\@ifnextchar[{\@xchead}{\@ychead}} +\def\@xchead[#1]#2{\gdef\@echead{#1}\gdef\@ochead{#2}} +\def\@ychead#1{\gdef\@echead{#1}\gdef\@ochead{#1}} + +\def\rhead{\@ifnextchar[{\@xrhead}{\@yrhead}} +\def\@xrhead[#1]#2{\gdef\@erhead{#1}\gdef\@orhead{#2}} +\def\@yrhead#1{\gdef\@erhead{#1}\gdef\@orhead{#1}} + +\def\lfoot{\@ifnextchar[{\@xlfoot}{\@ylfoot}} +\def\@xlfoot[#1]#2{\gdef\@elfoot{#1}\gdef\@olfoot{#2}} +\def\@ylfoot#1{\gdef\@elfoot{#1}\gdef\@olfoot{#1}} + +\def\cfoot{\@ifnextchar[{\@xcfoot}{\@ycfoot}} +\def\@xcfoot[#1]#2{\gdef\@ecfoot{#1}\gdef\@ocfoot{#2}} +\def\@ycfoot#1{\gdef\@ecfoot{#1}\gdef\@ocfoot{#1}} + +\def\rfoot{\@ifnextchar[{\@xrfoot}{\@yrfoot}} +\def\@xrfoot[#1]#2{\gdef\@erfoot{#1}\gdef\@orfoot{#2}} +\def\@yrfoot#1{\gdef\@erfoot{#1}\gdef\@orfoot{#1}} + +\newdimen\headrulewidth +\newdimen\footrulewidth +\newdimen\plainheadrulewidth +\newdimen\plainfootrulewidth +\newdimen\headwidth +\newif\if@fancyplain \@fancyplainfalse +\def\fancyplain#1#2{\if@fancyplain#1\else#2\fi} + +% Initialization of the head and foot text. + +\headrulewidth 0.4pt +\footrulewidth\z@ +\plainheadrulewidth\z@ +\plainfootrulewidth\z@ + +\lhead[\fancyplain{}{\sl\rightmark}]{\fancyplain{}{\sl\leftmark}} +% i.e. empty on ``plain'' pages \rightmark on even, \leftmark on odd pages +\chead{} +\rhead[\fancyplain{}{\sl\leftmark}]{\fancyplain{}{\sl\rightmark}} +% i.e. empty on ``plain'' pages \leftmark on even, \rightmark on odd pages +\lfoot{} +\cfoot{\rm\thepage} % page number +\rfoot{} + +% Put together a header or footer given the left, center and +% right text, fillers at left and right and a rule. +% The \lap commands put the text into an hbox of zero size, +% so overlapping text does not generate an errormessage. + +\def\@fancyhead#1#2#3#4#5{#1\hbox to\headwidth{\vbox{\hbox +{\rlap{\parbox[b]{\headwidth}{\raggedright#2\strut}}\hfill +\parbox[b]{\headwidth}{\centering#3\strut}\hfill +\llap{\parbox[b]{\headwidth}{\raggedleft#4\strut}}}\headrule}}#5} + + +\def\@fancyfoot#1#2#3#4#5{#1\hbox to\headwidth{\vbox{\footrule +\hbox{\rlap{\parbox[t]{\headwidth}{\raggedright#2\strut}}\hfill +\parbox[t]{\headwidth}{\centering#3\strut}\hfill +\llap{\parbox[t]{\headwidth}{\raggedleft#4\strut}}}}}#5} + +\def\headrule{{\if@fancyplain\headrulewidth\plainheadrulewidth\fi +\hrule\@height\headrulewidth\@width\headwidth \vskip-\headrulewidth}} + +\def\footrule{{\if@fancyplain\footrulewidth\plainfootrulewidth\fi +\vskip-0.3\normalbaselineskip\vskip-\footrulewidth +\hrule\@width\headwidth\@height\footrulewidth\vskip-0.3\normalbaselineskip}} + +\def\ps@fancy{ +\let\@mkboth\markboth +\@ifundefined{chapter}{\def\sectionmark##1{\markboth +{{\ifnum \c@secnumdepth>\z@ %MEUH + \thesection\hskip 1em\relax \fi ##1}}{}} +\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne + \thesubsection\hskip 1em\relax \fi ##1}}} +% +{\def\chaptermark##1{\markboth {{\ifnum \c@secnumdepth>\m@ne %MEUH + \@chapapp\ \thechapter. \ \fi ##1}}{}} +\def\sectionmark##1{\markright{{\ifnum \c@secnumdepth >\z@ %MEUH + \thesection. \ \fi ##1}}}} +\ps@@fancy +\headwidth\textwidth} +\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy} +\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy} +\def\ps@@fancy{ +\def\@oddhead{\@fancyhead\relax\@olhead\@ochead\@orhead\hss} +\def\@oddfoot{\@fancyfoot\relax\@olfoot\@ocfoot\@orfoot\hss} +\def\@evenhead{\@fancyhead\hss\@elhead\@echead\@erhead\relax} +\def\@evenfoot{\@fancyfoot\hss\@elfoot\@ecfoot\@erfoot\relax} +} +%------------------- Modify Headers for Prentice-Hall Book Style +%---------- Setup headers and footers +\pagestyle{fancyplain} +\plainfootrulewidth 0pt %---- no foot rule for chapter page +\footrulewidth 0pt %---- no rule for foot + +%--- Redefine Headers +\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}} +% +\lhead[\fancyplain{}{\bf\thepage}]{\fancyplain{}{\sfnine\rightmark}} +% +%\rhead[\fancyplain{}{\footnotesize\sf\CHHEAD}]{\fancyplain{}{\bf\thepage}} + \rhead[\fancyplain{}{\sfnine \leftmark}]{\fancyplain{}{\bf\thepage}} +%--- Empty footers on every page (except initial chapter page which has +%--- page number) and optionally a small date stamp +\cfoot[\fancyplain{}{}]{\fancyplain{}{}} +\rfoot[\fancyplain{}{}]{\fancyplain{\hspace{\fill}\\ \bf\thepage}{}} +\lfoot[\fancyplain{\hspace{\fill}\\ \bf\thepage}{}]{\fancyplain{}{}} +%-- replace the two lines above with the two below for a date stamp footer +%\rfoot[\fancyplain{\scriptsize \today}{\scriptsize \today}]{\fancyplain{\bf\thepage}{}} +%\lfoot[\fancyplain{\bf\thepage}{}]{\fancyplain{\scriptsize \today}{\scriptsize \today}} +%--- Change format of section header +% +% rlm added chaptermark 10/11/96 +\def\sectionmark#1{\markright{\ifnum \c@secnumdepth >\z@ + {\sfeight Section}~\thesection.\quad \fi #1}} +\def\sectionsmark#1{\markright{#1}{#1}} +% +\def\chaptermark#1{\markboth{#1 \quad \@chapapp{}~\thechapter}{}} +\def\chaptersmark#1{\markboth{#1}{#1}} + + + + +%===================== Change Section Heads to Bold Sans Serif +% Create bolds sans serif sectioning headings. Also the headings have +% been reduced in size with less space before and after the heading. +% Modified from macros given in BK10.STY +% +%----------------------------- part --------------------------------- +\def\@part[#1]#2{% + \thispagestyle{empty} + \ifodd\c@page\hbox{}\else\clearpage\fi + \addtocounter{page}{-2} + \thispagestyle{empty} + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{Part \thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{Part #1}% + \fi + {\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries \partname\nobreakspace\thepart + \par + \vskip 20\p@ + \fi + \Huge \bfseries #2\par}% + \@endpart} + +%------------------------- appendix ----------------------------------- + +\let\oldappendix\appendix +\def\appendix{\oldappendix\def\addchaptertoloe{}} + +%------------------------- chapter ----------------------------------- +\def\addchaptertoloe{% + \addtocontents{loe}{\protect\addvspace{14pt}}% + \addtocontents{loe}{\noindent {\bfseries Chapter~\thechapter}\protect\par}% + \addtocontents{loe}{\protect\addvspace{10pt}}% +} + +\def\chapter{\clearpage \thispagestyle{plain} \global\@topnum\z@ +\@afterindentfalse \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter} + \typeout{\@chapapp\space\thechapter.} + \addcontentsline{toc}{chapter}{Chapter~\protect + \numberline{\thechapter}\uppercase{#1}}\else + \addcontentsline{toc}{chapter}{Chapter~\uppercase{#1}}\fi + \chaptermark{#1} + \addchaptertoloe + \addtocontents{lof}{\protect\addvspace{10pt}} +\addtocontents{lot}{\protect\addvspace{10pt}} \if@twocolumn +\@topnewpage[\@makechapterhead{#2}] + \else \@makechapterhead{#2} + \@afterheading \fi} +% +\def\@schapter#1{\if@twocolumn \@topnewpage[\@makeschapterhead{#1}] + \else \@makeschapterhead{#1}\chaptersmark{#1} + \@afterheading\fi\addcontentsline{toc}{chapter}{\uppercase{#1}}} + + + +\def\@makechapterhead#1{\vspace*{-20pt}{\parindent0pt\raggedright +\ifnum\c@secnumdepth>\m@ne\LARGE\sf\@chapapp{}~\thechapter\par +\vskip3pt\hrule\vskip3pt\hrule +\vskip30pt\fi\raggedright\Huge\sfbHuge\uppercase{#1}\par +\nobreak\vskip70pt}}%\chaptermark{#1}} + +\def\@makeschapterhead#1{\vspace*{4pt}{\parindent0pt +\vskip3pt\hrule\vskip3pt\hrule +\vskip36pt\raggedright\Huge\sfbHuge\uppercase{#1}\par +\nobreak\vskip70pt}}%\chaptersmark{#1}} + +%------------------------ section ----------------------------------- +\def\section{\@startsection{section}{1}{\z@}{-3.5ex plus-1ex + minus -.2ex}{1.8ex}{\sfbsection}} + +%--------------------- subsection ----------------------------------- +\def\subsection{\@startsection{subsection}{2}{\z@}{-2.75ex plus -1ex + minus -.2ex}{1.2ex}{\sfbsubsec}} + +%-------------------- subsubsection -------------------------------- +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-2.75ex + plus -1ex minus -.2ex}{1.2ex}{\sfbsubsub}} + +%----------------------- paragraph ---------------------------------- +\def\paragraph{\@startsection{paragraph}{4}{\z@}{1.25ex plus + 1ex minus .2ex}{-1em}{\sfbpara}} + +%---------------------- subparagraph -------------------------------- +\def\subparagraph{\@startsection{subparagraph}{4}{\parindent}{1.25ex + plus 1ex minus .2ex}{-1em}{\normalsize\sfb}} + + + +%====================== Turn off leader dots in Table of Contents +\renewcommand{\@dotsep}{500} + +\def\tableofcontents{\markboth{}{}\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\thispagestyle{plain} \@makeschapterhead{Contents} + \@afterheading + \chaptersmark{Contents} + \sectionsmark{Contents} + \@starttoc{toc}\if@restonecol\twocolumn\fi} + + +\def\thebibliography#1{\chapter*{Bibliography}\list +% \addcontentsline{toc}{chapter}{Bibliography} + {[\arabic{enumi}]}{\settowidth\labelwidth{2em}\leftmargin\labelwidth +% \advance\leftmargin\labelsep + \usecounter{enumi}} + \def\newblock{\hskip .11em plus .33em minus .07em} + \sloppy\clubpenalty4000\widowpenalty4000 + \sfcode`\.=1000\relax} +\let\endthebibliography=\endlist + + +%% BIBLIOGRAPHY +% +%% separate citations with "], [" +\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi +\def\@citea{}\@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{], +[}\@ifundefined {b@\@citeb}{{\bf ?}\@warning {Citation `\@citeb' on +page \thepage \space undefined}}% +{\csname b@\@citeb\endcsname}}}{#1}} + +\def\@cite#1#2{[{#1\if@tempswa, #2\fi}]} + + +%% index + +%\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +%\columnseprule \z@ +%\columnsep 35pt\twocolumn[\@makeschapterhead{Subject Index}] +% \addcontentsline{toc}{chapter}{SUBJECT INDEX} +% \thispagestyle{plain}\parindent\z@ +% \parskip\z@ plus .3pt\relax\let\item\@idxitem} + +\def\theindex{\cleardoublepage\@restonecoltrue\if@twocolumn\@restonecolfalse\fi +\columnseprule \z@ +\columnsep 35pt\twocolumn[\@makeschapterhead{Subject Index}] + \chaptersmark{Subject Index}% + \addcontentsline{toc}{chapter}{SUBJECT INDEX} + \thispagestyle{plain}\parindent\z@ + \parskip\z@ plus .3pt\relax\let\item\@idxitem} + + +\renewcommand{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else +\hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi} + +\renewcommand{\numberline}[1]{\sbox\@tempboxa{#1\hspace{2pt}}% + \ifdim\wd\@tempboxa>\@tempdima \else \wd\@tempboxa\@tempdima\fi + \box\@tempboxa} + +\def\listofexamples{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn + \fi\chapter*{List of Examples} + \renewcommand\@pnumwidth{0em} + \@starttoc{loe}\if@restonecol + \twocolumn\fi} + +\def\l@example{\noindent\@dottedtocline{1}{0em}{3.5em}} + +\parskip 1.5ex +\parindent 0pt + +\renewcommand\listfigurename{\uppercase{List Of Figures}} +\renewcommand\listtablename{\uppercase{List Of Tables}} + |