From 3e043cb9a8d83174690ec924925f69217e3f1fcb Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 18 Sep 2010 00:10:58 +0000 Subject: isomath update (24aug10) git-svn-id: svn://tug.org/texlive/trunk@19786 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/isomath/README.html | 569 +++++-- Master/texmf-dist/doc/latex/isomath/README.txt | 97 +- .../texmf-dist/doc/latex/isomath/isomath-test.pdf | Bin 149348 -> 141853 bytes .../texmf-dist/doc/latex/isomath/isomath-test.tex | 168 +- Master/texmf-dist/doc/latex/isomath/isomath.pdf | Bin 0 -> 154436 bytes .../texmf-dist/doc/latex/isomath/isomath.sty.html | 1632 ++++++++------------ .../texmf-dist/doc/latex/isomath/isomath.sty.pdf | Bin 118889 -> 0 bytes .../texmf-dist/doc/latex/isomath/isomath.sty.txt | 715 ++------- Master/texmf-dist/doc/latex/isomath/isomath.txt | 701 +++++++++ Master/texmf-dist/tex/latex/isomath/isomath.sty | 713 ++------- 10 files changed, 2161 insertions(+), 2434 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/isomath/isomath.pdf delete mode 100644 Master/texmf-dist/doc/latex/isomath/isomath.sty.pdf create mode 100644 Master/texmf-dist/doc/latex/isomath/isomath.txt (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/isomath/README.html b/Master/texmf-dist/doc/latex/isomath/README.html index 80b4d954370..1fc2b4360b2 100644 --- a/Master/texmf-dist/doc/latex/isomath/README.html +++ b/Master/texmf-dist/doc/latex/isomath/README.html @@ -1,17 +1,17 @@ - + - -isomath: Math for scientists - - + +isomath README + + + + -
-

isomath: Math for scientists

- --- - - - - - - - -
Date:2009-06-19
Copyright:© 2008, 2009 Günter Milde <milde@users.berlios.de>
Licence:This work may be distributed and/or modified under the +
+

isomath README

+ +
+
Date
+
2010-08-23
+ +
© 2008, 2010 Günter Milde <milde@users.berlios.de>
+
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.
+version 1.3 of this license or (at your option) any later version. +

Abstract

The isomath package enables formatting Greek and Latin letters as symbols for vectors, matrices, and tensors in the typefaces recommended for scientific papers -by the International Standard ISO 31. -For this, a bold italic and a sans-serif bold italic -math alphabet are defined.

+by the International Standard ISO 31.

-
-

History

- +
+

Files

+
---++ - - - - - - - - - - - + + - - - + + - - - + + - - - + + - - - + + - - - + + - -
0.12008-09-25first public version.
0.22008-10-02bugfix: a usage example was uncommented;
 updated documentation;
README.txtRequirements, Installation, Usage
 define mathsans only if OMLmathsans is true;
README.htmlbrowser friendly README
 option reuseMathalphabets -> reuseMathAlphabets.
isomath.styliterate source (LaTeX package)
0.32009-06-19documentation update;
isomath.sty.txtliterate source (text version)
 fix OMLmathrm and OMLmathsans definitions;
isomath.sty.htmlliterate source (HTML)
 switch license to LPPL
isomath-doc.txtuser documentation (source)
-
-
-

Files

- --- - + + - + + - + + - - - - - - - - - + +
README.txt:Requirements, Installation, Usage
isomath-doc.htmluser documentation (HTML)
README.html:browser friendly README
isomath-doc.pdfuser documentation (PDF)
isomath.sty:isomath LaTeX package
isomath-test.texTest example (source)
isomath.sty.txt:Documentation (source)
isomath.sty.html:Documentation (HTML)
isomath.sty.pdf:Documentation (PDF)
isomath-test.tex:Test example (source)
isomath-test.pdf:Test example (PDF output)
isomath-test.pdfTest example (PDF output)

The bidirectional text <-> code converter PyLit can convert between -isomath.sty and isomath.sty.txt.

+isomath.sty and isomath.sty.txt.

The Python Docutils and pdflatex were used to generate the HTML and PDF -documentation.

+documentation from the reStructuredText sources.

Requirements

This package builds on and extends fixmath by Walter Schmidt. -It also requires kvoptions.

+It requires kvoptions.

The cmbright package is recommended for sans-serif italic and sans-serif bold italic fonts matching with Computer Modern and derivatives.

All required packages are part of TeXLive and MikTeX.

Installation

-
    -
  • Unpack isomath.zip (preferabely in a TDS documentation folder).
  • -
  • Make sure LaTeX can find isomath.sty:
      -
    • Copy/Move/Link it to a suitable place in the TDS and run texhash,
    • -
    • or place it in the current working directory (e.g. for testing).
    • -
    +
      +
    • Unpack isomath.zip (preferabely in a TDS documentation folder).

      +
    • +
    • Make sure LaTeX can find isomath.sty:

      +

      Copy/Move/Link it to a suitable place in the TDS and run texhash +or place it in the current working directory (e.g. for testing).

-
-

Usage Example

-

Use cmbright for the sans-serif math alphabets and redefine the -\vec macro to typeset its argument in bold italic:

+
+

Usage

-\usepackage[sfdefault=cmbr]{isomath}
-\renewcommand{\vec}{\vectorsym}
+\usepackage{isomath}
 
-

More examples and usage hints are in the documentation files.

-
-
-

References

- - - - - -
[typefaces]Typefaces for Symbols in Scientific Manuscripts: -http://physics.nist.gov/Document/typefaces.pdf
+

Option description, more examples and usage hints are in the user +documentation.

+
diff --git a/Master/texmf-dist/doc/latex/isomath/README.txt b/Master/texmf-dist/doc/latex/isomath/README.txt index 98cc54641e7..fd1231b6d9d 100644 --- a/Master/texmf-dist/doc/latex/isomath/README.txt +++ b/Master/texmf-dist/doc/latex/isomath/README.txt @@ -1,62 +1,49 @@ -isomath: Math for scientists -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +isomath README +~~~~~~~~~~~~~~ -:Date: 2009-06-19 -:Copyright: © 2008, 2009 Günter Milde +:Date: 2010-08-23 +:Copyright: © 2008, 2010 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 enables formatting Greek and Latin - letters as symbols for vectors, matrices, and tensors - in the typefaces recommended for scientific papers - by the International Standard ISO 31. - For this, a *bold italic* and a *sans-serif bold italic* - math alphabet are defined. - -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 LPPL -=== ============ ======================================================== + 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 enables formatting Greek and Latin + letters as symbols for vectors, matrices, and tensors + in the typefaces recommended for scientific papers + by the International Standard ISO 31. Files ===== -:README.txt: Requirements, Installation, Usage -:README.html: browser friendly README - -:isomath.sty: isomath LaTeX package -:isomath.sty.txt: Documentation (source) -:isomath.sty.html: Documentation (HTML) -:isomath.sty.pdf: Documentation (PDF) - -:isomath-test.tex: Test example (source) -:isomath-test.pdf: Test example (PDF output) +==================== ================================= +README.txt Requirements, Installation, Usage +README.html browser friendly README + +isomath.sty literate source (the actual LaTeX package) +isomath.sty.txt literate source (text version) +isomath.sty.html literate source (HTML) + +isomathtxt user documentation (source) +isomathhtml user documentation (HTML) +isomathpdf user documentation (PDF) + +isomath-test.tex Test example (source) +isomath-test.pdf Test example (PDF output) +==================== ================================= The bidirectional text <-> code converter PyLit_ can convert between -``isomath.sty`` and ``isomath.sty.txt``. +``isomath.sty`` and ``isomath.sty.txt``. The Python Docutils_ and pdflatex were used to generate the HTML and PDF -documentation. +documentation from the reStructuredText_ sources. Requirements ============ This package builds on and extends fixmath_ by Walter Schmidt. -It also requires kvoptions_. +It also requires kvoptions_. The cmbright_ package is recommended for *sans-serif italic* and *sans-serif bold italic* fonts matching with Computer Modern and derivatives. @@ -70,32 +57,26 @@ Installation * Make sure LaTeX can find isomath.sty: - + Copy/Move/Link it to a suitable place in the TDS_ and run texhash, - + or place it in the current working directory (e.g. for testing). - + Copy/Move/Link it to a suitable place in the TDS_ and run ``texhash`` + or place it in the current working directory (e.g. for testing). -Usage Example -============= -Use cmbright for the sans-serif math alphabets and redefine the -``\vec`` macro to typeset its argument in *bold italic*:: +Usage +===== - \usepackage[sfdefault=cmbr]{isomath} - \renewcommand{\vec}{\vectorsym} +:: -More examples and usage hints are in the documentation files. + \usepackage{isomath} +Option description, more examples and usage hints are in the user +documentation. -References -========== +.. References + ========== .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt - -.. [typefaces] `Typefaces for Symbols in Scientific Manuscripts`: - http://physics.nist.gov/Document/typefaces.pdf - .. _pylit: http://pylit.berlios.de -.. _reStructured Text: http://docutils.sourceforge.net/rst.html +.. _reStructuredText: http://docutils.sourceforge.net/rst.html .. _docutils: http://docutils.sourceforge.net/rst.html .. _cmbright: http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html diff --git a/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf b/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf index 2c07263df02..014321c05d9 100644 Binary files a/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf and b/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf differ diff --git a/Master/texmf-dist/doc/latex/isomath/isomath-test.tex b/Master/texmf-dist/doc/latex/isomath/isomath-test.tex index 8f303197143..fd9c4267333 100644 --- a/Master/texmf-dist/doc/latex/isomath/isomath-test.tex +++ b/Master/texmf-dist/doc/latex/isomath/isomath-test.tex @@ -1,9 +1,9 @@ % isomath-test.tex: test and template for isomath.sty % =================================================== -% +% % Copyright © 2008 Günter Milde % Released under the terms of the GNU General Public License (v. 2 or later) -% +% % General settings % ---------------- % :: @@ -16,18 +16,29 @@ % Customisation -% ------------------- -% -% Font packages: Uncomment the package you want to test -% (cmss maps to roman for italic and bold-italic OML version) :: - -\newcommand*{\fontpackage}{} -\renewcommand*{\fontpackage}{% -% ae% \sfdefault is cmss (use cmbr) +% ------------- +% +% Font packages +% ~~~~~~~~~~~~~ +% +% (Auxiliary commands for package and option selection, so that the +% selections can be shown in the test sheet.) +% +% Uncomment the option(s) and package you want to test :: + +\newcommand*{\fontpackageoptions}{% +% default% with gfsneohellenic +% charter% with mathdesign +garamond% with mathdesign +% utopia% with mathdesign +} + +\newcommand*{\fontpackage}{% +% ae% \sfdefault is cmss % anttor% \sfdefault is cmss (use iwona) % arev% normal and sans identic (also in math) % beton% bitmap fonts -% concmath% +% concmath% % cmbright% keeps \mathrm and \mathbf as CM (roman) % fourier% incompatible (uses private font encoding) % gfsneohellenic% (use option [default]) no bold @@ -35,48 +46,38 @@ % iwona% sets cmss as sans font (use iwona) % kpfonts% no sans serif italic, needs reuseMathAlphabets % kerkis% no bold math, no sans serif (use iwona or arev?) -% cmlgc% \sfdefault is cmss (use cmbr) -% lmodern% \sfdefault is cmss (use cmbr) -% lucidabr% commercial, subset (no math) free as bitmap +% lmodern% \sfdefault is cmss +% lucidabr% commercial, subset (no math) free as bitmap % lxfonts% normal and sans identic, -mathdesign% \sfdefault is cmss (use cmbr?) provides roman and roman bold in OML :-) -% mbtimes% \sfdefault is cmss (use cmbr?) -% mathpazo% \sfdefault is cmss (use cmbr?) +mathdesign% \sfdefault is cmss, provides roman and roman-bold in OML +% mathptmx% in mathnormal, Greek is larger than Latin! +% mbtimes% \sfdefault is cmss +% mathpazo% \sfdefault is cmss % pxfonts% needs reuseMathAlphabets, no sans-serif -% tgpagella,qpxmath% \sfdefault is cmss (use cmbr?) -% tgtermes,qtxmath% \sfdefault is cmss (use cmbr?) +% tgpagella,qpxmath% \sfdefault is cmss +% tgtermes,qtxmath% \sfdefault is cmss % txfonts% no sans-serif -% zefonts% use with sfdefault=cmbr +% zefonts% } -% Options -% ------- -% Uncomment the line(s) with the required options! +% Isomath options +% ~~~~~~~~~~~~~~~ +% +% Uncomment the option(s) you want to test :: -% Options for the font package call:: - -\newcommand*{\fontpackageoptions}{} -\renewcommand*{\fontpackageoptions}{% -% default% {gfsneohellenic} -% charter% {mathdesign} % -% garamond% {mathdesign} % no (free) bold, \sfdefault is cmss (use cmbr?) -utopia% {mathdesign} % \sfdefault is cmss (use cmbr?) -} - -% Isomath options:: - -\newcommand*{\isomathoptions}{} -\renewcommand*{\isomathoptions}{% -%reuseMathAlphabets,% +\newcommand*{\isomathoptions}{% +% reuseMathAlphabets,% OMLmathrm,% OMLmathbf,% -%OMLmathsf,% -%OMLmathtt,% -%OMLmathsans,% -sfdefault=cmbr% CM-Bright -%sfdefault=iwona% Iwona sans (some glyphs too close to roman) -%sfdefault=zavm% Arev sans (larger than normal) -%sfdefault=llcmm% LX sans (larger than normal) +% OMLmathsf,% +% OMLmathtt,% +% OMLmathsans,% +% rmdefault=qtxmia,% TeX Gyre Termes math with alternative glyphs +% sfdefault=cmbr,% default +% sfdefault=iwona,% Iwona sans (Greek glyphs too close to roman) +% sfdefault=fav,% Arev sans (scale down (ca. 0.87)) +% sfdefault=llcmss,% LX sans (glyphs too close to italic, scale down) +% scaled=0.875% scaling for Arev (small letters) } % Load customisable packages @@ -86,7 +87,11 @@ sfdefault=cmbr% CM-Bright \usepackage[\fontpackageoptions]{\fontpackage} \usepackage[\isomathoptions]{isomath} - + + +% Auxiliary definitions +% --------------------- +% % Re-define \vec to comply with ISO 31:: \renewcommand*{\vec}{\vectorsym} @@ -96,39 +101,44 @@ sfdefault=cmbr% CM-Bright {\textsf{mathsans not defined, use \texttt{OMLmathsans} option}} -% Now print a test sheet:: - + +% Test sheet +% ---------- +% :: + \begin{document} -\section{Test the isomath Package} +\section*{Test the isomath Package} + +% Print font package, isomath options, and resulting font families:: Fontpackage: [\fontpackageoptions]\{\fontpackage\}\\ Isomath called with options: [\isomathoptions]\\ -Default font families: +Default font families: +\makeatletter \begin{tabular}[t]{rlrl} - serif & \texttt{\rmdefault} & sans-serif & \texttt{\sfdefault} \\ - isomath-serif & \makeatletter \texttt{\isomath@rmdefault} \makeatother - & - isomath-sf &\makeatletter \texttt{\isomath@sfdefault} \makeatother - \\ + serif & \texttt{\rmdefault} & + sans-serif & \texttt{\sfdefault}\\ + isomath-serif & \texttt{\isomath@rmdefault} & + isomath-sf & \texttt{\isomath@sfdefault}\\ \end{tabular} +\makeatother +\subsection*{Math alphabets} -\subsection{Math alphabets} +If there are other symbols in place of Greek letters in a math +alphabet, it uses T1 or OT1 font encoding instead of OML. -If there are ligatures (ff, fi, ...) or other "strange" symbols instead of -small Greek letters in a math alphabet, it uses T1 or OT1 encoding instead -of OML. +% A teststring with Latin and Greek letters:: -% Define a teststring with Latin and Greek letters \newcommand{\teststring}{% % capital Latin letters A,B,C, % capital Greek letters \Gamma,\Delta,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega, % small Greek letters -\alpha,\beta,\nu,\omega, -% small Latin letters: +\alpha,\beta,\pi,\nu,\omega, +% small Latin letters: % compare \nu, \omega, v, and w v,w, % is there a true italic form of a and g? @@ -149,30 +159,40 @@ a,g, \mbox{mathsans} & & \mathsans{\teststring}\\ \mbox{mathboldsans} & & \mathboldsans{\teststring} \end{eqnarray*} +% +Do the math alphabets match? +$ +\mathnormal {a x \alpha \omega} +\mathbold {a x \alpha \omega} +\mathboldsans{a x \alpha \omega} +\quad +\mathboldsans{T C \Theta \Gamma} +\mathbold {T C \Theta \Gamma} +\mathnormal {T C \Theta \Gamma} +$ -\subsection{Vector symbols} +\subsection*{Vector symbols} -Symbols for vectors are boldface italic: -$\vec{\alpha}=\vec{e}_{1}\cdot\vec{a}$ +Symbols for vectors are boldface italic: +$\vec{\lambda}=\vec{e}_{1}\cdot\vec{a}$. -\subsection{Matrix symbols} +\subsection*{Matrix symbols} -Symbols for matrices are boldface italic, i. e. typeset in the same -face as vectors:% +Symbols for matrices are boldface italic, too:% \footnote{However, matrix symbols are usually capital letters whereas vectors are small ones. Exceptions are physical Quantities like the force vector $\vec{F}$ or the electrical field $\vec{E}$.% -} -$\matrixsym{\Gamma}=\matrixsym{E}\cdot\matrixsym{A}.$ +} +$\matrixsym{\Lambda}=\matrixsym{E}\cdot\matrixsym{A}.$ -\subsection{Tensor symbols} +\subsection*{Tensor symbols} -Symbols for tensors are sans-serif bold italic, +Symbols for tensors are sans-serif bold italic, -\[ +\[ \tensorsym{\alpha} = \tensorsym{e}\cdot\tensorsym{a} \quad \Longleftrightarrow \quad \alpha_{ijl} = e_{ijk}\cdot a_{kl}. @@ -182,5 +202,5 @@ Symbols for tensors are sans-serif bold italic, The permittivity tensor describes the coupling of electric field and displacement: \[ \vec{D}=\epsilon_{0}\tensorsym{\epsilon}_{\mathrm{r}}\vec{E}\] - + \end{document} diff --git a/Master/texmf-dist/doc/latex/isomath/isomath.pdf b/Master/texmf-dist/doc/latex/isomath/isomath.pdf new file mode 100644 index 00000000000..161ef30edb6 Binary files /dev/null and b/Master/texmf-dist/doc/latex/isomath/isomath.pdf differ diff --git a/Master/texmf-dist/doc/latex/isomath/isomath.sty.html b/Master/texmf-dist/doc/latex/isomath/isomath.sty.html index 30856ca6ec9..8a9e5af86af 100644 --- a/Master/texmf-dist/doc/latex/isomath/isomath.sty.html +++ b/Master/texmf-dist/doc/latex/isomath/isomath.sty.html @@ -1,16 +1,16 @@ - + - -isomath: Math for scientists - + +isomath.sty: Math for scientists + + + -
-

