% $Header: b-conv.sty,v 1.2 94/03/13 21:16:32 goossens Exp $ %%% ==================================================================== %%% @LaTeX-style-file{ %%% filename = "b-conv.sty", %%% version = "0.28", %%% date = "30 August 1993", %%% time = "09:00", %%% author = "Authors", %%% address = "CERN", %%% telephone = "+41 22 767 3363", %%% checksum = "????????????????", %%% email = "goossens@cernvm.cern.ch (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "LaTeX, conventions, LaTeX-companion", %%% supported = "yes", %%% docstring = " %%% %%% b-conv.sty %%% %%% A LaTeX style option giving the coding conventions for %%% the book ``A LaTeX companion''. %%% %%%? The checksum field above was produced by %%%? Robert Solovay's checksum utility.", %%% } %%% ==================================================================== % % Version 0.01 26 September % Version 0.10 27 September FM personal commands are included % Version 0.11 7 November Modify vertical spacing for BCmd environment % Version 0.12 20 December updates for NFSS2 % Version 0.13 20 December added extraindex to turn off automatic % index entries for reading. % Version 0.14 27 February de-activated active | (moved to ch7.tex) % corrected a few bugs % added a few command (e.g. \latextex) % Version 0.15 10 April Prepare final version for copy-editing % added several commands for defining commands % and environments % Version 0.16 17 April Add \rmfamily into \Lcs % Version 0.17 02 May Less space inside boxed command % Version 0.18 04 May Introduce \ttfamily in BDEF % introduce \Largb and \Largs in command % display environments. % Version 0.19 05 May Introduce unindexed versions of \LaTeX % commandss and environments % Version 0.20 06 May Introduce DefEmoo commands + Llength % change \pt, \Lfn, \erritem % Version 0.21 08 May Introduce Llenght and Lfont % Version 0.22 31 May Introduce RCS header, /Author, \DANTE % Version 0.23 6 Jul Bug corrected in DefCo (Largb -> Largs) % Bug corrected in \exl (\char41 -> \char'41) % Version 0.24 19 Jul Add DefCoomm and BDefCoomm % Version 0.25 2 August Add comma to i.e., % Make \lref flush on left and right pages % Add \strut to \Ucom to allow for descenders % Version 0.26 4 August Correct BDEF environment (4pt too much space, % due to first columnsep of tabular; added @{}. % add \(B)DefCmoomm commands % Version 0.27 26 August Introduce \Lmcs in boxed command definitions. % Version 0.28 30 August Introduce \LmBEG and \Lmenv for environment defs. % Add \reset@font in text for all \L... commands % Eliminate \reset@font from all \index commands % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %<*x> % % This file may be used without modification as a style (.sty) file. % % If you have Mittelbach's doc.sty, this file may be formatted with a % command like: % latex b-conv.sty % % If you have the Mittelbach/Duchier/Braams docstrip utility, you may % produce a faster loading .sty file. Rename this file to: b-conv.doc % Then run this file through *plain* TeX: % tex b-conv.doc % This should produce the file enumerate.sty. % If you do not have plain TeX on your system, you can trick LaTeX into % doing the work as follows: % latex \def\fmtname{plain} \input b-conv.doc % Note that you may need to quote the arguments here to stop your % operating system treating the \ characters incorrectly. % % latex b-conv.doc % Will produce a typeset version of the documentation, as above. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\plain{plain}\ifx\fmtname\plain\csname fi\endcsname \def\batchfile{b-conv.doc} \input docstrip \preamble Do not distribute the stripped version of this file. The checksum in the header refers to the documented version. \endpreamble \generateFile{b-conv.sty}{t}{\from{b-conv.doc}{}} \endinput \fi % \ifcat a\noexpand @\let\next\relax\else\def\next{% \documentstyle[11pt,b-conv,doc,fullpage]{article}\MakePercentIgnore}\fi\next % %\def\eatmodule<#1>{}\eatmodule % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \CodelineIndex ^^A Code lines numbered. % \DisableCrossrefs ^^A No Cross references. % \MakeShortVerb{\|} ^^A |\foo| works like \verb+\foo+ % % \title{b-conv.sty} % \author{The authors} % \date{26 September 1992} % \begin{document} % \maketitle % \begin{abstract} % This style contains the coding conventions for the book % ``The LaTeX companion''. % \end{abstract} % % \section{Typography -- shortcuts, abbreviations, emphasizing, etc.} % % `\eg' is produced by the |\eg|. % % `\ie' is produced by the |\ie|. % % `\etc' is produced by the |\etc|. % % \missing{} missing text in quotations by |\missing|. % % '\Lbook{}' is generated by |\Lbook|. % % '\Tbook{}' is generated by |\Tbook|. % % \begin{macrocode} %\NeedsTeXFormat{LaTeX2e} \let\packageORclassERROR\relax \renewcommand{\eg}{e.g.,\xspace} %FMi \renewcommand{\ie}{i.e.,\@\xspace} %FMi \renewcommand{\etc}{etc.\@\xspace} %FMi \newcommand{\missing}{[\ldots] } %FMi \newcommand{\Lbook}{\LaTeX{} \textrm{book}} \newcommand{\Tbook}{\TeX{} \textrm{book}} \newcommand{\Author}[1]{#1\xAuthor{#1}} \newcommand{\xAuthor}[1]{\x@Author#1\@nil} \def\x@Author#1 #2\@nil{\index{#2, #1}} % run authors % with alphabet? \renewcommand{\DANTE}{\textsc{dante}\index{DANTE\string~e.V.}} % \end{macrocode} % `\dvi' is produced by the |\dvi| or |\DVI|. % % `\Dvips' is produced by the |\Dvips|. % % `\PS' is produced by the |\PS|. % % `\EPS' is produced by the |\EPS| or |\eps|. % % `\pt' is produced by the |\pt|. % \begin{macrocode} \newcommand{\babel}{\Lpack{babel}} \newcommand{\dvi}{$\!${\normalfont\ttfamily.dvi}% \index{dvi@{\string\ttfamily.dvi} file}} %FMi \renewcommand{\DVI}{\texttt{dvi}}% MG \newcommand{\Dvips}{\Program{dvips}} \newcommand{\mDvips}{\mProgram{dvips}} \renewcommand{\PS}{PostScript\index{PostScript}} \newcommand{\mPS}{PostScript\index{PostScript|idxbf}} \newcommand{\eps}{Encap\-su\-lated Post\-Script\index{Encapsulated PostScript}} \let\EPS=\eps \newcommand{\pt}{\mbox{\sffamily pt}} % \end{macrocode} % % For typewriter text we use the |\Lit{...}| or |\teletype{...}| % commands, \eg \Lit{qqq}. % % For terms we use the |\EM{...}| command, \eg ``\EM{device-independant} % or \DVI{} file''. % % For text to input by user we use the |\Ucom{...}| command, \eg % \Ucom{latex myfile}. % % For marginal notes use the |\note| command. % |\Open{...}| and |\m{...}| output the italized text in angle brackets, % \eg \m{used by FM}. % The acronyms are specified by |\acro{...}| command. % \begin{macrocode} \def\@minisanitize{\@makeother\$\@makeother\&\@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~} \def\Lit{\begingroup\@minisanitize\@Lit} \def\@Lit#1{\ttfamily\upshape#1\endgroup} \let\teletype=\Lit \newcommand{\Ucom}[1]{{\ttfamily\underline{\strut#1}}} \def\meta#1{{\itshape#1\/}} \newcommand{\acro}[1]{{\scshape \lowercase{#1}}} \newcommand\Warning[1]{\typeout{*****}% \errmessage{* #1}% % \typeout{* #1}% \typeout{*****}} % make this an error in production \newcommand\extraindex[1]{\index{#1}} % make this \index in % production % \Warning{Some updates necessary for the final run!} % \end{macrocode} % % \section{Cross-references} % % For references on \LaTeX book we use the \DefCmm{lref}{page} % command, which puts the reference on the margin motes. % FM sudgests also the |\vref| command, which produce % twin (number and page number) reference. % ^^A \newcommand{\vref}[1]{\unskip~\ref{#1} on page~\pageref{#1}} % \begin{macrocode} % \input varioref.sty \newcommand{\lref}[1]{\marginpar[($\mathcal L$ #1)]% {\hfill($\mathcal L$ #1)}} % \end{macrocode} % % \section{Commands for index generation} % % \LaTeX{} major style `\Lmsty{article}' should be mentioned as % |\LMsty{article}|. % \LaTeX{} minor style `\Lmsty{a4}' should be mentioned as |\Lmsty{a4}|. % The |\xLMsty{...}| and |\xLmsty{...}| commands produce only the reference. % The |\nxLMsty{...}| and |\nxLmsty{...}| commands are only typeset % without entries in the index. % \begin{macrocode} \newcommand{\LMsty}[1]{\nxLMsty{#1}\xLMsty{#1}} \newcommand{\xLMsty}[1]{\packageORclassERROR} \newcommand{\nxLMsty}[1]{\mbox{\normalfont\sffamily#1}\packageORclassERROR} \newcommand{\Lmsty}[1]{\nxLmsty{#1}\xLmsty{#1}} \newcommand{\nxLmsty}[1]{\mbox{\normalfont\sffamily#1}\packageORclassERROR} \newcommand{\xLmsty}[1]{\packageORclassERROR} \let\Lsty\Lmsty \let\xLsty\xLmsty \let\nxLsty\nxLmsty \newcommand{\Lclass}[1]{\nxLclass{#1}\xLclass{#1}} \newcommand{\xLclass}[1]{\index{#1@{\sffamily#1} document class}% \index{Document class!#1@{\sffamily#1}}} \newcommand{\nxLclass}[1]{\mbox{\normalfont\sffamily#1}} \newcommand{\Lmclass}[1]{\nxLclass{#1}\xLmclass{#1}} \newcommand{\xLmclass}[1]{\index{#1@{\sffamily#1} document class|idxbf}% \index{Document class!#1@{\sffamily#1}|idxbf}} \newcommand{\Lpack}[1]{\nxLpack{#1}\xLpack{#1}} \newcommand{\xLpack}[1]{\index{#1@{\sffamily#1} package}% \index{Package!#1@{\sffamily#1}}} \newcommand{\nxLpack}[1]{\mbox{\normalfont\sffamily#1}} \newcommand{\xLpackextra}[2]{\index{#1@{\sffamily#1} package!#2}} \newcommand{\Lmpack}[1]{\nxLpack{#1}\xLmpack{#1}} \newcommand{\xLmpack}[1]{\index{#1@{\sffamily#1} package|idxbf}% \index{Package!#1@{\sffamily#1}|idxbf}} \newcommand{\xLpackrangel}[1]{\index{#1@{\sffamily#1} package|(}% \index{Package!#1@{\sffamily#1}|(}} \newcommand{\xLpackranger}[1]{\index{#1@{\sffamily#1} package|)}% \index{Package!#1@{\sffamily#1}|)}} \newcommand{\xLmpackrangel}[1]{\index{#1@{\sffamily#1} package|(idxbf}% \index{Package!#1@{\sffamily#1}|(idxbf}} \newcommand{\xLmpackranger}[1]{\index{#1@{\sffamily#1} package|)idxbf}% \index{Package!#1@{\sffamily#1}|)idxbf}} \newcommand{\Loption}[1]{\nxLoption{#1}\xLoption{#1}} \newcommand{\xLoption}[1]{\index{#1@{\sffamily#1} % class option}% \index{Option (class or package)!#1@{\sffamily#1}}} \newcommand{\nxLoption}[1]{\mbox{\normalfont\sffamily#1}} \newcommand{\Lmoption}[1]{\nxLoption{#1}\xLmoption{#1}} \newcommand{\xLmoption}[1]{\index{#1@{\sffamily#1} % class option|idxbf}% \index{Option (class or package)!#1@{\sffamily#1}|idxbf}} \newcommand{\Lskip}[1]{\nxLskip{#1}\xLskip{#1}} \newcommand{\xLskip}[1]{\index{#1@{\ttfamily\idxbs#1} rubber length}% \index{Rubber length!#1@{\ttfamily\idxbs#1}}} \newcommand{\nxLskip}[1]{\mbox{\normalfont\ttfamily\bs#1}} \newcommand{\Lmskip}[1]{\nxLskip{#1}\xLmskip{#1}} \newcommand{\xLmskip}[1]{\index{#1@{\ttfamily\idxbs#1} rubber length|idxbf}% \index{Rubber length!#1@{\ttfamily\idxbs#1}|idxbf}} \newcommand{\Ldim}[1]{\nxLdim{#1}\xLdim{#1}} \newcommand{\xLdim}[1]{\index{#1@{\ttfamily\idxbs#1} rigid length}% \index{Rigid length!#1@{\ttfamily\idxbs#1}}} \newcommand{\nxLdim}[1]{\mbox{\normalfont\ttfamily\bs#1}} \newcommand{\Lmdim}[1]{\nxLdim{#1}\xLmdim{#1}} \newcommand{\xLmdim}[1]{\index{#1@{\ttfamily\idxbs#1} rigid length|idxbf}% \index{Rigid length!#1@{\ttfamily\idxbs#1}|idxbf}} % \end{macrocode} % \LaTeX{} page style `\Psty{empty}' should be mentioned as |\Psty{empty}|. % The |\xPsty{...}| command produces only the reference. % The |\nxPsty{...}| command is only typeset without entries in the index. % \begin{macrocode} \newcommand{\Psty}[1]{\mbox{\sffamily#1}\xPsty{#1}} \newcommand{\xPsty}[1]{\index{#1@{\sffamily#1} pagestyle}% \extraindex{Page style!#1@{\sffamily#1}}} \let\nxPsty\nxLmsty \newcommand{\Pmsty}[1]{\mbox{\sffamily#1}\xPmsty{#1}} \newcommand{\xPmsty}[1]{\index{#1@{\sffamily#1} pagestyle|idxbf}% \extraindex{Page style!#1@{\sffamily#1}|idxbf}} \newcommand{\PNsty}[1]{\xPNsty{#1}\nxPNsty{#1}} \newcommand{\xPNsty}[1]{\index{#1@{\ttfamily#1} page number style}% \extraindex{Page number style!#1@{\ttfamily#1}}} \newcommand\nxPNsty[1]{{\normalfont\ttfamily#1}} \newcommand{\PNmsty}[1]{\xPNmsty{#1}\nxPNsty{#1}} \newcommand{\xPNmsty}[1]{\index{#1@{\ttfamily#1} page number style|idxbf}% \extraindex{Page number style!#1@{\ttfamily#1}|idxbf}} % \end{macrocode} % \LaTeX{} control sequence `\Lcs{stop}' should be input as |\Lcs{stop}| % to produce the text and the reference, as |\xLcs{stop}| to % produce only the reference and as |\nxLcs{stop}| to only typeset the % command sequence in the text. % Note, the \Lcs{cs} command is the synonym for \Lcs{Lcs}. % \begin{macrocode} \newcommand{\Lcs}[1]{\mbox{\normalfont\ttfamily\bs#1}\xLcs{#1}} \newcommand{\xLcs}[1]{\index{#1@{\ttfamily\protect\idxbs#1}}} \let\cs=\Lcs \newcommand{\nxLcs}[1]{\mbox{\normalfont\ttfamily\bs#1}} % \end{macrocode} % \Lcs{Lmcs} makes a main index entry for places where one really % talks about a cs. % \begin{macrocode} \newcommand{\Lmcs}[1]{\mbox{\normalfont\ttfamily\bs#1}\xLmcs{#1}} \newcommand{\xLmcs}[1]{\index{"#1@{\ttfamily\protect\idxbs"#1}|idxbf}} % \end{macrocode} % The \Lcs{Lcsextra} command is for producing a subentry to cs name. % \begin{macrocode} \newcommand{\Lcsextra}[1]{\mbox{\normalfont\ttfamily\bs#1}\xLcsextra{#1}} \newcommand{\xLcsextra}[2]{\index{#1@{\ttfamily\protect\idxbs#1}!#2}} \newcommand{\Lmcsextra}[1]{\mbox{\normalfont\ttfamily\bs#1}\xLmcsextra{#1}} \newcommand{\xLmcsextra}[2]{\index{#1@{\ttfamily\protect\idxbs#1}!#2|idxbf}} \newcommand{\xLcsextrarangel}[2]{\index{"#1@{\ttfamily\protect\idxbs"#1}!#2|(}} \newcommand{\xLcsextraranger}[2]{\index{"#1@{\ttfamily\protect\idxbs"#1}!#2|)}} % \end{macrocode} % \LaTeX{} counter `\Lctr{chapter}' should be entered as |\Lctr{chapter}|. % \begin{macrocode} \newcommand{\Lctr}[1]{\nxLctr{#1}\xLctr{#1}} \newcommand{\Lmctr}[1]{\nxLctr{#1}\xLmctr{#1}} \newcommand{\nxLctr}[1]{\mbox{\normalfont\ttfamily#1}} \newcommand{\xLctr}[1]{\index{#1@{\ttfamily#1} counter}} \newcommand{\xLmctr}[1]{\index{#1@{\ttfamily#1} counter|idxbf}} \newcommand{\xLctrextra}[2]{\index{#1@{\ttfamily#1} counter!#2}} % \end{macrocode} % \LaTeX{} option name `\Lopt{11pt}' should be entered as % |\Lopt{11pt}|. % \begin{macrocode} \newcommand{\Lopt}[1]{\nxLopt{#1}\xLopt{#1}} \newcommand{\nxLopt}[1]{\mbox{\normalfont\sffamily#1}\updateERROR} \newcommand{\xLopt}[1]{{\index{#1@{\sffamily#1} option}}\updateERROR} % \end{macrocode} % \LaTeX{} environment name % `\Lenv{quote}' should be mentioned as |\Lenv{quote}|. % The |\xLenv{...}| command produces only the reference. % The |\nxLenv{...}| command is only typeset in the text and does % not generate an index entry. % The |\LBEG{quote}| will produce `\LBEG{quote}'. % The |\LEND{quote}| will produce `\LEND{quote}'. % \begin{macrocode} \newcommand{\Lenv}[1]{\nxLenv{#1}\xLenv{#1}} \newcommand{\Lmenv}[1]{\nxLenv{#1}\xLmenv{#1}} \newcommand{\xLenv}[1]{\index{#1@{\ttfamily#1} environment}} \newcommand{\xLmenv}[1]{\index{#1@{\ttfamily#1} environment|idxbf}} \newcommand{\nxLenv}[1]{\mbox{\normalfont\ttfamily#1}} \newcommand{\xLenvrangel}[1]{\index{#1@{\ttfamily#1} environment|(}} \newcommand{\xLenvranger}[1]{\index{#1@{\ttfamily#1} environment|)}} \newcommand{\xLmenvrangel}[1]{\index{#1@{\ttfamily#1} environment|(idxbf}} \newcommand{\xLmenvranger}[1]{\index{#1@{\ttfamily#1} environment|)idxbf}} \newcommand{\Lenvextra}[1]{\nxLenv{#1}\xLenvextra{#1}} \newcommand{\xLenvextra}[2]{\index{#1@{\ttfamily#1} environment!#2}} \newcommand{\xLmenvextra}[2]{\index{#1@{\ttfamily#1} environment!#2|idxbf}} \newcommand{\xLenvextrarangel}[2]{\index{#1@{\ttfamily#1} environment!#2|(}} \newcommand{\xLenvextraranger}[2]{\index{#1@{\ttfamily#1} environment!#2|)}} \newcommand{\LBEG}[1]{{\normalfont\ttfamily\bs{}begin\lcb#1\rcb}\xLenv{#1}} \newcommand{\LmBEG}[1]{{\normalfont\ttfamily\bs{}begin\lcb#1\rcb}\xLmenv{#1}} \newcommand{\LEND}[1]{{\normalfont\ttfamily\bs{}end\lcb#1\rcb}\xLenv{#1}} \newcommand{\LmEND}[1]{{\normalfont\ttfamily\bs{}end\lcb#1\rcb}\xLmenv{#1}} % \end{macrocode} % \LaTeX{} file name % `\Lfn{toc}' should be entered as |\Lfn{toc}|. % |\nxLfn| is the un-indexed form. % \begin{macrocode} \newcommand{\Lfn}[1]{\nxLfn{#1}\xLfn{#1}} \newcommand{\xLfn}[1]{\index{#1@{\ttfamily\protect\makebox[0pt][r]{.}#1} file}} \newcommand{\nxLfn}[1]{\mbox{\normalfont\ttfamily.#1}} \newcommand{\Lmfn}[1]{\nxLfn{#1}\xLmfn{#1}} \newcommand{\xLmfn}[1]{\index{#1@{\ttfamily\protect\makebox[0pt][r]{.}#1} file|idxbf}} \newcommand{\file}[1]{\mbox{\normalfont\ttfamily#1}\index{#1@{\ttfamily#1}}} \newcommand\Lfont[1]{\mbox{\normalfont\ttfamily#1}} % \end{macrocode} % term with any text % \begin{macrocode} \def\ttfamilyx#1#2{{\normalfont\ttfamily#1}{\index{#1@{\ttfamily#1} #2}}} % \end{macrocode} % `Meta' macro. % \begin{macrocode} \def\Program#1{\textsf{#1}\extraindex{Program!#1}% \index{#1 program}}% \def\mProgram#1{\textsf{#1}\extraindex{Program!#1|idxbf}% \index{#1 program|idxbf}}% % \end{macrocode} % % % \section{Description of the \LaTeX{} commands} % % The \LaTeX's commands are defined by : % \begin{BDef} % \DefCm{DefC}{name}\\ % \DefCmm{DefCm}{name}{mandatory-arg}\\ % \DefCmm{DefCo}{name}{optional-arg}\\ % \DefCmmm{DefCom}{name}{optional}{mandatory}\\ % \DefCmmm{DefCmm}{name}{optional}{mandatory}\\ % \end{BDef} % An argument ``\Larg{arg}'' is mentioned as |\Larg{arg}|. % A version surrounded by curly braces is |\Largb{arg}|. % A version surrounded by square brackets is |\Largs{arg}|. % The boxed display with command descriptions is produced by % the \Lenv{BDef} environment. % % \begin{macrocode} \newsavebox{\boxdef} \newenvironment{BDef}{\begin{lrbox}{\boxdef}\def\arraystretch{1.0}% \begin{tabular}{@{}l@{}l@{}l@{}}}% {\end{tabular}\end{lrbox}\begin{flushleft}% \fbox{\usebox\boxdef}\end{flushleft}} % \end{macrocode} % % \typeout{End of the Description.} % \typein[\answer]% % {Do you want an annotated listing of the internals (y/n) ?} % \def\next{y}\ifx\answer\next\else\expandafter\stop\fi % %\section{Internals} % % \begin{macrocode} \newcommand{\Larg}[1]{{\normalfont\itshape#1\/}} \newcommand{\Largb}[1]{\lcb{\normalfont\itshape#1\/}\rcb} \newcommand{\Largs}[1]{\lsb{\normalfont\itshape#1\/}\rsb} \newenvironment{BCmd}{\flushleft}{\@endparpenalty10000 \endflushleft} \newcommand{\DefC}[1]{\Lmcs{#1}} \newcommand{\DefCm}[2]{\Lmcs{#1}\Largb{#2}} \newcommand{\DefCo}[2]{\Lmcs{#1}\Largs{#2}} \newcommand{\DefCmo}[3]{\Lmcs{#1}\Largb{#2}\Largs{#3}} \newcommand{\DefCom}[3]{\Lmcs{#1}\Largs{#2}\Largb{#3}} \newcommand{\DefCmm}[3]{\Lmcs{#1}\Largb{#2}\Largb{#3}} \newcommand{\DefCmmo}[4]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largs{#4}} \newcommand{\DefCmom}[4]{\Lmcs{#1}\Largb{#2}\Largs{#3}\Largb{#4}} \newcommand{\DefComm}[4]{\Lmcs{#1}\Largs{#2}\Largb{#3}\Largb{#4}} \newcommand{\DefCoom}[4]{\Lmcs{#1}\Largs{#2}\Largs{#3}\Largb{#4}} \newcommand{\DefComo}[4]{\Lmcs{#1}\Largs{#2}\Largb{#3}\Largs{#4}} \newcommand{\DefCmmm}[4]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largb{#4}} \newcommand{\DefCmoom}[5]{\Lmcs{#1}\Largb{#2}\Largs{#3}\Largs{#4}\Largb{#5}} \newcommand{\DefCoomm}[5]{\Lmcs{#1}\Largs{#2}\Largs{#3}\Largb{#4}\Largb{#5}} \newcommand{\DefCooom}[5]{\Lmcs{#1}\Largs{#2}\Largs{#3}\Largs{#4}\Largb{#5}} \newcommand{\DefCommm}[5]{\Lmcs{#1}\Largs{#2}\Largb{#3}\Largb{#4}\Largb{#5}} \newcommand{\DefCmomm}[5]{\Lmcs{#1}\Largb{#2}\Largs{#3}\Largb{#4}\Largb{#5}} \newcommand{\DefCmmom}[5]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largs{#4}\Largb{#5}} \newcommand{\DefCmmmo}[5]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largb{#4}\Largs{#5}} \newcommand{\DefCmmmm}[5]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largb{#4}\Largb{#5}} \newcommand{\DefCmmmmm}[6]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largb{#4}\Largb{#5}\Largb{#6}} \newcommand{\DefCmmomm}[6]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largs{#4}\Largb{#5}\Largb{#6}} \newcommand{\DefCmomom}[6]{\Lmcs{#1}\Largb{#2}\Largs{#3}\Largb{#4}\Largs{#5}\Largb{#6}} \newcommand{\DefCmoomm}[6]{\Lmcs{#1}\Largb{#2}\Largs{#3}\Largs{#4}\Largb{#5}\Largb{#6}} \newcommand{\DefCmmmmmm}[7]{\Lmcs{#1}\Largb{#2}\Largb{#3}\Largb{#4}\Largb{#5}\Largb{#6}\Largb{#7}} \newcommand{\BDefC}[1]{\begin{BCmd}\fbox{\DefC{#1}}\end{BCmd}} \newcommand{\BDefCm}[2]{\begin{BCmd}\fbox{\DefCm{#1}{#2}}\end{BCmd}} \newcommand{\BDefCo}[2]{\begin{BCmd}\fbox{\DefCo{#1}{#2}}\end{BCmd}} \newcommand{\BDefCmo}[3]{\begin{BCmd}\fbox{\DefCmo{#1}{#2}{#3}}\end{BCmd}} \newcommand{\BDefCom}[3]{\begin{BCmd}\fbox{\DefCom{#1}{#2}{#3}}\end{BCmd}} \newcommand{\BDefCmm}[3]{\begin{BCmd}\fbox{\DefCmm{#1}{#2}{#3}}\end{BCmd}} \newcommand{\BDefComo}[4]{\begin{BCmd}\fbox{\DefComo{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefCmmo}[4]{\begin{BCmd}\fbox{\DefCmmo{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefCmom}[4]{\begin{BCmd}\fbox{\DefCmom{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefComm}[4]{\begin{BCmd}\fbox{\DefComm{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefCmmm}[4]{\begin{BCmd}\fbox{\DefCmmm{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefCoom}[4]{\begin{BCmd}\fbox{\DefCoom{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefCmoom}[5]{\begin{BCmd}\fbox{\DefCmoom{#1}{#2}{#3}{#4}{#5}}\end{BCmd}} \newcommand{\BDefCoomm}[5]{\begin{BCmd}\fbox{\DefCoomm{#1}{#2}{#3}{#4}{#5}}\end{BCmd}} \newcommand{\BDefCmmmo}[5]{\begin{BCmd}\fbox{\DefCmmmo{#1}{#2}{#3}{#4}{#5}}\end{BCmd}} \newcommand{\BDefCommm}[5]{\begin{BCmd}\fbox{\DefCommm{#1}{#2}{#3}{#4}{#5}}\end{BCmd}} \newcommand{\BDefCmmmm}[5]{\begin{BCmd}\fbox{\DefCmmmm{#1}{#2}{#3}{#4}{#5}}\end{BCmd}} \newcommand{\BDefCmmmmm}[6]{\begin{BCmd}\fbox{\DefCmmmmm{#1}{#2}{#3}{#4}{#5}{#6}}\end{BCmd}} \newcommand{\BDefCmmomm}[6]{\begin{BCmd}\fbox{\DefCmmomm{#1}{#2}{#3}{#4}{#5}{#6}}\end{BCmd}} \newcommand{\BDefCmomom}[6]{\begin{BCmd}\fbox{\DefCmomom{#1}{#2}{#3}{#4}{#5}{#6}}\end{BCmd}} \newcommand{\BDefCmoomm}[6]{\begin{BCmd}\fbox{\DefCmoomm{#1}{#2}{#3}{#4}{#5}{#6}}\end{BCmd}} % Then for environments \newcommand{\DefE}[1]{\LmBEG{#1}} \newcommand{\DefEm}[2]{\LmBEG{#1}\Largb{#2}} \newcommand{\DefEo}[2]{\LmBEG{#1}\Largs{#2}} \newcommand{\DefEmo}[3]{\LmBEG{#1}\Largb{#2}\Largs{#3}} \newcommand{\DefEom}[3]{\LmBEG{#1}\Largs{#2}\Largb{#3}} \newcommand{\DefEmm}[3]{\LmBEG{#1}\Largb{#2}\Largb{#3}} \newcommand{\DefEmom}[4]{\LmBEG{#1}\Largb{#2}\Largs{#3}\Largb{#4}} \newcommand{\DefEomm}[4]{\LmBEG{#1}\Largs{#2}\Largb{#3}\Largb{#4}} \newcommand{\DefEmoo}[4]{\LmBEG{#1}\Largb{#2}\Largs{#3}\Largs{#4}} \newcommand{\DefEomo}[4]{\LmBEG{#1}\Largs{#2}\Largb{#3}\Largs{#4}} \newcommand{\DefEmmm}[4]{\LmBEG{#1}\Largb{#2}\Largb{#3}\Largb{#4}} \newcommand{\DefEooom}[5]{\LmBEG{#1}\Largs{#2}\Largs{#3}\Largs{#4}\Largb{#5}} \newcommand{\DefEmmmmm}[6]{\LmBEG{#1}\Largb{#2}\Largb{#3}\Largb{#4}\Largb{#5}\Largb{#6}} % ...... and their boxed versions \newcommand{\BDefE}[1]{\begin{BCmd}\fbox{\DefE{#1}}\end{BCmd}} \newcommand{\BDefEm}[2]{\begin{BCmd}\fbox{\DefEm{#1}{#2}}\end{BCmd}} \newcommand{\BDefEo}[2]{\begin{BCmd}\fbox{\DefEo{#1}{#2}}\end{BCmd}} \newcommand{\BDefEmo}[3]{\begin{BCmd}\fbox{\DefEmo{#1}{#2}{#3}}\end{BCmd}} \newcommand{\BDefEom}[3]{\begin{BCmd}\fbox{\DefEom{#1}{#2}{#3}}\end{BCmd}} \newcommand{\BDefEmm}[3]{\begin{BCmd}\fbox{\DefEmm{#1}{#2}{#3}}\end{BCmd}} \newcommand{\BDefEmom}[4]{\begin{BCmd}\fbox{\DefEmom{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefEomm}[4]{\begin{BCmd}\fbox{\DefEomm{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefEmoo}[4]{\begin{BCmd}\fbox{\DefEmoo{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefEomo}[4]{\begin{BCmd}\fbox{\DefEomo{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefEmmm}[4]{\begin{BCmd}\fbox{\DefEmmm{#1}{#2}{#3}{#4}}\end{BCmd}} \newcommand{\BDefEmmmmm}[6]{\begin{BCmd}\fbox{\DefEmmmmm{#1}{#2}{#3}{#4}{#5}{#6}}\end{BCmd}} % \end{macrocode} % % The |@| character requires special handling because it's % a special character for MakeIndex. To avoid trouble we % make a direct call to the |\char| command. % \begin{macrocode} \def\at{\char64\relax}\let\atsign=\at \def\exl{\char'41\relax} \def\bs{{\protect\normalfont\ttfamily\char'134}}\let\bslash=\bs \def\idxbs{\protect\makebox[0pt][r]{\protect\bs}} \def\sbl{{\protect\normalfont\ttfamily\char'40}} \def\lcb{{\protect\normalfont\ttfamily\char'173}} \def\rcb{{\protect\normalfont\ttfamily\char'175}} \def\lsb{{\protect\normalfont\ttfamily\char'133}} \def\rsb{{\protect\normalfont\ttfamily\char'135}} \def\lab{{\protect\normalfont\ttfamily\char'074}} \def\rab{{\protect\normalfont\ttfamily\char'076}} \def\vbar{{\protect\normalfont\ttfamily\char'174}} % \end{macrocode} % Stuff especially for NFSS chapter FMi % \begin{macrocode} \newcommand{\NFSS}{{\sffamily NFSS}} \newcommand{\NFSSii}{{\sffamily NFSS2}} \newcommand{\PSNFSS}{{\sffamily PSNFSS}} \newcommand{\numberofCMfonts}{31} \renewcommand{\pt}{\mbox{pt}} \newcommand{\tmp}{} \newcommand{\texprog}[1]{{\sffamily #1}} \newcommand{\erritem}[1]{\item[\underline{\ttfamily#1}]\mbox{}\\} \def\erritem#1\par{\item[{\normalfont\ttfamily#1}]\hskip-\labelsep \mbox{}\\} % tmp fix because Fmi likes % pars there \renewcommand{\*}{\protect\pstar{}} \newcommand{\pstar}{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}} \newcommand{\idxbf}[1]{{\fontseries{b}\selectfont#1}} % don't use % extended bold % in index \newcommand{\latextex}{\texttt{latex.tex}% file containing TeX \index{latex.tex@\texttt{latex.tex} file}}% code for basic LaTeX \newcommand{\seealso}[2]{\emph{see also} #1} \def\see#1#2{\emph{see} #1} % index first to ensure that ital corr is handled correctly %%%%%%%%%%% removed from ch13 and added here \newcommand{\Bbfun}[1]{\texttt{#1}% %\index{bibtex@\protect\BibTeX!style file built-in function!{\ttfamily#1}}% %\index{function@ built-in function in \protect\BibTeX{} style file!{\ttfamily#1}}% %\index{#1@{\ttfamily#1} (built-in function in \protect\BibTeX{} style file)}} } \newcommand{\Bcomm}[1]{\texttt{#1}% %\index{bibtex@\protect\BibTeX!style file command!{\ttfamily#1}}% %\index{command (in \protect\BibTeX{} style file)!{\ttfamily#1}}% %\index{#1@{\ttfamily#1} (\protect\BibTeX{} style file command)}} } \newcommand{\Bfield}[1]{\texttt{#1}% %\index{bibtex@\protect\BibTeX!field!{\ttfamily#1}}% %\index{field (\protect\BibTeX)!{\ttfamily#1}}% %\index{#1@{\ttfamily#1} (\protect\BibTeX{} field)}} } \newcommand{\Btype}[1]{\texttt{#1}% %\index{bibtex@\protect\BibTeX!entry type!{\ttfamily#1}}% %\index{entry type (\protect\BibTeX)!{\ttfamily#1}}% %\index{#1@{\ttfamily#1} (\protect\BibTeX{} entry type)}} } \newcommand{\Btxbst}{\texttt{btxbst.doc}% %\index{bibtex@\protect\BibTeX!style documentation file!{\ttfamily btxbst.doc}}% %\index{btxbst@{\ttfamily btxbst.doc} (\protect\BibTeX{} style documentation file)}} } \newcommand{\Bpreamble}{\texttt{\at PREAMBLE}% %\index{bibtex@\protect\BibTeX!\texttt{\at PREAMBLE} command}% %\index{"@preamble@{\ttfamily\at PREAMBLE} (\protect\BibTeX{} command)}% %\index{preamble@{\ttfamily\at PREAMBLE} (\protect\BibTeX{} command)}} } \newcommand{\Bstring}{{\ttfamily\at STRING}% %\index{bibtex@\protect\BibTeX!{\ttfamily\at STRING} command}% %\index{"@string@{\ttfamily\at STRING} (\protect\BibTeX{} command)}% %\index{string@{\ttfamily\at STRING} (\protect\BibTeX{} command)}} } \newcommand{\Bsty}[1]{\mbox{\sffamily#1}\xBsty{#1}} \newcommand{\xBsty}[1]{\index{#1@{\sffamily#1} \protect\BibTeX{} style}% \extraindex{bibtex style@\string\protect\string\BibTeX{} style!{\sffamily#1}}} \let\nxBsty\nxLpack \newcommand{\Bmsty}[1]{\mbox{\sffamily#1}\xBmsty{#1}} \newcommand{\xBmsty}[1]{\index{#1@{\sffamily#1} \protect\BibTeX{} style|idxbf}% \extraindex{bibtex style@\string\protect\string\BibTeX{} style!{\sffamily#1}|idxbf}} % \end{macrocode} % % \end{document} \endinput