diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:57:34 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:57:34 +0000 |
commit | 3eb843585fc56ace68d2c095ff32de0c743b9446 (patch) | |
tree | 287b2687611d62336f3d9ce623f6040a9caecb1b /Master/texmf-dist/tex/latex/kluwer/klumac.sty | |
parent | 27fa66bacafe77045cae158eb1a517a5600e3332 (diff) |
kluwer
git-svn-id: svn://tug.org/texlive/trunk@1017 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/kluwer/klumac.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/kluwer/klumac.sty | 377 |
1 files changed, 377 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/kluwer/klumac.sty b/Master/texmf-dist/tex/latex/kluwer/klumac.sty new file mode 100644 index 00000000000..4678a7b09b1 --- /dev/null +++ b/Master/texmf-dist/tex/latex/kluwer/klumac.sty @@ -0,0 +1,377 @@ +% +%<*other> +\ifcat a\noexpand @\let\next\relax\else \def\next{% +\documentclass{kluwer}\usepackage{doc}\MakePercentIgnore}\fi\next +\NeedsTeXFormat{LaTeX2e} +\def\filedate{2000/04/29} +% \def\changes#1#2{} +% \changes{1999/11/08}{I by def instead of newcommand} +% \changes{1999/11/30}{reclassification of some math symbols} +% \changes{2000/02/15}{psamsfonts option for amssymb} +\def\filename{klumac.sty} +%\DoNotIndex{\@M,\def,\c@secnumdepth,\baselineskip,\@pnumwidth,\else,\fi} +%\DoNotIndex{\newcommand,\z@,\relax,\renewcommand,\ifnum,\csname,\endcsname} +%\DoNotIndex{\baselineskip,\vskip,\hskip,\relax,\secdef,\gdef,\@cla,\@clb} +%\DoNotIndex{\normalsize,\protect,\global,\setbox,\hbox,\vbox,\endinput} +%\DoNotIndex{\egroup,\endgroup,\bgroup,\begingroup,\let} +%\CodelineIndex +%\newcommand{\Bs}{$\backslash$}% +%\parindent=0pt +%\parskip=3pt +%\hfuzz=10pt +%\MakeShortVerb{\|} +%\addtolength{\textwidth}{4pc} +%\begin{document} +%\begin{opening} +%\title{\filename} +%\date{\filedate} +%\author{Kluwer Academic Publishers\surname{}} +%\institute{~} +%\begin{abstract} +% This internal stylefile defines some handy macros and exports the special +% \AmSTeX\ fonts if available. +%\end{abstract} +%\end{opening} +%\tableofcontents +%\newpage\section{Usage} +%Here are tests for the macro commands used and defined in this file: +%\def\mentry#1{$#1$ & \$\string #1\$ &} +%\def\tentry#1{#1 & \string #1 &} +% +%\begin{tabular}{lllllllll}\hline +%$\I $&\verb!$\I$! &$\iduaal$ &\verb!$\iduaal$! \\ +%$\restrict $&\verb!$\restrict$! &$\diamond$ &\verb!$\diamond$! \\ +%$\depth $&\verb!$\depth$! &$\dom$ &\verb!$\dom$! \\ +%$\mapdown{a}$&\verb!$\mapdown{a}$!&$\dC$ &\verb!$\dC$! \\ +%$\dF $&\verb!$\dF$! &$\dP$ &\verb!$\dP$! \\ +%$\dZ $&\verb!$\dZ$! &$\dQ$ &\verb!$\dQ$! \\ +%$\gsim $&\verb!$\gsim$! &$\logr$ &\verb!$\logr$! \\ +%$\dres $&\verb!$\dres$! &\today &\verb!\today! \\ +%$\forces $&\verb!$\forces$! &\.{a} & \verb!\.{a}! \\ +%$\concat $&\verb!$\concat$! &$\lh$ &\verb!$\lh$! \\ +%$\range $&\verb!$\range$! &$\mapright{a}$&\verb!$\mapright{a}$!\\ +%$\dL $&\verb!$\dL$! &$\dE$ &\verb!$\dE$!\\ +%$\dN $&\verb!$\dN$! &$\dR$ &\verb!$\dR$!\\ +%$\nequiv $&\verb!$\nequiv$! &$\lsim$ &\verb!$\lsim$!\\ +%$\grlo $&\verb!$\grlo$! &$\oast$ &\verb!$\oast$! \\ +%$\res$ &\verb!$\res$! &$\dres$ &\verb!$\dres$! \\ +%$\bigo{a}$ &\verb!$\bigo{a}$! &$\Res{a}$ &\verb!$\Res{a}$!\\ +%$\down{a}$ &\verb!$\down{a}$! &\timenow &\verb!\timenow!& \\ +%\TODAY &\verb!\TODAY! &\nbox{6}{500}{}{.}{4}{1}& +%\verb!\nbox{6}{500}{0}{.}{4}{1}! \\ +%\cb[6pc]{Quite a bit to long a text to fit in one column}& +%\verb!\cb[6pc]{Qu.... mn}!& \nbox{6}{600}{}{.}{4}{74} & +%\verb!\nbox{6}{600}{0}{.}{4}{74}!\\ +%\hline +%\end{tabular} +% +% \begin{itemize} +% \spitem spitem. (\verb!\spitem spitem. !) +% \spitem item) (\verb!\spitem spitem) !) +% \spitem em] (\verb!\spitem spitem] !) +% \spitem - (\verb!\spitem spitem- !) +% \spitem * (\verb!\spitem spitem* !) +% \end{itemize} +%\newpage\section{Implementation} +% Input special fonts. The commands for kluwer's internal font are +% always valid, but this option defines the font. This is needed +% because we do not intend to supply the font to everyone. +% +% Policy is that we want the ams fonts defined. However, not everybody +% has these fonts installed, so it's better to be careful. +% \begin{macrocode} +\ProvidesPackage{klumac}[\filedate ] +%</other> +%<*head> +\font\@klusymfont=cmr10 +\DeclareOption{klusym}{\font\@klusymfont=klusym10 } +%\DeclareOption{psamsfonts}{\PassOptionsToPackage\CurrentOption{amssymb}} +%\ExecuteOptions{} +%</head> +%<*other> +\ProcessOptions +%</other> +%<*neck> +\IfFileExists{amssymb.sty}{\RequirePackage[psamsfonts]{amssymb}% + \global\font\smallmsa=msam7 + \gdef\Register{$^{\mbox{\smallmsa\char114}}$~}}{} +\IfFileExists{wasysym.sty}{\RequirePackage{wasysym}}{% + \IfFileExists{wasysym.tex}{\input{wasysym}}{}} +%</neck> +%<*main> +% \end{macrocode} +% +% \subsection{Math macro's} +% \begin{macrocode} +%\newcommand\I{{\bf I}} +\def\I{{\bf I}} +\newcommand\iduaal{\overline{\I}} +\let\forces\Vdash +\newcommand\rrestrict{\hbox{$\mid$ \kern-5pt \raise3.6pt\hbox{$ + \scriptscriptstyle \backslash$}}} +\newcommand\restrict{\mathrel{\mathpalette\rrestrict{}}} +\let\diamond\lozenge +\newcommand\concat{\mathrel{\raise1pt\hbox{$\!\!^\frown\!\!$}}} +\newcommand\lh{\mathop\mathrm{lh}} +\newcommand\depth{\mathop\mathrm{depth}} +\newcommand\dom{\mathop\mathrm{dom}} +\newcommand\range{\mathop\mathrm{range}} +\newcommand\mapright[1]{\smash{\mathop{\longrightarrow}\limits^{#1}}} +\newcommand\mapdown[1]{\big\downarrow + \rlap{$\vcenter{\hbox{$\scriptstyle#1$}}$}} +\newcommand{\dC}{C \! \! \! \! {\scriptscriptstyle {}^{{}_|}}\ } +\newcommand{\dL}{I \! \! L} +\newcommand{\dE}{I \! \! E} +\newcommand{\dF}{I \! \! F} +\newcommand{\dP}{I \! \! P} +\newcommand{\dN}{I \! \! N} +\newcommand{\dR}{I \! \! R} +\newcommand{\dZ}{Z \! \! \! Z} +\newcommand{\dQ}{Q \! \! \! \! {\scriptscriptstyle {}^|}\ } +% 99/11/30 SK: nequiv, lsim, gsim, logr, grlo now mathrel +\newcommand{\nequiv}{\mathrel{\setbox0\hbox{$\equiv$}% + \rlap{\hbox{$\equiv$}}\hbox to \wd0{\hfil $/$\hfil}}} +\newcommand{\lsim}{\mathrel{\rlap{\raise -.3ex\hbox{${\scriptstyle\sim}$}}% + \raise .6ex\hbox{${\scriptstyle <}$}}}% +\newcommand{\gsim}{\mathrel{\rlap{\raise -.3ex\hbox{${\scriptstyle\sim}$}}% + \raise .6ex\hbox{${\scriptstyle >}$}}}% +\newcommand{\logr}{\mathrel{\rlap{\raise -.3ex\hbox{${\scriptstyle <}$}}% + \raise .6ex\hbox{${\scriptstyle >}$}}}% +\newcommand{\grlo}{\mathrel{\rlap{\raise -.3ex\hbox{${\scriptstyle >}$}}% + \raise .6ex\hbox{${\scriptstyle <}$}}}% +\newcommand{\oast}{\setbox0\hbox{$\odot$}% + \rlap{\hbox to \wd0{\hfil$\ast$\hfil}}\box0} +\newcommand{\res}{\oalign{\hbox{$\grave{}$\kern-3pt$\mid$}}} +\newcommand{\dres}{\mid \! \res} +\newcommand{\bigo}[1]{\setbox0\hbox{$\bigcirc$}% + \rlap{\raise .2ex\hbox to \wd0{\hfil ${\scriptscriptstyle + #1}$\hfil}}\box0} +\newcommand{\Res}[1]{\mathop{\hbox{Res}}\limits_{\scriptscriptstyle #1}} +\newcommand{\down}[1]{\raise -1ex\hbox{{$\scriptstyle #1$}}} +% \end{macrocode} +% \subsection{General} +% +% \begin{macrocode} +\newcount\@cla +\newcount\@clb +\hyphenation{equiv-a-lent equiv-a-lent-ly sat-is-fy sat-is-fies + sat-is-fied} +\newcommand\fn{\hspace*{14pt} \= \kill} +\newcommand\mc{\multicolumn} +\newcommand{\dummy}[1]{} +\def\today{\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 \space\number\day, \number\year} +\def\TODAY{\number\day/\ifcase\month\or 01\or 02\or 03\or 04\or 05\or + 06\or 07\or 08\or 09\or 10\or 11\or 12\fi/\number\year} +\def\timenow{% + \@tempcnta=\time \divide\@tempcnta by 60 \number\@tempcnta:\multiply + \@tempcnta by 60 \@tempcntb=\time \advance\@tempcntb by -\@tempcnta + \ifnum\@tempcntb <10 0\number\@tempcntb\else\number\@tempcntb\fi} +\def\numtoword#1{\ifcase#1\or one\or two\or three\or four\or + five\or six\or seven\or eight\or nine\or ten\or eleven\or twelve\or + thirteen\or fourteen\or fifteen\or sixteen\or seventeen\or + eighteen\or nineteen\or twenty\fi} +\def\NUMTOWORD#1{\ifcase#1\or ONE\or TWO\or THREE\or FOUR\or + FIVE\or SIX\or SEVEN\or EIGHT\or NINE\or TEN\or ELEVEN\or TWELVE\or + THIRTEEN\or FOURTEEN\or FIFTEEN\or SIXTEEN\or SEVENTEEN\or + EIGHTEEN\or NINETEEN\or TWENTY\fi} + +% \end{macrocode} +% |\genaccent| is defined below. |\ifempty| is a shortcut used inside +% |\genaccent|. +% \begin{macrocode} +\def\ifempty#1#2#3{\def\inner{#1}\ifx\inner\empty + #2\else #3\fi } +\def\ifdef#1{\edef\tempa{\expandafter\@gobble\string #1}% + \expandafter\expandafter\expandafter\ifx\expandafter\csname + \tempa \endcsname\relax + \let\next\nosw \else \let\next=\yessw \fi \next} +\def\nosw{\iffalse} +\def\yessw{\iftrue} +% \end{macrocode} +% \subsubsection{Spitem} +% This can be done better. +% \begin{macrocode} +\newif\ifklaar +\newbox\bdj +\def\onestep#1{\ifklaar\else + \if#1){)}\klaartrue\else + \if#1.{.}\klaartrue\else + \if#1]{]}\klaartrue\else + \if#1-{--}\klaartrue\else + \if#1*{*}\klaartrue\else + #1% + \fi\fi\fi\fi\fi + \fi} +\def\subspitem#1{\scan#1\end} +\def\spitem#1 {% + \def\scan##1##2\end{\def\aux{##1}% + \ifklaar\global\setbox\bdj=\hbox{##1##2\space}\else + \ifx\aux\empty \else \def\aux{##2}\onestep{##1}% + \ifx\aux\empty \else \scan##2\end \fi \fi \fi}% + \global\setbox\bdj\hbox{}% + \klaarfalse\expandafter\item[\subspitem{#1}]% + \unhbox\bdj} +% \end{macrocode} +% \subsubsection{Genaccent} +% \begin{macrocode} +\font\genacc=cmr10 +\def\genaccent#1#2#3#4#5{\protect\@genaccent{#1}{#2}{#3}{#4}{#5}} +\def\@genaccent#1#2#3#4#5{% + \leavevmode\setbox0=\hbox{#3}% + \vbox{\offinterlineskip + \ifempty{#1}{}{%\else + \hbox to\wd0{\hss\genacc \char#1\hss}}% + \ifempty{#4}{\kern -.8ex}{\kern #4}% + \vbox to\ht0{\copy0\vss}% + \vtop{\null\vbox to\dp0{\vss}% + \ifempty{#2}{}{%\else + \ifempty{#5}{\kern .2ex}{\kern#5}% + \hbox to \wd0{\hss \genacc\char #2\hss}}% + }}} +\renewcommand\.[1]{\genaccent{95}{}{#1}{}{}} +% \end{macrocode} +% \subsubsection{Table labels} +% Note that these are font-dependant, the option |klusym| is needed to +% initialize the correct font, otherwise the symbols will be in |cmr|. +% \begin{macrocode} +\newcommand\BlackBox{\hbox{\@klusymfont B}~} +\newcommand\EmptyBox{\hbox{\@klusymfont E}~} +\newcommand\HstripeBox{\hbox{\@klusymfont H}~} +\newcommand\VstripeBox{\hbox{\@klusymfont V}~} +\newcommand\LstripeBox{\hbox{\@klusymfont L}~} +\newcommand\RstripeBox{\hbox{\@klusymfont R}~} +\newcommand\UpCrossBox{\hbox{\@klusymfont U}~} +\newcommand\DiagCrossBox{\hbox{\@klusymfont D}~} +% \end{macrocode} +% \subsection{Table macro's} +% |\cb| it a typing shortcut for |\parbox|, without forcing this +% width. +% \begin{macrocode} +\def\cb{\@ifnextchar[{\@cbone}{\@cbone[8pc]}} +\def\@cbone[#1]#2{{\setbox0\hbox{#2}% + \ifdim\wd0 >#1 \parbox[t]{#1}{#2}\else #2\fi}} +% \end{macrocode} +% |\nbox| allows typesetting of aligned numbers. Arguments \#1, \#3 +% and \#5 specify widths in number of digits for the arguments \#2, +% \#4 and \#6. Typeset as |lcr|. Empty arguments for widths means +% natural width. This macro is a lot easier to use inside of another +% macro. +% \begin{macrocode} +\def\nbox#1#2#3#4#5#6{\begingroup\setbox0\hbox{0}% + \ifempty{#1}{\hfil #2}{\hbox to #1\wd0{\hfil #2}}% + \ifempty{#3}{\hbox{#4}}{\hbox to #3\wd0{\hfil #4\hfil }}% + \ifempty{#5}{#6 \hfil}{\hbox to #5\wd0{#6\hfil }}% + \endgroup} +% \end{macrocode} +% +% +% \subsection{Charkern macro's} +% +% These are not very readable, but they work quite well. +% +% Use dollars for inlinemath, not |\(....\)|. +% +% Special handling added for the (quite often appearing) case of +% |\charkern{\notesname}|, and a security check for the often +% appearing case of no argument at all. +% \begin{macrocode} +\newif\ifkern@mathmode \kern@mathmodefalse +\def\charkerncharspace{\kern 0.5ex} +\def\charkernwordspace{\kern 0.5em\penalty 10} +\let\charkerncommand\uppercase +\def\@kap@tfor#1:=#2\do#3{\ifempty{#1}{}{% + \@tforloop#2\@nil\@nil\@@#1{#3}}} +\def\charkern#1{% + \ifempty{#1}{}{%else + \begingroup + \def\test##1##2!!!!{\def\@tempa{##2}}\test#1!!!!% + \ifx\@tempa\empty \edef\@@kc{#1}\else \def\@@kc{#1}\fi + \def\c@@k{@s@e@v@y}% + \def\ck@@##1 @s@e@v@y\@@ck{\def\@@kc{##1}}% + \def\ck@##1 ##2\@@ck{\def\@kc{##1}\def\@@kc{##2}}% +% \end{macrocode} +% |\@kc| == first word of remaining sentence +% \begin{macrocode} + \def\iterate{\expandafter\expandafter\expandafter\ck@ +% \end{macrocode} +% The |\space| forces the line to end on with a space. +% +% In |\@kernword| most of the real work is done +% +% +% \begin{macrocode} + \expandafter\@@kc\space @s@e@v@y\@@ck + \expandafter\@kernword\expandafter{\@kc}% + \ifx\@@kc\c@@k + \let\next\relax + \else + \expandafter\ck@@\@@kc\@@ck + \let\next\iterate\charkernwordspace + \fi\next}\iterate + \endgroup + }} + +\def\@kernword#1{\def\d@ll@rm@th{$}\@kap@tfor\@nextchar:=#1\do{% + \ifx\@nextchar\d@ll@rm@th + \ifkern@mathmode + \kern@mathmodefalse +% \end{macrocode} +% +% Here all collected math is typeset +% +% \begin{macrocode} + $\kern@math$% + \else + \kern@mathmodetrue + \xdef\kern@math{}% + \fi + \else + \ifkern@mathmode + \begingroup + \def\protect{\noexpand}% +% \end{macrocode} +% +% eat up math char by char +% +% |ab -> A\kern .5ex B\kern .5ex| +% +% \begin{macrocode} + \xdef\kern@math{\kern@math\@nextchar}% + \endgroup + \else + \charkerncommand\expandafter{\@nextchar}\charkerncharspace + \fi + \fi +}} + +\newcount\tracingkluwer +\def\kludebug#1{\relax\ifcase\tracingkluwer \or + \wlog{kap: #1}\or \typeout{kap: #1}\else + \immediate\wlog{kap*: #1}\typeout{kap: #1}\fi} +\global\tracingkluwer=3 +\def\kluverbatim{\par\begingroup\vbox \bgroup\trivlist + \item\relax \vskip\parskip + \rightskip\z@skip \parindent\z@ + \parfillskip\@flushglue \parskip0pt \@@par \@tempswafalse + \def\par{\if@tempswa \leavevmode\null\@@par\penalty\interlinepenalty + \else \@tempswatrue \ifhmode\@@par\penalty\interlinepenalty\fi \fi} + \let\do\@makeother \catcode`\|=0 + \obeylines \verbatim@font \@noligs \dospecials \catcode`\%=14 + \frenchspacing\@vobeyspaces + \everypar \expandafter{\the\everypar \unpenalty }} +\def\endkluverbatim{\endtrivlist\egroup\endgroup} +%</main> +%<*other> +\endinput +% \end{macrocode} +%\PrintIndex +%\end{document} +%% end of klumac.sty +%</other> + + + + + |