summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tools/bm.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tools/bm.sty')
-rw-r--r--Master/texmf-dist/tex/latex/tools/bm.sty423
1 files changed, 423 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tools/bm.sty b/Master/texmf-dist/tex/latex/tools/bm.sty
new file mode 100644
index 00000000000..bd95bc12b8a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tools/bm.sty
@@ -0,0 +1,423 @@
+%%
+%% This is file `bm.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% bm.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
+%% The LaTeX3 Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
+%% --------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% 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.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
+%% without such generated files.
+%%
+%% The list of all files belonging to the LaTeX `Tools Bundle' is
+%% given in the file `manifest.txt'.
+%%
+%% Copyright 1996 1997 1998 1999 2002 2003 2004 David Carlisle Frank Mittelbach
+%%
+%% Development of this package was commissioned by Y&Y Inc.
+%% http://www.yandy.com
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bm}
+ [2004/02/26 v1.1c 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#5{%
+ \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\hskip\kern
+ \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}}}%
+ \def\GenericWarning##1##2{%
+ \unvcopy{\GenericWarning{##1}{##2}}}%
+ \def\GenericError##1##2##3##4{%
+ \unvcopy{\GenericError{##1}{##2}{##3}{##4}}}%
+ \let\DN@\copy
+ \let\FN@\copy
+ \let\next@\copy
+ \global\let\bm@first\@empty
+ \ifx\uproot@\undefined\else
+ \def\root##1\of##2{{\root##1\of{##2}}}%
+ \fi
+ \def\mathaccentV##1{\mathaccent"\accentclass@}%
+ \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
+ \let\install@mathalphabet\def
+ \let\getanddefine@fonts\@gobbletwo
+ #3%
+ \def\select@group##1##2##3##4{{%
+ \protect##1{##4}}}%
+ \def\use@mathgroup##1##2##3{{%
+ \protect\use@mathgroup##1{##2}{##3}}}%
+ \bm@expand#5\bm@end
+ \endgroup
+ #4}
+}
+\DeclareRobustCommand\bm{%
+ \bm@general\boldmath\bm@boldtable\mv@bold\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\expandafter\endcsname
+ \csname mv@#1\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\mv@heavy\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\skip@
+ \else\ifx#1\penalty
+ \bm@register#1\count@
+ \else\ifx#1\unvcopy
+ \let\bm@next\bm@add
+ \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\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'.