summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/isomath/isomath.sty.txt
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/isomath/isomath.sty.txt
Initial commit
Diffstat (limited to 'macros/latex/contrib/isomath/isomath.sty.txt')
-rw-r--r--macros/latex/contrib/isomath/isomath.sty.txt372
1 files changed, 372 insertions, 0 deletions
diff --git a/macros/latex/contrib/isomath/isomath.sty.txt b/macros/latex/contrib/isomath/isomath.sty.txt
new file mode 100644
index 0000000000..bff0572022
--- /dev/null
+++ b/macros/latex/contrib/isomath/isomath.sty.txt
@@ -0,0 +1,372 @@
+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 “absolute” fontnames instead of a selection by
+family, shape, and weight because typefaces have a semantic meaning
+[fntguide]_.
+
+`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 careful not to exceed this. The
+``reuseMathAlphabets`` option reduces the number of math alphabet
+definitions by two, with the side effect of italic shape with
+``\mathbf`` and ``\mathsf`` commands::
+
+ \ifisomath@reuseMathAlphabets
+ \PackageWarningNoLine{isomath}{%
+ Re-using math alphabet `mathsf' for \protect \mathsfbfit
+ \MessageBreak and `mathbf' for \protect \mathbfit
+ }
+ \fi
+
+mathbfit
+~~~~~~~~
+The *bold italic* math alphabet is named ``\mathbfit`` like in
+unicode-math_ (with an alias ``\mathbold`` like in fixmath_ and
+related packages). With the reuseMathAlphabets_ option, the roman bold
+math alphabet ``\mathbf`` is redefined and ``\mathbfit`` made an
+alias. The series selector ``bx`` (bold extended) is used, because it
+is better supported than ``b``. (Is there any LaTeX math font
+distinguishing between ``b`` and ``bx``?) ::
+
+ \ifisomath@reuseMathAlphabets
+ \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it}
+ \def\mathbfit{\mathbf}
+ \else
+ \DeclareMathAlphabet{\mathbfit}{OML}{\isomath@rmdefault}{bx}{it}
+ \fi
+
+alias (overwriting the definition from fixmath)::
+
+ \renewcommand*{\mathbold}{\mathbfit}
+
+mathsfit
+~~~~~~~~
+For *sans-serif italic*, we define a new alphabet ``\mathsfit`` (with
+the alias ``\mathsans`` in analogy to ``\mathbold``). As this typeface
+is not required by ISO 80000-2 and TeX limits the number of math alphabets
+to 16 per math version, it is only defined if the ``OMLmathsfit`` or
+``OMLmathsans`` option is set::
+
+ \ifisomath@OMLmathsfit
+ \DeclareMathAlphabet{\mathsfit}{OML}{\isomath@sfdefault}{m}{it}
+ \SetMathAlphabet{\mathsfit}{bold}{OML}{\isomath@sfdefault}{bx}{it}
+ \def\mathsans{\mathsfit}
+ \fi
+
+mathsfbfit
+~~~~~~~~~~~~
+The *sans serif bold italic* alphabet is used for tensor symbols.
+Following the Unicode naming scheme it is called
+``\mathsfbfit``(with the backwards compatibility alias ``\mathboldsans``).
+With the reuseMathAlphabets_ option, the upright sans serif math
+alphabet ``\mathsf`` is redefined and ``\mathsfbfit`` made an
+alias to it::
+
+ \ifisomath@reuseMathAlphabets
+ \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{bx}{it}
+ \def\mathsfbfit{\mathsf}
+ \else
+ \DeclareMathAlphabet{\mathsfbfit}{OML}{\isomath@sfdefault}{bx}{it}
+ \fi
+ \def\mathboldsans{\mathsfbfit}
+
+Redefine standard alphabets
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Redefine standard alphabets in `OML` font encoding
+if the corresponding `OMLmath*`_ option is true::
+
+ \ifisomath@OMLmathrm
+ \SetMathAlphabet{\mathrm}{normal}{OML}{\isomath@rmdefault}{m}{n}
+ \SetMathAlphabet{\mathrm}{bold}{OML}{\isomath@rmdefault}{bx}{n}
+ \fi
+ \ifisomath@OMLmathbf
+ \SetMathAlphabet{\mathbf}{normal}{OML}{\isomath@rmdefault}{bx}{n}
+ \fi
+ \ifisomath@OMLmathsf
+ \SetMathAlphabet{\mathsf}{normal}{OML}{\isomath@sfdefault}{m}{n}
+ \SetMathAlphabet{\mathsf}{bold}{OML}{\isomath@sfdefault}{bx}{n}
+ \fi
+ \ifisomath@OMLmathtt
+ \SetMathAlphabet{\mathtt}{normal}{OML}{\ttdefault}{m}{n}
+ \SetMathAlphabet{\mathtt}{bold}{OML}{\ttdefault}{bx}{n}
+ \fi
+
+Command aliases
+---------------
+
+The following macros allow semantic markup of mathematical symbols.
+The argument is typeset as proposed by ISO 80000-2 and
+`Typefaces for Symbols in Scientific Manuscripts`_.
+
+\\vectorsym
+~~~~~~~~~~~
+Alphabetic vectors symbols are typeset *boldface italic* while numeric
+ones (e.g. zero vector) are typeset *boldface upright*. The number
+test is a simplified version from the LaTeX FAQ "`Is the argument a number?`__"
+It fails if a number is followed by a non-number, e.g. ``\vectorsym{1a}``,
+but this is no valid vector symbol and would look strange with the
+``\vec`` accent, too. ::
+
+ \providecommand*{\vectorsym}[1]{%
+ \ifnum9<1#1%
+ \mathbf{#1}%
+ \else%
+ \mathbfit{#1}%
+ \fi}
+
+For easier writing or to make existing documents conform to the standard,
+you might want to re-define the standard ``\vec`` command after loading this
+package.
+
+__ http://www.tex.ac.uk/cgi-bin/texfaq2html?label=isitanum
+
+\\matrixsym
+~~~~~~~~~~~
+Symbols for matrices are typeset *boldface italic*, i. e. in the same face
+as vectors. ::
+
+ \providecommand*{\matrixsym}{\vectorsym}
+
+\\tensorsym
+~~~~~~~~~~~
+Symbols for tensors are *sans-serif bold italic*::
+
+ \providecommand*{\tensorsym}{\mathsfbfit}
+
+
+Font setup fixes
+----------------
+
+Substitutions needed for the math alphabet definitions and setup for
+scaled fonts. For details about the font definition macros see
+[fntguide]_.
+
+Unknown makro in font definition file
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The `Kepler Sans` font definition file ``omljkpss.fd`` contains a boolean
+that is defined in ``kpfonts.sty``. This leads to errors if the fonts are
+used from another package. Provide a dummy definition::
+
+ \newif\ifkp@upRm
+
+
+Common family name for text and math fonts
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Some font packages provide matching text and math font but do not
+define a substitution in their ``*.fd`` files. Ideally, the following
+mappings should be moved there.
+
+Mathpazo (Palatino) ppl ↔ zplm ::
+
+ \DeclareFontFamily{OML}{ppl}{\skewchar\font127}
+ \DeclareFontShape{OML}{ppl}{m}{it}{<-> ssub * zplm/m/it}{}
+ \DeclareFontShape{OML}{ppl}{bx}{it}{<-> ssub * zplm/b/it}{}
+
+
+Scaling
+~~~~~~~
+Scale the ``fav`` (Arev), ``iwona``, ``jkpss`` (Kepler Sans) and
+``llcmss`` (LX Fonts) sans serif fonts by the value of the scaled_ option.
+
+To get scaled versions of a font, you cannot use the ``ssub``
+`size function`, but must use the empty function or ``s`` with the font
+file as argument [found by experiment, GM 2010-01-28].
+
+Arev (see ``omlzavm.fd``) fav ↔ zavm::
+
+ \DeclareFontFamily{OML}{fav}{\skewchar\font127}
+ \DeclareFontShape{OML}{fav}{m}{it}{<-> s * [\isomath@scaled] zavmri7m}{}
+ \DeclareFontShape{OML}{fav}{bx}{it}{<-> s * [\isomath@scaled] zavmbi7m}{}
+
+Iwona (see ``omliwona.fd``) iwona ↔ mi-iwona::
+
+ \DeclareFontFamily{OML}{iwona}{}
+ \DeclareFontShape{OML}{iwona}{m}{it}{<-> s * [\isomath@scaled] mi-iwonari}{}
+ \DeclareFontShape{OML}{iwona}{bx}{it}{<-> s * [\isomath@scaled] mi-iwonabi}{}
+
+Kepler Serif (see ``omljkpss.fd``)::
+
+ \DeclareFontFamily{OML}{jkpss}{\skewchar\font127 }
+ \DeclareFontShape{OML}{jkpss}{m}{it}{<-> s * [\isomath@scaled] jkpssmi}{}
+ \DeclareFontShape{OML}{jkpss}{bx}{it}{<-> s * [\isomath@scaled] jkpssbmi}{}
+
+LX Fonts (see ``lxfonts.sty``) llcmss ↔ llcmm::
+
+ \DeclareFontFamily{OML}{llcmss}{\skewchar\font'177}
+ \DeclareFontShape{OML}{llcmss}{m}{it}{<-> s * [\isomath@scaled] lcmmi8}{}
+ \DeclareFontShape{OML}{llcmss}{bx}{it}{<-> s * [\isomath@scaled] lcmmib8}{}
+
+
+References
+==========
+
+.. [fntguide] `LaTeX 2e font selection`:
+ http://mirror.ctan.org/macros/latex/doc/fntguide.pdf.
+
+.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt
+.. _arev: http://mirror.ctan.org/help/Catalogue/entries/arev.html
+.. _cmbright: http://mirror.ctan.org/help/Catalogue/entries/cmbright.html
+.. _fixmath: http://mirror.ctan.org/help/Catalogue/entries/fixmath.html
+.. _hvmath: http://mirror.ctan.org/help/Catalogue/entries/hvmath.html
+.. _iwona: http://mirror.ctan.org/help/Catalogue/entries/iwona.html
+.. _keyval: http://mirror.ctan.org/help/Catalogue/entries/keyval.html
+.. _kvoptions: http://mirror.ctan.org/help/Catalogue/entries/kvoptions.html
+.. _lxfonts: http://mirror.ctan.org/help/Catalogue/entries/lxfonts.html
+.. _mathdesign: http://mirror.ctan.org/help/Catalogue/entries/mathdesign.html
+.. _mathematical alphanumeric symbols:
+ http://www.unicode.org/charts/PDF/U1D400.pdf
+.. _oberdiek: http://mirror.ctan.org/help/Catalogue/entries/oberdiek.html
+.. _`Typefaces for Symbols in Scientific Manuscripts`:
+ http://physics.nist.gov/cuu/pdf/typefaces.pdf
+.. _unicode-math:
+ http://mirror.ctan.org/help/Catalogue/entries/unicode-math.html