diff options
author | Karl Berry <karl@freefriends.org> | 2008-09-28 00:46:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2008-09-28 00:46:28 +0000 |
commit | c68df5600f6190607d37be25c0a9508e58ebfef6 (patch) | |
tree | b78ef29f00e83dcdac631cbb390bad9e1c5fef0f /Master | |
parent | e1449e04bf8c0fd9d480fd30a437b89aa11b023d (diff) |
new latex package isomath (25sep08)
git-svn-id: svn://tug.org/texlive/trunk@10763 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/isomath/README | 78 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/isomath/isomath-test.pdf | bin | 0 -> 262731 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/isomath/isomath-test.tex | 119 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/isomath/isomath.sty.html | 1205 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/isomath/isomath.sty | 634 | ||||
-rwxr-xr-x | Master/tlpkg/bin/ctan2tds | 2 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/isomath.tlpsrc | 2 |
9 files changed, 2041 insertions, 2 deletions
diff --git a/Master/texmf-dist/doc/latex/isomath/README b/Master/texmf-dist/doc/latex/isomath/README new file mode 100644 index 00000000000..06c65512985 --- /dev/null +++ b/Master/texmf-dist/doc/latex/isomath/README @@ -0,0 +1,78 @@ +isomath.sty: Math layout for scientists +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Copyright © 2008 Günter Milde <milde@users.berlios.de> +Released under the terms of the GNU General Public License +(v. 2 or later) + +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. + + +Features +======== + +* Re-define Greek letters as \mathalpha, taking them from the "letters" + symbol fonts. + +* The macros \vectorsym, \matrixsym, and \tensorsym select an + ISO-conforming typeface. + +* For this, new math alphabets are defined: + + \mathbold: for *boldface italic* (vector and matrix symbols), + \mathsans: for *sans-serif italic* , + \mathboldsans: for *sans-serif bold italic* (tensor symbols). + + +Requirements +============ + +This package builds on and extends fixmath.sty by Walter Schmidt. +It also requires ifthen.sty and kvoptions.sty. + +The cmbright package is recommended for \mathsans and \mathboldsans +matching with Computer Modern and derivatives. + + +Installation +============ + +Copy isomath.sty to a suitable place in your TDS and make sure LaTeX can +find it. + +Optionally, copy the documentation to a place where texdoc can find it. + +Usage +===== + +* \usepackage{isomath} + + In many cases (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 the sans-serif math alphabets:: + + \usepackage[sfdefault=cmbr]{isomath} + +* Redefine the standard \vec macro to typeset its argument in `bold + italic`:: + + \usepackage[sfdefault=cmbr]{isomath} + \renewcommand{\vec}{\vectorsym} + +* The mathdesign package comes with an OML encoded bold roman font but does + not use it for \mathbf in the default setting. With :: + + \usepackage[charter]{mathdesign} + \usepackage[OMLmathbf,sfdefault=cmbr]{isomath} + + \mathbf{\pi} works as expected. + + +2008-09-25 diff --git a/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf b/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf Binary files differnew file mode 100644 index 00000000000..5cdbfc2f5d4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/isomath/isomath-test.pdf diff --git a/Master/texmf-dist/doc/latex/isomath/isomath-test.tex b/Master/texmf-dist/doc/latex/isomath/isomath-test.tex new file mode 100644 index 00000000000..a9b18932979 --- /dev/null +++ b/Master/texmf-dist/doc/latex/isomath/isomath-test.tex @@ -0,0 +1,119 @@ +%% LyX 1.5.5 created this file. For more info, see http://www.lyx.org/. +%% Do not edit unless you really know what you are doing. +\documentclass[a4paper,british]{scrartcl} +% \usepackage[T1]{fontenc} +% \usepackage[latin1]{inputenc} +\pagestyle{empty} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. + +% Load a font package: + +% \usepackage{ae} +% \usepackage{anttor} +% \usepackage{arev} % normal and sans identic +% \usepackage{beton} % bitmap fonts +% \usepackage{concmath} +% \usepackage{cmbright} % keeps \mathrm and \mathbf as CM (roman) +\usepackage{fourier} +% \usepackage[LGR,T1]{fontenc}\usepackage[default]{gfsneohellenic} % no bold +% \usepackage{hfoldsty} % bitmap fonts +% \usepackage{iwona} % uses cmss --- cmbr is bad match +% \usepackage{kpfonts} % too many math alphabets used in version normal +% \usepackage{kerkis} % no bold math, no sans serif (choose iwona or arev?) +% \usepackage{lmodern} +% \usepackage{lucidabr} % commercial, subset free as bitmap +% \usepackage{lxfonts} % normal and sans identic, no \mathbold +%% mathdesign: % cmbr too light (bold ok) +%% % too many math alphabets without keepMathAlphabets +% \usepackage[charter]{mathdesign} % bitmap? +% \usepackage[garamond]{mathdesign} % bitmap? +% \usepackage[utopia]{mathdesign} % bitmap? +% \usepackage{mbtimes} +% \usepackage{gfsneohellenic} +% \usepackage{mathpazo} % +% \usepackage{pxfonts} % too many math alphabets used in version normal +% \usepackage{tgpagella}\usepackage{qpxmath} % cmbr too light (bold ok) +% \usepackage{tgtermes}\usepackage{qtxmath} % cmbr too light (bold ok) +% \usepackage{txfonts} % too many math alphabets used in version normal +% \usepackage{zefonts} % CM based + + +% load the isomath package with (or without) options +% -------------------------------------------------- + +\newcommand{\options}{} +% \renewcommand{\options}{omlMathalphabets} +% \renewcommand{\options}{reuseMathalphabets} +% \renewcommand{\options}{sfdefault=iwona} % with Iwona sans +% \renewcommand{\options}{sfdefault=zavm} % with Arew sans (larger than normal) +% \renewcommand{\options}{sfdefault=llcmm} % with LX sans (doesn't work) + +\usepackage[\options]{isomath} + + +% re-define \vec to comply with ISO 31:: +\renewcommand{\vec}{\vectorsym} + +\usepackage{babel} + +\begin{document} + +\section{Test the isomath Package} + +\makeatletter +Default font families: + serif \texttt{\rmdefault}, + sans-serif \texttt{\sfdefault}, + isomath-serif \texttt{\isomath@rmdefault}, + isomath-sf \texttt{\isomath@sfdefault}. +\makeatother + +\subsection{Math alphabets} + +The math alphabets should work with greek letters too (thus access +to upright greek is possible for both, small and capital letters). +If there are ligatures (ff, fi, ...) instead of small Greek letters +in a math alphabet, it uses T1 or OT1 encoding instead of OML. \begin{eqnarray*} +\mbox{mathnormal} & & a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega\\ +\mbox{mathit} & & \mathit{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega}\\ +\mbox{mathrm} & & \mathrm{\mathrm{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega}}\\ +\mbox{mathbf} & & \mathbf{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega}\\ +\mbox{mathsf} & & \mathsf{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega}\\ +\mbox{mathtt} & & \mathtt{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega} +\end{eqnarray*} + New alphabets are defined for italic-bold, italic-sans, and italic-sans-bold. +\begin{eqnarray*} +\mbox{mathbold} & & \mathbold{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega}\\ +\mbox{mathsans} & & \mathsans{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega}\\ +\mbox{mathboldsans} & & \mathboldsans{a,g,v,w,z,A,B,\Gamma,\Delta,E,\Theta,\Lambda,\Xi,\Pi,\Sigma,\Upsilon,\Phi,\Psi,\Omega,\alpha,\beta,\nu,\omega} +\end{eqnarray*} + + +\subsection{Vector symbols} + +Symbols for vectors are boldface italic $\vec{\alpha}=\vec{e}_{1}\cdot\vec{a}$ + + +\subsection{Matrix symbols} + +Symbols for matrices are boldface italic, i. e. typeset in the same +face as vectors:% +\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}.$ + + +\subsection{Tensor symbols} + +Symbols for tensors are sans-serif bold italic, \begin{eqnarray*} +\tensorsym{\alpha} & = & \tensorsym{e}\cdot\tensorsym{a}.\\ +\alpha_{ijl} & = & e_{ijk}\cdot a_{kl}\end{eqnarray*} + + +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.sty.html b/Master/texmf-dist/doc/latex/isomath/isomath.sty.html new file mode 100644 index 00000000000..9dbe56f1413 --- /dev/null +++ b/Master/texmf-dist/doc/latex/isomath/isomath.sty.html @@ -0,0 +1,1205 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="generator" content="Docutils 0.6: http://docutils.sourceforge.net/" /> +<title>isomath.sty: Math for scientists</title> +<meta name="copyright" content="© 2008 Günter Milde, Released under the terms of the GNU General Public License (v. 2 or later)" /> +<style type="text/css"> + +/* +:Author: David Goodger (goodger@python.org) +:Id: $Id: html4css1.css 5631 2008-08-24 13:01:23Z goodger $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin: 0 0 0.5em 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left { + clear: left } + +img.align-right { + clear: right } + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font: inherit } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +ul.auto-toc { + list-style-type: none } + +</style> +</head> +<body> +<div class="document" id="isomath-sty-math-for-scientists"> +<h1 class="title">isomath.sty: Math for scientists</h1> +<table class="docinfo" frame="void" rules="none"> +<col class="docinfo-name" /> +<col class="docinfo-content" /> +<tbody valign="top"> +<tr><th class="docinfo-name">Copyright:</th> +<td>© 2008 Günter Milde, +Released under the terms of the GNU General Public License +(v. 2 or later)</td></tr> +</tbody> +</table> +<div class="abstract topic"> +<p class="topic-title first">Abstract</p> +<p>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.</p> +</div> +<div class="contents topic" id="contents"> +<p class="topic-title first">Contents</p> +<ul class="simple"> +<li><a class="reference internal" href="#introduction" id="id13">Introduction</a><ul> +<li><a class="reference internal" href="#motivation" id="id14">Motivation</a></li> +<li><a class="reference internal" href="#features" id="id15">Features</a></li> +<li><a class="reference internal" href="#examples" id="id16">Examples</a></li> +<li><a class="reference internal" href="#related-packages" id="id17">Related packages</a><ul> +<li><a class="reference internal" href="#conflicts" id="id18">Conflicts</a></li> +</ul> +</li> +<li><a class="reference internal" href="#oml-font-encoding" id="id19">OML font encoding</a></li> +<li><a class="reference internal" href="#conclusions-and-outlook" id="id20">Conclusions and outlook</a></li> +</ul> +</li> +<li><a class="reference internal" href="#implementation" id="id21">Implementation</a><ul> +<li><a class="reference internal" href="#identification" id="id22">Identification</a></li> +<li><a class="reference internal" href="#requirements" id="id23">Requirements</a><ul> +<li><a class="reference internal" href="#fixmath" id="id24">fixmath</a></li> +<li><a class="reference internal" href="#ifthen" id="id25">ifthen</a></li> +<li><a class="reference internal" href="#kvoptions" id="id26">kvoptions</a></li> +</ul> +</li> +<li><a class="reference internal" href="#options" id="id27">Options</a><ul> +<li><a class="reference internal" href="#rmdefault" id="id28">rmdefault</a></li> +<li><a class="reference internal" href="#sfdefault" id="id29">sfdefault</a></li> +<li><a class="reference internal" href="#reusemathalphabets" id="id30">reuseMathalphabets</a></li> +<li><a class="reference internal" href="#oml-math" id="id31">OML math*</a></li> +</ul> +</li> +<li><a class="reference internal" href="#declarations" id="id32">Declarations</a><ul> +<li><a class="reference internal" href="#new-math-alphabets" id="id33">New math alphabets</a></li> +<li><a class="reference internal" href="#redefine-standard-alphabets" id="id34">Redefine standard alphabets</a></li> +<li><a class="reference internal" href="#command-aliases" id="id35">Command aliases</a><ul> +<li><a class="reference internal" href="#vector-symbols" id="id36">Vector symbols</a></li> +<li><a class="reference internal" href="#matrix-symbols" id="id37">Matrix symbols</a></li> +<li><a class="reference internal" href="#tensor-symbols" id="id38">Tensor symbols</a></li> +</ul> +</li> +<li><a class="reference internal" href="#font-mappings" id="id39">Font mappings</a></li> +</ul> +</li> +<li><a class="reference internal" href="#the-end" id="id40">The end</a></li> +<li><a class="reference internal" href="#todo" id="id41">TODO</a></li> +<li><a class="reference internal" href="#about-this-file" id="id42">About this file</a></li> +<li><a class="reference internal" href="#references" id="id43">References</a></li> +</ul> +</li> +</ul> +</div> +<div class="section" id="introduction"> +<h1><a class="toc-backref" href="#id13">Introduction</a></h1> +<div class="section" id="motivation"> +<h2><a class="toc-backref" href="#id14">Motivation</a></h2> +<p>Scientific organisations like <a class="reference external" href="http://www.iupap.org/">IUPAP</a>, <a class="reference external" href="http://iupac.org/">IUPAC</a>, <a class="reference external" href="http://physics.nist.gov/">NIST</a>, <a class="reference external" href="http://www.bipm.org/">BIPM</a>, and others +recommend typesetting math according to International Standard ISO 31 +<a class="reference external" href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=46202">Quantities and units</a> (ISO 31-0:1992 to ISO 31-14:1992).<a class="footnote-reference" href="#id2" id="id1">[1]</a></p> +<table class="docutils footnote" frame="void" id="id2" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>A summary of these rules is free available <a class="citation-reference" href="#typefaces" id="id3">[typefaces]</a>. See also +<a class="citation-reference" href="#symbol-fonts" id="id4">[symbol-fonts]</a> and <a class="citation-reference" href="#si-brochure" id="id5">[SI-brochure]</a>.</td></tr> +</tbody> +</table> +<p>The traditional <cite>LaTeX-style</cite> deviates in some points from this rules:</p> +<ul class="simple"> +<li>The <tt class="docutils literal"><span class="pre">\vec</span></tt> command produces an array accent, while ISO 31 recommends +a <cite>bold italic</cite> typeface for vector symbols.</li> +<li>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.</li> +<li>There is no provision for typesetting of Greek letters in <cite>bold italic</cite> +style recommended for vectors (even though the required fonts are +available).</li> +<li>There is no provision for typesetting letters in <cite>sans-serif bold italic</cite> +recommended for typesetting tensor symbols.</li> +</ul> +<p>Some of these points are already adressed by <a class="reference internal" href="#related-packages">related packages</a>, however +there is currently no package (known to the author) that defines the +<em>sans-serif bold italic</em> math alphabet needed for tensor symbols.</p> +</div> +<div class="section" id="features"> +<h2><a class="toc-backref" href="#id15">Features</a></h2> +<p>The <tt class="docutils literal"><span class="pre">isomath.sty</span></tt> package facilitates the task to abide with ISO 31 when +typesetting math with LaTeX:</p> +<ul> +<li><p class="first">It utilises <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html">fixmath</a> to re-define Greek letters as <tt class="docutils literal"><span class="pre">\mathalpha</span></tt>, taking +them from the "letters" symbol fonts (as opposed to "operators" in +<tt class="docutils literal"><span class="pre">fontmath.ltx</span></tt>). This ensures that</p> +<ul class="simple"> +<li>Greek letters change shape together with Latin letters if a different +math alphabet is used.</li> +<li>Uppercase Greek letters are typeset in italic style by default.</li> +<li>Upright Greek letters are available through the <tt class="docutils literal"><span class="pre">\mathrm</span></tt> and +<tt class="docutils literal"><span class="pre">\mathbf</span></tt> alphabets, if the corresponding fonts are OML encoded.</li> +</ul> +</li> +<li><p class="first">The <a class="reference internal" href="#command-aliases">command aliases</a> <tt class="docutils literal"><span class="pre">\vectorsym</span></tt>, <tt class="docutils literal"><span class="pre">\matrixsym</span></tt>, and <tt class="docutils literal"><span class="pre">\tensorsym</span></tt> +select an ISO-conforming typeface.</p> +</li> +<li><p class="first">For this, <a class="reference internal" href="#new-math-alphabets">new math alphabets</a> are defined:</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name"><tt class="docutils literal"><span class="pre">\mathbold</span></tt>:</th><td class="field-body">for <em>boldface italic</em> (vector and matrix +symbols),</td> +</tr> +<tr class="field"><th class="field-name"><tt class="docutils literal"><span class="pre">\mathsans</span></tt>:</th><td class="field-body">for <em>sans-serif italic</em> ,</td> +</tr> +<tr class="field"><th class="field-name"><tt class="docutils literal"><span class="pre">\mathboldsans</span></tt>:</th><td class="field-body">for <em>sans-serif bold italic</em> (tensor symbols).</td> +</tr> +</tbody> +</table> +<p>The family for these fonts is by default taken from the document's +<tt class="docutils literal"><span class="pre">\rmdefault</span></tt> and <tt class="docutils literal"><span class="pre">\sfdefault</span></tt> values. The <tt class="docutils literal"><span class="pre">rmdefault=<family></span></tt> and +<tt class="docutils literal"><span class="pre">sfdefault=<family></span></tt> <a class="reference internal" href="#options">options</a> can be used to override the defaults.</p> +</li> +<li><p class="first"><a class="reference internal" href="#font-mappings">Font mappings</a> are defined for families which have an OML encoded +counterpart but miss the substitution definition.</p> +</li> +</ul> +<!-- Now, it should be possible to typeset, e.g., the symbol for the tensor of +dielectric permittivity ε according to the rules (i.e. sans-serif bold +italic). --> +<div class="caution"> +<p class="first admonition-title">Caution!</p> +<p>Using small Greek letters in a math alphabet command (e.g. +<tt class="docutils literal"><span class="pre">\mathrm{\pi}</span></tt>) can lead to garbage.</p> +<p class="last">You can use the <a class="reference internal" href="#oml-math">OML math*</a> options (if the used font supports the +<a class="reference internal" href="#oml-font-encoding">OML font encoding</a>) or place the Greek letter outside the math +alphabet command. Some packages (including <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html">fixmath</a>) provide <tt class="docutils literal"><span class="pre">\up*</span></tt> +or <tt class="docutils literal"><span class="pre">\var*</span></tt> macros for upright Greek letters, e.g. +<tt class="docutils literal"><span class="pre">\mathrm{k}\upOmega</span></tt>.</p> +</div> +</div> +<div class="section" id="examples"> +<h2><a class="toc-backref" href="#id16">Examples</a></h2> +<ul> +<li><p class="first"><tt class="docutils literal"><span class="pre">\usepackage{isomath}</span></tt></p> +<p>In many cases (when <tt class="docutils literal"><span class="pre">\sfdefault</span></tt> expands to "cmss"), the +<tt class="docutils literal"><span class="pre">\mathboldsans</span></tt> alphabet is neither bold nor sans, as "cmss" has no OML +encoded variants and maps to "cmmi".</p> +</li> +<li><p class="first">Use <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html">cmbright</a> for the sans-serif math alphabets:</p> +<pre class="literal-block"> +\usepackage[sfdefault=cmbr]{isomath} +</pre> +</li> +<li><p class="first">Redefine the standard <tt class="docutils literal"><span class="pre">\vec</span></tt> macro to typeset its argument in <cite>bold +italic</cite>:</p> +<pre class="literal-block"> +\usepackage[sfdefault=cmbr]{isomath} +\renewcommand{\vec}{\vectorsym} +</pre> +</li> +<li><p class="first">The <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/mathdesign.html">mathdesign</a> package comes with an OML encoded bold roman font but does +not use it for <tt class="docutils literal"><span class="pre">\mathbf</span></tt> in the default setting. With</p> +<pre class="literal-block"> +\usepackage[charter]{mathdesign} +\usepackage[OMLmathbf,sfdefault=cmbr]{isomath} +</pre> +<p><tt class="docutils literal"><span class="pre">\mathbf{\pi}</span></tt> works as expected.</p> +</li> +</ul> +</div> +<div class="section" id="related-packages"> +<h2><a class="toc-backref" href="#id17">Related packages</a></h2> +<p>Some packages already define Greek letters as <tt class="docutils literal"><span class="pre">\mathalpha</span></tt> and provide the +<tt class="docutils literal"><span class="pre">\mathbold</span></tt> alphabet (in OML):</p> +<ul class="simple"> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html">arev</a> (Arev/Vera Sans)</li> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html">cmbright</a> (CM Bright)</li> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/eulervm.html">eulervm</a> (Euler Math)</li> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html">fixmath</a> (Computer Modern)</li> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/hvmath.html">hvmath</a> (HV-Math/Helvetica)</li> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/mathpazo.html">mathpazo</a> (Palatino)</li> +<li><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/tmmath.html">tmmath</a> (TM-Math/Times)</li> +</ul> +<p>This package builds on and extends <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html">fixmath</a> by Walter Schmidt +(see <a class="reference internal" href="#requirements">Requirements</a>).</p> +<p>The <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html">cmbright</a> package provides fonts for <tt class="docutils literal"><span class="pre">\mathsans</span></tt> and +<tt class="docutils literal"><span class="pre">\mathboldsans</span></tt> matching with Computer Modern and derivatives.</p> +<div class="section" id="conflicts"> +<h3><a class="toc-backref" href="#id18">Conflicts</a></h3> +<p>The <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/fourier.html">fourier</a> package for math typesetting with Utopia defines its own, +incompatible math font encodings. It cannot be used with <tt class="docutils literal"><span class="pre">isomath</span></tt> but +provides other means to typeset upright or italic Greek (see its +documentation).</p> +<p>The <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/kpfonts.html">kpfonts</a>, <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/pxfonts.html">pxfonts</a>, and <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/txfonts.html">txfonts</a> packages define many additional +math alphabets and can only be combined with <tt class="docutils literal"><span class="pre">isomath</span></tt>, if the +<a class="reference internal" href="#reusemathalphabets">reuseMathalphabets</a> option is used.</p> +</div> +</div> +<div class="section" id="oml-font-encoding"> +<h2><a class="toc-backref" href="#id19">OML font encoding</a></h2> +<p>If a math alphabet shall support both, Greek and Latin letters, it must use +the OML font encoding — no other established encoding provides Latin and +Greek letters in one font:</p> +<ul class="simple"> +<li>LGR is Greek-only,</li> +<li>T7 is just a "reserved name" for a standard Greek encoding.</li> +</ul> +<p>The <cite>LaTeX font encodings</cite> guide <a class="citation-reference" href="#encguide" id="id6">[encguide]</a> defines:</p> +<blockquote> +The OML encoding contains italic Latin and Greek letters for use in +mathematical formulas (typically used for variables) together with some +symbols.</blockquote> +<p>and names it <cite>TeX math italic</cite>. However, the reference to <em>italic</em> seems to +be a description of the <em>state of the art</em> rather than a necessary +restriction:</p> +<ul class="simple"> +<li>The only OML encoded CM font is "Computer Modern Math Italic" (cmmi),</li> +<li>but generally, font encodings (T1, OT1) are not specific to the font shape.</li> +<li>Both, <tt class="docutils literal"><span class="pre">\DeclareSymbolFont</span></tt> and <tt class="docutils literal"><span class="pre">\DeclareMathAlphabet</span></tt> require a +{<shape>} argument. Thus it is possible to define OML encoded math +alphabets in roman {n} as well as italic {it} shape without conflicts.</li> +<li>A more suitable public name would be <cite>TeX math letters</cite> or <cite>Original/Old +Math Letters</cite>. The latter would also explain the acronym OML.</li> +</ul> +<p>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 <tt class="docutils literal"><span class="pre">oml*.fd</span></tt> files and by +grepping for "DeclareFont.*OML", "SymbolFont.*OML" and "MathAlphabet.*OML" +in <tt class="docutils literal"><span class="pre">*.sty</span></tt> files.</p> +<table border="1" class="booktab docutils"> +<caption>Table 1: Fonts supporting the OML font encoding</caption> +<colgroup> +<col width="19%" /> +<col width="40%" /> +<col width="10%" /> +<col width="12%" /> +<col width="9%" /> +<col width="10%" /> +</colgroup> +<thead valign="bottom"> +<tr><th class="head">Name</th> +<th class="head">Family</th> +<th class="head">{m}{it}</th> +<th class="head">{bx}{it}</th> +<th class="head">{m}{n}</th> +<th class="head">{bx}{n}</th> +</tr> +</thead> +<tbody valign="top"> +<tr><td>aer</td> +<td>AE (Almost European)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>antt</td> +<td>Antykwa Torunska</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>cmr</td> +<td>Computer Modern Roman</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>ccr</td> +<td>Concrete</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>cmbr</td> +<td>Computer Modern Bright</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>hlh</td> +<td>Lucida</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>hfor</td> +<td>CM with old-style digits</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>iwona</td> +<td>Iwona (sans serif)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>jkp</td> +<td>Kepler Serif</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>jkpl</td> +<td>Kepler Serif</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>jkpvos</td> +<td>Kepler Serif</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>jkplvos</td> +<td>Kepler Serif</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>llcmm</td> +<td>LXfonts (sans serif)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>lmr</td> +<td>Latin Modern Roman</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>mak</td> +<td>Kerkis</td> +<td>x</td> +<td> </td> +<td> </td> +<td> </td> +</tr> +<tr><td>mdbch</td> +<td>Math Design Charter</td> +<td>x</td> +<td>x</td> +<td>?</td> +<td>x</td> +</tr> +<tr><td>mdput</td> +<td>Math Design Utopia</td> +<td>x</td> +<td>x</td> +<td>?</td> +<td>x</td> +</tr> +<tr><td>mdugm</td> +<td>Math Design Garamond</td> +<td>x</td> +<td>x</td> +<td>?</td> +<td>x</td> +</tr> +<tr><td>neohellenic</td> +<td>GFS Neohellenic</td> +<td>x</td> +<td> </td> +<td> </td> +<td> </td> +</tr> +<tr><td>plcm</td> +<td>CM (PLaTeX)</td> +<td>x</td> +<td> </td> +<td> </td> +<td> </td> +</tr> +<tr><td>ptmom</td> +<td>Times (Omega or MB-Times)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>ptmomu</td> +<td>Times (Omega or MB-Times)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>ptmcm</td> +<td>Times (psfont)</td> +<td>x</td> +<td> </td> +<td> </td> +<td> </td> +</tr> +<tr><td>pxr</td> +<td>Palatino (pxfonts)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>qpl</td> +<td>Palatino/Pagella (qpxmath)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>qtm</td> +<td>Times/Termes (qtxmath)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>txr</td> +<td>Times (txfonts)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>ywclm</td> +<td>(greektex)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>zavm</td> +<td>Arev (Vera Sans-Serif)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>zesfcm</td> +<td>(efont)</td> +<td>x</td> +<td> </td> +<td> </td> +<td> </td> +</tr> +<tr><td>zplm</td> +<td>Palatino (mathpazo)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>zpple</td> +<td> </td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +<tr><td>ztmcm</td> +<td>Times (mathptmx)</td> +<td>x</td> +<td> </td> +<td> </td> +<td> </td> +</tr> +<tr><td>zer</td> +<td>Computer Modern (zefonts)</td> +<td>x</td> +<td>x</td> +<td> </td> +<td> </td> +</tr> +</tbody> +</table> +<p>Explanations:</p> +<ul class="simple"> +<li>If there is an alias (substitution) from the text font to a math-variant, +only the text font is listed.</li> +<li>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.</li> +</ul> +<p>The following fonts define <tt class="docutils literal"><span class="pre">cmm</span></tt> as OML substitution. A better matching +substitution can be set with the <a class="reference internal" href="#rmdefault">rmdefault</a> option.</p> +<table border="1" class="booktab docutils" id="table-2"> +<caption>Table 2: Non-CM fonts with <tt class="docutils literal"><span class="pre">cmm</span></tt> as OML substitution</caption> +<colgroup> +<col width="30%" /> +<col width="70%" /> +</colgroup> +<thead valign="bottom"> +<tr><th class="head">Family</th> +<th class="head">Name</th> +</tr> +</thead> +<tbody valign="top"> +<tr><td>bch</td> +<td>Charter (psnfss)</td> +</tr> +<tr><td>pag</td> +<td>Avant Garde (psnfss)</td> +</tr> +<tr><td>pbk</td> +<td>Bookman (psnfss)</td> +</tr> +<tr><td>pcr</td> +<td>Courier (psnfss)</td> +</tr> +<tr><td>phv</td> +<td>Helvetica (psnfss)</td> +</tr> +<tr><td>pnc</td> +<td>New Century Schoolbook (psnfss)</td> +</tr> +<tr><td>ppl</td> +<td>Palatino (psnfss)</td> +</tr> +<tr><td>ptm</td> +<td>Times Roman (psnfss)</td> +</tr> +<tr><td>put</td> +<td>Utopia (psnfss)</td> +</tr> +<tr><td>pzc</td> +<td>Zapf Chancery (psnfss)</td> +</tr> +<tr><td>uag</td> +<td>Avant Garde (avantgar)</td> +</tr> +<tr><td>ubk</td> +<td>Bookman (bookman)</td> +</tr> +<tr><td>ucr</td> +<td>Courier (courier)</td> +</tr> +<tr><td>ucrs</td> +<td>Courier</td> +</tr> +<tr><td>unc</td> +<td>New Courier (nctrsbk)</td> +</tr> +<tr><td>uni</td> +<td>Universal (universa)</td> +</tr> +<tr><td>uhv</td> +<td>Helvetica (helvetic)</td> +</tr> +<tr><td>upl</td> +<td>Palatino (palatino)</td> +</tr> +<tr><td>utm</td> +<td>Times (times)</td> +</tr> +<tr><td>uzc</td> +<td>Zapf Chancery (zapfchan)</td> +</tr> +</tbody> +</table> +</div> +<div class="section" id="conclusions-and-outlook"> +<h2><a class="toc-backref" href="#id20">Conclusions and outlook</a></h2> +<p>It is hoped, that in the future more fonts families will support the OML +encoding in normal and bold weight as well as upright and italic shape. +This would be a major step towards the full support of the <a class="reference external" href="http://www.unicode.org/charts/PDF/U1D400.pdf">Mathematical +Alphanumeric Symbols</a> Unicode block.</p> +<p>This is (relatively) easy to achieve via virtual fonts when the glyphs for +the Greek letters already exist (this is the case for many fonts where the +primary version is Unicode encoded). Examples are Latin Modern, Kerkis, +GFS-Neohellenic, LX-Fonts and KP-Serif.</p> +<p>Alternatively, T7 could be used for math alphabets (if it ever happens to +materialise).</p> +<p>Upright small Greek letters in <tt class="docutils literal"><span class="pre">\mathrm</span></tt> would enable the specification of +Myons, Pions, alpha-particles, photons, and neutrinos without special +packages. (With <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/mathdesign.html">mathdesign</a>, this is already possible today.)</p> +</div> +</div> +<div class="section" id="implementation"> +<h1><a class="toc-backref" href="#id21">Implementation</a></h1> +<div class="section" id="identification"> +<h2><a class="toc-backref" href="#id22">Identification</a></h2> +<pre class="literal-block"> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{isomath} +[2008/06/23 v0.1 typeset math according to International Standard ISO 31] +</pre> +</div> +<div class="section" id="requirements"> +<h2><a class="toc-backref" href="#id23">Requirements</a></h2> +<div class="section" id="fixmath"> +<h3><a class="toc-backref" href="#id24">fixmath</a></h3> +<p><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/fixmath.html">fixmath</a> by Walter Schmidt defines Greek letters as symbols of type +<tt class="docutils literal"><span class="pre">\mathalpha</span></tt> and takes them from the "letters" SymbolFont in +<tt class="docutils literal"><span class="pre">\mathnormal</span></tt>. (It also defines the <tt class="docutils literal"><span class="pre">\mathbold</span></tt> alphabet, setting it to +<tt class="docutils literal"><span class="pre">cmm</span></tt>. This definition will be overwritten with a configurable value for +the font family below.)</p> +<pre class="literal-block"> +\RequirePackage{fixmath} +</pre> +</div> +<div class="section" id="ifthen"> +<h3><a class="toc-backref" href="#id25">ifthen</a></h3> +<p>The standard LaTeX package <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/ifthen.html">ifthen</a> provides the commands <tt class="docutils literal"><span class="pre">\ifthenelse</span></tt>, +and <tt class="docutils literal"><span class="pre">\whiledo</span></tt>.</p> +<pre class="literal-block"> +\RequirePackage{ifthen} +</pre> +</div> +<div class="section" id="kvoptions"> +<h3><a class="toc-backref" href="#id26">kvoptions</a></h3> +<p>The <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/kvoptions.html">kvoptions</a> package in the <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/oberdiek.html">oberdiek</a> bundle facilitates the setup of +package options and provides a key=value interface (based on <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/keyval.html">keyval</a>):</p> +<pre class="literal-block"> +\RequirePackage{kvoptions} +</pre> +</div> +</div> +<div class="section" id="options"> +<h2><a class="toc-backref" href="#id27">Options</a></h2> +<div class="section" id="rmdefault"> +<h3><a class="toc-backref" href="#id28">rmdefault</a></h3> +<p>Alternative math font family name for roman. The default is to use the +corresponding text font family (<tt class="docutils literal"><span class="pre">\rmdefault</span></tt>) in OMS encoding. +<a class="reference internal" href="#table-2">Table 2</a> lists some fonts where a different setting is advised.</p> +<pre class="literal-block"> +\DeclareStringOption[\rmdefault]{rmdefault} +</pre> +</div> +<div class="section" id="sfdefault"> +<h3><a class="toc-backref" href="#id29">sfdefault</a></h3> +<p>Alternative math font family name for sans-serif. The default is to use the +corresponding text font family (<tt class="docutils literal"><span class="pre">\sfdefault</span></tt>) in OMS encoding.</p> +<p>Computer Modern Sans Serif (cmss) has no italic and bold variants in OMS +encoding. Nor have many derivatives (lmss, aess, ...). +Actually, there are only a few OML-encoded sans-serif fonts (all +slanted/italic):</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field"><th class="field-name">zavm:</th><td class="field-body"><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html">arev</a> (Vera Sans with math extension)</td> +</tr> +<tr class="field"><th class="field-name">cmbr:</th><td class="field-body"><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/cmbright.html">cmbright</a> (Computer Modern Bright, slightly lighter than cmss)</td> +</tr> +<tr class="field"><th class="field-name">iwona:</th><td class="field-body"><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/iwona.html">iwona</a> (Humanistic Sans Serif)</td> +</tr> +<tr class="field"><th class="field-name">hvm:</th><td class="field-body"><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/hvmath.html">hvmath</a> (Helvetica Math, commercial, free bitmap version)</td> +</tr> +<tr class="field"><th class="field-name">llcmm:</th><td class="field-body"><a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/lxfonts.html">lxfonts</a> (LX Fonts, very wide and quite eccentric, new in 2008)</td> +</tr> +</tbody> +</table> +<p>For many fonts (especially CM and related), <tt class="docutils literal"><span class="pre">[sfdefault=cmbr]</span></tt> is the +recommended setting.</p> +<pre class="literal-block"> +\DeclareStringOption[\sfdefault]{sfdefault} +</pre> +</div> +<div class="section" id="reusemathalphabets"> +<h3><a class="toc-backref" href="#id30">reuseMathalphabets</a></h3> +<p>The definition of <a class="reference internal" href="#new-math-alphabets">new math alphabets</a> can lead to a "too many math +alphabets used in version normal" error.</p> +<p>As a workaround, this option tells <tt class="docutils literal"><span class="pre">isomath</span></tt> to re-use the existing +<tt class="docutils literal"><span class="pre">\mathbf</span></tt> and <tt class="docutils literal"><span class="pre">\mathsf</span></tt> alphabets for italic bold and sans-serif.</p> +<p>To access the upright shapes, the corresponding <tt class="docutils literal"><span class="pre">\textbf</span></tt> and <tt class="docutils literal"><span class="pre">\textsf</span></tt> +command can be used (remember that this toggles the math-mode off and might +use a different font).</p> +<p>Both standard and <a class="reference internal" href="#new-math-alphabets">new math alphabets</a> are in upright shape, if this option +is combined with the corresponding <a class="reference internal" href="#oml-math">OML math*</a> option.</p> +<pre class="literal-block"> +\DeclareBoolOption{reuseMathalphabets} +</pre> +</div> +<div class="section" id="oml-math"> +<h3><a class="toc-backref" href="#id31">OML math*</a></h3> +<p>These options cause isomath to <a class="reference internal" href="#redefine-standard-alphabets">redefine standard alphabets</a> in OML +encoding.</p> +<p>With Greek letters defined as <tt class="docutils literal"><span class="pre">\mathalpha</span></tt>, the math alphabets are +expected to be in <a class="reference internal" href="#oml-font-encoding">OML font encoding</a>. OT1 encoded fonts have ligatures and +non-alpha symbols in place of the small Greek letters.</p> +<p>Setting these options enables access to small Greek letters in different +shapes with e.g. <tt class="docutils literal"><span class="pre">\mathrm{\pi}</span></tt>. +Currently, support for the <a class="reference internal" href="#oml-font-encoding">OML font encoding</a> is rather limited:</p> +<ul class="simple"> +<li>only the <a class="reference external" href="http://dante.ctan.org/CTAN/help/Catalogue/entries/mathdesign.html">mathdesign</a> fonts support <em>bold roman</em> in OML encoding, while</li> +<li>many font packages define an italic font as OML replacement for a roman +font.</li> +</ul> +<p>With some packages, these options can result in a "too many math alphabets +used in version normal" error.</p> +<pre class="literal-block"> +\DeclareBoolOption{OMLmathrm} +\DeclareBoolOption{OMLmathbf} +\DeclareBoolOption{OMLmathsf} +\DeclareBoolOption{OMLmathtt} +</pre> +<hr class="docutils" /> +<p>Process the options with <tt class="docutils literal"><span class="pre">kvoptions</span></tt> extensions:</p> +<pre class="literal-block"> +\ProcessKeyvalOptions* +</pre> +</div> +</div> +<div class="section" id="declarations"> +<h2><a class="toc-backref" href="#id32">Declarations</a></h2> +<div class="section" id="new-math-alphabets"> +<h3><a class="toc-backref" href="#id33">New math alphabets</a></h3> +<p>The <cite>italic bold</cite> math alphabet is named <tt class="docutils literal"><span class="pre">\mathbold</span></tt> in <a class="reference internal" href="#related-packages">related +packages</a>. For letters, this is the same as the bold version of +<tt class="docutils literal"><span class="pre">\mathnormal</span></tt>. With the <a class="reference internal" href="#reusemathalphabets">reuseMathalphabets</a> option, <tt class="docutils literal"><span class="pre">\mathfb</span></tt> is +redefined and <tt class="docutils literal"><span class="pre">\mathbold</span></tt> made an alias (overwriting existing +definitions).</p> +<pre class="literal-block"> +\ifthenelse{\boolean{isomath@reuseMathalphabets}} +{ + \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it} + \def\mathbold{\mathbf} +} +{ + \DeclareMathAlphabet{\mathbold}{OML}{\isomath@rmdefault}{bx}{it} +} +</pre> +<p>For <cite>italic sans-serif</cite>, we either redefine <tt class="docutils literal"><span class="pre">\mathsf</span></tt> (with +<a class="reference internal" href="#reusemathalphabets">reuseMathalphabets</a>) or, in analogy to <tt class="docutils literal"><span class="pre">\mathbold</span></tt>, we define the new +alphabet <tt class="docutils literal"><span class="pre">\mathsans</span></tt>:</p> +<pre class="literal-block"> +\ifthenelse{\boolean{isomath@reuseMathalphabets}} +{ + \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{m}{it} + \def\mathsans{\mathsf} +} +{ + \DeclareMathAlphabet{\mathsans}{OML}{\isomath@sfdefault}{m}{it} +} +</pre> +<p>A <cite>sans serif slanted bold</cite> alphabet is needed for the tensor +symbols. As there is no standard math alphabet to re-use, we define the new +alphabet <tt class="docutils literal"><span class="pre">\mathboldsans</span></tt>:</p> +<pre class="literal-block"> +\DeclareMathAlphabet{\mathboldsans}{OML}{\isomath@sfdefault}{bx}{it} +</pre> +</div> +<div class="section" id="redefine-standard-alphabets"> +<h3><a class="toc-backref" href="#id34">Redefine standard alphabets</a></h3> +<p>Redefine standard alphabets in <a class="reference internal" href="#oml-font-encoding">OML font encoding</a> +(if the corresponding <a class="reference internal" href="#oml-math">OML math*</a> option is true).</p> +<pre class="literal-block"> +\ifthenelse{\boolean{isomath@OMLmathrm}} +{\SetMathAlphabet{\mathrm}{normal}{OML}{\isomath@rmdefault}{n}{n}}{} +\ifthenelse{\boolean{isomath@OMLmathbf}} +{\SetMathAlphabet{\mathbf}{normal}{OML}{\isomath@rmdefault}{b}{n}}{} +\ifthenelse{\boolean{isomath@OMLmathbf}} +{\SetMathAlphabet{\mathsf}{normal}{OML}{\isomath@sfdefault}{n}{n}}{} +\ifthenelse{\boolean{isomath@OMLmathtt}} +{\SetMathAlphabet{\mathtt}{normal}{OML}{\ttdefault}{n}{n}}{} +</pre> +</div> +<div class="section" id="command-aliases"> +<h3><a class="toc-backref" href="#id35">Command aliases</a></h3> +<p>Define commands to typeset some symbol categories complying to +the ISO standard.</p> +<div class="section" id="vector-symbols"> +<h4><a class="toc-backref" href="#id36">Vector symbols</a></h4> +<p>Symbols for vectors are <em>boldface italic</em>:</p> +<pre class="literal-block"> +\newcommand{\vectorsym}{\mathbold} +</pre> +<p>For easier writing or to make existing documents conform to the standard, +you might want to re-define the standard <tt class="docutils literal"><span class="pre">\vec</span></tt> command after loading this +package (cf. the <a class="reference internal" href="#examples">Examples</a> section).</p> +</div> +<div class="section" id="matrix-symbols"> +<h4><a class="toc-backref" href="#id37">Matrix symbols</a></h4> +<p>Symbols for matrices are <em>boldface italic</em>, i. e. typeset in the same face as +vectors (see <a class="citation-reference" href="#typefaces" id="id7">[typefaces]</a>). <a class="footnote-reference" href="#id9" id="id8">[2]</a></p> +<pre class="literal-block"> +\newcommand{\matrixsym}{\mathbold} +</pre> +<table class="docutils footnote" frame="void" id="id9" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id8">[2]</a></td><td>However, matrix symbols are usually capital letters whereas vectors +are small ones. Exceptions are physical Quantities like the force +vector F or the electrical field E.</td></tr> +</tbody> +</table> +</div> +<div class="section" id="tensor-symbols"> +<h4><a class="toc-backref" href="#id38">Tensor symbols</a></h4> +<p>Symbols for tensors are <em>sans-serif bold italic</em>:</p> +<pre class="literal-block"> +\newcommand{\tensorsym}{\mathboldsans} +</pre> +</div> +</div> +<div class="section" id="font-mappings"> +<h3><a class="toc-backref" href="#id39">Font mappings</a></h3> +<p>Some font packages provide a matching math font but do not define a +substitution in their <tt class="docutils literal"><span class="pre">*.fd</span></tt> files.</p> +<p>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 file(s):</p> +<p>Mathpazo (Palatino) ppl -> zplm</p> +<pre class="literal-block"> +\DeclareFontFamily{OML}{ppl}{\skewchar\font127} +\DeclareFontShape{OML}{ppl}{m}{it}{<-> ssub * zplm/m/it}{} +\DeclareFontShape{OML}{ppl}{bx}{it}{<-> ssub * zplm/b/it}{} +</pre> +<p>Arev (arev): fav -> zavm</p> +<pre class="literal-block"> +\DeclareFontFamily{OML}{fav}{} +\DeclareFontShape{OML}{fav}{m}{it}{<->ssub * zavm/m/it}{} +\DeclareFontShape{OML}{fav}{bx}{it}{<->ssub * zavm/b/it}{} +</pre> +<p>LX Fonts (lxfonts): llcmss -> llcmm</p> +<pre class="literal-block"> +\DeclareFontFamily{OML}{llcmss}{} +\DeclareFontShape{OML}{llcmss}{m}{it}{<-> ssub * llcmm/m/it}{} +\DeclareFontShape{OML}{llcmss}{bx}{it}{<-> ssub * llcmm/bx/it}{} +</pre> +</div> +</div> +<div class="section" id="the-end"> +<h2><a class="toc-backref" href="#id40">The end</a></h2> +<pre class="literal-block"> +\endinput +</pre> +</div> +<div class="section" id="todo"> +<h2><a class="toc-backref" href="#id41">TODO</a></h2> +<p>The <tt class="docutils literal"><span class="pre">\mathsans</span></tt> definition "increases symmetry". However, it adds a math +alphabet that is rarely (or not at all) used. Giving the limit of 16 math +alphabets, it might be better not to define it. Make it an option?</p> +</div> +<div class="section" id="about-this-file"> +<h2><a class="toc-backref" href="#id42">About this file</a></h2> +<p>The package documentation is included in the source file.</p> +<p>The bidirectional text <-> code converter <a class="reference external" href="http://pylit.berlios.de">PyLit</a> can be used to transform +the LaTeX package <tt class="docutils literal"><span class="pre">isomath.sty</span></tt> to a <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructured Text</a> document +<tt class="docutils literal"><span class="pre">isomath.sty.txt</span></tt> (and back again). To translate <tt class="docutils literal"><span class="pre">isomath.sty.txt</span></tt> to +LaTeX or HTML, the Python <a class="reference external" href="http://docutils.sourceforge.net/rst.html">docutils</a> are required.</p> +</div> +<div class="section" id="references"> +<h2><a class="toc-backref" href="#id43">References</a></h2> +<table class="docutils citation" frame="void" id="encguide" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id6">[encguide]</a></td><td><cite>LaTeX font encodings</cite>: +<a class="reference external" href="http://dante.ctan.org/CTAN/macros/latex/doc/encguide.pdf">http://dante.ctan.org/CTAN/macros/latex/doc/encguide.pdf</a></td></tr> +</tbody> +</table> +<table class="docutils citation" frame="void" id="symbol-fonts" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id4">[symbol-fonts]</a></td><td><cite>On the use of italic and roman fonts for symbols in +scientific text</cite>, I.M. Mills and W.V. Metanomski (Revised December 1999): +<a class="reference external" href="http://old.iupac.org/standing/idcns/fonts_for_symbols.html">http://old.iupac.org/standing/idcns/fonts_for_symbols.html</a></td></tr> +</tbody> +</table> +<table class="docutils citation" frame="void" id="green-book" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[Green-Book]</td><td><cite>Quantities, Units and Symbols in Physical Chemistry</cite>, +3rd edition, RSC Publishing, Cambridge 2007: +[ISBN 0 85404 433 7; ISBN-13 978 0 85404 433 7]</td></tr> +</tbody> +</table> +<table class="docutils citation" frame="void" id="typefaces" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label">[typefaces]</td><td><em>(<a class="fn-backref" href="#id3">1</a>, <a class="fn-backref" href="#id7">2</a>)</em> <cite>Typefaces for Symbols in Scientific Manuscripts</cite>: +<a class="reference external" href="http://physics.nist.gov/Document/typefaces.pdf">http://physics.nist.gov/Document/typefaces.pdf</a></td></tr> +</tbody> +</table> +<table class="docutils citation" frame="void" id="si-brochure" rules="none"> +<colgroup><col class="label" /><col /></colgroup> +<tbody valign="top"> +<tr><td class="label"><a class="fn-backref" href="#id5">[SI-brochure]</a></td><td><cite>The International System of Units (SI)</cite>: +<a class="reference external" href="http://www.bipm.org/en/si/si_brochure/">http://www.bipm.org/en/si/si_brochure/</a></td></tr> +</tbody> +</table> +<!-- see also +[koma-mail] Custom font substitution: http://www.komascript.de/node/823 --> +<!-- Links --> +<!-- ***** --> +</div> +</div> +</div> +</body> +</html> diff --git a/Master/texmf-dist/tex/latex/isomath/isomath.sty b/Master/texmf-dist/tex/latex/isomath/isomath.sty new file mode 100644 index 00000000000..d2496183dda --- /dev/null +++ b/Master/texmf-dist/tex/latex/isomath/isomath.sty @@ -0,0 +1,634 @@ +% isomath.sty: Math for scientists +% ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +% +% :Copyright: © 2008 Günter Milde, +% Released under the terms of the GNU General Public License +% (v. 2 or later) +% +% :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:: +% +% Introduction +% ************ +% +% Motivation +% ========== +% +% Scientific organisations like IUPAP_, IUPAC_, NIST_, BIPM_, and others +% recommend typesetting math according to International Standard ISO 31 +% `Quantities and units`_ (ISO 31-0:1992 to ISO 31-14:1992).\ [#]_ +% +% .. [#] A summary of these rules is free available [typefaces]_. See also +% [symbol-fonts]_ and [SI-brochure]_. +% +% The traditional `LaTeX-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 (even though the required fonts are +% available). +% +% * There is no provision for typesetting letters in `sans-serif bold italic` +% recommended for typesetting tensor symbols. +% +% Some of these points are already 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 +% ======== +% +% The ``isomath.sty`` package facilitates the task to abide with ISO 31 when +% typesetting math with LaTeX: +% +% * It utilises fixmath_ to re-define Greek letters as ``\mathalpha``, taking +% them from the "letters" symbol fonts (as opposed to "operators" in +% ``fontmath.ltx``). This ensures that +% +% + Greek letters change shape together with Latin letters if a different +% math alphabet is used. +% +% + Uppercase Greek letters are typeset in italic style by default. +% +% + Upright Greek letters are available through the ``\mathrm`` and +% ``\mathbf`` alphabets, if the corresponding fonts are OML encoded. +% +% * The `command aliases`_ ``\vectorsym``, ``\matrixsym``, and ``\tensorsym`` +% select an ISO-conforming typeface. +% +% * For this, `new math alphabets`_ are defined: +% +% :``\mathbold``: for *boldface italic* (vector and matrix +% symbols), +% +% :``\mathsans``: for *sans-serif italic* , +% +% :``\mathboldsans``: for *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. +% +% * `Font mappings`_ are defined for families which have an OML encoded +% counterpart but miss the substitution definition. +% +% .. Now, it should be possible to typeset, e.g., the symbol for the tensor of +% dielectric permittivity ε according to the rules (i.e. sans-serif bold +% italic). +% +% .. caution:: Using small Greek letters in a math alphabet command (e.g. +% ``\mathrm{\pi}``) can lead to garbage. +% +% You can use the `OML math*`_ options (if the used font supports the +% `OML font encoding`_) or place the Greek letter outside the math +% alphabet command. Some packages (including fixmath_) provide ``\up*`` +% or ``\var*`` macros for upright Greek letters, e.g. +% ``\mathrm{k}\upOmega``. +% +% +% Examples +% ======== +% +% * ``\usepackage{isomath}`` +% +% In many cases (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 the sans-serif math alphabets:: + +\usepackage[sfdefault=cmbr]{isomath} + +% * Redefine the standard ``\vec`` macro to typeset its argument in `bold +% italic`:: + +% \usepackage[sfdefault=cmbr]{isomath} +% \renewcommand{\vec}{\vectorsym} +% +% * The mathdesign_ package comes with an OML encoded bold roman font but does +% not use it for ``\mathbf`` in the default setting. With :: + +% \usepackage[charter]{mathdesign} +% \usepackage[OMLmathbf,sfdefault=cmbr]{isomath} +% +% ``\mathbf{\pi}`` works as expected. +% +% Related packages +% ================ +% +% Some packages already define 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 builds on and extends fixmath_ by Walter Schmidt +% (see Requirements_). +% +% The cmbright_ package provides fonts for ``\mathsans`` and +% ``\mathboldsans`` matching 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 and can only be combined with ``isomath``, if the +% reuseMathalphabets_ option is used. +% +% OML font encoding +% ================= +% +% If a math alphabet shall support both, Greek and Latin letters, it must use +% the OML font encoding — no other established encoding provides Latin and +% Greek letters in one font: +% +% * LGR is Greek-only, +% * T7 is just a "reserved name" for a standard Greek encoding. +% +% The `LaTeX font encodings` guide [encguide]_ defines: +% +% The OML encoding contains italic Latin and Greek letters for use in +% mathematical formulas (typically used for variables) together with some +% symbols. +% +% and names it `TeX math italic`. However, the reference to *italic* seems to +% be a description of the *state of the art* rather than a necessary +% restriction: +% +% * The only OML encoded CM font is "Computer Modern Math Italic" (cmmi), +% +% * but generally, font encodings (T1, OT1) are not specific to the font shape. +% +% * Both, ``\DeclareSymbolFont`` and ``\DeclareMathAlphabet`` require a +% {<shape>} argument. Thus it is possible to define OML encoded math +% alphabets in roman {n} as well as italic {it} shape without conflicts. +% +% * A more suitable public name would be `TeX math letters` or `Original/Old +% Math Letters`. The latter would also explain the acronym OML. +% +% 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:: Table 1: 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 +% mdput Math Design Utopia x x ? x +% mdugm Math Design Garamond 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_ option. +% +% .. _table 2: +% +% .. table:: Table 2: 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 the full support of the `Mathematical +% Alphanumeric Symbols`_ Unicode block. +% +% This is (relatively) easy to achieve via virtual fonts when the glyphs for +% the Greek letters already exist (this is the case for many fonts where the +% primary version is Unicode encoded). Examples are Latin Modern, Kerkis, +% GFS-Neohellenic, LX-Fonts and KP-Serif. +% +% Alternatively, T7 could be used for math alphabets (if it ever happens to +% materialise). +% +% Upright small Greek letters in ``\mathrm`` would enable the specification of +% Myons, Pions, alpha-particles, photons, and neutrinos without special +% packages. (With mathdesign_, this is already possible today.) +% +% Implementation +% ************** +% +% Identification +% ============== +% :: + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{isomath} +[2008/06/23 v0.1 typeset math according to International Standard ISO 31] + +% Requirements +% ============ +% +% fixmath +% ------- +% +% fixmath_ by Walter Schmidt defines Greek letters as symbols of type +% ``\mathalpha`` and takes them from the "letters" SymbolFont in +% ``\mathnormal``. (It also defines the ``\mathbold`` alphabet, setting it to +% ``cmm``. This definition will be overwritten with a configurable value for +% the font family below.) +% :: + +\RequirePackage{fixmath} + +% ifthen +% ------ +% +% The standard LaTeX package `ifthen`_ provides the commands ``\ifthenelse``, +% and ``\whiledo``. :: + +\RequirePackage{ifthen} + +% kvoptions +% --------- +% +% 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 math font family name for roman. The default is to use the +% corresponding text font family (``\rmdefault``) in OMS encoding. +% `Table 2`_ lists some fonts where a different setting is advised. +% :: + +\DeclareStringOption[\rmdefault]{rmdefault} + +% sfdefault +% --------- +% +% Alternative math font family name for sans-serif. The default is to use the +% corresponding text font family (``\sfdefault``) in OMS encoding. +% +% Computer Modern Sans Serif (cmss) has no italic and bold variants in OMS +% encoding. 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) +% :cmbr: cmbright_ (Computer Modern Bright, slightly lighter than cmss) +% :iwona: iwona_ (Humanistic Sans Serif) +% :hvm: hvmath_ (Helvetica Math, commercial, free bitmap version) +% :llcmm: lxfonts_ (LX Fonts, very wide and quite eccentric, new in 2008) +% +% For many fonts (especially CM and related), ``[sfdefault=cmbr]`` is the +% recommended setting. +% +% :: + +\DeclareStringOption[\sfdefault]{sfdefault} + + +% 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. +% +% To access the upright shapes, the corresponding ``\textbf`` and ``\textsf`` +% command can be used (remember that this toggles the math-mode off and might +% use a different font). +% +% Both standard and `new math alphabets`_ are in upright shape, if this option +% is combined with the corresponding `OML math*`_ option. +% :: + +\DeclareBoolOption{reuseMathalphabets} + +% OML math* +% --------- +% +% These options cause isomath to `redefine standard alphabets`_ in OML +% encoding. +% +% With Greek letters defined as ``\mathalpha``, the math alphabets are +% expected to be in `OML font encoding`_. OT1 encoded fonts have ligatures and +% non-alpha symbols in place of the small Greek letters. +% +% Setting these options enables access to small Greek letters in different +% shapes with e.g. ``\mathrm{\pi}``. +% Currently, support for the `OML font encoding`_ is rather limited: +% +% * only the mathdesign_ fonts support *bold 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. +% :: + +\DeclareBoolOption{OMLmathrm} +\DeclareBoolOption{OMLmathbf} +\DeclareBoolOption{OMLmathsf} +\DeclareBoolOption{OMLmathtt} + + +% ============ +% +% Process the options with ``kvoptions`` extensions:: + +\ProcessKeyvalOptions* + +% Declarations +% ============ +% +% New math alphabets +% ------------------ +% +% The `italic bold` math alphabet is named ``\mathbold`` in `related +% packages`_. For letters, this is the same as the bold version of +% ``\mathnormal``. With the reuseMathalphabets_ option, ``\mathfb`` is +% redefined and ``\mathbold`` made an alias (overwriting existing +% definitions). :: + +\ifthenelse{\boolean{isomath@reuseMathalphabets}} +{ + \DeclareMathAlphabet{\mathbf}{OML}{\isomath@rmdefault}{bx}{it} + \def\mathbold{\mathbf} +} +{ + \DeclareMathAlphabet{\mathbold}{OML}{\isomath@rmdefault}{bx}{it} +} + +% For `italic sans-serif`, we either redefine ``\mathsf`` (with +% reuseMathalphabets_) or, in analogy to ``\mathbold``, we define the new +% alphabet ``\mathsans``:: + +\ifthenelse{\boolean{isomath@reuseMathalphabets}} +{ + \DeclareMathAlphabet{\mathsf}{OML}{\isomath@sfdefault}{m}{it} + \def\mathsans{\mathsf} +} +{ + \DeclareMathAlphabet{\mathsans}{OML}{\isomath@sfdefault}{m}{it} +} + +% A `sans serif slanted bold` alphabet is needed for the tensor +% symbols. As there is no standard math alphabet to re-use, we define the new +% alphabet ``\mathboldsans``:: + +\DeclareMathAlphabet{\mathboldsans}{OML}{\isomath@sfdefault}{bx}{it} + + +% Redefine standard alphabets +% --------------------------- +% +% Redefine standard alphabets in `OML font encoding`_ +% (if the corresponding `OML math*`_ option is true). :: + +\ifthenelse{\boolean{isomath@OMLmathrm}} +{\SetMathAlphabet{\mathrm}{normal}{OML}{\isomath@rmdefault}{n}{n}}{} +\ifthenelse{\boolean{isomath@OMLmathbf}} +{\SetMathAlphabet{\mathbf}{normal}{OML}{\isomath@rmdefault}{b}{n}}{} +\ifthenelse{\boolean{isomath@OMLmathbf}} +{\SetMathAlphabet{\mathsf}{normal}{OML}{\isomath@sfdefault}{n}{n}}{} +\ifthenelse{\boolean{isomath@OMLmathtt}} +{\SetMathAlphabet{\mathtt}{normal}{OML}{\ttdefault}{n}{n}}{} + +% Command aliases +% --------------- +% +% Define commands to typeset some symbol categories complying to +% the ISO standard. +% +% Vector symbols +% """""""""""""" +% +% Symbols for vectors are *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). +% +% Matrix symbols +% """""""""""""" +% +% Symbols for matrices are *boldface italic*, i. e. typeset in the same face as +% vectors (see [typefaces]_). [#]_ :: + +\newcommand{\matrixsym}{\mathbold} + +% .. [#] However, matrix symbols are usually capital letters whereas vectors +% are small ones. Exceptions are physical Quantities like the force +% vector F or the electrical field E. +% +% Tensor symbols +% """""""""""""" +% +% 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. +% +% 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 file(s): +% +% 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 (arev): fav -> zavm :: + +\DeclareFontFamily{OML}{fav}{} +\DeclareFontShape{OML}{fav}{m}{it}{<->ssub * zavm/m/it}{} +\DeclareFontShape{OML}{fav}{bx}{it}{<->ssub * zavm/b/it}{} + +% LX Fonts (lxfonts): llcmss -> llcmm :: + +\DeclareFontFamily{OML}{llcmss}{} +\DeclareFontShape{OML}{llcmss}{m}{it}{<-> ssub * llcmm/m/it}{} +\DeclareFontShape{OML}{llcmss}{bx}{it}{<-> ssub * llcmm/bx/it}{} + +% The end +% ======= +% :: + +\endinput + +% TODO +% ==== +% +% The ``\mathsans`` definition "increases symmetry". However, it adds a math +% alphabet that is rarely (or not at all) used. Giving the limit of 16 math +% alphabets, it might be better not to define it. Make it an option? +% +% About this file +% =============== +% +% The package documentation is included in the source file. +% +% The bidirectional text <-> code converter PyLit_ can be used to transform +% the LaTeX package ``isomath.sty`` to a `reStructured Text`_ document +% ``isomath.sty.txt`` (and back again). To translate ``isomath.sty.txt`` to +% LaTeX or HTML, the Python docutils_ are required. +% +% +% References +% ========== +% +% .. [encguide] `LaTeX font encodings`: +% http://dante.ctan.org/CTAN/macros/latex/doc/encguide.pdf +% +% .. [symbol-fonts] `On the use of italic and roman fonts for symbols in +% scientific text`, I.M. Mills and W.V. Metanomski (Revised December 1999): +% http://old.iupac.org/standing/idcns/fonts_for_symbols.html +% +% .. [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] +% +% .. [typefaces] `Typefaces for Symbols in Scientific Manuscripts`: +% http://physics.nist.gov/Document/typefaces.pdf +% +% .. [SI-brochure] `The International System of Units (SI)`: +% http://www.bipm.org/en/si/si_brochure/ +% +% .. see also +% [koma-mail] Custom font substitution: http://www.komascript.de/node/823 +% +% .. Links +% .. ***** +% +% .. _BIPM: http://www.bipm.org/ +% .. _IUPAC: http://iupac.org/ +% .. _IUPAP: http://www.iupap.org/ +% .. _NIST: http://physics.nist.gov/ +% .. _Quantities and units: +% http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=46202 +% .. _mathematical alphanumeric symbols: +% http://www.unicode.org/charts/PDF/U1D400.pdf +% .. _arev: http://dante.ctan.org/CTAN/help/Catalogue/entries/arev.html +% .. _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 +% .. _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 +% +% .. _pylit: http://pylit.berlios.de +% .. _reStructured Text: http://docutils.sourceforge.net/rst.html +% .. _docutils: http://docutils.sourceforge.net/rst.html diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds index 8a0e6e9ae3b..f46ce1a0bca 100755 --- a/Master/tlpkg/bin/ctan2tds +++ b/Master/tlpkg/bin/ctan2tds @@ -873,7 +873,7 @@ $standardmakeindex='\.ist'; # packages which need special .tex/.sty files installed -$standardtex='\.cfg|\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$|\.cmap|\.4ht$'; +$standardtex='\.(cfg|sty|clo|ldf|cls|def|fd|cmap|4ht)$'; %specialtex= ( 'FAQ-en', 'NULL', 'abbr', '\.tex', diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 30b3c29d4e8..8e88149600f 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -117,7 +117,7 @@ my @WorkingTLP = qw( inlinebib inlinedef interactiveworkbook intro-scientific inversepath invoice iopart-num iso - iso10303 isodate isodoc isonums isorot isotope itnumpar iwona + iso10303 isodate isodoc isomath isonums isorot isotope itnumpar iwona jeopardy jknapltx jneurosci jpsj jura juraabbrev jurabib juramisc jurarsp kalender kastrup kerkis kerntest keystroke knuth koma-script kpfonts diff --git a/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc index bdd7951efa9..84fa32c7769 100644 --- a/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc @@ -13,6 +13,7 @@ depend eqnarray depend extarrows depend extpfeil depend faktor +depend isomath depend mathcomp depend mh depend mhequ diff --git a/Master/tlpkg/tlpsrc/isomath.tlpsrc b/Master/tlpkg/tlpsrc/isomath.tlpsrc new file mode 100644 index 00000000000..fd89ed5bc58 --- /dev/null +++ b/Master/tlpkg/tlpsrc/isomath.tlpsrc @@ -0,0 +1,2 @@ +name isomath +category Package |