From d5d609e002170e08c67f533bcd4f4fada5196187 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 4 Oct 2008 23:50:58 +0000
Subject: isomath update (4oct08)

git-svn-id: svn://tug.org/texlive/trunk@10854 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/isomath/isomath.sty | 247 ++++++++++++++----------
 1 file changed, 146 insertions(+), 101 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/isomath/isomath.sty')

diff --git a/Master/texmf-dist/tex/latex/isomath/isomath.sty b/Master/texmf-dist/tex/latex/isomath/isomath.sty
index 7dc97ec2e45..89353a74869 100644
--- a/Master/texmf-dist/tex/latex/isomath/isomath.sty
+++ b/Master/texmf-dist/tex/latex/isomath/isomath.sty
@@ -23,10 +23,10 @@
 %    *sans-serif bold italic* typeface, as recommended by [typefaces]_?
 % 
 % Scientific organisations like IUPAP_, IUPAC_, NIST_, BIPM_, and others
-% recommend typesetting math according to International Standard `ISO 31`_
-% `Quantities and units` (ISO 31-0:1992 to ISO 31-14:1992).\ [#]_
+% recommend typesetting math according to the International Standard ISO 31
+% `Quantities and units` [ISO-31]_.\ [#]_
 % 
-% The traditional `LaTeX-style` deviates in some points from this rules:
+% The traditional `LaTeX math style` deviates in some points from this rules:
 % 
 % * The ``\vec`` command produces an array accent, while ISO 31 recommends
 %   a *bold italic* typeface for vector symbols.
@@ -36,28 +36,17 @@
 %   and the Latin alphabet.
 % 
 % * There is no provision for typesetting of Greek letters in *bold italic*
-%   style recommended for vectors (even though the required fonts are
-%   available).
+%   style recommended for vectors.
 % 
 % * There is no provision for typesetting letters in *sans-serif bold italic*
 %   recommended for typesetting tensor symbols.
 % 
-% Also, the Unicode Standard defines the block `mathematical alphanumeric
-% symbols`_ — *To be used for mathematical variables where style variations
-% are important semantically* — which contains Latin and Greek letters in
-% bold, italic, bold italic, sans-serif bold, and sans-serif bold italic
-% typeface.\ [#]_
-% 
-% Some of these points are already adressed by `related packages`_, however
+% Some of these points are adressed by `related packages`_, however
 % there is currently no package (known to the author) that defines the
 % *sans-serif bold italic* math alphabet needed for tensor symbols.
 % 
-% .. [#] A summary of these rules is free available [typefaces]_. See also
-%        [fonts-for-symbols]_ and [SI-brochure]_.
-% 
-% .. [#] Plus Number variants and Latin letters in script, bold script,
-%    fraktur, bold fraktur, double-struck, sans-serif and monospace;
-%    alltogether 1023 codepoints.
+% .. [#] Summaries of these rules are free available, see [typefaces]_,
+%        [fonts-for-symbols]_, and [SI-brochure]_.
 % 
 % 
 % Features
@@ -66,26 +55,20 @@
 % The ``isomath.sty`` package facilitates the task to abide with ISO 31 when
 % typesetting math with LaTeX:
 % 
-% * It utilises fixmath_ to re-define Greek letters as ``\mathalpha``, taking
-%   them from the "letters" symbol fonts (as opposed to "operators" in
-%   ``fontmath.ltx``). This ensures that
+% * Equal treatment of Latin and `Greek in math`_ via fixmath.sty_:
 % 
 %   + Greek letters change shape together with Latin letters if a different
 %     math alphabet is used.
 %     
 %   + Uppercase Greek letters are typeset in italic style by default.
 %   
-%   + Upright Greek letters are available through the ``\mathrm`` and
-%     ``\mathbf`` alphabets, if the corresponding fonts are OML encoded.
-% 
-%   Caution: small Greek letters in a math alphabet command can lead to garbage. 
-%     Use the options for `OML math alphabets`_ (if the used font supports the
-%     `OML font encoding`_) or place Greek letters outside the math alphabet
-%     command. Some packages (including fixmath_) provide ``\up*`` or
-%     ``\var*`` macros for upright Greek letters, e.g. ``\mathrm{k}\upOmega``.
+%   + Upright Greek letters can be made available through the ``\mathrm`` 
+%     and ``\mathbf`` alphabets, if the corresponding fonts support the 
+%     `OML font encoding`_.
 % 
 % * The `command aliases`_ ``\vectorsym``, ``\matrixsym``, and ``\tensorsym``
-%   allow semantic markup selecting an ISO-conforming typeface.
+%   allow semantic markup. They print the argument in an ISO-conforming
+%   typeface.
 %     
 % * For this, new `math alphabets`_ are defined:
 % 
@@ -98,13 +81,18 @@
 %   ``sfdefault=<family>`` options_ can be used to override the defaults.
 % 
 % * Missing `font mappings`_ are defined for font families which have an OML
-%   encoded counterpart but miss the substitution definition in their ``*.fd``
+%   encoded counterpart but no substitution definition in their ``*.fd``
 %   files.
 % 
 %    
-% Examples   
-% ========
+% Usage
+% =====
 % 
+% Make sure that LaTeX can find ``isomath.sty`` and insert the command
+% ``\usepackage{isomath}`` in the document preamble.
+% 
+% Examples 
+% --------
 % 
 % * In many cases (e.g. when ``\sfdefault`` expands to "cmss"), the
 %   ``\mathboldsans`` alphabet is neither bold nor sans, as "cmss" has no OML
@@ -126,13 +114,13 @@
 %   \usepackage[charter]{mathdesign}
 %   \usepackage[OMLmathbf,sfdefault=cmbr]{isomath}
 %   
-%   Now, ``\mathbf{\pi}`` works as expected.
+%   Now, ``\mathbf{\pi}`` produces a bold upright pi symbol.
 % 
 % Related packages
 % ================
 % 
-% Some packages already define Greek letters as ``\mathalpha`` and provide the
-% ``\mathbold`` alphabet (in OML):
+% A set of packages at CTAN also defines Greek letters as ``\mathalpha`` and
+% provide the ``\mathbold`` alphabet (in OML):
 % 
 % * arev_     (Arev/Vera Sans)
 % * cmbright_ (CM Bright)
@@ -142,11 +130,11 @@
 % * mathpazo_ (Palatino)
 % * tmmath_   (TM-Math/Times)
 % 
-% This package builds on and extends fixmath_ by Walter Schmidt
-% (see Requirements_).
+% This package requires and extends fixmath.sty_.
 % 
-% The cmbright_ package  provides fonts for ``\mathsans`` and
-% ``\mathboldsans`` matching with Computer Modern and derivatives.
+% The cmbright_ package provides *sans serif* and *sans-serif bold* fonts for
+% the ``\mathsans`` and ``\mathboldsans`` alphabets that match with Computer
+% Modern and derivatives.
 % 
 % Conflicts
 % ---------
@@ -158,22 +146,47 @@
 % 
 % The `kpfonts`_, `pxfonts`_, and `txfonts`_ packages define many additional
 % math alphabets and can only be combined with ``isomath``, if the
-% reuseMathalphabets_ option is used.
+% reuseMathAlphabets_ option is used.
+% 
+% Greek in Math
+% =============
+% 
+% Unicode Math Support
+% --------------------
+% 
+% The technical report `Unicode Support for Mathematics` [tr25]_ lists 
+% *alphanumeric symbols encountered in mathematics* in Table 2.1 `Mathematical
+% Alphabets`. It includes Latin and Greek letters in the bold, italic, bold
+% italic, sans-serif bold, and sans-serif bold italic math styles.
+% 
+% The Unicode block `mathematical alphanumeric symbols`_ provides style
+% variants for Latin and Greek letters and digits. It is "to be used for
+% mathematical variables where style variations are important semantically".
+% 
 % 
 % OML font encoding
-% =================
+% -----------------
+% 
+% The OML font encoding is the only established encoding providing
+% Latin and Greek letters in one font:
+% 
+% * LGR is Greek-only,
+% * T7 is just a "reserved name" for a standard Greek encoding.
 % 
-% The `LaTeX font encodings` guide [encguide]_ defines:
+% Definition
+% """"""""""
+% 
+% The `LaTeX font encodings` guide [encguide]_ names OML `TeX math italic` and
+% defines:
 % 
 %    The OML encoding contains italic Latin and Greek letters for use in
 %    mathematical formulas (typically used for variables) together with some
 %    symbols.
 % 
-% and names it `TeX math italic`. However, the reference to *italic* seems to
-% be a description of the *state of the art* rather than a necessary
-% restriction:
+% However, the reference to **italic** seems to be a description of the *state
+% of the art* rather than a necessary restriction:
 % 
-% * The only OML encoded CM font is "Computer Modern Math Italic" (cmmi),
+% * The only OML encoded CM font is `Computer Modern Math Italic` (cmmi),
 % 
 % * but generally, font encodings (T1, OT1) are not specific to the font shape.
 % 
@@ -184,11 +197,8 @@
 % * A more suitable public name would be `TeX math letters` or `Original/Old
 %   Math Letters`. The latter would also explain the acronym OML.
 % 
-% The OML font encoding is the only established encoding providing
-% Latin and Greek letters in one font:
-% 
-% * LGR is Greek-only,
-% * T7 is just a "reserved name" for a standard Greek encoding.
+% Support
+% """""""
 % 
 % Unfortunately, support for the OML encoding is missing for many font
 % families even if the base font contains all Greek letters.
@@ -283,17 +293,16 @@
 %    ============= ===============================
 % 
 % Conclusions and outlook
-% =======================
+% -----------------------
 % 
 % It is hoped, that in the future more fonts families will support the OML
-% encoding in normal and bold weight as well as upright and italic shape.
-% This would be a major step towards the full support of the `Mathematical
+% encoding in normal and bold weight as well as upright and italic shape. 
+% This would be a major step towards a LaTeX equivalent of the `Mathematical
 % Alphanumeric Symbols`_ Unicode block.
 % 
-% This is (relatively) easy to achieve via virtual fonts when the glyphs for
-% the Greek letters already exist (this is the case for many fonts where the
-% primary version is Unicode encoded). Examples are Latin Modern, Kerkis,
-% GFS-Neohellenic, LX-Fonts and KP-Serif.
+% This should be (relatively) easy to achieve via virtual fonts when the
+% glyphs for the Greek letters already exist. Examples are Latin Modern,
+% Kerkis, GFS-Neohellenic, LX-Fonts and KP-Serif.
 % 
 % Alternatively, T7 could be used for math alphabets (if it ever happens to
 % materialise).
@@ -311,25 +320,52 @@
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{isomath}
-[2008/06/23 v0.1 typeset math according to International Standard ISO 31]
+[2008/10/02 v0.2 typeset math according to International Standard ISO 31]
 
+% .. 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.
+% =====  ==========  ========================================================
+% 
+%   
 % Requirements
 % ============
 % 
-% fixmath
-% -------
+% fixmath.sty
+% -----------
 % 
-% fixmath_ by Walter Schmidt defines Greek letters as symbols of type
-% ``\mathalpha`` and takes them from the "letters" SymbolFont in
-% ``\mathnormal``. (It also defines the ``\mathbold`` alphabet, setting it to
-% ``cmm``. This definition will be overwritten with a configurable value for
+% The package fixmath_ by Walter Schmidt defines Greek letters as symbols
+% of type ``\mathalpha`` and takes them from the "letters" SymbolFont in
+% ``\mathnormal`` (as opposed to "operators" in ``fontmath.ltx``). 
+% 
+% fixmath_ also defines the ``\mathbold`` alphabet, setting it to ``cmm``.
+% However, this definition will be overwritten with a configurable value for
 % the font family below.) 
+% 
 % ::
 
 \RequirePackage{fixmath}
 
-% kvoptions
-% ---------
+% .. caution:: 
+% 
+%    Placing small Greek letters in a math alphabet, e.g.
+%    ``\mathrm{k\Omega}``, can lead to garbage.  
+%    
+%    If the chosen font supports the `OML font encoding`_, you can use the
+%    options for `OML math alphabets`_.  Otherwise, place Greek letters
+%    outside the math alphabet command. 
+%     
+%    Some packages provide ``\up*`` or ``\var*`` macros for upright Greek
+%    letters, e.g. ``\mathrm{k}\upOmega``.
+% 
+%   
+% kvoptions.sty
+% -------------
 % 
 % The kvoptions_ package in the oberdiek_ bundle facilitates the setup of
 % package options and provides a key=value interface (based on keyval_)::
@@ -377,7 +413,7 @@
 %   Allow scaling?
 % 
 %   
-% reuseMathalphabets
+% reuseMathAlphabets
 % ------------------
 % 
 % The definition of new `math alphabets`_ can lead to a "too many math
@@ -387,29 +423,37 @@
 % ``\mathbf`` and ``\mathsf`` alphabets for italic bold and sans-serif bold.
 % 
 % To access the upright shapes, the corresponding ``\textbf`` and ``\textsf``
-% commands might be used (however, that this toggles the math-mode off and
+% commands might be used (however, this toggles the math-mode off and
 % might use a different font). 
 % 
 % ::
 
-\DeclareBoolOption{reuseMathalphabets}
+\DeclareBoolOption{reuseMathAlphabets}
 
-% Caution: Do not use ``reuseMathalphabets`` together with ``OMLmathbf`` or
-% ``OMLmathsf``.  
+% .. caution::  
+%    Do not use ``reuseMathAlphabets`` together with the ``OMLmathbf`` or
+%    ``OMLmathsf`` options.  
 % 
 %   
 % OML math alphabets
 % ------------------
 % 
-% The following options cause isomath to (re)define `math alphabets`_ in OML
-% encoding.
-% 
 % With Greek letters defined as ``\mathalpha``, the math alphabets are
-% expected to be in `OML font encoding`_ as OT1 encoded fonts have ligatures
-% and non-alpha symbols in place of the small Greek letters.
+% expected to be in `OML font encoding`_. Unfortunately, the standard math
+% alphabets are usually taken from OT1 encoded fonts that have ligatures and
+% non-alpha symbols in place of the small Greek letters.
 % 
+% The following options cause isomath to (re)define `math alphabets`_ in OML
+% encoding::
+
+\DeclareBoolOption{OMLmathrm}
+\DeclareBoolOption{OMLmathbf}
+\DeclareBoolOption{OMLmathsf}
+\DeclareBoolOption{OMLmathsans}
+\DeclareBoolOption{OMLmathtt}
+
 % Setting these options enables access to small Greek letters in different
-% shapes with e.g. ``\mathrm{\pi}`` **if an OML encoded font is available**. 
+% shapes with e.g. ``\mathrm{\pi}`` — *if an OML encoded font is available*. 
 % Currently, support for the `OML font encoding`_ is rather limited:
 % 
 % * only the mathdesign_ fonts support *bold roman* in OML encoding, while
@@ -418,14 +462,7 @@
 %   
 % With some packages, these options can result in a "too many math alphabets
 % used in version normal" error.
-% ::
-
-\DeclareBoolOption{OMLmathrm}
-\DeclareBoolOption{OMLmathbf}
-\DeclareBoolOption{OMLmathsf}
-\DeclareBoolOption{OMLmathsans}
-\DeclareBoolOption{OMLmathtt}
-
+%   
 % ---------------------------------------------------
 % 
 % Process the options with ``kvoptions`` extensions::
@@ -439,22 +476,25 @@
 % --------------
 % 
 % In math, LaTeX uses "absolute" fontnames instead of a selection by family,
-% shape, and weight (see the [fntguide]_ for the rationale). 
+% shape, and weight because typefaces have a semantic meaning [fntguide]_. 
+% This correlates with the `Unicode math support`_ where the 
+% `mathematical alphanumeric symbols`_ block defines distinct Unicode 
+% characters for in Greek and Latin letters in different typefaces.
 % 
-% We define a math alphabet for every required font variant and optionally
-% re-define the standard math alphabets in `OML font encoding`_.
+% Isomath defines a math alphabet for every required font variant and
+% optionally re-defines the standard math alphabets in `OML font encoding`_.
 % Unfortunately, the number of math alphabets in one math version is limited
 % to 16, so we have to be carefull not to exceed this.
 % 
 % mathbold
 % """"""""
 % 
-% For the *`italic bold* math alphabet we use the name ``\mathbold``
-% established in `related packages`_. With the reuseMathalphabets_ option,
-% ``\mathfb`` is redefined and ``\mathbold`` made an alias (overwriting
-% existing definitions). ::
+% The *italic bold* math alphabet is named ``\mathbold`` like in 
+% `related packages`_. With the reuseMathAlphabets_ option, ``\mathfb`` 
+% is redefined and ``\mathbold`` made an alias (overwriting existing
+% definitions)::
 
-\ifisomath@reuseMathalphabets
+\ifisomath@reuseMathAlphabets
   \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it}
   \def\mathbold{\mathbf}
 \else
@@ -476,10 +516,10 @@
 % """"""""""""
 % 
 % A *sans serif slanted bold* alphabet is needed for tensor symbols.  With the
-% reuseMathalphabets_ option, ``\mathsf`` is redefined and ``\mathboldsans``
+% reuseMathAlphabets_ option, ``\mathsf`` is redefined and ``\mathboldsans``
 % made an alias::
 
-\ifisomath@reuseMathalphabets
+\ifisomath@reuseMathAlphabets
   \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{bx}{it}
   \def\mathboldsans{\mathsf}
 \else
@@ -490,7 +530,7 @@
 % """""""""""""""""""""""""""
 % 
 % Redefine standard alphabets in `OML font encoding`_
-% (if the corresponding `OML math alphabets`_ option is true). ::
+% if the corresponding `OML math alphabets`_ option is true::
 
 \ifisomath@OMLmathrm
   \SetMathAlphabet{\mathrm}{normal}{OML}{\isomath@rmdefault}{n}{n}
@@ -509,7 +549,7 @@
 % ---------------
 % 
 % The following macros allow semantic markup of mathematical symbols.
-% The symbols argument is typeset as proposed by ISO 31 and [typefaces]_.
+% The argument is typeset as proposed by ISO 31 and [typefaces]_.
 % 
 % \\vectorsym
 % """""""""""
@@ -580,6 +620,10 @@
 % References
 % **********
 % 
+% .. [ISO-31] International Standard 31 `Quantities and units`, 
+%    (ISO 31-0:1992 to ISO 31-14:1992):
+%    http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=46202
+% 
 % .. [typefaces] `Typefaces for Symbols in Scientific Manuscripts`:
 %    http://physics.nist.gov/Document/typefaces.pdf
 % 
@@ -596,6 +640,9 @@
 % .. [fntguide] `LaTeX 2e font selection`:
 %    http://dante.ctan.org/CTAN/macros/latex/doc/fntguide.pdf
 % 
+% .. [tr25] `Unicode Support for Mathematics`, Unicode Technical Report #25:
+%    http://www.unicode.org/reports/tr25/
+% 
 % .. see also
 %    [koma-mail] Custom font substitution: http://www.komascript.de/node/823
 % 
@@ -610,8 +657,6 @@
 % .. _IUPAC: http://iupac.org/
 % .. _IUPAP: http://www.iupap.org/
 % .. _NIST:  http://physics.nist.gov/
-% .. _ISO 31:
-%     http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=46202
 % .. _mathematical alphanumeric symbols:
 %     http://www.unicode.org/charts/PDF/U1D400.pdf
 % .. _arev: http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html
-- 
cgit v1.2.3