isomath: Math for scientists

- --- - - - - - -
Copyright:© 2008, 2009 Günter Milde
Licence:This work may be distributed and/or modified under the +
+

isomath.sty: Math for scientists

+ +
+ +
© 2008, 2010 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.
+version 1.3 of this license or (at your option) any later version. +
Identification
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{isomath}
+[2010/08/23 v0.4 math according to ISO 31]
+
+
+

Abstract

-

The isomath package enables formatting Greek and Latin +

The isomath package enables formatting Greek and Latin letters as symbols for vectors, matrices, and tensors in the typefaces recommended for scientific papers -by the International Standard ISO 31. For this, a bold italic -and a sans-serif bold italic math alphabet are defined.

-
- -
-

Introduction

-
-

Motivation

- -

Scientific organisations like IUPAP, IUPAC, NIST, BIPM, and others -recommend typesetting math according to the International Standard ISO 31 -Quantities and units [ISO-31].1

-

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.
  • -
  • Greek letters are excluded from font changes with the math alphabets, -while the ISO 31 rules apply equally to letters from both the Greek -and the Latin alphabet.
  • -
  • There is no provision for typesetting of Greek letters in bold italic -style recommended for vectors.
  • -
  • There is no provision for typesetting letters in sans-serif bold italic -recommended for typesetting tensor symbols.
  • -
-

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.

- - - - - -
[1]Summaries of these rules are free available, see [typefaces], -[checklist], [fonts-for-symbols], and [SI-brochure].
-
-
-

Features

-

The isomath.sty package facilitates the task to abide with ISO 31 when -typesetting math with LaTeX:

-
    -
  • 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 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. They print the argument in an ISO-conforming -typeface.

    -
  • -
  • For this, new math alphabets are defined:

    - --- - - - - - - - -
    \mathbold:boldface italic (vector and matrix symbols),
    \mathsans:sans-serif italic (optional),
    \mathboldsans:sans-serif bold italic (tensor symbols).
    -

    The family for these fonts is by default taken from the document's -\rmdefault and \sfdefault values. The rmdefault=<family> and -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 no substitution definition in their *.fd -files.

    -
  • -
-
-
-

Usage

-

Make sure that LaTeX can find isomath.sty and insert the command -\usepackage{isomath} in the document preamble.

-

For package options, see the Options section below.

-
-

Examples

-
    -
  • In many cases (e.g. when \sfdefault expands to "cmss"), the -\mathboldsans alphabet is neither bold nor sans, as "cmss" has no OML -encoded variants and maps to "cmmi".

    -

    Use cmbright for sans-serif math alphabets:

    -
    -\usepackage[sfdefault=cmbr]{isomath}
    -
    -

    Define also a slanted sans-serif math alphabet:

    -
    -\usepackage[sfdefault=cmbr,OMLmathsans]{isomath}
    -
    -
  • -
  • Redefine the standard \vec macro to typeset its argument in bold -italic:

    -
    -\usepackage[sfdefault=cmbr]{isomath}
    -\renewcommand{\vec}{\vectorsym}
    -
    -
  • -
  • The mathdesign package provides an OML encoded bold roman font but does -not set it up for \mathbf:

    -
    -\usepackage[charter]{mathdesign}
    -\usepackage[OMLmathbf,sfdefault=cmbr]{isomath}
    -
    -

    Now, \mathbf{\pi} produces a bold upright pi symbol.

    -
  • -
-
+by the International Standard ISO 31.

- -
-

Greek in Math

-

IUPAC's [fonts-for-symbols] guide says:

-
-
    -
  1. The overall rule is that symbols representing physical quantities (or -variables) are italic, but symbols representing units, or labels, are -roman. [...]
  2. -
  3. The above rule applies equally to letter symbols from both the Greek -and the Latin alphabet, although authors often appear to resist -putting Greek letters into italic.
  4. -
-
-

[emphasis by the author]. In contrast, the standard LaTeX style treats Greek -symbols as invariant operators with lower case italic and upper case upright.

-
-

Unicode Math Support

-

The technical report Unicode Support for Mathematics [tr25] lists -"lphanumeric symbols encountered in mathematics"in table 2 Mathematical -Alphabets.

-

The Unicode block mathematical alphanumeric symbols provides style -variants for Latin and Greek letters and digits. It is labelled "to be used -for mathematical variables where style variations are important -semantically".

- - ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Styles in the mathematical alphanumeric symbols -Unicode block
StyleLGD3LaTeX macroPackage, Comment
boldLGD\mathbfno Greek
italicLG\mathitno Greek
 \mathnormalsmall Greek but -old-style roman Digits
bold italicLG\mathboldfixmath and friends
 \boldsymbolams
scriptL\mathcal oronly capital Latin
(calligraphic) \mathscr 
bold scriptL  
frakturL\mathfrakeufrak
double-struckL D\mathbbbbold, mathbbol, -mbboard
 \mathbbmbbm
 \mathdsdsfont
bold frakturL  
sans-serifL D\mathsfno Greek
sans-serif boldLGD  
sans-serif italicL\mathsansisomath
sans bold italicLG\mathboldsansisomath
monospaceL D\mathttno Greek
Not in the mathematical alphanumeric symbols block:
plainLGD\mathrmno Greek
 \mathnormalcapital Greek
- - - - - -
[3]LGD: Latin, Greek, Digits
-
-
-

OML font encoding

-

OML is the only established font encoding providing Latin and Greek -letters in one font. (The text font encoding LGR is Greek-only while T7 -is just a "reserved name" for a standard Greek encoding.)

-
-

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.
-

However, the reference to italic letters seems to be a description of -the state of the art rather than a necessary restriction:

-
    -
  • There is only one OML encoded font in the Computer Modern fonts: -Computer Modern Math Italic (cmmi).

    -
  • -
  • Generally, font encodings (T1, OT1) are not specific to the font shape.

    -
  • -
  • Both, \DeclareSymbolFont and \DeclareMathAlphabet require a -{<shape>} argument. Thus it is possible to set up OML encoded math -alphabets in roman {n} as well as italic {it} shape without conflicts.

    -
  • -
  • The name TeX math italic can be interpreted as "encoding of Computer -Modern Math Italic" rather than "encoding for math italic" fonts.

    -

    A less confusing name would be TeX math letters or Original/Old -Math Letters. The latter would also explain the acronym OML.

    -
  • -
-

A more inclusive definition would be:

-
-The OML encoding contains Latin and Greek letters for use in mathematical -formulas (typically used for variables) together with some symbols. -It first appeared in the Computer Modern Math Italic (cmmi) font.
-
-
-

Support

-

Unfortunately, support for the OML encoding is missing for many font -families even if the base font contains all Greek letters. -Supported font families can be found searching for oml*.fd files and by -grepping for "DeclareFont.*OML", "SymbolFont.*OML" and "MathAlphabet.*OML" -in *.sty files.

- - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fonts supporting the OML font encoding
NameFamily{m}{it}{bx}{it}{m}{n}{bx}{n}
aerAE (Almost European)xx  
anttAntykwa Torunskaxx  
cmrComputer Modern Romanxx  
ccrConcretexx  
cmbrComputer Modern Brightxx  
hlhLucidaxx  
hforCM with old-style digitsxx  
iwonaIwona (sans serif)xx  
jkpKepler Serifxx  
jkplKepler Serifxx  
jkpvosKepler Serifxx  
jkplvosKepler Serifxx  
llcmmLXfonts (sans serif)xx  
lmrLatin Modern Romanxx  
makKerkisx   
mdbchMath Design Charterxxxx
mdputMath Design Utopiaxxxx
mdugmMath Design Garamondxxxx
neohellenicGFS Neohellenicx   
plcmCM (PLaTeX)x   
ptmomTimes (Omega or MB-Times)xx  
ptmomuTimes (Omega or MB-Times)xx  
ptmcmTimes (psfont)x   
pxrPalatino (pxfonts)xx  
qplPalatino/Pagella (qpxmath)xx  
qtmTimes/Termes (qtxmath)xx  
txrTimes (txfonts)xx  
ywclm(greektex)xx  
zavmArev (Vera Sans-Serif)xx  
zesfcm(efont)x   
zplmPalatino (mathpazo)xx  
zpple xx  
ztmcmTimes (mathptmx)x   
zerComputer Modern (zefonts)xx  
-

Explanations:

-
    -
  • If there is an alias (substitution) from the text font to a math-variant, -only the text font is listed.
  • -
  • Many text fonts define substitutions also for {n}, however mapping to -an italic variant of the OML encoded font. These are not listed as -supporting {m}{n} or {bx}{n} here.
  • -
-

The following fonts define cmm as OML substitution. A better matching -substitution can be set with the rmdefault or sfdefault options.

- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Non-CM fonts with cmm as OML substitution
FamilyName
bchCharter (psnfss)
pagAvant Garde (psnfss)
pbkBookman (psnfss)
pcrCourier (psnfss)
phvHelvetica (psnfss)
pncNew Century Schoolbook (psnfss)
pplPalatino (psnfss)
ptmTimes Roman (psnfss)
putUtopia (psnfss)
pzcZapf Chancery (psnfss)
uagAvant Garde (avantgar)
ubkBookman (bookman)
ucrCourier (courier)
ucrsCourier
uncNew Courier (nctrsbk)
uniUniversal (universa)
uhvHelvetica (helvetic)
uplPalatino (palatino)
utmTimes (times)
uzcZapf Chancery (zapfchan)
-
-
-
-

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 a LaTeX equivalent of the Mathematical -Alphanumeric Symbols Unicode block.

