From d5d609e002170e08c67f533bcd4f4fada5196187 Mon Sep 17 00:00:00 2001 From: Karl Berry 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') 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=`` 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