Commit 6456f8e3 authored by Turnhout, M.C. van's avatar Turnhout, M.C. van
Browse files
parents f8be46be 5552073e
%%
%% This is file `etexcmds.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% etexcmds.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
%%
%% This work 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 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is Heiko Oberdiek.
%%
%% This work consists of the main source file etexcmds.dtx
%% and the derived files
%% etexcmds.sty, etexcmds.pdf, etexcmds.ins, etexcmds.drv,
%% etexcmds-test1.tex, etexcmds-test2.tex, etexcmds-test3.tex,
%% etexcmds-test4.tex.
%%
\begingroup
\catcode44 12 % ,
\catcode45 12 % -
\catcode46 12 % .
\catcode58 12 % :
\catcode64 11 % @
\expandafter\let\expandafter\x\csname ver@etexcmds.sty\endcsname
\ifcase 0%
\ifx\x\relax % plain
\else
\ifx\x\empty % LaTeX
\else
1%
\fi
\fi
\else
\catcode35 6 % #
\catcode123 1 % {
\catcode125 2 % }
\expandafter\ifx\csname PackageInfo\endcsname\relax
\def\x#1#2{%
\immediate\write-1{Package #1 Info: #2.}%
}%
\else
\def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
\fi
\x{etexcmds}{The package is already loaded}%
\endgroup
\expandafter\endinput
\fi
\endgroup
\begingroup
\catcode35 6 % #
\catcode40 12 % (
\catcode41 12 % )
\catcode44 12 % ,
\catcode45 12 % -
\catcode46 12 % .
\catcode47 12 % /
\catcode58 12 % :
\catcode64 11 % @
\catcode123 1 % {
\catcode125 2 % }
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\def\x#1#2#3[#4]{\endgroup
\immediate\write-1{Package: #3 #4}%
\xdef#1{#4}%
}%
\else
\def\x#1#2[#3]{\endgroup
#2[{#3}]%
\ifx#1\relax
\xdef#1{#3}%
\fi
}%
\fi
\expandafter\x\csname ver@etexcmds.sty\endcsname
\ProvidesPackage{etexcmds}%
[2007/12/12 v1.2 Prefix for e-TeX command names (HO)]
\begingroup
\catcode123 1 % {
\catcode125 2 % }
\def\x{\endgroup
\expandafter\edef\csname etexcmds@AtEnd\endcsname{%
\catcode35 \the\catcode35\relax
\catcode64 \the\catcode64\relax
\catcode123 \the\catcode123\relax
\catcode125 \the\catcode125\relax
}%
}%
\x
\catcode35 6 % #
\catcode64 11 % @
\catcode123 1 % {
\catcode125 2 % }
\def\TMP@EnsureCode#1#2{%
\edef\etexcmds@AtEnd{%
\etexcmds@AtEnd
\catcode#1 \the\catcode#1\relax
}%
\catcode#1 #2\relax
}
\TMP@EnsureCode{44}{12}% ,
\TMP@EnsureCode{45}{12}% -
\TMP@EnsureCode{46}{12}% .
\TMP@EnsureCode{47}{12}% /
\TMP@EnsureCode{61}{12}% =
\edef\etexcmds@AtEnd{%
\etexcmds@AtEnd
\escapechar\the\escapechar\relax
}
\escapechar=92 % backslash
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname RequirePackage\endcsname\relax
\input infwarerr.sty\relax
\else
\RequirePackage{infwarerr}[2007/09/09]%
\fi
\newif\ifetex@unexpanded
\begingroup
\edef\x{\string\unexpanded}%
\edef\y{\meaning\unexpanded}%
\ifx\x\y
\endgroup
\let\etex@unexpanded\unexpanded
\etex@unexpandedtrue
\else
\edef\y{\meaning\normalunexpanded}%
\ifx\x\y
\endgroup
\let\etex@unexpanded\normalunexpanded
\etex@unexpandedtrue
\else
\edef\y{\meaning\@@unexpanded}%
\ifx\y
\endgroup
\let\etex@unexpanded\@@unexpanded
\etex@unexpandedtrue
\else
\endgroup
\@PackageInfoNoLine{etexcmds}{%
Could not find \string\unexpanded.\MessageBreak
That can mean that you are not using e-TeX or\MessageBreak
that some package has redefined \string\unexpanded.\MessageBreak
In the latter case, load this package earlier%
}%
\etex@unexpandedfalse
\fi
\fi
\fi
\newif\ifetex@expanded
\begingroup
\edef\x{\string\expanded}%
\edef\y{\meaning\expanded}%
\ifx\x\y
\endgroup
\let\etex@expanded\expanded
\etex@expandedtrue
\else
\edef\y{\meaning\normalexpanded}%
\ifx\x\y
\endgroup
\let\etex@expanded\normalexpanded
\etex@expandedtrue
\else
\edef\y{\meaning\@@expanded}%
\ifx\y
\endgroup
\let\etex@expanded\@@expanded
\etex@expandedtrue
\else
\endgroup
\@PackageInfoNoLine{etexcmds}{%
Could not find \string\expanded.\MessageBreak
That can mean that you are not using pdfTeX 1.50 or\MessageBreak
that some package has redefined \string\expanded.\MessageBreak
In the latter case, load this package earlier%
}%
\etex@expandedfalse
\fi
\fi
\fi
\etexcmds@AtEnd
\endinput
%%
%% End of file `etexcmds.sty'.
%%
%% This is file `infwarerr.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% infwarerr.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright (C) 2007 by Heiko Oberdiek <oberdiek@uni-freiburg.de>
%%
%% This work 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 2005/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is Heiko Oberdiek.
%%
%% This work consists of the main source file infwarerr.dtx
%% and the derived files
%% infwarerr.sty, infwarerr.pdf, infwarerr.ins, infwarerr.drv,
%% infwarerr-test1.tex, infwarerr-test2.tex,
%% infwarerr-test3.tex.
%%
\begingroup
\catcode44 12 % ,
\catcode45 12 % -
\catcode46 12 % .
\catcode58 12 % :
\catcode64 11 % @
\expandafter\let\expandafter\x\csname ver@infwarerr.sty\endcsname
\ifcase 0%
\ifx\x\relax % plain
\else
\ifx\x\empty % LaTeX
\else
1%
\fi
\fi
\else
\catcode35 6 % #
\catcode123 1 % {
\catcode125 2 % }
\expandafter\ifx\csname PackageInfo\endcsname\relax
\def\x#1#2{%
\immediate\write-1{Package #1 Info: #2.}%
}%
\else
\def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
\fi
\x{infwarerr}{The package is already loaded}%
\endgroup
\expandafter\endinput
\fi
\endgroup
\begingroup
\catcode35 6 % #
\catcode40 12 % (
\catcode41 12 % )
\catcode44 12 % ,
\catcode45 12 % -
\catcode46 12 % .
\catcode47 12 % /
\catcode58 12 % :
\catcode64 11 % @
\catcode123 1 % {
\catcode125 2 % }
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\def\x#1#2#3[#4]{\endgroup
\immediate\write-1{Package: #3 #4}%
\xdef#1{#4}%
}%
\else
\def\x#1#2[#3]{\endgroup
#2[{#3}]%
\ifx#1\relax
\xdef#1{#3}%
\fi
}%
\fi
\expandafter\x\csname ver@infwarerr.sty\endcsname
\ProvidesPackage{infwarerr}%
[2007/09/09 v1.2 Providing info/warning/message (HO)]
\begingroup
\catcode123 1 % {
\catcode125 2 % }
\def\x{\endgroup
\expandafter\edef\csname InfWarErr@AtEnd\endcsname{%
\catcode35 \the\catcode35\relax
\catcode64 \the\catcode64\relax
\catcode123 \the\catcode123\relax
\catcode125 \the\catcode125\relax
}%
}%
\x
\catcode35 6 % #
\catcode64 11 % @
\catcode123 1 % {
\catcode125 2 % }
\def\TMP@EnsureCode#1#2{%
\edef\InfWarErr@AtEnd{%
\InfWarErr@AtEnd
\catcode#1 \the\catcode#1\relax
}%
\catcode#1 #2\relax
}
\TMP@EnsureCode{10}{12}% ^^J
\TMP@EnsureCode{39}{12}% '
\TMP@EnsureCode{40}{12}% (
\TMP@EnsureCode{41}{12}% )
\TMP@EnsureCode{44}{12}% ,
\TMP@EnsureCode{45}{12}% -
\TMP@EnsureCode{46}{12}% .
\TMP@EnsureCode{58}{12}% :
\TMP@EnsureCode{60}{12}% <
\TMP@EnsureCode{61}{12}% =
\TMP@EnsureCode{62}{12}% >
\TMP@EnsureCode{94}{7}% ^
\begingroup
\let\x=Y%
\def\check#1{%
\@check{Generic}{#1}%
\@check{Package}{#1}%
\@check{Class}{#1}%
}%
\def\@check#1#2{%
\expandafter\ifx\csname #1#2\endcsname\relax
\let\x=N%
\fi
}%
\check{Info}%
\check{Warning}%
\check{Error}%
\@check{Package}{WarningNoLine}%
\@check{Class}{WarningNoLine}%
\@check{}{@ehc}%
\@check{}{@ehd}%
\expandafter\endgroup
\ifx\x Y%
\let\@PackageInfo\PackageInfo
\def\@PackageInfoNoLine#1#2{%
\PackageInfo{#1}{#2\@gobble}%
}%
\let\@ClassInfo\ClassInfo
\def\@ClassInfoNoLine#1#2{%
\ClassInfo{#1}{#2\@gobble}%
}%
\let\@PackageWarning\PackageWarning
\let\@PackageWarningNoLine\PackageWarningNoLine
\let\@ClassWarning\ClassWarning
\let\@ClassWarningNoLine\ClassWarningNoLine
\let\@PackageError\PackageError
\let\@ClassError\ClassError
\InfWarErr@AtEnd
\expandafter\endinput
\fi
\begingroup\expandafter\endgroup
\ifcase\expandafter\ifx\csname inputlineno\endcsname\relax
0 %
\else
\ifnum\inputlineno<0 %
0 %
\else
1 %
\fi
\fi
\def\InfWarErr@online{}%
\else
\def\InfWarErr@online{ on input line \the\inputlineno}%
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname protected\endcsname\relax
\def\InfWarErr@protected{}%
\else
\let\InfWarErr@protected\protected
\fi
\chardef\InfWarErr@unused=16 %
\def\InfWarErr@ehc{%
Try typing \space <return> \space to proceed.\MessageBreak
If that doesn't work, type \space X <return> \space to quit.%
}
\def\InfWarErr@ehd{%
You're in trouble here. \space\@ehc
}
\InfWarErr@protected\def\InfWarErr@GenericInfo#1#2{%
\begingroup
\let\on@line\InfWarErr@online
\long\def\@gobble##1{}%
\def\space{ }%
\def\@spaces{\space\space\space\space}%
\def\MessageBreak{^^J#1}%
\newlinechar=10 %
\immediate\write-1{#2\on@line.}%
\endgroup
}
\InfWarErr@protected\def\InfWarErr@GenericWarning#1#2{%
\begingroup
\let\on@line\InfWarErr@online
\long\def\@gobble##1{}%
\def\space{ }%
\def\@spaces{\space\space\space\space}%
\def\MessageBreak{^^J#1}%
\newlinechar=10 %
\immediate\write\InfWarErr@unused{^^J#2\on@line.^^J}%
\endgroup
}
\InfWarErr@protected\def\InfWarErr@GenericError#1#2#3#4{%
\begingroup
\immediate\write\InfWarErr@unused{}%
\newlinechar=10 %
\def\space{ }%
\def\@spaces{\space\space\space\space}%
\let\@ehc\InfWarErr@ehc
\let\@ehd\InfWarErr@ehd
\let\on@line\InfWarErr@online
\def\MessageBreak{^^J}%
\edef\InfWarErr@help{\noexpand\errhelp{#4}}%
\InfWarErr@help
\def\MessageBreak{^^J#1}%
\errmessage{%
#2.^^J^^J%
#3^^J%
Type \space H <return> \space for immediate help.^^J ...^^J%
}%
\endgroup
}
\def\@PackageInfo#1#2{%
\InfWarErr@GenericInfo{%
(#1) \@spaces\@spaces\@spaces
}{%
Package #1 Info: #2%
}%
}
\def\@PackageInfoNoLine#1#2{%
\@PackageInfo{#1}{#2\@gobble}%
}
\def\@ClassInfo#1#2{%
\InfWarErr@GenericInfo{%
(#1) \space\space\@spaces\@spaces
}{%
Class #1 Info: #2%
}%
}
\def\@ClassInfoNoLine#1#2{%
\@ClassInfo{#1}{#2\@gobble}%
}
\def\@PackageWarning#1#2{%
\InfWarErr@GenericWarning{%
(#1)\@spaces\@spaces\@spaces\@spaces
}{%
Package #1 Warning: #2%
}%
}
\def\@PackageWarningNoLine#1#2{%
\@PackageWarning{#1}{#2\@gobble}%
}
\def\@ClassWarning#1#2{%
\InfWarErr@GenericWarning{%
(#1) \space\@spaces\@spaces\@spaces
}{%
Class #1 Warning: #2%
}%
}
\def\@ClassWarningNoLine#1#2{%
\@ClassWarning{#1}{#2\@gobble}%
}
\def\@PackageError#1#2#3{%
\InfWarErr@GenericError{%
(#1)\@spaces\@spaces\@spaces\@spaces
}{%
Package #1 Error: #2%
}{%
See the #1 package documentation for explanation.%
}{#3}%
}
\def\@ClassError#1#2#3{%
\InfWarErr@GenericError{%
(#1) \space\@spaces\@spaces\@spaces
}{%
Class #1 Error: #2%
}{%
See the #1 class documentation for explanation.%
}{#3}%
}
\InfWarErr@AtEnd
\endinput
%%
%% End of file `infwarerr.sty'.
% isomath
% *******
% Mathematical style for science and technology
% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
%
% :Date: 2012-09-10
% :Copyright: © 2008, 2012 Günter Milde
% :Licence: This work 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.
%
% :Abstract: The `isomath` package provides tools for a mathematical style
% that conforms to the International Standard ISO 80000-2 and is
% common in science and technology. It changes the default shape of
% capital Greek letters to italic, sets up bold italic and
% sans-serif bold italic math alphabets with Latin and Greek
% characters, and defines macros for markup of vector, matrix and
% tensor symbols.
%
% :Identification:
% ::
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{isomath}
[2012/09/04 v0.6.1 ISO math style]
% .. contents::
%
% History
% =======
%
% .. class:: borderless
%
% ===== =========== ========================================================
% 0.1 2008-09-25 first public version.
% 0.2 2008-10-02 bugfix: a usage example was uncommented;
% \ updated documentation;
% \ define \mathsans only if OMLmathsans is true;
% \ option reuseMathalphabets -> reuseMathAlphabets.
% 0.3 2009-06-19 documentation update;
% \ fix OMLmathrm and OMLmathsans definitions;
% \ switch license to LPP.
% 0.4 2010-08-23 split user documentation from literate source;
% \ option ``scaled``;
% \ documentation update.
% 0.5 2011-01-04 math alphabet names matching Unicode;
% \ documentation review and extension;
% \ bold alphabet variants in ``bold`` math version;
% \ upright numbers with ``\vectorsym``.
% 0.6 2012-09-10 Scaling for Kepler Sans (``sfdefault=jkpss``);
% \ documentation update, new caption and abstract.
% ===== =========== ========================================================
%
%
% Requirements
% ============
%
% fixmath.sty
% -----------
% The package fixmath_ by Walter Schmidt defines Greek letters as symbols
% of type ``\mathalpha`` and takes them from the ``letters`` symbol font in
% ``\mathnormal`` (as opposed to ``operators`` in ``fontmath.ltx``).
%
% `fixmath` also defines the ``\mathbold`` alphabet, setting it to ``cmm``.
% `isomath` overwrites this definition with a configurable value for
% the font family. ::
\RequirePackage{fixmath}
% kvoptions.sty
% -------------
% The kvoptions_ package in the oberdiek_ bundle facilitates the setup of
% package options and provides a key=value interface (based on keyval_)::
\RequirePackage{kvoptions}
% Options
% =======
%
% rmdefault
% ---------
% Family for roman math fonts. Must be available in OML
% encoding. The default is to use the corresponding text font family
% (``\rmdefault``). ::
\DeclareStringOption[\rmdefault]{rmdefault}
% sfdefault
% ---------
% Family for sans-serif math fonts. The default selects `CM Bright`, as
% most sans serif fonts are not available in OML encoding::
\DeclareStringOption[cmbr]{sfdefault}
% scaled
% ------
% The sans-serif fonts, ``fav`` (Arev), ``llcmss`` (LX Fonts),
% ``jkpss`` (Kepler Serif) and ``iwona`` can be scaled
% with the ``scaled`` option. ::
\DeclareStringOption[1.0]{scaled}
% reuseMathAlphabets
% ------------------
% The definition of new `math alphabets`_ can lead to a “too many math
% alphabets used in version normal” error.
%
% As a workaround, this option tells `isomath` to re-use the existing
% ``\mathbf`` and ``\mathsf`` alphabets for *italic* bold and sans-serif
% bold. ::
\DeclareBoolOption{reuseMathAlphabets}
% OMLmath*
% --------
% The following options cause `isomath` to (re)define the corresponding
% `math alphabets`_ in OML encoding::
\DeclareBoolOption{OMLmathrm}
\DeclareBoolOption{OMLmathbf}
\DeclareBoolOption{OMLmathsf}
\DeclareBoolOption{OMLmathsfit}
\DeclareBoolOption{OMLmathtt}
% backwards compatibility option alias
\DeclareVoidOption{OMLmathsans}{\isomath@OMLmathsfittrue}
% Setting these options enables access to small Greek letters in different
% shapes with e.g. ``\mathrm{\pi}`` but only *if an OML encoded font is
% available*. Currently, only the mathdesign_ fonts support roman in OML
% encoding.
%
% With some packages, these options can result in a “too many math alphabets
% used in version normal” error.
%
% --------------------------------------------------------
%
% Process the options with ``kvoptions`` extensions::
\ProcessKeyvalOptions*
% Declarations
% ============
%
% Math alphabets
% --------------
%
% In math, LaTeX uses “abs