%% %% This is file `bm.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% bm.dtx (with options: `package') %% %% IMPORTANT NOTICE: %% %% This file is a generated file from the sources of the `tools' bundle %% in the LaTeX2e distribution. %% %% For the copyright notice see the source file(s). %% %% You are not allowed to modify this file. %% %% You are allowed to distribute this file if and only if %% it is distributed with the corresponding source files in %% the `tools' bundle. %% %% For the copying and distribution conditions of the source files, %% see the file readme.txt distributed with the tools bundle. %% %% Copyright 1996 1997 David Carlisle Frank Mittelbach %% %% Development of this package was commissioned by Y&Y Inc. %% http://www.yandy.com \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{bm} [1997/11/22 v1.0e Bold Symbol Support (DPC/FMi)] \def\bm#1#2{% \let\bm@pmb\install@mathalphabet \let\bm@pmb@\getanddefine@fonts \let\bm@pmb@@\or \edef\bm@general{\f@encoding/\f@family/\f@series/\f@shape/\f@size}% \@tempcnta#2% \count@-\count18% \advance\count@-\@tempcnta \advance\count@15\relax \ifnum\count@<\z@ \advance\@tempcnta\count@ \fi \let\or\relax \expandafter\let\csname bm@#1table\endcsname\@gobble \def\bm@define##1{% \expandafter\xdef\csname bm@#1table\endcsname{% \csname bm@#1table\endcsname\or##1}}% \def\getanddefine@fonts##1##2{% \def\@tempa{##2}% \def\@tempb####1##1####2####3\@nil{\def\@tempb{####2}}% \expandafter\expandafter\expandafter \@tempb\csname mv@#1\endcsname\@nil \ifx\@tempa\@tempb \bm@define\m@ne \else \edef\@tempa{sym#1\expandafter\@gobblefour\string##1}% \ifnum\@tempcnta<% \expandafter\ifx\csname\@tempa\endcsname\relax \@ne \else \m@ne \fi \bm@define\z@ \else \expandafter\ifx\csname\@tempa\endcsname\relax \begingroup \escapechar\m@ne \edef\@tempb{\endgroup \noexpand\split@name \expandafter\string\@tempb}% \@tempb/\@nil \expandafter\ifx \csname symbold\expandafter\@gobblefour\string##1\endcsname \relax \expandafter\new@mathgroup\csname\@tempa\endcsname \expandafter\new@symbolfont\csname\@tempa\endcsname \f@encoding\f@family\f@series\f@shape \advance\@tempcnta\m@ne \else \def\bm@expand####1##1####2####3\@nil{\def\bm@expand{####2}}% \expandafter\expandafter\expandafter \bm@expand\csname mv@bold\endcsname\@nil \ifx\bm@expand\@tempb \expandafter\let\csname\@tempa\expandafter\endcsname \csname symbold\expandafter \@gobblefour\string##1\endcsname \else \expandafter\new@mathgroup\csname\@tempa\endcsname \expandafter\new@symbolfont\csname\@tempa\endcsname \f@encoding\f@family\f@series\f@shape \advance\@tempcnta\m@ne \fi \fi \else \PackageInfo{bm}% {Symbol font \@tempa\space already defined.\MessageBreak Not overwriting it}% \fi \count@\csname\@tempa\endcsname \advance\count@-##1% \bm@define{\the\count@\relax}% \fi \fi}% \let\install@mathalphabet\@gobbletwo \mv@normal \expandafter\xdef\csname bm@#1table\endcsname{% \noexpand\ifcase\@tempcnta \csname bm@#1table\endcsname \noexpand\else \z@ \noexpand\fi}% \expandafter\split@name\bm@general\@nil \let\install@mathalphabet\bm@pmb \let\getanddefine@fonts\bm@pmb@ \let\or\bm@pmb@@} \ifx\bmmax\@undefined \chardef\bmmax=4 \fi \ifx\mv@bold\@undefined \def\bm@boldtable{\m@ne} \AtEndOfPackage{% \def\bm@gr@up#1#2{% \bm@pmb{#2}}} \else \bm{bold}\bmmax \@ifundefined{symboldoperators} {} {\DeclareSymbolFontAlphabet\mathbf{boldoperators}} \fi \ifx\hmmax\@undefined \chardef\hmmax=3 \fi \ifx\mv@heavy\@undefined \else \bm{heavy}\hmmax \fi \begingroup \catcode`\'=\active \@firstofone{\endgroup \def\bm@general#1#2#3#4{% \begingroup \let\bm\@firstofone \let\hm\@firstofone \global\let\bm@command\@empty \let\@let@token\@empty \let\protect\@empty \let\@typeset@protect\@empty \def\bm@mathchoice{\bm@m@thchoice#1}% \def\bm@group{\bm@gr@up#1}% \let\bm@table#2% \let\left\holdinginserts \let\right\left \let\mskip\mkern \let\bm@prime\copy \def'{\bm@prime\prime\relax}% \def\@ifnextchar##1##2##3##4{% \if##1##4% \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi {##2##4}{##3{##4}}}% \let\DN@\copy \let\FN@\copy \let\next@\copy \global\let\bm@first\@empty \let\@ifnext\@ifnextchar \let\measure@lhs\copy \let \rel@break\copy \let \bin@break\copy \let \after@open\copy \let \after@close\copy \let\ifmmode\iftrue \def\select@group##1##2##3##4{{% \protect##1{##4}}}% \def\use@mathgroup##1##2##3{{% \protect\use@mathgroup##1{##2}{##3}}}% \bm@expand#4\bm@end \endgroup #3} } \DeclareRobustCommand\bm{% \bm@general\boldmath\bm@boldtable\bm@command} \protected@edef\bm#1{\bm{#1}} \def\DeclareBoldMathCommand{\@testopt\bm@declare{bold}} \def\bm@declare[#1]#2{% \expandafter\bm@general \csname #1math\expandafter\endcsname \csname bm@#1table\endcsname {\bm@define#2}} \def\bmdefine{\DeclareBoldMathCommand[bold]} \ifx\mv@heavy\@undefined \let\hm\bm \let\heavymath\boldmath \let\bm@heavytable\bm@boldtable \else \DeclareRobustCommand\hm{% \bm@general\heavymath\bm@heavytable\bm@command} \protected@edef\hm#1{\hm{#1}} \def\hmdefine{\DeclareBoldMathCommand[heavy]} \fi \outer\def\bm@end{\@@end} \def\bm@expand{\afterassignment\bm@exp@nd\count@`\a} \def\bm@exp@nd{\afterassignment\bm@test\count@`\a} \def\bm@test{% \let\bm@previous\@let@token \futurelet\@let@token\bm@test@} \def\bm@test@{% \ifx\@let@token\bgroup \expandafter\bm@group \else \expandafter\bm@test@token \fi} \def\bm@gr@up#1#2{% \bm@add{{\bm@gr@@p#1{{#2}}}}} \def\bm@gr@@p#1#2{% \ifmmode \bm@mchoice#1{#2}{#2}{#2}{#2}% \else \bfseries#1#2% \fi} \def\bm@test@token#1{% \let\bm@next\@empty \ifx#1\@@end \else\ifx#1\mathchoice \let\bm@next\bm@mathchoice \else\ifx#1\mathchar \afterassignment\bm@mathchar\count@ \else\ifx#1\mathaccent \afterassignment\bm@mathaccent\count@ \else\ifx#1\delimiter \afterassignment\bm@delimiter\count@ \else\ifx#1\radical \afterassignment\bm@radical\count@ \else\ifx#1\mkern \bm@register#1{\muskip\z@}% \else\ifx#1\kern \bm@register#1\dimen@ \else\ifx#1\penalty \bm@register#1\count@ \else\ifcat\noexpand#1\relax \xdef\meaning@{\meaning#1}% \expandafter\bm@mchar@test\meaning@""\@nil#1% \else\ifcat.\ifcat a#1.\else#1\fi \count@\mathcode`#1\relax \ifnum\count@=\mathcode`\'% \begingroup\uccode`\~`#1\uppercase{\endgroup \def\bm@next{\bm@expand~}}% \else \ifx\bm@previous\left \count@\delcode`#1\relax \bm@delimiter \else \bm@mathchar \fi \fi \else \bm@add{#1}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \bm@next} \def\bm@define#1{% \begingroup \ifx\bm@command\@gtempa \def\mathchar{\global\mathchardef#1}% \bm@command \else \toks@\expandafter{\bm@command}% \xdef#1{\bm@first\noexpand\bm@protect\noexpand#1{\the\toks@}}% \fi \endgroup} \def\bm@protect#1{% \ifx\protect\@typeset@protect \expandafter\@firstofone \else \protect#1\expandafter\@gobble \fi} \def\bm@mchoice#1#2#3#4#5{% \mathchoice{\hbox{#1$\displaystyle\m@th#2$}}% {\hbox{#1$\textstyle\m@th#3$}}% {\hbox{#1$\scriptstyle\m@th#4$}}% {\hbox{#1$\scriptscriptstyle\m@th#5$}}} \def\bm@m@thchoice#1#2#3#4#5{% \bm@add{\bm@mchoice#1{#2}{#3}{#4}{#5}}} \def\bm@register#1#2{% \def\@tempa{#1\the#2}% \afterassignment\bm@r@gister#2} \def\bm@r@gister{% \bm@xadd{\@tempa\space}} \def\bm@mathchar{% \@tempcntb\count@ \let\@tempa\bm@group \bm@changefam{}% \ifnum\count@>\@tempcntb \ifx\bm@command\@empty \xdef\@gtempa{\mathchar\the\count@\space}% \fi \bm@xadd{\mathchar\the\count@\space}% \else \begingroup \divide\count@"1000 \let\bm@expand\relax \bm@xadd\bm@class \endgroup \edef\@tempb{% \noexpand\@tempa{\mathchar\the\count@\space}}% \@tempb \fi} \def\bm@pmb#1{% \bm@add{\bm@pmb@{#1}}} \def\bm@pmb@#1{{% \setbox\tw@\hbox{$\m@th\mkern.4mu$}% \mathchoice \bm@pmb@@\displaystyle\@empty{#1}% \bm@pmb@@\textstyle\@empty{#1}% \bm@pmb@@\scriptstyle\defaultscriptratio{#1}% \bm@pmb@@\scriptscriptstyle\defaultscriptscriptratio{#1}}} \def\bm@pmb@@#1#2#3{{% \setbox\z@\hbox{$\m@th#1#3$}% \dimen@#2\wd\tw@ \rlap{\copy\z@}% \kern\dimen@ \raise1.5\dimen@\rlap{\copy\z@}% \kern\dimen@ \box\z@}}% \def\bm@class{% \ifcase\count@ \or \mathop\or \mathbin\or \mathrel\or \mathopen\or \mathclose\or \mathpunct\or \fi} \def\bm@add#1{% \begingroup \toks@\expandafter{\bm@command#1}% \xdef\bm@command{\the\toks@}% \endgroup \bm@expand} \def\bm@xadd#1{% \begingroup \toks@\expandafter{\bm@command}% \xdef\bm@command{\the\toks@#1}% \endgroup \bm@expand} \def\bm@mathaccent{% \bm@changefam{}% \begingroup \def\bm@group##1{\endgroup\bm@xadd{\bgroup}##1\egroup}% \def\bm@test@token{\endgroup\bm@test@token}% \let\relax\@empty \bm@xadd{\mathaccent\the\count@\space}} \def\bm@delimiter{% \ifnum\count@>\z@ \bm@changefam{}% \bm@changefam{000}% \fi \bm@xadd{\delimiter\the\count@\space}}% \def\bm@radical{% \bm@changefam{}% \bm@changefam{000}% \bm@xadd{\radical\the\count@\space}}% \edef\bm@mchar@{\meaning\mathchar} \def\bm@mchar@test#1"#2"#3\@nil#4{% \xdef\meaning@{#1}% \ifx\meaning@\bm@mchar@ \count@"#2\relax \bm@mathchar \else \ifx\bm@previous\@empty \ifx\relax#4% \gdef\bm@first{#4}% \fi \fi \bm@add{#4}% \fi} \def\bm@changefam#1{% \@tempcnta\count@ \divide\@tempcnta"1000#1 % \multiply\@tempcnta"1000#1 % \advance\@tempcnta-\count@ \divide\@tempcnta-"100#1 % \@tempcnta\bm@table \ifnum\@tempcnta=\m@ne \let\@tempa\bm@pmb \else \multiply\@tempcnta"100#1 % \advance\count@\@tempcnta \fi} \def\bm@prime{^\bgroup \let\bm@prime'% \def\prim@s##1\relax{##1\futurelet\@let@token\pr@m@s}% \prim@s} \let\boldsymbol\bm \let\heavysymbol\hm \endinput %% %% End of file `bm.sty'.