-

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, the T7 encoding could be used for math alphabets (if it ever -happens to materialise).

-

Upright small Greek letters in \mathrm would enable the specification of -the constant pi, Myons, Pions, alpha-particles, photons, and neutrinos -without special packages. (With mathdesign, this is already possible -today.)

-
-
-
-
-

Implementation

-
-

Identification

-
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{isomath}
-[2009/06/19 v0.3 typeset math according to International Standard ISO 31]
-
-

History

- +

History

+
@@ -1156,40 +771,79 @@ today.)

- + + + + + + + + + + + + +
 switch license to LPPLswitch license to LPP.
0.42010-08-23split user documentation from literate source;
 option scaled;
 documentation update.
+
-

Requirements

+

Requirements

-

fixmath.sty

+

fixmath.sty

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.)

+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. +This definition will be overwritten with a configurable value for +the font family below.

 \RequirePackage{fixmath}
 
-
-

Caution!

-

After loading fixmath, placing Greek letters in a math alphabet, e.g. -\mathrm{k\Omega}, can lead to garbage, as 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.

-

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

+

kvoptions.sty

The kvoptions package in the oberdiek bundle facilitates the setup of package options and provides a key=value interface (based on keyval):

@@ -1198,75 +852,49 @@ package options and provides a key=value interface (based on 
-

Options

+

Options

-

rmdefault

-

Alternative family for roman math fonts. The default is to use the -corresponding text font family (\rmdefault) in OML encoding. -Table 3 lists some fonts where a different setting is advised.

+

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

-

Alternative family for sans-serif math fonts. The default is to use the -corresponding text font family (\sfdefault) in OML encoding.

-

Computer Modern Sans Serif (cmss) has no OML encoded variant. Nor have many -derivatives (lmss, aess, ...). Actually, there are only a few OML-encoded -sans-serif fonts (all slanted/italic):

- --- - - - - - - - - - - - -
zavm:arev (Vera Sans with math extension, large x-hight)
cmbr:cmbright (Computer Modern Bright, slightly lighter than cmss)
iwona:iwona (Humanistic Sans Serif, some shapes very similar to roman)
hvm:hvmath (Helvetica Math, commercial, free bitmap version)
llcmm:lxfonts (LX Fonts, very wide, excentric, large x-hight, new in 2008)
-

For most fonts (especially CM and related), [sfdefault=cmbr] is the -recommended setting.

+

sfdefault

+

Family for sans-serif math fonts. The default selects CM Bright, as +most sans serif fonts are not available in OML encoding:

-\DeclareStringOption[\sfdefault]{sfdefault}
+\DeclareStringOption[cmbr]{sfdefault}
+
+
+
+

scaled

+

The sans-serif fonts, fav (Arev), llcmss (LX Fonts), and +iwona can be scaled with the scaled option.

+
+\DeclareStringOption[1.0]{scaled}
+% Use a key definition like in inconsolata.sty (cf. also helvet.sty)?
+% \define@key{isomath}{scaled}[1.0]{\def\isomath@scaled{s*[#1]}}
 
-
-
TODO
-
Allow scaling?
-
-

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.

-

To access the upright shapes, the corresponding \textbf and \textsf -commands might be used (however, this toggles the math-mode off and -might use a different font).

+

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}
 
-
-

Caution!

-

Do not use reuseMathAlphabets together with the OMLmathbf or -OMLmathsf options.

-
-
-

OML math alphabets

-

With Greek letters defined as \mathalpha, the math alphabets are -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:

+
+

OMLmath*

+

The following options cause isomath to (re)define the corresponding +math alphabets in OML encoding:

 \DeclareBoolOption{OMLmathrm}
 \DeclareBoolOption{OMLmathbf}
@@ -1274,44 +902,48 @@ encoding:

\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. -Currently, support for the OML font encoding is rather limited:

-
    -
  • only the mathdesign fonts support roman in OML encoding, while
  • -
  • many font packages define an italic font as OML replacement for a roman -font.
  • -
-

With some packages, these options can result in a "too many math alphabets -used in version normal" error.

+

Setting these options enables access to small Greek letters in +different shapes with e.g. \mathrm{\pi} 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 Options

-

Process the options with kvoptions extensions:

+

Process Options

+

Process the options with kvoptions extensions:

 \ProcessKeyvalOptions*
 
-

Declarations

+

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]. -This correlates with the Unicode math support where the -mathematical alphanumeric symbols block defines distinct Unicode -characters for Greek and Latin letters in different typefaces.

-

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.

+

Math alphabets

+

In math, LaTeX uses “absolute” fontnames instead of a selection by +family, shape, and weight because typefaces have a semantic meaning +(see 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 carefull not to exceed this. The +reuseMathAlphabets option reduces this number 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 \mathboldsans
+    \MessageBreak and `mathbf' for \protect \mathbold
+  }
+\fi
+
-

mathbold

-

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):

+

mathbold

+

The italic bold math alphabet is named \mathbold like in +fixmath and related packages. With the reuseMathAlphabets option, +the roman bold math alphabet \mathbf is redefined and +\mathbold made an alias (overwriting existing definitions):

 \ifisomath@reuseMathAlphabets
   \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it}
@@ -1322,10 +954,10 @@ definitions):

-

mathsans

-

For italic sans-serif, we define a new alphabet named \mathsans (in -analogy to \mathbold). As this typeface is not required by ISO 31, it -is only defined if the OMLmathsans option is set:

+

mathsans

+

For italic sans-serif, we define a new alphabet named \mathsans (in +analogy to \mathbold). As this typeface is not required by ISO 31, it +is only defined if the OMLmathsans option is set:

 \ifisomath@OMLmathsans
   \DeclareMathAlphabet{\mathsans}{OML}{\isomath@sfdefault}{m}{it}
@@ -1333,10 +965,11 @@ is only defined if the OMLmathsan
 
-

mathboldsans

-

A sans serif slanted bold alphabet is needed for tensor symbols. With the -reuseMathAlphabets option, \mathsf is redefined and \mathboldsans -made an alias:

+

mathboldsans

+

A sans serif slanted bold alphabet is needed for tensor symbols. +With the reuseMathAlphabets option, the upright sans serif math +alphabet \mathsf is redefined and \mathboldsans made an +alias:

 \ifisomath@reuseMathAlphabets
   \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{bx}{it}
@@ -1347,9 +980,9 @@ made an alias:

-

Redefine standard alphabets

-

Redefine standard alphabets in OML font encoding -if the corresponding OML math alphabets option is true:

+

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}
@@ -1367,26 +1000,27 @@ if the corresponding OM
 
-

Command aliases

+

Command aliases

The following macros allow semantic markup of mathematical symbols. -The argument is typeset as proposed by ISO 31 and [typefaces].

+The argument is typeset as proposed by ISO 31 and +Typefaces for Symbols in Scientific Manuscripts.

-

\vectorsym

+

\vectorsym

Symbols for vectors are typeset boldface italic:

 \newcommand{\vectorsym}{\mathbold}
 

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 (cf. the Examples section).

+you might want to re-define the standard \vec command after loading this +package (cf. the Examples section of the documentation).

Attention: Some fonts (CM, Latin Modern, ...) have old-style figures in -their math italic version. The Null vector must not be written \vec{0} -in this case. Use e.g. \mathbf{0}, \boldsymbol{0} (with AMS math) or -\bm{0} (with boldmath). The latter two variants provide also a failsafe +their math italic version. The Null vector must not be written \vec{0} +in this case. Use e.g. \mathbf{0}, \boldsymbol{0} (with AMS math) or +\bm{0} (with boldmath). The latter two variants provide also a failsafe alias for a bold vector.

-

\matrixsym

+

\matrixsym

Symbols for matrices are typeset boldface italic, i. e. in the same face as vectors.

@@ -1394,7 +1028,7 @@ as vectors.

-

\tensorsym

+

\tensorsym

Symbols for tensors are sans-serif bold italic:

 \newcommand{\tensorsym}{\mathboldsans}
@@ -1402,111 +1036,53 @@ as vectors.

-

Font mappings

-

Some font packages provide a matching math font but do not define a -substitution in their *.fd files.

-

We define the substitutions needed for the math alphabet definitions in this -package. Ideally, these should become part of a more complete set of -definitions in the package's *.fd files:

-

Mathpazo (Palatino) ppl -> zplm

+

Font mappings

+

Some font packages provide matching text and math font but do not +define a substitution in their *.fd files.

+

We define the substitutions needed for the math alphabet definitions +in this package. Ideally, these should become part of the package's +*.fd files.

+

For details about the font definition macros see the fntguide.

+

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}{}
 
-

Arev (see omlzavm.fd): fav -> zavm

+
+

Scaling

+

Scale the fav (Arev), llcmss (LX Fonts), and iwona 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 \font =127}
-\DeclareFontShape{OML}{fav}{m}{it}{<->ssub * zavm/m/it}{}
-\DeclareFontShape{OML}{fav}{bx}{it}{<->ssub * zavm/b/it}{}
+\DeclareFontFamily{OML}{fav}{\skewchar\font127}
+\DeclareFontShape{OML}{fav}{m}{it}{<-> s * [\isomath@scaled] zavmri7m}{}
+\DeclareFontShape{OML}{fav}{bx}{it}{<-> s * [\isomath@scaled] zavmbi7m}{}
 

LX Fonts (see lxfonts.sty): llcmss -> llcmm

-\DeclareFontFamily{OML}{llcmm}{\skewchar\font'177}
-\DeclareFontShape{OML}{llcmm}{m}{it}{<-> lcmmi8}{}
-\DeclareFontShape{OML}{llcmm}{bx}{it}{<-> lcmmib8}{}
-
-\DeclareFontFamily{OML}{llcmss}{}
-\DeclareFontShape{OML}{llcmss}{m}{it}{<-> ssub * llcmm/m/it}{}
-\DeclareFontShape{OML}{llcmss}{bx}{it}{<-> ssub * llcmm/bx/it}{}
+\DeclareFontFamily{OML}{llcmss}{\skewchar\font'177}
+\DeclareFontShape{OML}{llcmss}{m}{it}{<-> s * [\isomath@scaled] lcmmi8}{}
+\DeclareFontShape{OML}{llcmss}{bx}{it}{<-> s * [\isomath@scaled] lcmmib8}{}
+
+

Ivona (see omliwona.fd):

+
+\DeclareFontFamily{OML}{iwona}{}
+\DeclareFontShape{OML}{iwona}{m}{it}{<-> s * [\isomath@scaled] mi-iwonari}{}
+\DeclareFontShape{OML}{iwona}{bx}{it}{<-> s * [\isomath@scaled] mi-iwonabi}{}
 

No declarations below this point:

 \endinput
 
-
-
-
-
-

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](1, 2) Typefaces for Symbols in Scientific Manuscripts: -http://physics.nist.gov/Document/typefaces.pdf
- - - - - -
[checklist]SI Unit rules and style conventions -Check List for Reviewing Manuscripts: -http://physics.nist.gov/cuu/Units/checklist.html
- - - - - -
[fonts-for-symbols](1, 2) On the use of italic and roman fonts for symbols -in scientific text, (Revised December 1999): -http://old.iupac.org/standing/idcns/fonts_for_symbols.html
- - - - - -
[SI-brochure]The International System of Units (SI): -http://www.bipm.org/en/si/si_brochure/
- - - - - -
[encguide]LaTeX font encodings: -http://dante.ctan.org/CTAN/macros/latex/doc/encguide.pdf
- - - - - -
[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/
-
+
+
diff --git a/Master/texmf-dist/doc/latex/isomath/isomath.sty.pdf b/Master/texmf-dist/doc/latex/isomath/isomath.sty.pdf deleted file mode 100644 index 40ef06f05c2..00000000000 Binary files a/Master/texmf-dist/doc/latex/isomath/isomath.sty.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/isomath/isomath.sty.txt b/Master/texmf-dist/doc/latex/isomath/isomath.sty.txt index c133b50b45e..2c7405d7988 100644 --- a/Master/texmf-dist/doc/latex/isomath/isomath.sty.txt +++ b/Master/texmf-dist/doc/latex/isomath/isomath.sty.txt @@ -1,409 +1,25 @@ -isomath: Math for scientists -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +isomath.sty: Math for scientists +******************************** -:Copyright: © 2008, 2009 Günter Milde +:Copyright: © 2008, 2010 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. + 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 enables formatting Greek and Latin - letters as symbols for vectors, matrices, and tensors - in the typefaces recommended for scientific papers - by the International Standard ISO 31. For this, a *bold italic* - and a *sans-serif bold italic* math alphabet are defined. - -.. contents:: - -Introduction -************ - -Motivation -========== - -.. Did you ever manage to write the stress tensor ``$\sigma$`` in a - *sans-serif bold italic* typeface, as recommended by [typefaces]_? - -Scientific organisations like IUPAP_, IUPAC_, NIST_, BIPM_, and others -recommend typesetting math according to the International Standard ISO 31 -`Quantities and units` [ISO-31]_.\ [#]_ - -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. - -* Greek letters are excluded from font changes with the math alphabets, - while the ISO 31 rules apply equally to letters from both the Greek - and the Latin alphabet. - -* There is no provision for typesetting of Greek letters in *bold italic* - style recommended for vectors. - -* There is no provision for typesetting letters in *sans-serif bold italic* - recommended for typesetting tensor symbols. - -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. - -.. [#] Summaries of these rules are free available, see [typefaces]_, - [checklist]_, [fonts-for-symbols]_, and [SI-brochure]_. - - -Features -======== - -The ``isomath.sty`` package facilitates the task to abide with ISO 31 when -typesetting math with LaTeX: - -* 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 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. They print the argument in an ISO-conforming - typeface. - -* For this, new `math alphabets`_ are defined: - - :``\mathbold``: *boldface italic* (vector and matrix symbols), - :``\mathsans``: *sans-serif italic* (optional), - :``\mathboldsans``: *sans-serif bold italic* (tensor symbols). - - The family for these fonts is by default taken from the document's - ``\rmdefault`` and ``\sfdefault`` values. The ``rmdefault=`` and - ``sfdefault=`` options_ can be used to override the defaults. - -* Missing `font mappings`_ are defined for font families which have an OML - encoded counterpart but no substitution definition in their ``*.fd`` - files. - - -Usage -===== - -Make sure that LaTeX can find ``isomath.sty`` and insert the command -``\usepackage{isomath}`` in the document preamble. - -For package options, see the Options_ section below. - -Examples --------- - -* In many cases (e.g. when ``\sfdefault`` expands to "cmss"), the - ``\mathboldsans`` alphabet is neither bold nor sans, as "cmss" has no OML - encoded variants and maps to "cmmi". - - Use cmbright_ for sans-serif math alphabets:: - - \usepackage[sfdefault=cmbr]{isomath} - - Define also a slanted sans-serif math alphabet:: - - \usepackage[sfdefault=cmbr,OMLmathsans]{isomath} - -* Redefine the standard ``\vec`` macro to typeset its argument in `bold - italic`:: - - \usepackage[sfdefault=cmbr]{isomath} - \renewcommand{\vec}{\vectorsym} - -* The mathdesign_ package provides an OML encoded *bold roman* font but does - not set it up for ``\mathbf``:: - - \usepackage[charter]{mathdesign} - \usepackage[OMLmathbf,sfdefault=cmbr]{isomath} - - Now, ``\mathbf{\pi}`` produces a bold upright pi symbol. - -Related packages -================ - -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) -* eulervm_ (Euler Math) -* fixmath_ (Computer Modern) -* hvmath_ (HV-Math/Helvetica) -* mathpazo_ (Palatino) -* tmmath_ (TM-Math/Times) - -This package requires and extends fixmath.sty_. - -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 ---------- - -The `fourier`_ package for math typesetting with Utopia defines its own, -incompatible math font encodings. It cannot be used with ``isomath`` -but provides other means to typeset upright or italic Greek (see its -documentation).\ [#]_ - -The `kpfonts`_, `pxfonts`_, and `txfonts`_ packages define many additional -math alphabets the additional definitions in isomath lead to a "too many -math alphabets used in version normal" error. The error can be avoided with -the reuseMathAlphabets_ option. - -.. [#] However, it is possible to use the symbols from `fourier`_ together - with math alphabets from another package, e.g `mathdesign`_:: - - \usepackage{fourier} - \usepackage[OMLmathbf,rmdefault=mdput,sfdefault=cmbr]{isomath} - - -Greek in Math -============= - -IUPAC_'s [fonts-for-symbols]_ guide says: - - 2. The overall rule is that symbols representing physical quantities (or - variables) are italic, but symbols representing units, or labels, are - roman. [...] - - 3. The above rule **applies equally to letter symbols from both the Greek - and the Latin alphabet**, although authors often appear to resist - putting Greek letters into italic. - -[emphasis by the author]. In contrast, the standard LaTeX style treats Greek -symbols as invariant operators with lower case italic and upper case upright. - -Unicode Math Support --------------------- - -The technical report `Unicode Support for Mathematics` [tr25]_ lists -"lphanumeric symbols encountered in mathematics"in table 2 `Mathematical -Alphabets`. - -The Unicode block `mathematical alphanumeric symbols`_ provides style -variants for Latin and Greek letters and digits. It is labelled "to be used -for mathematical variables where style variations are important -semantically". - -.. _table 1: - -.. table:: Styles in the `mathematical alphanumeric symbols`_ - Unicode block - :class: booktab - - ================= ==== ================= ============================ - Style LGD LaTeX macro Package, Comment - [#]_ - ================= ==== ================= ============================ - bold LGD ``\mathbf`` no Greek - - italic LG ``\mathit`` no Greek - \ ``\mathnormal`` small Greek but - old-style roman Digits - bold italic LG ``\mathbold`` fixmath and friends - \ ``\boldsymbol`` ams - script L ``\mathcal`` or only capital Latin - (calligraphic) ``\mathscr`` - bold script L - fraktur L ``\mathfrak`` eufrak - double-struck L D ``\mathbb`` bbold, mathbbol, - mbboard - \ ``\mathbbm`` bbm - \ ``\mathds`` dsfont - bold fraktur L - sans-serif L D ``\mathsf`` no Greek - sans-serif bold LGD - sans-serif italic L ``\mathsans`` isomath - sans bold italic LG ``\mathboldsans`` isomath - monospace L D ``\mathtt`` no Greek - ----------------- ---- ----------------- ---------------------------- - *Not in the mathematical alphanumeric symbols block*: - --------------------------------------------------------------------- - plain LGD ``\mathrm`` no Greek - \ ``\mathnormal`` capital Greek - ================= ==== ================= ============================ - -.. [#] LGD: **L**\ atin, **G**\ reek, **D**\ igits - - -OML font encoding ------------------ - -*OML* is the only established font encoding providing Latin and Greek -letters in one font. (The text font encoding *LGR* is Greek-only while *T7* -is just a "reserved name" for a standard Greek encoding.) - -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. - -However, the reference to **italic** letters seems to be a description of -the *state of the art* rather than a necessary restriction: - -* There is only one OML encoded font in the Computer Modern fonts: - `Computer Modern Math Italic` (cmmi). - -* Generally, font encodings (T1, OT1) are not specific to the font shape. - -* Both, ``\DeclareSymbolFont`` and ``\DeclareMathAlphabet`` require a - {} argument. Thus it is possible to set up OML encoded math - alphabets in roman {n} as well as italic {it} shape without conflicts. - -* The name `TeX math italic` can be interpreted as "encoding *of* `Computer - Modern Math Italic`" rather than "encoding *for* math italic" fonts. - - A less confusing name would be `TeX math letters` or `Original/Old - Math Letters`. The latter would also explain the acronym OML. - -A more inclusive definition would be: - - The OML encoding contains Latin and Greek letters for use in mathematical - formulas (typically used for variables) together with some symbols. - It first appeared in the `Computer Modern Math Italic` (cmmi) font. - - - -Support -""""""" - -Unfortunately, support for the OML encoding is missing for many font -families even if the base font contains all Greek letters. -Supported font families can be found searching for ``oml*.fd`` files and by -grepping for "DeclareFont.*OML", "SymbolFont.*OML" and "MathAlphabet.*OML" -in ``*.sty`` files. - -.. _table 2: - -.. table:: Fonts supporting the OML font encoding - :class: booktab - - ============= =========================== ======= ======== ====== ======= - Name Family {m}{it} {bx}{it} {m}{n} {bx}{n} - ============= =========================== ======= ======== ====== ======= - aer AE (Almost European) x x - antt Antykwa Torunska x x - cmr Computer Modern Roman x x - ccr Concrete x x - cmbr Computer Modern Bright x x - hlh Lucida x x - hfor CM with old-style digits x x - iwona Iwona (sans serif) x x - jkp Kepler Serif x x - jkpl Kepler Serif x x - jkpvos Kepler Serif x x - jkplvos Kepler Serif x x - llcmm LXfonts (sans serif) x x - lmr Latin Modern Roman x x - mak Kerkis x - mdbch Math Design Charter x x x x - mdput Math Design Utopia x x x x - mdugm Math Design Garamond x x x x - neohellenic GFS Neohellenic x - plcm CM (PLaTeX) x - ptmom Times (Omega or MB-Times) x x - ptmomu Times (Omega or MB-Times) x x - ptmcm Times (psfont) x - pxr Palatino (pxfonts) x x - qpl Palatino/Pagella (qpxmath) x x - qtm Times/Termes (qtxmath) x x - txr Times (txfonts) x x - ywclm (greektex) x x - zavm Arev (Vera Sans-Serif) x x - zesfcm (efont) x - zplm Palatino (mathpazo) x x - zpple x x - ztmcm Times (mathptmx) x - zer Computer Modern (zefonts) x x - ============= =========================== ======= ======== ====== ======= - -Explanations: - -* If there is an alias (substitution) from the text font to a math-variant, - only the text font is listed. - -* Many text fonts define substitutions also for {n}, however mapping to - an italic variant of the OML encoded font. These are not listed as - supporting {m}{n} or {bx}{n} here. - -The following fonts define ``cmm`` as OML substitution. A better matching -substitution can be set with the rmdefault_ or sfdefault_ options. - -.. _table 3: - -.. table:: Non-CM fonts with ``cmm`` as OML substitution - :class: booktab - - ============= =============================== - Family Name - ============= =============================== - bch Charter (psnfss) - pag Avant Garde (psnfss) - pbk Bookman (psnfss) - pcr Courier (psnfss) - phv Helvetica (psnfss) - pnc New Century Schoolbook (psnfss) - ppl Palatino (psnfss) - ptm Times Roman (psnfss) - put Utopia (psnfss) - pzc Zapf Chancery (psnfss) - uag Avant Garde (avantgar) - ubk Bookman (bookman) - ucr Courier (courier) - ucrs Courier - unc New Courier (nctrsbk) - uni Universal (universa) - uhv Helvetica (helvetic) - upl Palatino (palatino) - utm Times (times) - uzc Zapf Chancery (zapfchan) - ============= =============================== - -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 a LaTeX equivalent of the `Mathematical -Alphanumeric Symbols`_ Unicode block. - -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, the T7 encoding could be used for math alphabets (if it ever -happens to materialise). - -Upright small Greek letters in ``\mathrm`` would enable the specification of -the constant pi, Myons, Pions, alpha-particles, photons, and neutrinos -without special packages. (With mathdesign_, this is already possible -today.) - - -Implementation -************** - -Identification -============== -:: +:Identification: + :: \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{isomath} - [2009/06/19 v0.3 typeset math according to International Standard ISO 31] + [2010/08/23 v0.4 math according to ISO 31] + +:Abstract: The `isomath` package enables formatting Greek and Latin + letters as symbols for vectors, matrices, and tensors + in the typefaces recommended for scientific papers + by the International Standard ISO 31. History -------- +======= .. class:: borderless @@ -415,124 +31,87 @@ History \ option reuseMathalphabets -> reuseMathAlphabets. 0.3 2009-06-19 documentation update; \ fix OMLmathrm and OMLmathsans definitions; -\ switch license to LPPL +\ switch license to LPP. +0.4 2010-08-23 split user documentation from literate source; +\ option ``scaled``; +\ documentation update. === ============ ======================================================== +.. contents:: + Requirements ============ fixmath.sty ----------- - 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``). +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.) +This definition will be overwritten with a configurable value for +the font family below. :: \RequirePackage{fixmath} -.. caution:: - - After loading fixmath, placing Greek letters in a math alphabet, e.g. - ``\mathrm{k\Omega}``, can lead to garbage, as 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. - - 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_):: \RequirePackage{kvoptions} + Options ======= rmdefault --------- - -Alternative family for roman math fonts. The default is to use the -corresponding text font family (``\rmdefault``) in OML encoding. -`Table 3`_ lists some fonts where a different setting is advised. - +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:: -Alternative family for sans-serif math fonts. The default is to use the -corresponding text font family (``\sfdefault``) in OML encoding. - -Computer Modern Sans Serif (cmss) has no OML encoded variant. Nor have many -derivatives (lmss, aess, ...). Actually, there are only a few OML-encoded -sans-serif fonts (all slanted/italic): - -:zavm: arev_ (Vera Sans with math extension, large x-hight) -:cmbr: cmbright_ (Computer Modern Bright, slightly lighter than cmss) -:iwona: iwona_ (Humanistic Sans Serif, some shapes very similar to roman) -:hvm: hvmath_ (Helvetica Math, commercial, free bitmap version) -:llcmm: lxfonts_ (LX Fonts, very wide, excentric, large x-hight, new in 2008) - -For most fonts (especially CM and related), ``[sfdefault=cmbr]`` is the -recommended setting. - + \DeclareStringOption[cmbr]{sfdefault} + +scaled +------ +The sans-serif fonts, ``fav`` (Arev), ``llcmss`` (LX Fonts), and +``iwona`` can be scaled with the ``scaled`` option. :: - \DeclareStringOption[\sfdefault]{sfdefault} + \DeclareStringOption[1.0]{scaled} + % Use a key definition like in inconsolata.sty (cf. also helvet.sty)? + % \define@key{isomath}{scaled}[1.0]{\def\isomath@scaled{s*[#1]}} -TODO - Allow scaling? - - reuseMathAlphabets ------------------ +The definition of new `math alphabets`_ can lead to a “too many math +alphabets used in version normal” error. -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. - -To access the upright shapes, the corresponding ``\textbf`` and ``\textsf`` -commands might be used (however, this toggles the math-mode off and -might use a different font). - +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} -.. caution:: - Do not use ``reuseMathAlphabets`` together with the ``OMLmathbf`` or - ``OMLmathsf`` options. - - -OML math alphabets ------------------- - -With Greek letters defined as ``\mathalpha``, the math alphabets are -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:: + +OMLmath* +-------- +The following options cause `isomath` to (re)define the corresponding +`math alphabets`_ in OML encoding:: \DeclareBoolOption{OMLmathrm} \DeclareBoolOption{OMLmathbf} @@ -540,20 +119,16 @@ encoding:: \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*. -Currently, support for the `OML font encoding`_ is rather limited: +Setting these options enables access to small Greek letters in +different shapes with e.g. ``\mathrm{\pi}`` **if an OML encoded font +is available**. Currently, only the mathdesign_ fonts support roman in +OML encoding. -* only the mathdesign_ fonts support roman in OML encoding, while -* many font packages define an italic font as OML replacement for a roman - font. - -With some packages, these options can result in a "too many math alphabets -used in version normal" error. +With some packages, these options can result in a “too many math alphabets +used in version normal” error. Process Options --------------- - Process the options with ``kvoptions`` extensions:: \ProcessKeyvalOptions* @@ -562,27 +137,35 @@ Process the options with ``kvoptions`` extensions:: 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]_. -This correlates with the `Unicode math support`_ where the -`mathematical alphanumeric symbols`_ block defines distinct Unicode -characters for Greek and Latin letters in different typefaces. +In math, LaTeX uses “absolute” fontnames instead of a selection by +family, shape, and weight because typefaces have a semantic meaning +(see 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 carefull not to exceed this. +`isomath` defines a math alphabet for every required font variant and +optionally re-defines the standard math alphabets in `OML` font encoding. -mathbold -"""""""" +Unfortunately, the number of math alphabets in one math version is +limited to 16, so we have to be carefull not to exceed this. The +``reuseMathAlphabets`` option reduces this number 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 \mathboldsans + \MessageBreak and `mathbf' for \protect \mathbold + } + \fi + +mathbold +~~~~~~~~ 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):: +fixmath_ and related packages. With the reuseMathAlphabets_ option, +the roman bold math alphabet ``\mathbf`` is redefined and +``\mathbold`` made an alias (overwriting existing definitions):: \ifisomath@reuseMathAlphabets \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it} @@ -592,8 +175,7 @@ definitions):: \fi mathsans -"""""""" - +~~~~~~~~ For *italic sans-serif*, we define a new alphabet named ``\mathsans`` (in analogy to ``\mathbold``). As this typeface is not required by ISO 31, it is only defined if the ``OMLmathsans`` option is set:: @@ -603,11 +185,11 @@ is only defined if the ``OMLmathsans`` option is set:: \fi mathboldsans -"""""""""""" - -A *sans serif slanted bold* alphabet is needed for tensor symbols. With the -reuseMathAlphabets_ option, ``\mathsf`` is redefined and ``\mathboldsans`` -made an alias:: +~~~~~~~~~~~~ +A *sans serif slanted bold* alphabet is needed for tensor symbols. +With the reuseMathAlphabets_ option, the upright sans serif math +alphabet ``\mathsf`` is redefined and ``\mathboldsans`` made an +alias:: \ifisomath@reuseMathAlphabets \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{bx}{it} @@ -617,10 +199,10 @@ made an alias:: \fi Redefine standard alphabets -""""""""""""""""""""""""""" +~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Redefine standard alphabets in `OML font encoding`_ -if the corresponding `OML math alphabets`_ option is true:: +Redefine standard alphabets in `OML` font encoding +if the corresponding `OMLmath*`_ option is true:: \ifisomath@OMLmathrm \SetMathAlphabet{\mathrm}{normal}{OML}{\isomath@rmdefault}{m}{n} @@ -639,18 +221,18 @@ Command aliases --------------- The following macros allow semantic markup of mathematical symbols. -The argument is typeset as proposed by ISO 31 and [typefaces]_. +The argument is typeset as proposed by ISO 31 and +`Typefaces for Symbols in Scientific Manuscripts`_. \\vectorsym -""""""""""" - +~~~~~~~~~~~ Symbols for vectors are typeset *boldface italic*:: \newcommand{\vectorsym}{\mathbold} 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 (cf. the Examples_ section). +package (cf. the Examples section of the documentation). Attention: Some fonts (CM, Latin Modern, ...) have old-style figures in their math italic version. The Null vector must not be written ``\vec{0}`` @@ -659,8 +241,7 @@ in this case. Use e.g. ``\mathbf{0}``, ``\boldsymbol{0}`` (with AMS math) or alias for a bold vector. \\matrixsym -""""""""""" - +~~~~~~~~~~~ Symbols for matrices are typeset *boldface italic*, i. e. in the same face as vectors. :: @@ -668,114 +249,78 @@ as vectors. :: \\tensorsym -""""""""""" - +~~~~~~~~~~~ Symbols for tensors are *sans-serif bold italic*:: \newcommand{\tensorsym}{\mathboldsans} + Font mappings ------------- -Some font packages provide a matching math font but do not define a -substitution in their ``*.fd`` files. +Some font packages provide matching text and math font but do not +define a substitution in their ``*.fd`` files. -We define the substitutions needed for the math alphabet definitions in this -package. Ideally, these should become part of a more complete set of -definitions in the package's ``*.fd`` files: +We define the substitutions needed for the math alphabet definitions +in this package. Ideally, these should become part of the package's +``*.fd`` files. -Mathpazo (Palatino) ppl -> zplm :: +For details about the font definition macros see the fntguide_. + +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}{} -Arev (see omlzavm.fd): fav -> zavm :: + +Scaling +~~~~~~~ +Scale the ``fav`` (Arev), ``llcmss`` (LX Fonts), and ``iwona`` fonts +by the value of the ``scaled`` option. - \DeclareFontFamily{OML}{fav}{\skewchar \font =127} - \DeclareFontShape{OML}{fav}{m}{it}{<->ssub * zavm/m/it}{} - \DeclareFontShape{OML}{fav}{bx}{it}{<->ssub * zavm/b/it}{} +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}{} LX Fonts (see lxfonts.sty): llcmss -> llcmm :: - \DeclareFontFamily{OML}{llcmm}{\skewchar\font'177} - \DeclareFontShape{OML}{llcmm}{m}{it}{<-> lcmmi8}{} - \DeclareFontShape{OML}{llcmm}{bx}{it}{<-> lcmmib8}{} - - \DeclareFontFamily{OML}{llcmss}{} - \DeclareFontShape{OML}{llcmss}{m}{it}{<-> ssub * llcmm/m/it}{} - \DeclareFontShape{OML}{llcmss}{bx}{it}{<-> ssub * llcmm/bx/it}{} + \DeclareFontFamily{OML}{llcmss}{\skewchar\font'177} + \DeclareFontShape{OML}{llcmss}{m}{it}{<-> s * [\isomath@scaled] lcmmi8}{} + \DeclareFontShape{OML}{llcmss}{bx}{it}{<-> s * [\isomath@scaled] lcmmib8}{} +Ivona (see ``omliwona.fd``):: + + \DeclareFontFamily{OML}{iwona}{} + \DeclareFontShape{OML}{iwona}{m}{it}{<-> s * [\isomath@scaled] mi-iwonari}{} + \DeclareFontShape{OML}{iwona}{bx}{it}{<-> s * [\isomath@scaled] mi-iwonabi}{} No declarations below this point:: \endinput - -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 - -.. [checklist] `SI Unit rules and style conventions` - Check List for Reviewing Manuscripts: - http://physics.nist.gov/cuu/Units/checklist.html - -.. [fonts-for-symbols] `On the use of italic and roman fonts for symbols - in scientific text`, (Revised December 1999): - http://old.iupac.org/standing/idcns/fonts_for_symbols.html - -.. [SI-brochure] `The International System of Units (SI)`: - http://www.bipm.org/en/si/si_brochure/ - -.. [encguide] `LaTeX font encodings`: - http://dante.ctan.org/CTAN/macros/latex/doc/encguide.pdf - -.. [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 - - [Green-Book] `Quantities, Units and Symbols in Physical Chemistry`, - 3rd edition, RSC Publishing, Cambridge 2007: - [ISBN 0 85404 433 7; ISBN-13 978 0 85404 433 7] - .. Links .. ***** .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt -.. _BIPM: http://www.bipm.org/ -.. _IUPAC: http://iupac.org/ -.. _IUPAP: http://www.iupap.org/ -.. _NIST: http://physics.nist.gov/ -.. _mathematical alphanumeric symbols: - http://www.unicode.org/charts/PDF/U1D400.pdf .. _arev: http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html .. _cmbright: http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html -.. _eulervm: http://dante.ctan.org/CTAN/help/Catalogue/entries/eulervm.html .. _fixmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html -.. _fix-cm: http://dante.ctan.org/CTAN/help/Catalogue/entries/fix-cm.html -.. _fourier: http://dante.ctan.org/CTAN/help/Catalogue/entries/fourier.html +.. _fntguide: http://dante.ctan.org/CTAN/macros/latex/doc/fntguide.pdf .. _hvmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/hvmath.html -.. _ifthen: http://dante.ctan.org/CTAN/help/Catalogue/entries/ifthen.html .. _iwona: http://dante.ctan.org/CTAN/help/Catalogue/entries/iwona.html -.. _kpfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/kpfonts.html -.. _kvoptions: http://dante.ctan.org/CTAN/help/Catalogue/entries/kvoptions.html .. _keyval: http://dante.ctan.org/CTAN/help/Catalogue/entries/keyval.html +.. _kvoptions: http://dante.ctan.org/CTAN/help/Catalogue/entries/kvoptions.html .. _lxfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/lxfonts.html .. _mathdesign: http://dante.ctan.org/CTAN/help/Catalogue/entries/mathdesign.html -.. _mathpazo: http://dante.ctan.org/CTAN/help/Catalogue/entries/mathpazo.html +.. _mathematical alphanumeric symbols: + http://www.unicode.org/charts/PDF/U1D400.pdf .. _oberdiek: http://dante.ctan.org/CTAN/help/Catalogue/entries/oberdiek.html -.. _sfmath: http://dtrx.de/od/tex/sfmath.html -.. _pxfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/pxfonts.html -.. _tmmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/tmmath.html -.. _txfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/txfonts.html +.. _`Typefaces for Symbols in Scientific Manuscripts`: + http://physics.nist.gov/Document/typefaces.pdf diff --git a/Master/texmf-dist/doc/latex/isomath/isomath.txt b/Master/texmf-dist/doc/latex/isomath/isomath.txt new file mode 100644 index 00000000000..ad3697083c4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/isomath/isomath.txt @@ -0,0 +1,701 @@ +.. -*- rst-mode -*- + +isomath: Math for scientists +**************************** + +:Author: Günter Milde +:Date: 2010-08-23 +:Copyright: © 2008, 2010 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 enables formatting Greek and Latin + letters as symbols for vectors, matrices, and tensors + in the typefaces recommended for scientific papers + by the International Standard ISO 31. + +.. contents:: +.. sectnum:: + +Motivation +---------- + +.. How do you write the stress tensor ``$\sigma$`` in a + sans-serif bold italic typeface, as recommended by [typefaces]_? + +Scientific organisations like IUPAP_, IUPAC_, NIST_, BIPM_, and others +recommend typesetting math according to the International Standard ISO 31 +`Quantities and units` [ISO-31]_.\ [#]_ + +.. [#] Summaries of these rules are free available, see [typefaces]_, + [checklist]_, [fonts_for_symbols]_, and [SI-brochure]_. + +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. + +* Greek letters are excluded from font changes with the math + alphabets, while the ISO 31 rules apply equally to letters from the + Greek and Latin alphabet. + +* There is no provision for typesetting of Greek letters in bold italic + style recommended for vectors. + +* There is no provision for typesetting letters in sans-serif bold italic + recommended for typesetting tensor symbols. + +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. + + +Features +-------- + +.. _`equal treatment of Latin and Greek`: + +Equal treatment of Latin and Greek letters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This feature is provided by the required package fixmath_ which +ensures that: + ++ Both, Greek and Latin letters change shape if a different + math alphabet is used. + ++ By default, uppercase Greek letters are typeset in italic style. + +However, `fixmath` works only for Computer Modern. With `isomath`, + ++ the used math fonts are configurable (using the rmdefault_ and + sfdefault_ options), and + ++ upright Greek letters can be made available through the common + ``\math*`` alphabets via the OMLmath_ options, if the + corresponding fonts support the `OML font encoding`_. + +Caution: + Placing Greek letters in a ``\math*`` macro, e. g. + ``\mathrm{k\Omega}``, can lead to garbage, as the standard math + alphabets are usually taken from text fonts that have ligatures and + non-alpha symbols in place of the small Greek letters. + Do not use Greek letters in the standard math alphabet commands + ``mathit``, ``mathrm``, ``mathbf``, ``mathsf``, and ``mathtt`` + unless you use the OMLmath_ options.\ [#]_ + + .. [#] Some packages provide ``\up*`` or ``\var*`` macros for + upright Greek letters so the above example could be written + ``\mathrm{k}\upOmega``. + + +New math alphabets +~~~~~~~~~~~~~~~~~~ +New math alphabets are defined: + +:``\mathbold``: boldface italic (vector and matrix symbols), +:``\mathboldsans``: sans-serif bold italic (tensor symbols). +:``\mathsans``: sans-serif italic (optional), + +The rmdefault_ and sfdefault_ options set the font family used for +these alphabets. + + +Command aliases +~~~~~~~~~~~~~~~ +The command aliases ``\vectorsym``, ``\matrixsym``, and ``\tensorsym`` +allow semantic markup. They print the argument in an ISO-conforming +typeface. + + +Font mappings +~~~~~~~~~~~~~ + +Some font definitions are added for font families which have an OML +encoded counterpart but no substitution definition in their ``*.fd`` +files. + +Usage +----- + +Make sure that LaTeX can find ``isomath.sty`` and insert the command:: + + \usepackage{isomath} + +in the document preamble (see also Examples_). + + +Options +~~~~~~~ + +rmdefault +''''''''' +Family for serif math fonts (roman and kursive). The default is to use the +corresponding text font family (the value of ``\rmdefault``). The font +must be available in `OML font encoding`_. + + +sfdefault +''''''''' +Family for sans-serif math fonts. The default is ``cmbr`` because many +sans-serif fonts define the Computer Roman font `cmm` as OML substitution +(see `Table 2`_). + +There are only few sans serif `fonts that support the OML +encoding`_: + +.. class:: booktab + +========== =========== =================================================== +Name Package Comment +========== =========== =================================================== +``cmbr`` cmbright_ `Computer Modern Bright`, bitmap, slightly lighter + than cmss (Type 1 fonts with hfbright_) +``fav`` arev_ `Arev` (`Vera Sans`) with math extension, + large x-hight +``iwona`` iwona_ Humanistic Sans Serif, + some shapes very similar to roman +``hvm`` hvmath_ `Helvetica Math`, commercial, free bitmap version +``llcmss`` lxfonts_ `LX Fonts`, very wide, excentric, large x-hight, + new in 2008 +========== =========== =================================================== + + +scaled +'''''' +As the choice of sans serif math fonts is very limited, +the fonts, ``fav``, ``llcmss``, and ``iwona`` can be scaled +with the ``scaled`` option (see examples_). + + +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. [#]_ + +.. [#] To access the upright shapes, the corresponding ``\textbf`` and + ``\textsf`` commands might be used. However, this toggles the + math-mode off and might use a different font, so watch for + side-effects. + +OMLmath +'''''''' + +With Greek letters defined as ``\mathalpha``, the math alphabets are +expected to be in `OML font encoding`_. Unfortunately, the standard +math alphabets are usually taken from OT1 or T1 encoded fonts that +have ligatures and accents in place of the Greek letters. + +The following options cause isomath to (re)define math alphabets in OML +encoding:: + + OMLmathrm, OMLmathbf, OMLmathsf, OMLmathsans, 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**. Currently, only the mathdesign_ package provides +upright `fonts that support the OML encoding`_. Many font packages +define an italic font as replacement for a roman font in OML encoding. + +With some packages, these options can result in a “`too many math alphabets +used in version normal`_” error. + +Examples +~~~~~~~~ + +* Use `isomath` with the default settings:: + + \usepackage{isomath} + +* Define also a slanted sans-serif math alphabet:: + + \usepackage[OMLmathsans]{isomath} + +* Use the heavier `Arev` sans serif fonts:: + + \usepackage[sfdefault=fav,scaled=0.875]{isomath} + + (Adapt the scaling factor to your needs.) + +* Redefine the standard ``\vec`` macro to typeset its argument in `bold + italic`:: + + \usepackage{isomath} + \renewcommand{\vec}{\vectorsym} + + (Use ``\bm`` or ``boldmath`` for for the zero and unit vectors, as + ``\vec{0}`` and ``\vec{1}`` will give undesired results.) + +* The mathdesign_ package provides an OML encoded *bold roman* font but does + not set it up for ``\mathbf``. To set it up, write e.g.:: + + \usepackage[charter]{mathdesign} + \usepackage[OMLmathbf]{isomath} + + Now, e.g. ``\mathbf{\pi}`` produces a bold upright pi symbol. + +See also the ``isomath-test.tex`` test document. + + +Related packages +---------------- + +Requirements +~~~~~~~~~~~~ + +fixmath_ + by Walter Schmidt defines Greek letters as alphabetic symbols. + +kvoptions_ + (in the oberdiek_ bundle) facilitates the setup of package options + and provides a key=value interface (based on keyval_). + + +Recommendations +~~~~~~~~~~~~~~~ + +cmbright_ + provides *sans serif* and *sans-serif bold* fonts for the + ``\mathsans`` and ``\mathboldsans`` alphabets that match with + Computer Modern and derivatives. Free Type 1 versions of the fonts + with hfbright_. + +arev_ + provides *sans serif* somewhat heavier letters that are clearly + distinguishable from the roman or italic counterparts (important if + used to distinguish vectors and tensors). However, `Arev` has a + large x-hight, so for most default fonts, either small or capital + letters will not match in size. + + +Alternatives +~~~~~~~~~~~~ + +If the only requirement is a bold italic font for (Latin and Greek) vector +symbols, there are established alternatives to `isomath`: + +* Packages that support `equal treatment of Latin and Greek`_ and + provide the ``\mathbold`` alphabet (but not ``\mathsansbold``) in + `OML font encoding`_: + + Roman + * eulervm_ (Euler Math), + * fixmath_ (Computer Modern), + * mathpazo_ (Palatino), + * tmmath_ (TM-Math/Times). + + Sans serif + * arev_ (Arev/Vera Sans), + * cmbright_ (CM Bright), + * hvmath_ (HV-Math/Helvetica), + + +* Packages that provide commands which can be used as replacement for + ``\vec``: + + * `amsbsy`_ (part of `amsmath`_, the near-indispensable adjunct to serious + mathematical typesetting in LaTeX) defines ``\boldmath``, + + * `bm`_ defines a command ``\bm`` which makes its argument bold (more + careful than amsbsy's ``\boldmath``). Combining `bm` and `isomath` may + lead to the `too many math alphabets used in version normal`_ error. + +The ``\text`` macro from `amsmath`_ can be used to get e.g. upright or +sans-serif bold slanted Greek symbols from a text font into a formula. + + +Conflicts +~~~~~~~~~ + +* “_`too many math alphabets used in version normal`” + + This error occurs if the combination of packages tries to load more + than 16 fonts into the ‘normal’ math version. + + It can be avoided with the reuseMathAlphabets_ option (see there + for side-effects). + + Examples for problematic combinations: + + + The `kpfonts`_, `pxfonts`_, and `txfonts`_ packages define many + additional math alphabets. + + + The `bm`_ package normally allocates several symbol fonts for bold + and heavy fonts. Their number can be customized by defining + ``\bmmax`` and ``\hmmax`` before loading the package. + +* The `fourier`_ package for math typesetting with Utopia defines its own, + incompatible math font encodings. It cannot be used with ``isomath`` but + provides other means to typeset upright or italic Greek (see its + documentation). + + However, it is possible to use the symbols from `fourier`_ together + with math alphabets from another package, e.g `mathdesign`_:: + + \usepackage{fourier} + \usepackage[OMLmathbf,rmdefault=mdput, + sfdefault=arev,scaled=0.85]{isomath} + + +Background +---------- + +Letter symbols +~~~~~~~~~~~~~~ + +IUPAC_'s [fonts_for_symbols]_ guide says: + + 2. The overall rule is that symbols representing physical quantities (or + variables) are italic, but symbols representing units, or labels, are + roman. […] + + 3. The above rule applies equally to letter symbols from both the Greek + and the Latin alphabet, […]. + +In contrast, the standard LaTeX style treats Greek letter symbols + +* as invariant operators, + +* with lower case italic and upper case upright. + +A possible fix (established by fixmath_) is using a common font for +Greek and Latin letters. There is one established font encoding +providing Latin and Greek letters: the `OML font encoding`_. However, + +* support_ for OML is limited to a few (mostly italic) fonts. + +* The widely supported but non-standard `LGR` font encoding has Greek + but no Latin letters, while + +* the standard Greek font encoding `T7` is just a “reserved name”. + + +OML font encoding +~~~~~~~~~~~~~~~~~ + +The `LaTeX font encodings` guide [encguide]_ names the OML encoding +`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. + +The reference to *italic* shape is odd: + +* No other font encoding is specific to the font shape. + +* The different font selection and the semantic of font features in + math do not interfere with the font *encoding*: Both, + ``\DeclareSymbolFont`` and ``\DeclareMathAlphabet`` require a + shape argument. Thus it is possible to set up OML encoded math + alphabets in roman {n} as well as italic {it} shape without + conflicts. + +This seems to be a remnant of pre-NFSS times – there is only one OML +encoded font in Knuth's Computer Modern fonts: `Computer Modern Math +Italic` (cmmi) – rather than a necessary restriction. + +Proposals: + +* Drop the *italic* from the definition. Optionally add an explanation: + + The OML encoding contains Latin and Greek letters for use in + mathematical formulas (typically used for variables) together with + some symbols. It first appeared in the `Computer Modern Math + Italic` (cmmi) font. + +* The name `TeX math italic` can be interpreted as “the encoding + **of** `Computer Modern Math Italic`” rather than “an encoding + **for** math italic” fonts. + + A less confusing name would be `TeX math letters` or `Original/Old + Math Letters`. The latter would also explain the acronym OML. + + +Support +''''''' + +Unfortunately, support for the OML encoding is missing for many font +families even if the base font contains all Greek letters. + +Supported font families can be found searching for ``oml*.fd`` files +and grepping for ``DeclareFont.*OML`` in ``*.sty`` files. +`Table 1`_ lists the findings for a selection of TeXLive + some +additonally installed font packages. + +* If there is an alias (substitution) from the text font to a + math-variant, only the text font is listed. + +* Many text fonts define substitutions also for upright shape, + however mapping to an italic variant of the OML encoded font. These + are not listed as supporting ``m/n`` or ``bx/n`` here. + +`Table 2`_ lists some fonts that define ``cmm`` as OML substitution. +With isomath, a better matching substitution can be set using the +rmdefault_ or sfdefault_ options. + +.. _Table 1: + +.. table:: _`Fonts that support the OML encoding` + + ============= =========================== ======= ======== ====== ======= + Name Family m/it bx/it m/n bx/n + ============= =========================== ======= ======== ====== ======= + aer AE (Almost European) x x + antt Antykwa Torunska x x + cmr Computer Modern Roman x x + ccr Concrete x x + cmbr Computer Modern Bright x x + hlh Lucida x x + hfor CM with old-style digits x x + iwona Iwona (sans serif) x x + jkp Kepler Serif x x + jkpl Kepler Serif x x + jkpvos Kepler Serif x x + jkplvos Kepler Serif x x + llcmm LXfonts (sans serif) x x + lmr Latin Modern Roman x x + mak Kerkis x + kurier Kurier x x + mdbch Math Design Charter x x x x + mdput Math Design Utopia x x x x + mdugm Math Design Garamond x x x x + neohellenic GFS Neohellenic x + plcm CM (PLaTeX) x + ptmom Times (Omega or MB-Times) x x + ptmomu Times (Omega or MB-Times) x x + ptmcm Times (psfont) x + pxr Palatino (pxfonts) x x + qpl Palatino/Pagella (qpxmath) x x + qtm Times/Termes (qtxmath) x x + txr Times (txfonts) x x + udidot Didot (gfsdidot) x + ywclm (greektex) x x + zavm Arev (Vera Sans-Serif) x x + zesfcm (efont) x + zplm Palatino (mathpazo) x x + zpple Palatino x x + ztmcm Times (mathptmx) x + zer Computer Modern (zefonts) x x + ============= =========================== ======= ======== ====== ======= + + +.. _Table 2: + +.. table:: Non-CM fonts with ``cmm`` as OML substitution + + ============= =============================== + Family Name + ============= =============================== + bch Charter (psnfss) + pag Avant Garde (psnfss) + pbk Bookman (psnfss) + pcr Courier (psnfss) + phv Helvetica (psnfss) + pnc New Century Schoolbook (psnfss) + ppl Palatino (psnfss) + ptm Times Roman (psnfss) + put Utopia (psnfss) + pzc Zapf Chancery (psnfss) + uag Avant Garde (avantgar) + ubk Bookman (bookman) + ucr Courier (courier) + ucrs Courier + unc New Courier (nctrsbk) + uni Universal (universa) + uhv Helvetica (helvetic) + upl Palatino (palatino) + utm Times (times) + uzc Zapf Chancery (zapfchan) + ============= =============================== + + +Math in Unicode +~~~~~~~~~~~~~~~ + +Basis for the definition of the Unicode block +`mathematical alphanumeric symbols`_, was the consideration outlined +in [beeton:2000]_: + + These alphabets are needed for proper composition + of mathematics: + + * lightface upright Latin, Greek and digits + * boldface upright Latin, Greek and digits + * lightface italic Latin, Greek and digits + * boldface italic Latin, Greek and digits + * script + * fraktur + * bold fraktur + * open-face (blackboard bold) including digits + * lightface upright sans serif Latin and digits + * lightface italic sans serif Latin + * boldface upright sans serif Latin, Greek, and digits + * boldface italic sans serif Latin and Greek + * monospace Latin and digits + + Except for the lightface upright letters and digits, + which are to be encoded using the base Unicodes + (ASCII for the Latin letters and digits), the + alphanumerics are to be placed in a tightly packed + block (U+D400–D7FF) in plane 1, so that they can + be used for math (most likely via entity names in + MathML), but will be very difficult to access for + other purposes. + +The technical report `Unicode Support for Mathematics` [tr25]_ lists +“alphanumeric symbols encountered in mathematics” in table 2: +`Mathematical Alphabets`. + +The Unicode block `mathematical alphanumeric symbols`_ provides style +variants for Latin and Greek letters and digits. It is labelled “to be +used for mathematical variables where style variations are important +semantically”. `Table 3`_ gives a survey of current LaTeX support. + +.. _table 3: + +.. table:: Styles in the `mathematical alphanumeric symbols`_ + Unicode block + :class: booktab + + ================= ======= ================= ========================== + Style Symbols LaTeX macro Package, Comment + [#]_ + ================= ======= ================= ========================== + bold LGD ``\mathbf`` no Greek + + italic LG ``\mathit`` no Greek + \ ``\mathnormal`` small Greek but + old-style digits (upright) + bold italic LG ``\mathbold`` fixmath and friends + \ ``\boldsymbol`` ams + script L ``\mathcal`` or only capital Latin + (calligraphic) ``\mathscr`` + bold script L + fraktur L ``\mathfrak`` eufrak + double-struck L D ``\mathbb`` bbold, mathbbol, + mbboard + \ ``\mathbbm`` bbm + \ ``\mathds`` dsfont + bold fraktur L + sans-serif L D ``\mathsf`` no Greek + sans-serif bold LGD + sans-serif italic L ``\mathsans`` isomath + sans bold italic LG ``\mathboldsans`` isomath + monospace L D ``\mathtt`` no Greek + ----------------- ------- ----------------- -------------------------- + *Not in the mathematical alphanumeric symbols block*: + ---------------------------------------------------------------------- + plain LGD ``\mathrm`` no Greek + \ ``\mathnormal`` capital Greek + ================= ======= ================= ========================== + +.. [#] LGD: **L**\ atin, **G**\ reek, **D**\ igits + + + +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 a LaTeX equivalent of the `Mathematical +Alphanumeric Symbols`_ Unicode block. + +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, the T7 encoding could be used for math alphabets (if it ever +happens to materialise). + +Upright small Greek letters in ``\mathrm`` would enable the specification of +the constant pi, Myons, Pions, alpha-particles, photons, and neutrinos +without special packages. (With mathdesign_, this is already possible +today.) + + + +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 + +.. [checklist] `SI Unit rules and style conventions` + Check List for Reviewing Manuscripts: + http://physics.nist.gov/cuu/Units/checklist.html + +.. [fonts_for_symbols] `On the use of italic and roman fonts for symbols + in scientific text`, (Revised December 1999): + http://old.iupac.org/standing/idcns/fonts_for_symbols.html + +.. [SI-brochure] `The International System of Units (SI)`: + http://www.bipm.org/en/si/si_brochure/ + +.. [encguide] `LaTeX font encodings`: + http://mirror.ctan.org/macros/latex/doc/encguide.pdf + +.. [fntguide] `LaTeX 2e font selection`: + http://mirror.ctan.org/macros/latex/doc/fntguide.pdf + +.. [tr25] `Unicode Support for Mathematics`, Unicode Technical Report #25: + http://www.unicode.org/reports/tr25/ + +.. [beeton:2000] Barbara Beeton: + `Unicode and math, a combination whose time has come – Finally!`, + TUGBoat, 21#3, 2000. available: + http://www.tug.org/TUGboat/Articles/tb21-3/tb68beet.pdf. + +.. see also + [koma-mail] Custom font substitution: http://www.komascript.de/node/823 + + [Green-Book] `Quantities, Units and Symbols in Physical Chemistry`, + 3rd edition, RSC Publishing, Cambridge 2007: + [ISBN 0 85404 433 7; ISBN-13 978 0 85404 433 7] + + +.. Links + ===== + +.. Print external links as footnotes (currently errors with LaTeX) + .. target-notes:: + +.. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt +.. _BIPM: http://www.bipm.org/ +.. _IUPAC: http://iupac.org/ +.. _IUPAP: http://www.iupap.org/ +.. _NIST: http://physics.nist.gov/ +.. _mathematical alphanumeric symbols: + http://www.unicode.org/charts/PDF/U1D400.pdf +.. _amsbsy: http://dante.ctan.org/CTAN/help/Catalogue/entries/amsbsy.html +.. _amsmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/amsmath.html +.. _arev: http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html +.. _bm: http://dante.ctan.org/CTAN/help/Catalogue/entries/bm.html +.. _cmbright: http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html +.. _eulervm: http://dante.ctan.org/CTAN/help/Catalogue/entries/eulervm.html +.. _fixmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html +.. _fix-cm: http://dante.ctan.org/CTAN/help/Catalogue/entries/fix-cm.html +.. _fourier: http://dante.ctan.org/CTAN/help/Catalogue/entries/fourier.html +.. _hvmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/hvmath.html +.. _hfbright: http://dante.ctan.org/CTAN/help/Catalogue/entries/hfbright.html +.. _ifthen: http://dante.ctan.org/CTAN/help/Catalogue/entries/ifthen.html +.. _iwona: http://dante.ctan.org/CTAN/help/Catalogue/entries/iwona.html +.. _kpfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/kpfonts.html +.. _kvoptions: http://dante.ctan.org/CTAN/help/Catalogue/entries/kvoptions.html +.. _keyval: http://dante.ctan.org/CTAN/help/Catalogue/entries/keyval.html +.. _lxfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/lxfonts.html +.. _mathdesign: http://dante.ctan.org/CTAN/help/Catalogue/entries/mathdesign.html +.. _mathpazo: http://dante.ctan.org/CTAN/help/Catalogue/entries/mathpazo.html +.. _oberdiek: http://dante.ctan.org/CTAN/help/Catalogue/entries/oberdiek.html +.. _sfmath: http://dtrx.de/od/tex/sfmath.html +.. _pxfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/pxfonts.html +.. _tmmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/tmmath.html +.. _txfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/txfonts.html diff --git a/Master/texmf-dist/tex/latex/isomath/isomath.sty b/Master/texmf-dist/tex/latex/isomath/isomath.sty index c20b6e9a1d5..2686cbcefba 100644 --- a/Master/texmf-dist/tex/latex/isomath/isomath.sty +++ b/Master/texmf-dist/tex/latex/isomath/isomath.sty @@ -1,409 +1,25 @@ -% isomath: Math for scientists -% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% isomath.sty: Math for scientists +% ******************************** % -% :Copyright: © 2008, 2009 Günter Milde +% :Copyright: © 2008, 2010 Günter Milde % :Licence: This work may be distributed and/or modified under the -% conditions of the `LaTeX Project Public License`_, either +% 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 enables formatting Greek and Latin -% letters as symbols for vectors, matrices, and tensors -% in the typefaces recommended for scientific papers -% by the International Standard ISO 31. For this, a *bold italic* -% and a *sans-serif bold italic* math alphabet are defined. -% -% .. contents:: -% -% Introduction -% ************ -% -% Motivation -% ========== -% -% .. Did you ever manage to write the stress tensor ``$\sigma$`` in a -% *sans-serif bold italic* typeface, as recommended by [typefaces]_? -% -% Scientific organisations like IUPAP_, IUPAC_, NIST_, BIPM_, and others -% recommend typesetting math according to the International Standard ISO 31 -% `Quantities and units` [ISO-31]_.\ [#]_ -% -% 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. -% -% * Greek letters are excluded from font changes with the math alphabets, -% while the ISO 31 rules apply equally to letters from both the Greek -% and the Latin alphabet. -% -% * There is no provision for typesetting of Greek letters in *bold italic* -% style recommended for vectors. -% -% * There is no provision for typesetting letters in *sans-serif bold italic* -% recommended for typesetting tensor symbols. -% -% 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. -% -% .. [#] Summaries of these rules are free available, see [typefaces]_, -% [checklist]_, [fonts-for-symbols]_, and [SI-brochure]_. -% -% -% Features -% ======== -% -% The ``isomath.sty`` package facilitates the task to abide with ISO 31 when -% typesetting math with LaTeX: -% -% * 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 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. They print the argument in an ISO-conforming -% typeface. -% -% * For this, new `math alphabets`_ are defined: -% -% :``\mathbold``: *boldface italic* (vector and matrix symbols), -% :``\mathsans``: *sans-serif italic* (optional), -% :``\mathboldsans``: *sans-serif bold italic* (tensor symbols). -% -% The family for these fonts is by default taken from the document's -% ``\rmdefault`` and ``\sfdefault`` values. The ``rmdefault=`` and -% ``sfdefault=`` options_ can be used to override the defaults. -% -% * Missing `font mappings`_ are defined for font families which have an OML -% encoded counterpart but no substitution definition in their ``*.fd`` -% files. -% -% -% Usage -% ===== -% -% Make sure that LaTeX can find ``isomath.sty`` and insert the command -% ``\usepackage{isomath}`` in the document preamble. -% -% For package options, see the Options_ section below. -% -% Examples -% -------- -% -% * In many cases (e.g. when ``\sfdefault`` expands to "cmss"), the -% ``\mathboldsans`` alphabet is neither bold nor sans, as "cmss" has no OML -% encoded variants and maps to "cmmi". -% -% Use cmbright_ for sans-serif math alphabets:: - -% \usepackage[sfdefault=cmbr]{isomath} -% -% Define also a slanted sans-serif math alphabet:: - -% \usepackage[sfdefault=cmbr,OMLmathsans]{isomath} -% -% * Redefine the standard ``\vec`` macro to typeset its argument in `bold -% italic`:: - -% \usepackage[sfdefault=cmbr]{isomath} -% \renewcommand{\vec}{\vectorsym} -% -% * The mathdesign_ package provides an OML encoded *bold roman* font but does -% not set it up for ``\mathbf``:: - -% \usepackage[charter]{mathdesign} -% \usepackage[OMLmathbf,sfdefault=cmbr]{isomath} -% -% Now, ``\mathbf{\pi}`` produces a bold upright pi symbol. -% -% Related packages -% ================ -% -% 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) -% * eulervm_ (Euler Math) -% * fixmath_ (Computer Modern) -% * hvmath_ (HV-Math/Helvetica) -% * mathpazo_ (Palatino) -% * tmmath_ (TM-Math/Times) -% -% This package requires and extends fixmath.sty_. -% -% 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 -% --------- -% -% The `fourier`_ package for math typesetting with Utopia defines its own, -% incompatible math font encodings. It cannot be used with ``isomath`` -% but provides other means to typeset upright or italic Greek (see its -% documentation).\ [#]_ -% -% The `kpfonts`_, `pxfonts`_, and `txfonts`_ packages define many additional -% math alphabets the additional definitions in isomath lead to a "too many -% math alphabets used in version normal" error. The error can be avoided with -% the reuseMathAlphabets_ option. -% -% .. [#] However, it is possible to use the symbols from `fourier`_ together -% with math alphabets from another package, e.g `mathdesign`_:: - -% \usepackage{fourier} -% \usepackage[OMLmathbf,rmdefault=mdput,sfdefault=cmbr]{isomath} -% -% -% Greek in Math -% ============= -% -% IUPAC_'s [fonts-for-symbols]_ guide says: -% -% 2. The overall rule is that symbols representing physical quantities (or -% variables) are italic, but symbols representing units, or labels, are -% roman. [...] -% -% 3. The above rule **applies equally to letter symbols from both the Greek -% and the Latin alphabet**, although authors often appear to resist -% putting Greek letters into italic. -% -% [emphasis by the author]. In contrast, the standard LaTeX style treats Greek -% symbols as invariant operators with lower case italic and upper case upright. -% -% Unicode Math Support -% -------------------- -% -% The technical report `Unicode Support for Mathematics` [tr25]_ lists -% "lphanumeric symbols encountered in mathematics"in table 2 `Mathematical -% Alphabets`. -% -% The Unicode block `mathematical alphanumeric symbols`_ provides style -% variants for Latin and Greek letters and digits. It is labelled "to be used -% for mathematical variables where style variations are important -% semantically". -% -% .. _table 1: -% -% .. table:: Styles in the `mathematical alphanumeric symbols`_ -% Unicode block -% :class: booktab -% -% ================= ==== ================= ============================ -% Style LGD LaTeX macro Package, Comment -% [#]_ -% ================= ==== ================= ============================ -% bold LGD ``\mathbf`` no Greek -% -% italic LG ``\mathit`` no Greek -% \ ``\mathnormal`` small Greek but -% old-style roman Digits -% bold italic LG ``\mathbold`` fixmath and friends -% \ ``\boldsymbol`` ams -% script L ``\mathcal`` or only capital Latin -% (calligraphic) ``\mathscr`` -% bold script L -% fraktur L ``\mathfrak`` eufrak -% double-struck L D ``\mathbb`` bbold, mathbbol, -% mbboard -% \ ``\mathbbm`` bbm -% \ ``\mathds`` dsfont -% bold fraktur L -% sans-serif L D ``\mathsf`` no Greek -% sans-serif bold LGD -% sans-serif italic L ``\mathsans`` isomath -% sans bold italic LG ``\mathboldsans`` isomath -% monospace L D ``\mathtt`` no Greek -% ----------------- ---- ----------------- ---------------------------- -% *Not in the mathematical alphanumeric symbols block*: -% --------------------------------------------------------------------- -% plain LGD ``\mathrm`` no Greek -% \ ``\mathnormal`` capital Greek -% ================= ==== ================= ============================ -% -% .. [#] LGD: **L**\ atin, **G**\ reek, **D**\ igits -% -% -% OML font encoding -% ----------------- -% -% *OML* is the only established font encoding providing Latin and Greek -% letters in one font. (The text font encoding *LGR* is Greek-only while *T7* -% is just a "reserved name" for a standard Greek encoding.) -% -% 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. -% -% However, the reference to **italic** letters seems to be a description of -% the *state of the art* rather than a necessary restriction: -% -% * There is only one OML encoded font in the Computer Modern fonts: -% `Computer Modern Math Italic` (cmmi). -% -% * Generally, font encodings (T1, OT1) are not specific to the font shape. -% -% * Both, ``\DeclareSymbolFont`` and ``\DeclareMathAlphabet`` require a -% {} argument. Thus it is possible to set up OML encoded math -% alphabets in roman {n} as well as italic {it} shape without conflicts. -% -% * The name `TeX math italic` can be interpreted as "encoding *of* `Computer -% Modern Math Italic`" rather than "encoding *for* math italic" fonts. -% -% A less confusing name would be `TeX math letters` or `Original/Old -% Math Letters`. The latter would also explain the acronym OML. -% -% A more inclusive definition would be: -% -% The OML encoding contains Latin and Greek letters for use in mathematical -% formulas (typically used for variables) together with some symbols. -% It first appeared in the `Computer Modern Math Italic` (cmmi) font. -% -% -% -% Support -% """"""" -% -% Unfortunately, support for the OML encoding is missing for many font -% families even if the base font contains all Greek letters. -% Supported font families can be found searching for ``oml*.fd`` files and by -% grepping for "DeclareFont.*OML", "SymbolFont.*OML" and "MathAlphabet.*OML" -% in ``*.sty`` files. -% -% .. _table 2: -% -% .. table:: Fonts supporting the OML font encoding -% :class: booktab -% -% ============= =========================== ======= ======== ====== ======= -% Name Family {m}{it} {bx}{it} {m}{n} {bx}{n} -% ============= =========================== ======= ======== ====== ======= -% aer AE (Almost European) x x -% antt Antykwa Torunska x x -% cmr Computer Modern Roman x x -% ccr Concrete x x -% cmbr Computer Modern Bright x x -% hlh Lucida x x -% hfor CM with old-style digits x x -% iwona Iwona (sans serif) x x -% jkp Kepler Serif x x -% jkpl Kepler Serif x x -% jkpvos Kepler Serif x x -% jkplvos Kepler Serif x x -% llcmm LXfonts (sans serif) x x -% lmr Latin Modern Roman x x -% mak Kerkis x -% mdbch Math Design Charter x x x x -% mdput Math Design Utopia x x x x -% mdugm Math Design Garamond x x x x -% neohellenic GFS Neohellenic x -% plcm CM (PLaTeX) x -% ptmom Times (Omega or MB-Times) x x -% ptmomu Times (Omega or MB-Times) x x -% ptmcm Times (psfont) x -% pxr Palatino (pxfonts) x x -% qpl Palatino/Pagella (qpxmath) x x -% qtm Times/Termes (qtxmath) x x -% txr Times (txfonts) x x -% ywclm (greektex) x x -% zavm Arev (Vera Sans-Serif) x x -% zesfcm (efont) x -% zplm Palatino (mathpazo) x x -% zpple x x -% ztmcm Times (mathptmx) x -% zer Computer Modern (zefonts) x x -% ============= =========================== ======= ======== ====== ======= -% -% Explanations: -% -% * If there is an alias (substitution) from the text font to a math-variant, -% only the text font is listed. -% -% * Many text fonts define substitutions also for {n}, however mapping to -% an italic variant of the OML encoded font. These are not listed as -% supporting {m}{n} or {bx}{n} here. -% -% The following fonts define ``cmm`` as OML substitution. A better matching -% substitution can be set with the rmdefault_ or sfdefault_ options. -% -% .. _table 3: -% -% .. table:: Non-CM fonts with ``cmm`` as OML substitution -% :class: booktab -% -% ============= =============================== -% Family Name -% ============= =============================== -% bch Charter (psnfss) -% pag Avant Garde (psnfss) -% pbk Bookman (psnfss) -% pcr Courier (psnfss) -% phv Helvetica (psnfss) -% pnc New Century Schoolbook (psnfss) -% ppl Palatino (psnfss) -% ptm Times Roman (psnfss) -% put Utopia (psnfss) -% pzc Zapf Chancery (psnfss) -% uag Avant Garde (avantgar) -% ubk Bookman (bookman) -% ucr Courier (courier) -% ucrs Courier -% unc New Courier (nctrsbk) -% uni Universal (universa) -% uhv Helvetica (helvetic) -% upl Palatino (palatino) -% utm Times (times) -% uzc Zapf Chancery (zapfchan) -% ============= =============================== -% -% 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 a LaTeX equivalent of the `Mathematical -% Alphanumeric Symbols`_ Unicode block. -% -% 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, the T7 encoding could be used for math alphabets (if it ever -% happens to materialise). -% -% Upright small Greek letters in ``\mathrm`` would enable the specification of -% the constant pi, Myons, Pions, alpha-particles, photons, and neutrinos -% without special packages. (With mathdesign_, this is already possible -% today.) -% -% -% Implementation -% ************** -% -% Identification -% ============== -% :: +% :Identification: +% :: \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{isomath} -[2009/06/19 v0.3 typeset math according to International Standard ISO 31] +[2010/08/23 v0.4 Mathematics conformant to ISO 31.] +% :Abstract: The `isomath` package enables formatting Greek and Latin +% letters as symbols for vectors, matrices, and tensors +% in the typefaces recommended for scientific papers +% by the International Standard ISO 31. +% % History -% ------- +% ======= % % .. class:: borderless % @@ -415,124 +31,87 @@ % \ option reuseMathalphabets -> reuseMathAlphabets. % 0.3 2009-06-19 documentation update; % \ fix OMLmathrm and OMLmathsans definitions; -% \ switch license to LPPL +% \ switch license to LPP. +% 0.4 2010-08-23 split user documentation from literate source; +% \ option ``scaled``; +% \ documentation update. % === ============ ======================================================== % +% .. contents:: +% % % Requirements % ============ % % fixmath.sty % ----------- -% % 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``). +% 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.) +% This definition will be overwritten with a configurable value for +% the font family below. % :: \RequirePackage{fixmath} -% .. caution:: -% -% After loading fixmath, placing Greek letters in a math alphabet, e.g. -% ``\mathrm{k\Omega}``, can lead to garbage, as 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. -% -% 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_):: \RequirePackage{kvoptions} + % Options % ======= % % rmdefault % --------- -% -% Alternative family for roman math fonts. The default is to use the -% corresponding text font family (``\rmdefault``) in OML encoding. -% `Table 3`_ lists some fonts where a different setting is advised. -% +% 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 % --------- -% -% Alternative family for sans-serif math fonts. The default is to use the -% corresponding text font family (``\sfdefault``) in OML encoding. -% -% Computer Modern Sans Serif (cmss) has no OML encoded variant. Nor have many -% derivatives (lmss, aess, ...). Actually, there are only a few OML-encoded -% sans-serif fonts (all slanted/italic): -% -% :zavm: arev_ (Vera Sans with math extension, large x-hight) -% :cmbr: cmbright_ (Computer Modern Bright, slightly lighter than cmss) -% :iwona: iwona_ (Humanistic Sans Serif, some shapes very similar to roman) -% :hvm: hvmath_ (Helvetica Math, commercial, free bitmap version) -% :llcmm: lxfonts_ (LX Fonts, very wide, excentric, large x-hight, new in 2008) -% -% For most fonts (especially CM and related), ``[sfdefault=cmbr]`` is the -% recommended setting. -% +% 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), and +% ``iwona`` can be scaled with the ``scaled`` option. % :: -\DeclareStringOption[\sfdefault]{sfdefault} +\DeclareStringOption[1.0]{scaled} +% Use a key definition like in inconsolata.sty (cf. also helvet.sty)? +% \define@key{isomath}{scaled}[1.0]{\def\isomath@scaled{s*[#1]}} -% TODO -% Allow scaling? -% -% % reuseMathAlphabets % ------------------ +% The definition of new `math alphabets`_ can lead to a “too many math +% alphabets used in version normal” error. % -% 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. -% -% To access the upright shapes, the corresponding ``\textbf`` and ``\textsf`` -% commands might be used (however, this toggles the math-mode off and -% might use a different font). -% +% 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} -% .. caution:: -% Do not use ``reuseMathAlphabets`` together with the ``OMLmathbf`` or -% ``OMLmathsf`` options. -% -% -% OML math alphabets -% ------------------ -% -% With Greek letters defined as ``\mathalpha``, the math alphabets are -% 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:: + +% OMLmath* +% -------- +% The following options cause `isomath` to (re)define the corresponding +% `math alphabets`_ in OML encoding:: \DeclareBoolOption{OMLmathrm} \DeclareBoolOption{OMLmathbf} @@ -540,20 +119,16 @@ \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*. -% Currently, support for the `OML font encoding`_ is rather limited: -% -% * only the mathdesign_ fonts support roman in OML encoding, while -% * many font packages define an italic font as OML replacement for a roman -% font. +% Setting these options enables access to small Greek letters in +% different shapes with e.g. ``\mathrm{\pi}`` **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. +% With some packages, these options can result in a “too many math alphabets +% used in version normal” error. % % Process Options % --------------- -% % Process the options with ``kvoptions`` extensions:: \ProcessKeyvalOptions* @@ -562,27 +137,35 @@ % 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]_. -% This correlates with the `Unicode math support`_ where the -% `mathematical alphanumeric symbols`_ block defines distinct Unicode -% characters for Greek and Latin letters in different typefaces. +% In math, LaTeX uses “absolute” fontnames instead of a selection by +% family, shape, and weight because typefaces have a semantic meaning +% (see 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 carefull not to exceed this. +% `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. The +% ``reuseMathAlphabets`` option reduces this number 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 \mathboldsans + \MessageBreak and `mathbf' for \protect \mathbold + } +\fi + % mathbold -% """""""" -% +% ~~~~~~~~ % 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):: +% fixmath_ and related packages. With the reuseMathAlphabets_ option, +% the roman bold math alphabet ``\mathbf`` is redefined and +% ``\mathbold`` made an alias (overwriting existing definitions):: \ifisomath@reuseMathAlphabets \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it} @@ -592,8 +175,7 @@ \fi % mathsans -% """""""" -% +% ~~~~~~~~ % For *italic sans-serif*, we define a new alphabet named ``\mathsans`` (in % analogy to ``\mathbold``). As this typeface is not required by ISO 31, it % is only defined if the ``OMLmathsans`` option is set:: @@ -603,11 +185,11 @@ \fi % mathboldsans -% """""""""""" -% -% A *sans serif slanted bold* alphabet is needed for tensor symbols. With the -% reuseMathAlphabets_ option, ``\mathsf`` is redefined and ``\mathboldsans`` -% made an alias:: +% ~~~~~~~~~~~~ +% A *sans serif slanted bold* alphabet is needed for tensor symbols. +% With the reuseMathAlphabets_ option, the upright sans serif math +% alphabet ``\mathsf`` is redefined and ``\mathboldsans`` made an +% alias:: \ifisomath@reuseMathAlphabets \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{bx}{it} @@ -617,10 +199,10 @@ \fi % Redefine standard alphabets -% """"""""""""""""""""""""""" +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~ % -% Redefine standard alphabets in `OML font encoding`_ -% if the corresponding `OML math alphabets`_ option is true:: +% Redefine standard alphabets in `OML` font encoding +% if the corresponding `OMLmath*`_ option is true:: \ifisomath@OMLmathrm \SetMathAlphabet{\mathrm}{normal}{OML}{\isomath@rmdefault}{m}{n} @@ -639,18 +221,18 @@ % --------------- % % The following macros allow semantic markup of mathematical symbols. -% The argument is typeset as proposed by ISO 31 and [typefaces]_. +% The argument is typeset as proposed by ISO 31 and +% `Typefaces for Symbols in Scientific Manuscripts`_. % % \\vectorsym -% """"""""""" -% +% ~~~~~~~~~~~ % Symbols for vectors are typeset *boldface italic*:: \newcommand{\vectorsym}{\mathbold} % 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 (cf. the Examples_ section). +% package (cf. the Examples section of the documentation). % % Attention: Some fonts (CM, Latin Modern, ...) have old-style figures in % their math italic version. The Null vector must not be written ``\vec{0}`` @@ -659,8 +241,7 @@ % alias for a bold vector. % % \\matrixsym -% """"""""""" -% +% ~~~~~~~~~~~ % Symbols for matrices are typeset *boldface italic*, i. e. in the same face % as vectors. :: @@ -668,114 +249,78 @@ % \\tensorsym -% """"""""""" -% +% ~~~~~~~~~~~ % Symbols for tensors are *sans-serif bold italic*:: \newcommand{\tensorsym}{\mathboldsans} + % Font mappings % ------------- % -% Some font packages provide a matching math font but do not define a -% substitution in their ``*.fd`` files. +% Some font packages provide matching text and math font but do not +% define a substitution in their ``*.fd`` files. % -% We define the substitutions needed for the math alphabet definitions in this -% package. Ideally, these should become part of a more complete set of -% definitions in the package's ``*.fd`` files: +% We define the substitutions needed for the math alphabet definitions +% in this package. Ideally, these should become part of the package's +% ``*.fd`` files. % -% Mathpazo (Palatino) ppl -> zplm :: +% For details about the font definition macros see the fntguide_. +% +% 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}{} -% Arev (see omlzavm.fd): fav -> zavm :: -\DeclareFontFamily{OML}{fav}{\skewchar \font =127} -\DeclareFontShape{OML}{fav}{m}{it}{<->ssub * zavm/m/it}{} -\DeclareFontShape{OML}{fav}{bx}{it}{<->ssub * zavm/b/it}{} +% Scaling +% ~~~~~~~ +% Scale the ``fav`` (Arev), ``llcmss`` (LX Fonts), and ``iwona`` 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}{} % LX Fonts (see lxfonts.sty): llcmss -> llcmm :: -\DeclareFontFamily{OML}{llcmm}{\skewchar\font'177} -\DeclareFontShape{OML}{llcmm}{m}{it}{<-> lcmmi8}{} -\DeclareFontShape{OML}{llcmm}{bx}{it}{<-> lcmmib8}{} +\DeclareFontFamily{OML}{llcmss}{\skewchar\font'177} +\DeclareFontShape{OML}{llcmss}{m}{it}{<-> s * [\isomath@scaled] lcmmi8}{} +\DeclareFontShape{OML}{llcmss}{bx}{it}{<-> s * [\isomath@scaled] lcmmib8}{} -\DeclareFontFamily{OML}{llcmss}{} -\DeclareFontShape{OML}{llcmss}{m}{it}{<-> ssub * llcmm/m/it}{} -\DeclareFontShape{OML}{llcmss}{bx}{it}{<-> ssub * llcmm/bx/it}{} +% Ivona (see ``omliwona.fd``):: +\DeclareFontFamily{OML}{iwona}{} +\DeclareFontShape{OML}{iwona}{m}{it}{<-> s * [\isomath@scaled] mi-iwonari}{} +\DeclareFontShape{OML}{iwona}{bx}{it}{<-> s * [\isomath@scaled] mi-iwonabi}{} % No declarations below this point:: \endinput - -% 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 -% -% .. [checklist] `SI Unit rules and style conventions` -% Check List for Reviewing Manuscripts: -% http://physics.nist.gov/cuu/Units/checklist.html -% -% .. [fonts-for-symbols] `On the use of italic and roman fonts for symbols -% in scientific text`, (Revised December 1999): -% http://old.iupac.org/standing/idcns/fonts_for_symbols.html -% -% .. [SI-brochure] `The International System of Units (SI)`: -% http://www.bipm.org/en/si/si_brochure/ -% -% .. [encguide] `LaTeX font encodings`: -% http://dante.ctan.org/CTAN/macros/latex/doc/encguide.pdf -% -% .. [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 -% -% [Green-Book] `Quantities, Units and Symbols in Physical Chemistry`, -% 3rd edition, RSC Publishing, Cambridge 2007: -% [ISBN 0 85404 433 7; ISBN-13 978 0 85404 433 7] -% % .. Links % .. ***** % % .. _LaTeX Project Public License: http://www.latex-project.org/lppl.txt -% .. _BIPM: http://www.bipm.org/ -% .. _IUPAC: http://iupac.org/ -% .. _IUPAP: http://www.iupap.org/ -% .. _NIST: http://physics.nist.gov/ -% .. _mathematical alphanumeric symbols: -% http://www.unicode.org/charts/PDF/U1D400.pdf % .. _arev: http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html % .. _cmbright: http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html -% .. _eulervm: http://dante.ctan.org/CTAN/help/Catalogue/entries/eulervm.html % .. _fixmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html -% .. _fix-cm: http://dante.ctan.org/CTAN/help/Catalogue/entries/fix-cm.html -% .. _fourier: http://dante.ctan.org/CTAN/help/Catalogue/entries/fourier.html +% .. _fntguide: http://dante.ctan.org/CTAN/macros/latex/doc/fntguide.pdf % .. _hvmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/hvmath.html -% .. _ifthen: http://dante.ctan.org/CTAN/help/Catalogue/entries/ifthen.html % .. _iwona: http://dante.ctan.org/CTAN/help/Catalogue/entries/iwona.html -% .. _kpfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/kpfonts.html -% .. _kvoptions: http://dante.ctan.org/CTAN/help/Catalogue/entries/kvoptions.html % .. _keyval: http://dante.ctan.org/CTAN/help/Catalogue/entries/keyval.html +% .. _kvoptions: http://dante.ctan.org/CTAN/help/Catalogue/entries/kvoptions.html % .. _lxfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/lxfonts.html % .. _mathdesign: http://dante.ctan.org/CTAN/help/Catalogue/entries/mathdesign.html -% .. _mathpazo: http://dante.ctan.org/CTAN/help/Catalogue/entries/mathpazo.html +% .. _mathematical alphanumeric symbols: +% http://www.unicode.org/charts/PDF/U1D400.pdf % .. _oberdiek: http://dante.ctan.org/CTAN/help/Catalogue/entries/oberdiek.html -% .. _sfmath: http://dtrx.de/od/tex/sfmath.html -% .. _pxfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/pxfonts.html -% .. _tmmath: http://dante.ctan.org/CTAN/help/Catalogue/entries/tmmath.html -% .. _txfonts: http://dante.ctan.org/CTAN/help/Catalogue/entries/txfonts.html +% .. _`Typefaces for Symbols in Scientific Manuscripts`: +% http://physics.nist.gov/Document/typefaces.pdf -- cgit v1.2.3