texlive[45987] Master: pm-isomath

commits+karl at tug.org commits+karl at tug.org
Mon Dec 4 23:48:32 CET 2017


Revision: 45987
          http://tug.org/svn/texlive?view=revision&revision=45987
Author:   karl
Date:     2017-12-04 23:48:32 +0100 (Mon, 04 Dec 2017)
Log Message:
-----------
pm-isomath

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/libexec/ctan2tds
    trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/pm-isomath/
    trunk/Master/texmf-dist/doc/latex/pm-isomath/README
    trunk/Master/texmf-dist/doc/latex/pm-isomath/manifest.txt
    trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf
    trunk/Master/texmf-dist/source/latex/pm-isomath/
    trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx
    trunk/Master/texmf-dist/tex/latex/pm-isomath/
    trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty
    trunk/Master/tlpkg/tlpsrc/pm-isomath.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/pm-isomath/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pm-isomath/README	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pm-isomath/README	2017-12-04 22:48:32 UTC (rev 45987)
@@ -0,0 +1,60 @@
+The PM-ISOmath package, version 1.00 of 2017-08-22
+Original author: Claudio Beccari, 2017
+LaTeX Project Public Licence LPPL v.1.3 (or later)
+
+The PM-ISOmath name stands for "Poor Man ISO Math". In substance
+ this package is a poor man solution to the task of typesetting 
+ math fulfilling the ISO regulations "for physical sciences and technology" (formerli regulations ISO 31/XI, now ISO\,80000). 
+ These regulations refer mostly to the family, series and shape 
+ of fonts to be used with symbols of various nature.
+
+This package gets inspiration from the ISOmath package by Günter 
+Milde, but tries to get the same results without using any math 
+[font] groups (or families). As pdfLaTeX users may recall, this 
+typesetting program may se at maximum 16 math [font] groups (or 
+math font families); sometimes this number results in an error 
+that forbids the user to use the symbols s/he needs.
+
+The trick used in this package consists in employing text fonts 
+within the \text command (defined by the amsmath package that, therefore, is a dependence  to which pmisomath is subjected) and 
+chose text font families, series, and shapes to be used within 
+that command argument.
+
+The commands are such as to fulfil some math requirements; for 
+example while in the scope of the \boldmath declaration, the 
+series is automatically set to bold without any user intervention. 
+The font size is automatically taken care by \text, so that fonts 
+have the correct size also while typesetting exponents or subscripts.
+
+Nevertheless, through proper advanced command options, the user 
+remains the person principally responsible of using the right 
+font for the right symbol in a document that must fulfil the 
+ISO regulations.
+
+This package is usable only with pdfLaTeX; LuaLaTeX and XeLaTeX 
+can access OpenType math fonts through the package unicode-math, 
+and with the "math-style=ISO" option they have the math switching 
+commands agree with the ISO regulations.
+
+pdfLATeX users have available some packages to fulfil the ISO requirements; principally the ISOmath package thet is subject 
+to a number of limitations due the the particular math environment 
+of the user, and libertinust1math that produces a complete set-up 
+with math fonts that match very well text fonts that are darker 
+than the standard default Computer Modern ones (including the 
+CM-super and the Latin Modern ones).
+
+This package works very well with the Latin Modern fonts; in 
+practice in math mode it uses the same Latin text fonts, and 
+the corresponding families, series, and shapes of the LGR 
+encoded CBfonts; it may work also with the CM and the CM-super 
+fonts, but the original author never uses them, therefore he 
+cannot guarantee any suitable result.
+
+For installation of this package, simply run the pmisomath.dtx 
+through pdfLaTeX (and only pdfLaTeX); move the produced sty file 
+to the .../tex/latex/pmisomath/ folder; if it does not exist, 
+create it; similarly move pmisomath.dtx to .../source/latex/pmisomath/ 
+and pmisomath.pdf to .../doc/latex/pmisomath/.
+
+
+


Property changes on: trunk/Master/texmf-dist/doc/latex/pm-isomath/README
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pm-isomath/manifest.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pm-isomath/manifest.txt	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/pm-isomath/manifest.txt	2017-12-04 22:48:32 UTC (rev 45987)
@@ -0,0 +1,34 @@
+This is the manifest.txt file that accompanies the package PM-ISOmath,
+version 1.00 of 2017
+
+Original author: Claudio Beccari, 2017
+
+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. The latest version 
+of this license is in http://www.latex-project.org/lppl.txt and 
+version 1.3 or later is part of all distributions of LaTeX version 
+2003/12/01 or later.
+
+This work itself and every derived work are subject to the above
+licence.
+
+This work has the LPPL maintenance status "author-maintained".
+
+The actual maintainer (2017) is Claudio Beccari: 
+claudio dot beccari at gmail dot com
+
+This work consists of the files listed in manifest.txt, that is:
+    manifest.txt
+    README
+    pm-isomath.dtx
+    
+The derived files are
+    pm-isomath.pdf
+    pm-isomath.sty
+
+The pm-isomath.dtx file is a self extracting and self documenting 
+one; if you run pdflatex (and only pdflatex) on it you get at the 
+same time the English documentation and the package file.
+
+The derived file pm-isomath.sty may be used only with pdflatex.


Property changes on: trunk/Master/texmf-dist/doc/latex/pm-isomath/manifest.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf	2017-12-04 21:58:22 UTC (rev 45986)
+++ trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf	2017-12-04 22:48:32 UTC (rev 45987)

Property changes on: trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx	2017-12-04 22:48:32 UTC (rev 45987)
@@ -0,0 +1,1107 @@
+% \iffalse meta-comment
+%<*internal>
+\begingroup
+\input docstrip.tex
+\keepsilent
+
+
+\preamble
+  ______________________________________________________
+  The PM-ISOmath bundle 
+  Copyright (C) 2017 Claudio Beccari 
+  All rights reserved
+
+  License information appended
+
+\endpreamble
+\postamble
+
+Copyright 2017 Claudio Beccari
+
+Distributable under the LaTeX Project Public License,
+version 1.3c or higher (your choice). The latest version of
+this license is at: http://www.latex-project.org/lppl.txt
+
+This work is "author-maintained"
+
+This work consists of this file pm-isomath.dtx, a README file
+the manifest.txt file, and the derived files: 
+    pm-isomath.sty, pm-isomath.pdf.
+ 
+\endpostamble
+
+\askforoverwritefalse
+
+\generate{\file{pm-isomath.sty}{\from{pm-isomath.dtx}{style}}
+         }
+
+\def\tmpa{plain}
+\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi
+\endgroup
+%</internal>
+%
+% Copyright 2017 Claudio Beccari
+%
+% This file is part of the PM-ISOmath bundle
+% -------------------------------------------
+%
+% It 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.
+% The latest version of this license is in
+%    http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2003/12/01 or later.
+%
+% This file has the LPPL maintenance status "author-maintained".
+%
+% The list of all files belonging to the PM-ISOmath bundle is
+% given in the file `manifest.txt'.
+%
+% The set of derived (unpacked) files belonging to the distribution
+% and covered by LPPL is created by the self unpacking file
+% pm-isomath.dtx which is the principal part of the distribution.
+%
+% \fi
+%
+% \iffalse
+%^^A The following trick uses the same date for every file header.
+%<style>\NeedsTeXFormat{LaTeX2e}[2017/01/01]
+%<*driver>
+\ProvidesFile{pm-isomath.dtx}[%
+%</driver>
+%<style>\ProvidesPackage{pm-isomath}[%
+%<*driver,style>
+2017/08/22 v.1.0.00 
+%<style>Poor man package for typesetting ISO compliant math when using pdfLaTeX]
+%</driver,style>
+%<*driver>
+]
+%</driver>
+%<*driver>
+\documentclass{ltxdoc}
+\GetFileInfo{pm-isomath.dtx}
+\title{\texttt{PM-ISOmath}\\The Poor Man ISO math bundle}
+\date{\fileversion\space--- \filedate}
+ \author{Claudio Beccari\thanks{E-mail: \texttt{claudio dot beccari at gmail dot com}}}
+ 
+\usepackage{metalogo,multicol,enumitem,url,booktabs}
+\usepackage[utf8]{inputenc}
+\usepackage[LGR,T1]{fontenc}
+\usepackage{lmodern}
+\usepackage{pm-isomath}
+\let\originalmeta\meta
+\renewcommand\meta[1]{{\normalfont\originalmeta{#1}}}
+\def\prog#1{\textsf{#1}}
+\def\pack#1{\textsf{\slshape#1}}
+\def\env#1{\textit{#1}}\let\amb\env
+\def\file#1{\texttt{#1}}
+\def\marg#1{{\normalfont\texttt{\{}\meta{#1}\texttt{\}}}}
+\def\Marg#1{{\texttt{\{#1\}}}}
+\def\opz#1{{normalfont\textsl{#1}}}
+\def\oarg#1{{\normalfont\texttt{[\meta{#1}]}}}
+\def\Oarg#1{{\normalfont\texttt{[#1]}}}
+\def\parg#1{{\normalfont\texttt{(\meta{#1})}}}
+\def\Parg#1{{\normalfont\texttt{(#1)}}}
+\providecommand\pdfLaTeX{pdf\/\LaTeX}
+\providecommand\pdfTeX{pdf\/\TeX}
+\newenvironment{ttsintassi}{\flushleft\ttfamily\obeylines}{\endflushleft}
+\begin{document}\errorcontextlines=9
+\maketitle
+\begin{multicols}{2}
+\tableofcontents
+\end{multicols}
+ \setlength\hfuzz{20pt}
+ \DocInput{pm-isomath.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% ^^A \CheckSum{}%
+% \begin{abstract}
+% The ISO regulation for typesetting math in the field of physics
+% and technology are pretty stringent and imply legal questions
+% that we do not treat here; It suffices to say the an
+% ``Expertise'' for a Legal Court that does not fulfil such
+% regulations in certain countries may be rejected by the Court,
+% independently from its expert contents.
+%
+% Authors may not like them, but in the filed of \emph{applied
+% sciences}, or better, of \emph{experimental sciences} that
+% use measured quantities and units of measure, they are compulsory.
+%
+% With \LuaLaTeX\ and \XeLaTeX, while using OpenType math fonts
+% there should not be any difficulty in fulfilling the regulations,
+% but with \pdfLaTeX; things are not so simple. There exist some
+% facilities, but sometimes they do not work.
+%
+% This package provides some robust work-arounds to bypass the
+% difficulties experienced by some \pdfLaTeX\ users.
+% \end{abstract}
+
+% \section{Introduction}
+% The ISO regulations (formerly ISO\,31/XI, now ISO\,80000) are
+% stringent rules to typeset mathematics in the domains of physics
+% and applied sciences; their title explicitly mentions ``physics
+% and technology'', but their careful reading let understand that
+% they apply to alla sciences that use the ``mathematics of
+% quantities''. Such entities form a special group or space,
+% where the elements are couples of two ordered elements $(x, y)$,
+% where $y$ represents the unit of measure and $x$ represents the
+% ratio of the quantity to the unit of measure. Such paired
+% elements may not e separated, therefore some special
+% mathematical rules are established in order to operate on
+% such entities.
+%
+% Add to these special mathematical bases the facto that the
+% measure component of the quantity is pretty fuzzy and it
+% is always accompanied by a certain degree of uncertainty;
+% metrologists are the the masters in measuring quantities
+% and handling their measures and uncertainties, but although
+% for simplicity measures are handled by lay people as rational
+% numbers (after all aren't the the ratio of something to be
+% measured and the unit of measure?) we are facing the domain
+% of fuzzy sets.
+%
+% Furthermore quantities are so many that any work in applied
+% sciences should contain a nomenclature list in order to
+% explain which symbol is used for which quantity. This is
+% where the ISO regulations set some order and they published
+% a long list of named quantities with their preferred symbols
+% and their ``normal'' units according to the prescriptions
+% of the Comité International des Pois et Mésures, that
+% established the the International System of measures 
+% (Systhème International, SI).
+% 
+% This ISO nomenclature is used uniformly by most, if not all,
+% people involved in applied sciences; therefore among the few
+% letters of the Latin and Greek alphabets almost none is free
+% to be used for other purposes.
+%
+% This means that the usual math italic alphabet can be used for
+% very few symbols if confusion is to be avoided. Other series
+% and shapes must be judiciously used and the ISO regulations
+% say how.
+%
+% There are no problems when typesetting applied science
+% documents with \LuaLaTeX\ or \XeLaTeX, at least if the
+% proper OpenType math fonts are used; Such fonts have
+% available so mani slots (code points) that may contain
+% any variation of any glyph; it suffices to specify the
+% option |math style = ISO| to the math handling package
+% |unicode-math| and to select an OpenType math font. The
+% only problem, if any, is to know which font series and
+% shapes should be used according to the ISO regulations.
+%
+% These regulations can be purchased from the ISO site in
+% Switzerland; they are quite expensive and the cost is
+% affordable by associated professional studios or large
+% academic and/or research institutions.
+%
+% For private users I'd suggest to download the PDF document
+% \url{https://www.nist.gov/pml/special-publication-811-extended-%contents}. This document has been produced by the National
+% Institute for Science and Technology, the Institutions that
+% several years ago was appointed to replace the United States
+% National Bureau of Standards. Thei staff is made essentially
+% by metrologists and this guide is written to give precise
+% instructions for handling the applied science mathematics
+% according to the ISO Regulations; Is establishes also several
+% rules for writing text about mathematics and metrology. It
+% is extremely valuable for anglophones, but, with the due
+% differences concerning the mother languages, it is extremely
+% useful also for people using other languages than English.
+%
+% \section{The \pdfLaTeX\ handicaps}
+% Users of \pdfLaTeX, on the opposite are in trouble. In facts
+% this typesetting program suffers from an inherited limitation:
+% math fonts are encoded with the old 128 glyph encodings; this
+% is not a limitation  set forth by the underlying interpreter
+% \pdfTeX. Matter of fact there exist the quite recent
+% LibertinusT1math fonts for \pdfLaTeX, created by Michal Sharpe,
+% that to my best knowledge are the only ones with 256 glyph
+% encodings. Package |libertinust1math| accepts the |ISO| option
+% that allows to fulfil the ISO regulations; it accepts other
+% options depending on which the number of math groups, beyond
+% the essential first four ones, increases by three to six units,
+% reaching a maximum of ten; there remains enough free math
+% groups to satisfy any user requirement.
+%
+% But even while using such LibertinusT1math fonts, \pdfTeX\ 
+% suffers from another handicap derived from the knuthian
+% original \TeX-the-program and by the NFSS (New FonT Selection
+% Scheme, which is not new any more, because it dates back to
+% 1994, when \LaTeX\,209 became obsolete and was substituted
+% by \LaTeXe.). I am not complaining about these \pdfTeX\ and
+% \LaTeX\ limitations; for decades people have been happily
+% typesetting math with results that are much superior to any
+% other typesetting program if it does not use some \TeX\ software.
+%
+% The handicap I am talking about is the way math alphabets are
+% handled at the moment by \pdfTeX and \LaTeX; such alphabets
+% are loaded in the form of math groups, the number of which
+% cannot exceed 16 (numbered from 0 to 15); each group loads
+% three sizes for normal math style, for script style and for
+% script-script style. 
+%
+% By default four groups are always loaded; group~0 for
+% operators; group~1 for letters; group~2 for symbols;
+% group~3 for large operators and delimiters; users very
+% often load also the two symbol-fonts provided by the
+% American Mathematical Society, and this means two more
+% math groups. Apparently there are ten more groups for
+% other math groups. It seems that this number is abundantly
+% sufficient to handle any situation, but it is not so. The
+% author of this extension already reached the limit of~16
+% without doing anything special -- at least he thought so,
+% but he was evidently wrong. Users who use packages such
+% as the Fourier or the KPfonts have to pay special attention
+% to their documentation because they might specify options
+% that imply loading up to 14 math groups.
+%
+% Several authors provided packages to help users produce
+% perfect documents that fulfil the ISO regulations; I would
+% like to cite the excellent Package|ISOmath| by Günter Milde,
+% entitled ``Mathematical style for science and  technology''.
+% It should be the perfect package to use in order to fulfil
+% the ISO regulations; sometimes it succeeds with excellent
+% results, but more often than not the results are just partial,
+% because of the limitations of the math fonts available to
+% \pdfLaTeX\ that are in contrast with the requirements of
+% the ISO regulations.
+%
+% Therefore, dear reader, before using the poor man solutions
+% of this package, try |ISOmath|, if your font set passes all
+% the requirements described in this package documentation,
+% you don't need the poor man patches offered by this package.
+%
+% \section{ISO rules summary}
+% This summary does not replace the original ISO document nor
+% what is written in the instructions published by NIST. It
+% simply recalls those rules that this package tries to implement.
+% In the following the word ``quantity'' is used to represent
+% any physical entity that may be measured according to the
+% metrological standards; the word ``variable'' is used to
+% represent a mathematical entity that represents variable data.
+%\begin{enumerate}[noitemsep]
+% \item 
+%   All quantity and variable symbols are represented by one
+%   letter (with as many appositions are needed); but no acronyms
+%   are allowed; in computer science programming many strings 
+%   are called variables, in the sense that they may represent 
+%   variable data; but computer programs are not mathematics, 
+%   rather they are a special language that tells the computer 
+%   what to do, even mathematics, but the language is not the 
+%   one that represents math. Unfortunately som acronyms have 
+%   gained strong popularity and wide usage, but they are 
+%   forbidden by the ISO rules; example: \emph{CMRR} is often 
+%   used to mean ``common mode rejection ratio'', but this is 
+%   an improper usage of mathematics. Obviously this rule 
+%   must be applied by the user, because \LaTeX\ is a 
+%   typesetting language and does not understand the real 
+%   meaning of what it typesets.
+% \item
+%   All quantity symbols must be set in italics, slanted type
+%   is allowed, but serifed italics should be referred, unless 
+%   the ISO rules prescribe a sans serif font. This implies that
+% the differential symbol be in upright font to avoid confusion
+% with the physical quantity $d$; the Napier number `e' must be
+% set in upright font to avoid confusion with the elementary
+% electric charge $e$; the imaginary unit j in electrical
+% engineering, i in other applied sciences) be in upright font
+% in order to avoid confusion with the electric current density
+% $j$ or the electric current $i$; more difficult: the
+% transcendental number $\ISOpi=3.14159\dots$ be distinguished 
+% from the plane angle $\pi$; and similar other numerical constants represented by Latin or Greek letters.
+% \item
+%   All symbols that do not represent quantities should be 
+%   typeset in an upright font, preferably a serifed font, 
+%   except when the ISO rules require a sans serif font.
+%   This rule include numbers and their digits, symbols that 
+%   represent constant numeric values, all appositions both 
+%   in subscript and superscript position. Appositions are not 
+%   quantities or variables: for example in $V_i$, the 
+%   subscript $i$ is a variable because it represents the $i$-th 
+%   element in a sequence, such as $V_0, V_1, V_2, \dots$; on 
+%   the opposite $V_{\mathrm{i}}$ is an apposition because `i' 
+%   means, say, `input'.
+% \item
+%   Upright bold roman or black board bold symbols represent sets.
+% \item
+%   Italic bold symbols represent matrices; une column matrices
+%   may represent vectors in an algebraic way and should be 
+%   treated as any other matrix; generally multirow and multicolumn 
+%   matrices are typeset with uppercase letters, while lowercase 
+%   ones are reserved for vectors; but in some sciences also vectors 
+%   may have uppercase letters. Geometrical vectors that might be 
+%   typeset wit a medium series upper o lowercase italic letter 
+%   with an arrow on top of it are nor treated by the ISO 
+%   regulations that speak of vectors irrespective if they are 
+%   considered as one column matrices od oriented segments; 
+%   apparently oriented segments should be treated the same as 
+%   one column matrices.
+% \item
+%   Labels to geometrical entities, such as points, segments,
+%    angles (not their measures) should be set in upright 
+%    medium series sans serif fonts; the same rule applies 
+%    to labels used in sketches and drawings representing 
+%    machinery, electric circuitry, and the like when the label 
+%    refers to an object and not to its measure: ``the lens 
+%    $\mathsf{L}_1$'', ``the switch $\mathsf{S}_2$'', ``the 
+%    planetary gear $\mathsf{G}_3$'', and so on.
+% \item
+%   Tensors should be set in slanted bold sans serif font.
+% \item 
+%   The above rules apply to both Latin and Greek 
+%   letters.\label{enum:latin-greek}
+%\end{enumerate}
+%
+% Such font rules  for families, series and shapes are difficult
+% to implement with \pdfLaTeX\ for many reasons that do not imply
+% only the limited number of math groups, but also the categories
+% of symbols; Greek letters in particular are troublesome for a
+% couple of reasons connected with rule~\ref{enum:latin-greek}:
+%\begin{itemize}[noitemsep]
+%\item
+%   Uppercase greek letters are taken from the ``operators'' 
+%   alphabet and are letter symbols; therefore they are upright; 
+%   but if they represent quantities they must be in italics, 
+%   or at least slanted;
+%\item
+%   Lowercase Greek letters are taken from the ``letters'' alphabet
+%   and are ordinary symbols; they are slanted, and this is fine, 
+%   but as ordinary symbols they cannot be modified by commands 
+%   such as |\mathrm|; furthermore upright lowercase Greek letters
+%   are not available.
+%\end{itemize}
+%
+% \section{Some existing solutions}
+% Several packages to be used with \pdfLaTeX\ allow for upright
+% Greek letters, especially those packages for French typography,
+% where the national rules (in contrst with the ISO regulations)
+% require that all math entities typeset with Greek letters be
+% upright. Among these the |fourier| and the |kpfont|. Other
+% packages such as |newpxmath| and |newtxmath| are intended for
+% general use, but with suitable options and extra math groups
+% let the user employ upright lowercase letters as well as
+% slanted uppercase ones.
+%
+% Package |libertinust1math| allows the use of the 256~glyph
+% encoded fonts and are less sensitive to the limit of 16~math
+% groups, Is many options allow to use the various font styles
+% without requiring the |\boldmath| declaration; this implies
+% that medium and bold series are both preloaded without
+% actually using extra math alphabets beyond the small number
+% it uses for its full functionality. An option |ISO| is
+% already available to fulfill the ISO regulations. Maybe
+% the only drawback of the fonts used is that they match text
+% fonts that are blacker than the standard Computer or Latin
+% Modern fonts. The auxiliary font selection commands used in
+% the |ISOmath| package are already implemented with this
+% |libertinust1math| one.
+%
+% Of course the |ISOmath| package might solve all problems if the
+% user math environment has the necessary functionalities, in
+% particular all the math alphabets needed for the task and
+% there are no difficulties with the number of math groups.
+%
+% \section{The poor man solution}
+% The poor man solution is  very simple in theory; it handles
+% text fonts in math expressions through the |\text| command
+% of the |amsmath| package; of course there are functionalities
+% to chose families series and shapes in a comfortable way
+% by means of the powerful command definition commands provided
+% by the |xparse| package; for Greek letters it uses the
+% functionalities of the |alphabeta| package, that allows to use
+% in text mode the same control sequences that are used
+% in math mode. The default families for Latin and Greek letters
+% are the Latin Modern ones that allow a piecewise continuous
+% scaling of any available particular font of the collection.
+%
+% Needless to say, this poor man solution has advantages and
+% disadvantages over the other indicated solutions.
+%
+% The main advantage is that no math groups are involved,
+% therefore the user may couple any font family with any
+% series and shape that family allows; the default
+% family for Greek fonts are the Latin Modern compliant
+% LGR encoded collection of CBfonts; they are always
+% available with any updated and complete \TeX\ system
+% installation.
+%
+% This is also a disadvantage, in the sense that Latin Modern
+% fonts might not be the best ones to use with any specific
+% text font; for example they have an x-height smaller than
+% the Palatino ones, and a larger `em' unit compared to the
+% Times ones; they have also a slightly lighter `color'
+% than most other fonts.
+%
+% Nevertheless they work very well with the ISO regulations
+% and in spite of the disadvantages listed above, they are
+% usable without problems. 'This documentation is typeset
+% with Latin Modern fonts and this very package. The examples
+% shown in a following chapter show the ease with which the
+% ISO regulations may be fulfilled.
+%
+% There are other Greek fonts that may be used in place if
+% those of the CBfonts collection, especially those distributed
+% by the Greek Font Society (GFS) that are already part of the
+% \TeX\ system distribution; they are LGR encoded and have their
+% specific |.fd| files. They are not so rich in series and shapes
+% (some of them may lack the bold extended series and sometimes
+% lack also the bold series); I would say the the GFS Bodoni
+% family is sufficiently rich of series and shapes, and may be used
+% also for the Latin fonts. 
+%
+% There are also the Greek fonts that are ``companions'' to the
+% Times fonts. So the user is not limited to the Latin Modern
+% fonts, but admittedly there is not a great choice and, if it
+% is necessary, the disadvantage of an unmatching Greek font is
+% the price to pay if the user has to use \pdfLaTeX.
+%
+% \section{Usage}
+% The usage of the package is very simple; in your preamble 
+% add the line
+%\begin{ttsintassi}
+%\cs{usebackage}\Oarg{engineer}\Marg{pm-isomath}
+%\end{ttsintassi}
+% The |engineer| option is used to set the imaginary unit the
+% way electrical engineers usually do.
+%
+% The main macros that support the whole package, and that may
+% be used also by the end user, are:
+%\begin{ttsintassi}
+%\cs{MathLatin}\marg{letter}\marg{family}\oarg{series}\parg{shape}
+%\end{ttsintassi}
+%and
+%\begin{ttsintassi}
+%\cs{MathGreek}\marg{letter}\marg{family}\oarg{series}\parg{shape}
+%\end{ttsintassi}
+% where \cs{MathLatin} sets the text encoding to |T1|, while
+% \cs{MathGreek} set it to |LGR|. In both commands the arguments
+% specified with \marg{family}\oarg{series}\parg{shape} are all
+% optional, including the first one in spite of being surrounded
+% by curly braces. In both cases the default values for each
+% argument are respectively |lmr|, |m|, and |n| (normal upright).
+%
+% Such default values, after loading |pm-isomath|, may be globally
+% redefined by using in the preamble:
+%\begin{ttsintassi}
+%\cs{renewcommand}\Marg{ISOfam}\marg{family}
+%\cs{renewcommand}\Marg{ISOser}\marg{series}
+%\cs{renewcommand}\Marg{ISOsha}\marg{shape}
+%\end{ttsintassi}
+% We discourage this global redefinitions unless the user really
+% knows what s/he is doing; in practice it must be checked  that
+% T1 encoded families and LGR encoded ones have the same family
+% names. If the encoding+family|.fd| files are not available
+% either they have to be created, or  such default values should
+% not be redefined.
+% 
+% For Latin letters to use in the |\MathLatin| command mandatory
+% argument there are no problems.
+%
+% For Greek letters you might use the math commands |\alpha|,
+% |\beta|,\dots, |\Omega| commands, but it is much simpler to
+% use the package commands |\ISOalpha|, |\ISObeta|,\dots,
+% |\ISOOmega|. All these commands follow the syntax:
+%\begin{ttsintassi}
+%\cs{ISO}\meta{lettername}\marg{family}\oarg{series}\parg{shape}
+%\end{ttsintassi}
+% where all the arguments are optional, including the first in
+% spite of being surrounded by curly braces. Such optional
+% arguments must follow that order but all possible combinations
+% are usable, for example:
+%\begin{ttsintassi}
+%\cs{ISOalpha}
+%\cs{ISOalpha}\marg{family}
+%\cs{ISOalpha}\oarg{series}
+%\cs{ISOalpha}\parg{shape}
+%\cs{ISOalpha}\marg{family}\oarg{series}
+%\cs{ISOalpha}\marg{family}\parg{shape}
+%\cs{ISOalpha}\oarg{series}\parg{shape}
+%\cs{ISOalpha}\marg{family}\oarg{series}\parg{shape}
+%\end{ttsintassi}
+% This offers the maximum flexibility in using the necessary
+% commands.
+%
+% The package defines other macros for fulfilling the rules
+% relative to the differential symbol and the numerical constants
+% represented with letters; Furthermore defines the commands
+% for the |\ohm| unit of measure and the |\micro| SI prefix;
+% this latter macro uses a special shape of the CBfonts where
+% an upright shape with serifed lowercase Greek letters is
+% available; if another family lacking this shape is being used,
+% then the normal upright shape is used. In typesetting this
+% documentation, evidently there are no problems, but with other
+% font selections, especially with Greek fonts, there might be
+% some mismatching shapes.
+% 
+% Commands similar to those defined by the |ISOmath| package
+% are also defined so as to simplify the font selection for
+% vectors, matrices and tensors.
+%
+% \section{Examples}
+% \subparagraph{ISO Greek letters}
+% In this example we typeset an array in math mode, where
+% we show all the Greek letters that can be typeset with
+% the \cs{ISO}\meta{letter} macros; the array is typeset
+% in normal math style, but the ISO letters are in bold
+% style so that there is no confusion with a normal
+% bold math setting; some letters, equal to
+% the Latin ones, are also defined because some users have
+% experienced difficulties in remembering the correct signs
+% especially while labelling diagrams. The
+% array may be a useful reference, \ref{tab:isoletters}.
+%\begin{table}[!tb]
+%\def\T#1{\cs{ISO#1} & \csuse{ISO#1}[bx]}
+%\[\begin{array}{lclclclc}
+%\T{alpha} 	& \T{beta} 		&
+%\T{gamma} 	& \T{delta}  	\\ 
+%\T{epsilon} & \T{zeta}  	&
+%\T{eta} 	& \T{theta}  	\\ 
+%\T{iota} 	& \T{kappa}  	& 
+%\T{lambda} & \T{mu}  		\\ 
+%\T{nu} 	& \T{xi}  		&
+%\T{omicron}& \T{pi}  		\\ 
+%\T{rho} 	& \T{sigma}  	& 
+%\T{tau} 	& \T{upsilon}  	\\ 
+%\T{phi} 	& \T{chi}  		&
+%\T{psi} 	& \T{omega}  	\\ 
+%\T{Gamma} 	& \T{Delta}  	& 
+%\T{Eta} 	& \T{Theta}  	\\ 
+%\T{Lambda} & \T{Xi}  		& 
+%\T{Pi} 	& \T{Rho}  		\\ 
+%\T{Sigma} 	& \T{Upsilon}  	& 
+%\T{Phi} 	& \T{Chi}  		\\
+%&&\T{Psi} 	& \T{Omega}
+%\end{array}\]
+%\caption{The \cs{ISO}\meta{letter} macros and their rendering in bold  style}
+%\label{tab:isoletters}
+%\end{table}
+% \subparagraph{A small matrix equation}
+%\[ \vectorsymbol{b} = \matrixsymbol{M}\vectorsymbol{a} \] is
+% typeset with the following code
+%\begin{verbatim}
+%\[ \vectorsymbol{b} = \matrixsymbol{M}\vectorsymbol{a} \]
+%\end{verbatim}
+% \subparagraph{A resistivity value}
+% The resistivity of copper is $1.68\,\micro\ohm\,\mathrm{cm}$ (1.68\unit{\micro\ohm\,cm})
+% is typeset with the following code
+%\begin{verbatim}
+%$i.68\,\micro\ohm\,\mathrm{cm}$ (1.68\unit{\micro\ohm\,cm})
+%\end{verbatim}
+%\subparagraph{A tensor}
+%\[ \vectorsymbol{D} =\epsilon_0\vectorsymbol{\epsilon}\ped{r}\vectorsymbol{E}\]
+%is typeset with the following code
+%\begin{verbatim}
+%\[ 
+%\vectorsymbol{D} = \epsilon_0\tensorsymbol{\epsilon}\ped{r}\vectorsymbol{E}
+%\]
+%\end{verbatim}
+%\subparagraph{Solid angle}
+% An energy flux of light form a isomorph source that irradiates
+% the power $P$ through the solid angle $\Omega$ generates
+% a flux \[\Phi = \frac{P}{\Omega}\] is typeset with the following
+% code
+%\begin{verbatim}
+%\[\Phi = \frac{P}{\Omega}\]
+%\end{verbatim}
+% where, as you see the uppercase Greek letters are slanted,
+% as the ISO rules require, instead of upright, as \LaTeX\ sets
+% them by default.
+% \subparagraph{A bold formula}
+% This is the very important inverse Laplace transform
+%{\boldmath\[
+%f(t) = \frac{1}{2\ISOpi\iu} -\mkern-19mu\int_{\sigma-\iu\infty}^{\sigma+\iu\infty}\eu^{pt}\diff p \qquad \text{for } \sigma > \sigma\ped{c}
+%\]}
+%%typeset with the following code
+%\begin{verbatim}
+%{\boldmath\[f(t)=
+%f(t) = \frac{1}{2\ISOpi\iu} -\mkern-19mu
+%   \int_{\sigma-\iu\infty}^{\sigma+\iu\infty}\eu^{pt}\diff p 
+%     \qquad \text{for } \sigma > \sigma\ped{c}
+%\]}
+%\end{verbatim}
+% Notice the the use of |\boldmath| does not imply the use
+% of new math groups; but the bold upright $\ISOpi$ is rendered
+% without any problem.
+% \subparagraph{Various styles of Greek fonts} Here are some
+% examples of Greek fonts in various styles;  within the same
+% table bold and medium series fonts stay side by side, as well
+% as font coming from different families.\medskip
+%
+%\bgroup\begin{lrbox}{0}
+%\begin{tabular}{@{}ll@{}}
+%\cs{ISOgamma}, \cs{ISOzeta}, \cs{ISOeta}, \cs{ISOOmega}&
+%$\ISOgamma, \ISOzeta, \ISOeta, \ISOOmega$\\
+%\cs{ISOgamma}[bx], \cs{ISOzeta}[bx], \cs{ISOeta}[bx], \cs{ISOOmega}[bx]&
+%$\ISOgamma[bx], \ISOzeta[bx], \ISOeta[bx], \ISOOmega[bx]$\\
+%\cs{ISOgamma}\{lmss\}, \cs{ISOzeta}\{lmss\}, \cs{ISOeta}\{lmss\}, \cs{ISOOmega}\{lmss\}&
+%$\ISOgamma{lmss}, \ISOzeta{lmss}, \ISOeta{lmss}, \ISOOmega{lmss}$\\
+%\cs{ISOgamma}\{artemisia\}, \cs{ISOzeta}\{artemisia\}, \cs{ISOeta}\{artemisia\}, \cs{ISOOmega}\{artemisia\}&
+%$\ISOgamma{artemisia}, \ISOzeta{artemisia}, \ISOeta{artemisia}, \ISOOmega{artemisia}$\\
+%\cs{ISOgamma}(rs), \cs{ISOzeta}(rs), \cs{ISOeta}(rs), \cs{ISOOmega}(rs)&
+%$\ISOgamma(rs), \ISOzeta(rs), \ISOeta(rs), \ISOOmega(rs)$\\
+%\end{tabular}\end{lrbox}
+%\noindent\resizebox{\textwidth}{!}{\usebox{0}}\egroup
+%
+%\section{Final remarks}
+% This package |pm-isomath| is far from perfect, and its results are
+% questionable; of course poor man solutions are just patches;
+% incomplete solutions; But the results are not so bad. It has
+% the indubitable advantage that is does not use any math group,
+% therefore there is no risk to exceed the limit of 16~math groups.
+%
+% \StopEventually{}
+%
+% \section{The code}
+% This package was loosely inspired by the |ISOmath| package
+% by Günter Milde, but tacles the problem of insuffiente maximum
+% number of math font groups so as to avoid any problem with such
+% groups, and therfore all the caveats in Milde's package. That
+% package is much more comfortable to use then this one; but
+% it is subject to a number of conditions the, depending on the
+% user environment, may even result in a complete failure. This
+% package avoids problema with math font groups because it does
+% not use any, but it is not so comfortable to use because often
+% the user has to specify optional settings.
+%
+%The preliminary lines have been already defined; therefore we
+% start with real code.
+%
+%The trick of this package is that all fonts different from the
+% four or six (including the AMS symbol fonts) are textual fonts
+% used in math typesetting through the intermediate action of
+% the |\text| command defined by the |amsmath| package.
+% Therefore we start by verifying if packages |amsmath|,
+% |alphabeta| and |xparse| have already been loaded by in the
+% preamble document; this implies a weak loading order, that is this
+% package must be loaded after all the above packages are loaded;
+% in facts of such packages are not loaded, they are by this
+% package, and they are loaded without options. The package
+% loading mechanism assures avoiding conflicts if packages are
+% loaded without options; this is why if one of the three packages
+% is loaded after this one but with some option specified an
+% ``Option clash"" error flag is raised; this is where the
+% ``weak'' loading error becomes an very ``strong'' one.
+ 
+%\iffalse
+%<*style>
+%\fi
+%    \begin{macrocode}
+% The we verify if the document is being typeset with \pdfLaTeX;
+% it it is not; and error flag is raised and reading of this
+% package is immediately interrupted. For this purpose we need
+% an engine-detecting package, and we generally use the |iftex| one.
+\@ifpackageloaded{iftex}{}{\RequirePackage{iftex}}
+\unless\ifPDFTeX
+    \PackageError{ISOrules4pdfLaTeX}{%
+       ******************************************\MessageBreak
+       This package should be used only when     \MessageBreak
+       typesetting with pdfLaTeX.                \MessageBreak
+       Skipping loading the package              \MessageBreak
+       ******************************************\MessageBreak
+    }{%
+       ******************************************\MessageBreak
+       Press the X key and restart typesetting   \MessageBreak
+       while using pdfLaTeX\MessageBreak
+       ******************************************\MessageBreak
+    }
+\expandafeter\@firstoftwo
+\else
+    \PackageInfo{ISOrules4pdfLaTeX}{%
+       ******************************************\MessageBreak
+       Typesetting this document with pdfLaTeX!  \MessageBreak
+       ******************************************\MessageBreak
+    }
+\expandafter\@secondoftwo
+\fi
+{\endinput}{\relax}
+%    \end{macrocode}
+% Actually this package accepts an option: |engineer|. This
+% option is for deciding if the imaginary uit should be
+% defined as `i' or `j'. As we have remarked in the previous
+% documentation, engineers, especially those who deal with
+% electricity and electrical quantities, but also electronics
+% and telecommunications engineers, use only `j'; all these
+% varieties of engineers could not do anything in their profession
+% if they don't use complex  numbers and quantities (the latter
+% called phasors). possible they are the applied scientists
+% who use complex numbers more than any other scientist.
+% This option has not been used to prepare this documented \TeX\ file.
+%    \begin{macrocode}
+\newif\ifengineer \engineerfalse
+\DeclareOption{engineer}{\engineertrue}
+\ProcessOptions*\relax
+%    \end{macrocode}
+% Are the necessary packages already loaded?
+%    \begin{macrocode}
+\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}}
+\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}}
+%    \end{macrocode}
+% Now we have almost alla software instruments available. We
+% define a macro to switch the definitions of certain math
+% Greek symbols; some of these are defined in the \LaTeX\ 
+% kernel: the lowercase Greek variant letters; some others
+% are defined in the |amsmath| package: the uppercase slanted
+% greek letters. all these variant lettere have a name identical
+% to the regular ones but prefixed with the string |var|;
+% example |\epsilon| and |\varepsilon|, |\Omega| and |\varOmega|.
+% We switch the control sequence definitions between the |var|-less
+% ones and the |var|-prefixed ones. The first  group of lowercase
+% letters is switched because the glyphs give a better match with
+% those produced with the textual Greek glyphs obtained when
+% the ISO macros are used.
+%    \begin{macrocode}
+\newcommand\switchvarsymbols[1]{%
+\letcs{\tempA}{#1}\csletcs{#1}{var#1}\cslet{var#1}{\tempA}}
+%%%% 
+\switchvarsymbols{epsilon}
+\switchvarsymbols{theta}
+\switchvarsymbols{rho}
+\switchvarsymbols{phi}
+%%%%%
+\switchvarsymbols{Gamma}
+\switchvarsymbols{Delta}
+\switchvarsymbols{Theta}
+\switchvarsymbols{Lambda}
+\switchvarsymbols{Xi}
+\switchvarsymbols{Pi}
+\switchvarsymbols{Sigma}
+\switchvarsymbols{Upsilon}
+\switchvarsymbols{Phi}
+\switchvarsymbols{Psi}
+\switchvarsymbols{Omega}
+%    \end{macrocode}
+% Eventually we load the |alphabeta| package; this package
+% allows using the same macros used in math mode while
+% typesetting in text mode. We find it very useful in this
+% package.
+%    \begin{macrocode}
+\@ifpackageloaded{alphabeta}{}{\RequirePackage{alphabeta}}
+%    \end{macrocode}
+% The next line defines the default family, series and shape
+% to be used in the macros that follow; as it can be seen
+% the default family is the Latin Modern regular (or roman);
+% the series i medium and the shape is normal (or upright).
+% The codes used are the same used in the font description
+% files with extension |.fd|. their name if obtained by merging
+% the encoding name with the family name; Therefore the default
+% font description  file for Latin Characters is |t1lmr.fd|,
+% while the one for Greek characters is |lgrlmr.fd|; these
+% files define the series the contains that are identified
+% with codes such as |m| (medium); |bx| (bold extended);
+% |b| (bold). Other fonts, with different series may have
+% also other codes. For each series the |.fd| defines the
+% codes for shapes, and for every valid combination of
+% series, shape and sizes it defines the specific font file
+% to use. 
+
+% We should not care for the font names, but in order to use
+% different font families, series, and shapes the user should
+% know their codes. this is generally a difficult task, but
+% not impossible; is ``suffices'' to open the packages that
+% allow to use the desired fonts, read the code and fin out
+% the names of the |.fd| files; then search this file on the
+% trees of the \TeX\ system, and eventually find out the
+% codes for the available series and shapes.
+% 
+% for the Latin and Greek |.fd| file we havethe series and
+% shapes shown in table~\ref{tab:lmr-series-shapes}.
+%
+%\begin{table}[!tb]\centering
+%\begin{tabular}{llllll}
+%\toprule
+%       &      & \multicolumn2c{Latin (T1)} 
+%                      & \multicolumn2c{Greek (LGR)} \\
+%\cmidrule(r){3-4} \cmidrule(l){5-6}
+%Series & Code & Shape   & Code & Shape     & Code \\
+%\midrule
+%medium &  m   & normal          &  n   & normal        & n    \\
+%       &      & italics         & it   & italics       & it   \\
+%       &      & slanted         & sl   & slanted       & sl   \\
+%       &      &                 &      & lipsian       & li   \\
+%       &      &                 &      & serif         & rs   \\
+%       &      &                 &      & serif oblique & ro   \\
+%       &      & upright italics &  ui  & upright italics& ui  \\
+%       &      & small caps      & sc   & small caps    & sc   \\
+%\midrule
+% bold  &   b  & 				 &		& lipsian		& li   \\
+%		&	   & normal			 & n	&				&      \\
+%		%      & slanted		 & sl	&				&	   \\
+%\midrule
+% bold extended&bx& normal       & n    & normal        & n    \\
+%       &      & italics         & it   & italics		& it   \\
+%		&	   & slanted         & sl   & slanted       & sl   \\
+%       &      &				 &		& lipsian       & li   \\
+%		%	   &				 &		& serif         & rs   \\
+%		%	   &				 &		& serif oblique & rs   \\
+%		&	   &				 %      & upright italics& ui  \\
+%		&	   &				 &		& small caps	& sc   \\
+%\bottomrule
+%\end{tabular}
+%\caption{Seres and shapes available with the Latin Modern regular family with Latin and Greek fonts}
+%\label{tab:lmr-series-shapes}
+%\end{table}
+%
+%
+%
+%
+%%%%%% Queste sono le impostazioni di default per la famiglia,
+%%%%%% la serie e la forma:
+%    \begin{macrocode}
+\def\ISOfam{lmr}\def\ISOser{m}\def\ISOsha{n}
+%    \end{macrocode}
+%
+% As explained in the initial documentation all fonts changing
+% commands are constructed in such a way as to have a default
+% family, series and shape common  to both Latin and Greek fonts;
+% therefore with thre optional arguments that the user can
+% specify with different delimiters but respecting their order,
+% the user can get eight different choice combinations that
+% allow the selection of an almost limited less number of
+% different looks.
+%
+% We now define the mains macros and service macros that allow
+% such font selection; We have ti create similar macros that
+% mostly differ in the choice of the encoding for Latin or
+%  for Greek letters.
+%
+% The user macros are defined by meanso of the defining commands
+% provided by the |xparse| package, while the service macros use
+% normal \LaTeX\ commands. The user commands follow this special
+% syntax:
+%\begin{ttsintassi}
+%\cs{MathLatin}\marg{Latin letter}\marg{family}\oarg{series}\parg{shape}
+%\cs{MathGreek}\marg{Greek letter}\marg{family}\oarg{series}\parg{shape}
+%\end{ttsintassi}
+% where in both cases the last three arguments are differently
+% delimited values, even the first one of the three, in spite
+% of being delimited by curly braces. In both cases the only
+% mandatory argument is the Latin or Greek letter; the latter
+% one my be specified by the macros |\alpha|, |\beta|,\dots,
+% |\Omega|, the same ones that are normally used in math.
+%    \begin{macrocode}
+\NewDocumentCommand\MathLatin{m gO{m}D(){it}}{\bgroup
+\edef\y{\IfNoValueTF{#2}{\ISOfam}{#2}}%
+\edef\x{\noexpand\egroup\noexpand\MLatin{\noexpand#1}{\y}}\x{#3}{#4}}
+
+\providecommand\MLatin[4]{\text{%
+\def\ISOfam{#2}\def\ISOser{#3}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{}%
+\usefont{T1}{\ISOfam}{\ISOser}{\ISOsha}#1}}
+
+\NewDocumentCommand\MathGreek{ m g O{m} d()}{%
+\edef\y{\IfNoValueTF{#2}{\ISOfam}{#2}}%
+\edef\x{\IfNoValueTF{#4}{\ISOsha}{#4}}%
+\MGreek{#1}{\y}{#3}{\x}}
+
+\newcommand{\MGreek}[4]{\text{%
+\def\ISOfam{#2}\def\ISOser{#3}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{}%
+{\usefont{LGR}{\ISOfam}{\ISOser}{\ISOsha}#1}}}
+
+%    \end{macrocode}
+% We now define the macros for all lowercase Greek letters
+% and several Uppercase ones (even some that are identical
+% to some Latin Letters) that should save several keystrokes
+% when entering Greek letters in the source file. The shorter
+% the code to type in, the smaller the the number of typos.
+%    \begin{macrocode}
+\newcommand\ISOalpha{\MathGreek{\alpha}}
+\newcommand\ISObeta{\MathGreek{\beta}}
+\newcommand\ISOgamma{\MathGreek{\gamma}}
+\newcommand\ISOdelta{\MathGreek{\delta}}
+\newcommand\ISOepsilon{\MathGreek{\epsilon}}
+\newcommand\ISOzeta{\MathGreek{\zeta}}
+\newcommand\ISOeta{\MathGreek{\eta}}
+\newcommand\ISOtheta{\MathGreek{\theta}}
+\newcommand\ISOiota{\MathGreek{\iota}}
+\newcommand\ISOkappa{\MathGreek{\kappa}}
+\newcommand\ISOlambda{\MathGreek{\lambda}}
+\newcommand\ISOmu{\MathGreek{\mu}}
+\newcommand\ISOnu{\MathGreek{\nu}}
+\newcommand\ISOxi{\MathGreek{\xi}}
+\newcommand\ISOomicron{\MathGreek{\omicron}}
+\newcommand\ISOpi{\MathGreek{\pi}}
+\newcommand\ISOrho{\MathGreek{\rho}}
+\newcommand\ISOsigma{\MathGreek{\sigma}}
+\newcommand\ISOtau{\MathGreek{\tau}}
+\newcommand\ISOupsilon{\MathGreek{\upsilon}}
+\newcommand\ISOphi{\MathGreek{\phi}}
+\newcommand\ISOchi{\MathGreek{\chi}}
+\newcommand\ISOpsi{\MathGreek{\psi}}
+\newcommand\ISOomega{\MathGreek{\omega}}
+\newcommand\ISOGamma{\MathGreek{\Gamma}}
+\newcommand\ISODelta{\MathGreek{\Delta}}
+\newcommand\ISOEta{\MathGreek{\Eta}}
+\newcommand\ISOTheta{\MathGreek{\Theta}}
+\newcommand\ISOLambda{\MathGreek{\Lambda}}
+\newcommand\ISOXi{\MathGreek{\Xi}}
+\newcommand\ISOPi{\MathGreek{\Pi}}
+\newcommand\ISORho{\MathGreek{\Rho}}
+\newcommand\ISOSigma{\MathGreek{\Sigma}}
+\newcommand\ISOUpsilon{\MathGreek{\Upsilon}}
+\newcommand\ISOPhi{\MathGreek{\Phi}}
+\newcommand\ISOChi{\MathGreek{\Chi}}
+\newcommand\ISOPsi{\MathGreek{\Psi}}
+\newcommand\ISOOmega{\MathGreek{\Omega}}
+%    \end{macrocode}
+% We redefine also the |\mathrm| and |\mathit| so that if they
+% have to contain Greek letters the default shape is set equal
+% to that of the enclosing command. Such macros are just those
+% defined in the \LaTeX\ kernel where the |\ISOsha| redefinition
+% is added.
+%    \begin{macrocode}
+\DeclareRobustCommand{\mathrm}%
+{\relax\ifmmode\else\expandafter\non at alpherr
+\csname mathrm \endcsname\fi
+\def\ISOsha{n}\expandafter\use at mathgroup
+\csname M at OT1\endcsname\symoperators}
+
+\DeclareRobustCommand{\mathit}%
+{\relax\ifmmode\expandafter\non at alpherr
+\csname mathit \endcsname\fi
+\def\ISOsha{it}\expandafter\use at mathgroup
+\csname M at OT1\endcsname{9}}
+%    \end{macrocode}
+% Imitating the |ISOmath| package we define also the macros
+% for selecting the bold italics (produces results similar
+% to those obtained with package|bm|, but it does not require
+% any math group), and sans serif in  both normal and bold
+% slanted shape.
+%    \begin{macrocode}
+\newcommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
+\newcommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
+\newcommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}
+%    \end{macrocode}
+% Package |ISOmath| defines macros for typesetting vectors,
+% matrices and tensors; we do the same, but avoid the
+% abbreviation |sym| in place of |symbol|.
+%    \begin{macrocode}
+\let\vectorsymbol\mathbfit
+\let\matrixsymbol\mathbfit
+\let\tensorsymbol\mathsfbfit
+%    \end{macrocode}
+%
+% We now define some macros for setting some elements in the
+% proper fonts; the ideaa is the same as that for vectors,
+% matrices and tensors, except that these macros produce
+% directly the desired symbol without using arguments, if
+% possible.
+%
+% The imaginary unit is subject to the state of the |engineer|
+% switch, set with the proper option on calling the package.
+% If such option has been specifies in calling this package,
+% the |\iu| command is let to |\junit|, otherwise it's let
+% to |\iunit|. In spite of this option driven aliases, both
+% commands |\iunit| and |\junit| are stille available to the
+% user.
+%
+% The Napier number `e' is defined in roman type, but as an
+% operator; this number is not an operator in the mathematical
+% sense, but it is most often uses as the base of an exponential;
+% therefore such mathematica ``atom'' must be treated as an
+% operator as well as when the official operator macro |\exp|
+% is used.
+%
+% The transcendental number $\ISOpi$, different from the plane
+% angle $\pi$, is defined so as to be typeset in upright
+% style; similar definitions may be used for other numerical
+% constants; we define just |\uppi| because we think it is the
+% most used symbol in any kind of mathematics. The
+% $\ISOpi{lmss}(n)$ Greek letter in upright sans serif font
+% may indicate the subatomic particle ``pion'' so that a
+% similar macro, say, |\sspi| or, more expressively, |\pion|
+% may be given a suitable definition.
+%
+% The differential symbol is not an operator, but it requires
+% a special treatment; a macro |\diff| for the differential
+% symbol uses an empty`operator' and a negative shift to typeset
+% an upright letter `d'  with an operator spacing on its left,
+% so that proper spacing is used in math typesetting; Notice
+% that the given definition does not perform as the direct
+% use of a thin math space before the upright `d', because
+% spacing bteween math atoms depends on their category, while
+% the thin space |\,| is absolute and does not change depending
+% on the preceding math atom.
+%
+% The command |\unit| for appending the units of measure to
+% the numerical value of the measure is added if no packages
+% have already defined it; package |siunitx| is a particularly
+% recommended one.  Similar considerations hold true for the
+% |\ap| and |\ped| (apex and pedex, respectively; i.e\ 
+% superscript and subscript); therefore such command definitions
+% are deferred to the start of the document so as to be sure
+% to avoid damaging other package settings. All these commands
+% may be used in both text and math modes; therefore a robust
+% macro |\textormath| is (re)defined even if often such command
+% is already available; the |\DeclareRobustCommand| unconditionally
+% declares and redeclares robust commands even if they are
+% already defined; possibly an information line is written in
+% the |.log| file in case a redefinition takes palace. These
+% commands typeset their arguments in upright math fonts, but
+% with the current font in text mode.
+%
+% The |\ohm| and |\micro| macros produce their symbols in
+% upright style while in math mode, and with the current
+% font and shape in text mode.
+%
+%    \begin{macrocode}
+\newcommand\iunit{\MathLatin{i}(n)}
+\newcommand\junit{\MathLatin{j}(n)}
+\ifengineer
+   \let\iu\junit
+\else
+   \let\iu\iunit
+\fi
+% i
+\let\eu\undefined
+\DeclareMathOperator\eu{\MathLatin{e}(n)}
+\providecommand\uppi{}
+\renewcommand\uppi{\ISOpi(n)}
+% 
+\providecommand*\diff{}
+\renewcommand*\diff{\ensuremath{\mathop{}\!\MathLatin{d}(n)}}
+% 
+\providecommand*\micro{}
+\renewcommand*\micro{\textormath{\ifcsdef{textmicro}%
+{\textmicro}{\ISOmu(rs)}}{\ISOmu(rs)}}
+% 
+\providecommand*\ohm{}
+\AtBeginDocument{\@ifpackageloaded{textcomp}{%
+\renewcommand*\ohm{\textormath{{\textohm}}{\ISOOmega(n)}}}%
+{\renewcommand*\ohm{\textormath{\ISOOmega(\f at shape)}{\ISOOmega(n)}}}}
+% 
+\global\csletcs{bbl at it@ped}{undefined}
+\global\csletcs{bbl at it@ap}{undefined}
+%
+\DeclareRobustCommand\textormath{%
+\unless\ifmmode\expandafter\@firstoftwo
+\else\expandafter\@secondoftwo\fi}
+%
+\AfterEndPreamble{\let\ped\undefined\let\ap\endefined
+\DeclareRobustCommand*\ped[1]{%
+\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}}%
+%
+\providecommand\ap{}
+\DeclareRobustCommand\ap[1]{%
+\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
+%
+\unless\ifcsname unit\endcsname
+\DeclareRobustCommand{\unit}[1]{\,\textormath{#1}{\mathrm{#1}}}
+\fi}
+
+\endinput
+%    \end{macrocode}
+%This is the end
+%\begin{center}
+%\LARGE HAPPY \TeX{}ing\,!
+%\end{center}
+%\iffalse
+%</style>
+%\fi
+
+%\Finale
+% \endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty	2017-12-04 22:48:32 UTC (rev 45987)
@@ -0,0 +1,202 @@
+%%
+%% This is file `pm-isomath.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pm-isomath.dtx  (with options: `style')
+%%   ______________________________________________________
+%%   The PM-ISOmath bundle
+%%   Copyright (C) 2017 Claudio Beccari
+%%   All rights reserved
+%% 
+%%   License information appended
+%% 
+\NeedsTeXFormat{LaTeX2e}[2017/01/01]
+\ProvidesPackage{pm-isomath}[%
+2017/08/22 v.1.0.00
+Poor man package for typesetting ISO compliant math when using pdfLaTeX]
+
+%%typeset with the following code
+
+\@ifpackageloaded{iftex}{}{\RequirePackage{iftex}}
+\unless\ifPDFTeX
+    \PackageError{ISOrules4pdfLaTeX}{%
+       ******************************************\MessageBreak
+       This package should be used only when     \MessageBreak
+       typesetting with pdfLaTeX.                \MessageBreak
+       Skipping loading the package              \MessageBreak
+       ******************************************\MessageBreak
+    }{%
+       ******************************************\MessageBreak
+       Press the X key and restart typesetting   \MessageBreak
+       while using pdfLaTeX\MessageBreak
+       ******************************************\MessageBreak
+    }
+\expandafeter\@firstoftwo
+\else
+    \PackageInfo{ISOrules4pdfLaTeX}{%
+       ******************************************\MessageBreak
+       Typesetting this document with pdfLaTeX!  \MessageBreak
+       ******************************************\MessageBreak
+    }
+\expandafter\@secondoftwo
+\fi
+{\endinput}{\relax}
+\newif\ifengineer \engineerfalse
+\DeclareOption{engineer}{\engineertrue}
+\ProcessOptions*\relax
+\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+\@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}}
+\@ifpackageloaded{xparse}{}{\RequirePackage{xparse}}
+\newcommand\switchvarsymbols[1]{%
+\letcs{\tempA}{#1}\csletcs{#1}{var#1}\cslet{var#1}{\tempA}}
+%%%%
+\switchvarsymbols{epsilon}
+\switchvarsymbols{theta}
+\switchvarsymbols{rho}
+\switchvarsymbols{phi}
+%%%%%
+\switchvarsymbols{Gamma}
+\switchvarsymbols{Delta}
+\switchvarsymbols{Theta}
+\switchvarsymbols{Lambda}
+\switchvarsymbols{Xi}
+\switchvarsymbols{Pi}
+\switchvarsymbols{Sigma}
+\switchvarsymbols{Upsilon}
+\switchvarsymbols{Phi}
+\switchvarsymbols{Psi}
+\switchvarsymbols{Omega}
+\@ifpackageloaded{alphabeta}{}{\RequirePackage{alphabeta}}
+
+%%      & slanted  & sl & &    \\
+%%    &  & & serif         & rs   \\
+%%    &  & & serif oblique & rs   \\
+%%%%%% Queste sono le impostazioni di default per la famiglia,
+%%%%%% la serie e la forma:
+\def\ISOfam{lmr}\def\ISOser{m}\def\ISOsha{n}
+\NewDocumentCommand\MathLatin{m gO{m}D(){it}}{\bgroup
+\edef\y{\IfNoValueTF{#2}{\ISOfam}{#2}}%
+\edef\x{\noexpand\egroup\noexpand\MLatin{\noexpand#1}{\y}}\x{#3}{#4}}
+
+\providecommand\MLatin[4]{\text{%
+\def\ISOfam{#2}\def\ISOser{#3}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{}%
+\usefont{T1}{\ISOfam}{\ISOser}{\ISOsha}#1}}
+
+\NewDocumentCommand\MathGreek{ m g O{m} d()}{%
+\edef\y{\IfNoValueTF{#2}{\ISOfam}{#2}}%
+\edef\x{\IfNoValueTF{#4}{\ISOsha}{#4}}%
+\MGreek{#1}{\y}{#3}{\x}}
+
+\newcommand{\MGreek}[4]{\text{%
+\def\ISOfam{#2}\def\ISOser{#3}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{}%
+{\usefont{LGR}{\ISOfam}{\ISOser}{\ISOsha}#1}}}
+
+\newcommand\ISOalpha{\MathGreek{\alpha}}
+\newcommand\ISObeta{\MathGreek{\beta}}
+\newcommand\ISOgamma{\MathGreek{\gamma}}
+\newcommand\ISOdelta{\MathGreek{\delta}}
+\newcommand\ISOepsilon{\MathGreek{\epsilon}}
+\newcommand\ISOzeta{\MathGreek{\zeta}}
+\newcommand\ISOeta{\MathGreek{\eta}}
+\newcommand\ISOtheta{\MathGreek{\theta}}
+\newcommand\ISOiota{\MathGreek{\iota}}
+\newcommand\ISOkappa{\MathGreek{\kappa}}
+\newcommand\ISOlambda{\MathGreek{\lambda}}
+\newcommand\ISOmu{\MathGreek{\mu}}
+\newcommand\ISOnu{\MathGreek{\nu}}
+\newcommand\ISOxi{\MathGreek{\xi}}
+\newcommand\ISOomicron{\MathGreek{\omicron}}
+\newcommand\ISOpi{\MathGreek{\pi}}
+\newcommand\ISOrho{\MathGreek{\rho}}
+\newcommand\ISOsigma{\MathGreek{\sigma}}
+\newcommand\ISOtau{\MathGreek{\tau}}
+\newcommand\ISOupsilon{\MathGreek{\upsilon}}
+\newcommand\ISOphi{\MathGreek{\phi}}
+\newcommand\ISOchi{\MathGreek{\chi}}
+\newcommand\ISOpsi{\MathGreek{\psi}}
+\newcommand\ISOomega{\MathGreek{\omega}}
+\newcommand\ISOGamma{\MathGreek{\Gamma}}
+\newcommand\ISODelta{\MathGreek{\Delta}}
+\newcommand\ISOEta{\MathGreek{\Eta}}
+\newcommand\ISOTheta{\MathGreek{\Theta}}
+\newcommand\ISOLambda{\MathGreek{\Lambda}}
+\newcommand\ISOXi{\MathGreek{\Xi}}
+\newcommand\ISOPi{\MathGreek{\Pi}}
+\newcommand\ISORho{\MathGreek{\Rho}}
+\newcommand\ISOSigma{\MathGreek{\Sigma}}
+\newcommand\ISOUpsilon{\MathGreek{\Upsilon}}
+\newcommand\ISOPhi{\MathGreek{\Phi}}
+\newcommand\ISOChi{\MathGreek{\Chi}}
+\newcommand\ISOPsi{\MathGreek{\Psi}}
+\newcommand\ISOOmega{\MathGreek{\Omega}}
+\DeclareRobustCommand{\mathrm}%
+{\relax\ifmmode\else\expandafter\non at alpherr
+\csname mathrm \endcsname\fi
+\def\ISOsha{n}\expandafter\use at mathgroup
+\csname M at OT1\endcsname\symoperators}
+
+\DeclareRobustCommand{\mathit}%
+{\relax\ifmmode\expandafter\non at alpherr
+\csname mathit \endcsname\fi
+\def\ISOsha{it}\expandafter\use at mathgroup
+\csname M at OT1\endcsname{9}}
+\newcommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
+\newcommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
+\newcommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}
+\let\vectorsymbol\mathbfit
+\let\matrixsymbol\mathbfit
+\let\tensorsymbol\mathsfbfit
+\newcommand\iunit{\MathLatin{i}(n)}
+\newcommand\junit{\MathLatin{j}(n)}
+\ifengineer
+   \let\iu\junit
+\else
+   \let\iu\iunit
+\fi
+\let\eu\undefined
+\DeclareMathOperator\eu{\MathLatin{e}(n)}
+\providecommand\uppi{}
+\renewcommand\uppi{\ISOpi(n)}
+\providecommand*\diff{}
+\renewcommand*\diff{\ensuremath{\mathop{}\!\MathLatin{d}(n)}}
+\providecommand*\micro{}
+\renewcommand*\micro{\textormath{\ifcsdef{textmicro}%
+{\textmicro}{\ISOmu(rs)}}{\ISOmu(rs)}}
+\providecommand*\ohm{}
+\AtBeginDocument{\@ifpackageloaded{textcomp}{%
+\renewcommand*\ohm{\textormath{{\textohm}}{\ISOOmega(n)}}}%
+{\renewcommand*\ohm{\textormath{\ISOOmega(\f at shape)}{\ISOOmega(n)}}}}
+\global\csletcs{bbl at it@ped}{undefined}
+\global\csletcs{bbl at it@ap}{undefined}
+\DeclareRobustCommand\textormath{%
+\unless\ifmmode\expandafter\@firstoftwo
+\else\expandafter\@secondoftwo\fi}
+\AfterEndPreamble{\let\ped\undefined\let\ap\endefined
+\DeclareRobustCommand*\ped[1]{%
+\textormath{\textsubscript{#1}}{_{\mathrm{#1}}}}%
+\providecommand\ap{}
+\DeclareRobustCommand\ap[1]{%
+\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}}%
+\unless\ifcsname unit\endcsname
+\DeclareRobustCommand{\unit}[1]{\,\textormath{#1}{\mathrm{#1}}}
+\fi}
+
+%% 
+%% Copyright 2017 Claudio Beccari
+%% 
+%% Distributable under the LaTeX Project Public License,
+%% version 1.3c or higher (your choice). The latest version of
+%% this license is at: http://www.latex-project.org/lppl.txt
+%% 
+%% This work is "author-maintained"
+%% 
+%% This work consists of this file pm-isomath.dtx, a README file
+%% the manifest.txt file, and the derived files:
+%%     pm-isomath.sty, pm-isomath.pdf.
+%% 
+%%
+%% End of file `pm-isomath.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-12-04 21:58:22 UTC (rev 45986)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2017-12-04 22:48:32 UTC (rev 45987)
@@ -492,7 +492,7 @@
     pl placeat placeins placeins-plain
     plain-doc plainpkg plari plantslabels plates
     platex platex-tools platexcheat play playfair plex plex-otf plipsum
-    plnfss plstmary plweb pmgraph pmx pmxchords pnas2009
+    plnfss plstmary plweb pm-isomath pmgraph pmx pmxchords pnas2009
     poemscol poetry poetrytex polski poltawski
     polyglossia polynom polynomial
     polytable postcards poster-mac powerdot powerdot-FUBerlin

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2017-12-04 21:58:22 UTC (rev 45986)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2017-12-04 22:48:32 UTC (rev 45987)
@@ -130,6 +130,7 @@
  'ascii-font',  "&MAKEflatten",
  'astron',      "die 'skipping, nonfree license'",
  'atqolive',    "die 'skipping, nonfree font'",
+ 'auctex',      "die 'skipping, as it is Emacs'",
  'augie',       "&MAKEaugie",
  'aurical',     "&MAKEaurical",
  'aurora',      "die 'skipping, nocommercial license'",

Modified: trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2017-12-04 21:58:22 UTC (rev 45986)
+++ trunk/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc	2017-12-04 22:48:32 UTC (rev 45987)
@@ -116,6 +116,7 @@
 depend oubraces
 depend perfectcut
 depend physics
+depend pm-isomath
 depend prftree
 depend proba
 depend prooftrees

Added: trunk/Master/tlpkg/tlpsrc/pm-isomath.tlpsrc
===================================================================


More information about the tex-live-commits mailing list