texlive[59269] Master/texmf-dist: pm-isomath (19may21)

commits+karl at tug.org commits+karl at tug.org
Wed May 19 21:59:58 CEST 2021


Revision: 59269
          http://tug.org/svn/texlive?view=revision&revision=59269
Author:   karl
Date:     2021-05-19 21:59:58 +0200 (Wed, 19 May 2021)
Log Message:
-----------
pm-isomath (19may21)

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

Modified: trunk/Master/texmf-dist/doc/latex/pm-isomath/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pm-isomath/README.txt	2021-05-19 19:59:40 UTC (rev 59268)
+++ trunk/Master/texmf-dist/doc/latex/pm-isomath/README.txt	2021-05-19 19:59:58 UTC (rev 59269)
@@ -1,4 +1,4 @@
-  README.txt file for pm-isomath.sty  2021/05/03 v.1.1.01
+  README.txt file for pm-isomath.sty  2021/05/15 v.1.1.07
 
  
   Distributable under the LaTeX Project Public License,

Modified: trunk/Master/texmf-dist/doc/latex/pm-isomath/pm-isomath.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx	2021-05-19 19:59:40 UTC (rev 59268)
+++ trunk/Master/texmf-dist/source/latex/pm-isomath/pm-isomath.dtx	2021-05-19 19:59:58 UTC (rev 59269)
@@ -50,7 +50,7 @@
 %
 % \iffalse
 %^^A The following trick uses the same date for every file header.
-%<style>\NeedsTeXFormat{LaTeX2e}[2017/01/01]
+%<style>\NeedsTeXFormat{LaTeX2e}[2019/01/01]
 %<*driver>
 \ProvidesFile{pm-isomath.dtx}[%
 %</driver>
@@ -57,7 +57,7 @@
 %<style>\ProvidesPackage{pm-isomath}[%
 %<txt>\ProvidesFile{README.txt}[%
 %<*driver,style,txt>
-  2021/05/03 v.1.1.01 
+  2021/05/15 v.1.1.07 
 %<txt>  README file for pm-isomath.sty]
 %<style>Poor man package for typesetting ISO compliant math when using pdfLaTeX]
 %</driver,style,txt>
@@ -104,7 +104,7 @@
 %</driver>
 % \fi
 %
-% \CheckSum{460}%
+% \CheckSum{501}%
 % \begin{abstract}
 % The ISO regulations for typesetting math in the field of physics
 % and technology are pretty stringent and imply legal questions
@@ -113,8 +113,8 @@
 % fulfil such regulations 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
+% Authors may not like them, but in the field 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
@@ -129,8 +129,8 @@
 % \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 lets understand that
+% and experimental sciences; their title explicitly mentions “physics
+% and technology”, but their careful reading lets us understand that
 % they apply to all sciences that use the “mathematics of
 % quantities”. Such entities form a special group or space,
 % where the elements are couples of two ordered entities $(x, y)$,
@@ -145,7 +145,7 @@
 % is always accompanied by a certain degree of uncertainty;
 % metrologists are the masters in measuring quantities
 % and handling their measures and uncertainties, but although
-% for simplicity measures are handled by lay people as rational
+% for simplicity laypeople handles measures  as if hey were rational
 % numbers (after all aren't they the ratio of something to be
 % measured and the unit of measure?) we are facing the domain
 % of fuzzy sets.
@@ -156,13 +156,13 @@
 % where the ISO regulations set some order and establish
 % 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
+% of the Comité International des Poids et Mesures, that
 % established the International System of measures 
-% (Systhème International, SI).
+% (Systè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
+% letters of the Latin and Greek alphabets almost none is available
 % to be used for other purposes.
 %
 % This means that the usual math italic alphabet can be used for
@@ -186,8 +186,7 @@
 % 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
+% \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 Institution that
 % several years ago was appointed to replace the United States
 % National Bureau of Standards. Their staff is made essentially
@@ -206,10 +205,9 @@
 % is not a limitation set forth by the underlying interpreter
 % \pdfTeX. Matter of fact there exists the quite recent
 % LibertinusT1math fonts for \pdfLaTeX, created by Michael Sharpe,
-% that, to my best knowledge, are the only math fonts with 256 glyph
-% encodings. Package |libertinust1math| accepts the |ISO| option
+% that, to my best knowledge, are the only math 8-bit encoded fonts with 256 glyphs. Package |libertinust1math| accepts the |ISO| option
 % that allows to fulfil the ISO regulations; it accepts other
-% options; depending on which options are specified the number
+% options; depending on which ones are specified 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 most user requirements.
@@ -218,7 +216,7 @@
 % 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
+% 1994, when \LaTeX\,2.09 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
@@ -225,8 +223,8 @@
 % other typesetting program at least when the latter does not
 % use some \TeX\ software.
 %
-% The handicap I am talking about is the way math alphabets, at
-% the moment, are handled by \pdfTeX\ and \LaTeX; such alphabets
+% By now, the handicap I am talking about is the way math alphabets
+% are handled 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
@@ -250,7 +248,7 @@
 % 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
+% but evidently he was wrong. Users who use packages such
 % as the Fourier or the KPfonts have to pay special attention
 % to the package documentation because they might specify
 % options that imply loading up to 14 math groups.
@@ -283,7 +281,7 @@
 % \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 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 
@@ -291,11 +289,11 @@
 %   one that represents math. Unfortunately some 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 
+%   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.
+%   meaning of what it is being typeset.
 % \item
 %   All quantity symbols must be set in italics, slanted type
 %   is allowed, but serifed italics should be preferred unless 
@@ -304,7 +302,7 @@
 %   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) must be set  in 
+%   engineering, (i in other applied sciences) must be set 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$
@@ -321,7 +319,7 @@
 %   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}}$ the subscript is an apposition
-%   because `i' means, say, ‘input’.
+%   because ‘i’ may mean, say, ‘input’.
 % \item
 %   Upright bold roman or black board bold symbols represent sets.
 % \item
@@ -330,9 +328,9 @@
 %   treated as any other matrix; in general 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 with a medium series upper o lowercase italic letter 
-%   with an arrow on top of it are not treated by the ISO 
+%   may be represented by uppercase letters. Geometrical vectors that
+%   might be typeset with a medium series upper or lowercase italic 
+%   letter with an arrow on top of it, are not treated by the ISO 
 %   regulations that speak of vectors irrespective if they are 
 %   considered as one column matrices or oriented segments; 
 %   apparently oriented segments should be treated the same as 
@@ -343,9 +341,9 @@
 %   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.
+%   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 
@@ -353,7 +351,7 @@
 %   letters.\label{enum:latin-greek}
 %\end{enumerate}
 %
-% Such font rules  for families, series and shapes are difficult
+% 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
@@ -360,12 +358,12 @@
 % couple of reasons connected with rule~\ref{enum:latin-greek}:
 %\begin{itemize}[noitemsep]
 %\item
-%   Uppercase greek letters are taken from the ``operators'' 
+%   Uppercase greek letters are taken from the “operators” 
 %   alphabet and are letter symbols; 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'' math alphabet
+%   Lowercase Greek letters are taken from the “letters” math alphabet
 %   and are ordinary symbols; they are oblique, and this is fine, 
 %   but as ordinary math symbols they cannot be modified by commands 
 %   such as |\mathrm|; furthermore upright lowercase Greek letters
@@ -377,9 +375,9 @@
 % Greek letters, especially those packages for French typography,
 % where the national rules (in contrast with the ISO regulations)
 % require that all math entities typeset with Greek letters be
-% upright. Among such packages therenare |fourier| and  |kpfonts|. Other
-% packages such as |newpxmath| and |newtxmath| are intended for
-% general use, but with suitable options and extra math groups
+% upright. Among such packages there are |fourier| and  |kpfonts|.
+% 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 Greek letters as well as
 % oblique uppercase ones.
 %
@@ -391,7 +389,7 @@
 % actually using extra math alphabets beyond the small number
 % it uses for its full functionality. An option |ISO| is
 % already available to fulfil the ISO regulations. Maybe
-% the only drawback of the fonts used is that they are intended to 
+% the only drawback of such fonts is that they are intended to 
 % match  the Libertinus text fonts that are blacker than the
 % standard Computer or Latin Modern ones. The auxiliary font
 % selection commands used in the |ISOmath| package are already
@@ -403,12 +401,12 @@
 % 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
-% provided by 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
+% The poor man solution described in this document is very simple in
+% theory; it handles text fonts in math expressions through the |\text|
+% command provided by 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
@@ -423,7 +421,7 @@
 % 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 up to date and complete \TeX\ system
+% available with any up-to-date and complete \TeX\ system
 % installation.
 %
 % This is also a disadvantage, in the sense that Latin Modern
@@ -430,8 +428,8 @@
 % 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.
+% Times ones; they have also a slightly lighter “color”
+% compared to most other fonts.
 %
 % Nevertheless they work very well with the ISO regulations
 % and in spite of the disadvantages listed above, they are
@@ -438,7 +436,8 @@
 % usable without problems. This very documentation is typeset
 % with Latin Modern fonts. The examples shown in a following
 % section show the ease with which the ISO regulations may be
-% fulfilled.
+% fulfilled. Some problems, though, still remain, and require the
+% user intervention.
 %
 % There are other Greek fonts that may be used in place of
 % those of the CBfonts collection, especially those distributed
@@ -450,7 +449,7 @@
 % 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
+% 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
@@ -482,8 +481,8 @@
 % argument are respectively |lmr|, |m|, and |n| (normal, upright).
 % Notice the codes: |lmr|, |m|, and |n| are the codes that appear in
 % the |.fd| file to declare the possible family, series, and shape
-% combinations available for a given family. Below further
-% information is given in table~\ref{tab:lmr-series-shapes} on
+% combinations available for a given family. Further
+% information is given below in table~\ref{tab:lmr-series-shapes} on
 % page~\pageref{tab:lmr-series-shapes}, and how to discover these codes.
 %
 % Such default values, after loading |pm-isomath|, may be globally
@@ -511,8 +510,8 @@
 %\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
+% where all the arguments are optional, including the first one
+% 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}
@@ -520,9 +519,9 @@
 %\cs{ISOalpha}\marg{family}
 %\cs{ISOalpha}\oarg{series}
 %\cs{ISOalpha}\parg{shape}
+%\cs{ISOalpha}\oarg{series}\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
@@ -588,6 +587,7 @@
 %\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}$ (in text mode: 1.68\unit{\micro\ohm\,cm})
 % is typeset with the following code
@@ -597,6 +597,7 @@
 % If the |siunitx| package has been loaded (as it is for typesetting
 % this documentation) its unit |ohm| is redefined  so as to always be
 % an upright capital omega.
+%
 %\subparagraph{A tensor}
 %\[ \vectorsymbol{D} =\epsilon_0\tensorsymbol{\epsilon}\ped{r}\vectorsymbol{E}\]
 %is typeset with the following code
@@ -605,8 +606,9 @@
 %\vectorsymbol{D} = \epsilon_0\tensorsymbol{\epsilon}\ped{r}\vectorsymbol{E}
 %\]
 %\end{verbatim}
+%
 %\subparagraph{Solid angle}
-% An energy flux of light form a isomorphic source that irradiates
+% An energy flux of light form an isomorphic source that irradiates
 % the power $P$ through the solid angle $\Omega$ generates
 % a flux \[\Phi = \frac{P}{\Omega}\] is typeset with the following
 % code
@@ -616,6 +618,7 @@
 % 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\footnote{Some
 % packages may have a control sequence to insert a Cauchy principal
@@ -635,6 +638,7 @@
 % 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
@@ -662,30 +666,50 @@
 % fonts at the moment available to typeset mathematics do not
 % contain an upright symbol, but they contain the original slanted
 % symbol as used with the CM fonts. With a poor-man trick it is
-% possible ti have available an upright symbol so as to describe
+% possible to have available an upright symbol so as to describe
 % the Electrical field as the opposite of the electric potential
 % gradient. Compare the following formulas, where the second one
 % is ISO compliant:
 %\begin{align}
-%E =-\nabla V = -\left(
-%\frac{\partial V}{\partial x}\MathLatin{e}[b](it)_x + 
-%\frac{\partial V}{\partial y}\MathLatin{e}[b](it)_y + 
-%\frac{\partial V}{\partial z}\MathLatin{e}[b](it)_z + 
+%\vectorsymbol{E} &=-\nabla V = -\left(
+%\frac{\partial V}{\partial x}\vectorsymbol{e}_x + 
+%\frac{\partial V}{\partial y}\vectorsymbol{e}_y + 
+%\frac{\partial V}{\partial z}\vectorsymbol{e}_z  
 %\right)\\[\baselineskip]
-%E =-\nabla V = -\left(
-%\frac{\uppartial V}{\uppartial x}\MathLatin{e}[b](it)_x + 
-%\frac{\uppartial V}{\uppartial y}\MathLatin{e}[b](it)_y + 
-%\frac{\uppartial V}{\uppartial z}\MathLatin{e}[b](it)_z + 
+%\vectorsymbol{E} &=-\nabla V = -\left(
+%\frac{\uppartial V}{\uppartial x}\vectorsymbol{e}_x + 
+%\frac{\uppartial V}{\uppartial y}\vectorsymbol{e}_y + 
+%\frac{\uppartial V}{\uppartial z}\vectorsymbol{e}_z 
 %\right)
 %\end{align}
 %
 %\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
+% questionable; of course poor man solutions are just patches,
+% incomplete solutions; nevertheless the results are not so bad. It has
 % the indubitable advantage that is does not use any math groups,
-% therefore there is no risk to exceed the limit of 16~math groups.
+% therefore there is no risk to exceed their limit of 16~math groups.
 %
+% As patches are not perfect, the above display of examples shows
+% what can be done without human intervention. Attentive users
+% have shown that the commands for vectors, matrices, and command
+% do not perform well in certain circumstances. Such cases require
+% some spacing corrections, but we were not capable to create
+% sufficiently intelligent commands that could avoid human
+% intervention. See below where, when and why human intervention
+% is required.
+%
+%\section{Acknowledgements}
+% I want to thank very much Laurent Van Deik, who remarked several
+% typos and bugs; in particular he convinced me that the partial
+% differential symbol, that in my previous version of this package
+% was obtained by rotating and scaling the slanted one, had a
+% different style from the other math glyphs; therefore I recreated
+% the macro by applying an affine shearing transformation; I believe
+% that this new solution, thanks to Laurent Van Deik's suggestion,
+% is better suited to typeset ISO compliant math in a better way.
+% He also helped a lot with the vector, matrix, and tensor macro testing.
+%
 % \StopEventually{}
 %
 % \section{The code}
@@ -692,14 +716,15 @@
 % This package was loosely inspired by the |ISOmath| package
 % by Günter Milde, but tackles the problem of insufficient maximum
 % number of math font groups so as to avoid any problem with such
-% group limitation, and therefore all the caveats in Milde's package.
+% group limitation, and therefore to avoid all the caveats in
+% Milde's package.
 %
 % That package is much more comfortable to use than this one; but
 % it is subject to a number of conditions that, depending on the
 % user environment, may even result in a complete failure. This
 % package avoids problems 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.
+% not use any, but it is not so comfortable to use because sometimes
+% optional settings and spacing commands have to be specified.
 %
 % The preliminary lines have been already defined; therefore we
 % start with real code.
@@ -712,13 +737,13 @@
 % |alphabeta| and |xparse| have already been loaded in the document
 % preamble; this implies a weak loading order, that is this
 % package must be loaded after all the above packages are loaded;
-% in facts if such packages are not loaded, they get loaded by this
+% in facts if such packages are not, they get loaded by this
 % one, but without any option. 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 a very “strong” one.
+% “weak” loading order error becomes a very “strong” one.
  
 %\iffalse
 %<*style>
@@ -726,7 +751,7 @@
 % Then we verify if the document is being typeset with \pdfLaTeX;
 % if it is not, an 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.
+% an engine-detecting package, and we use the |iftex| one.
 %    \begin{macrocode}
 \@ifpackageloaded{iftex}{}{\RequirePackage{iftex}}
 \unless\ifPDFTeX
@@ -753,18 +778,19 @@
 \fi
 {\endinput}{\relax}
 %    \end{macrocode}
+%
 % Actually this package accepts an option: |engineer|. This
 % option is for deciding if the imaginary unit should be
-% defined as ‘i’ or ‘j’. As we have remarked in the previous
+% defined as ‘i’ or as ‘j’. As we have remarked in the previous
 % documentation, engineers, especially those who deal with
-% electricity and electrical quantities, but also electronics, control,
-% and telecommunications engineers, use ‘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). Possibly they are the applied scientists
+% electricity and electrical quantities, but also electronics,
+% automatic control systems, and telecommunications engineers, use ‘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). Possibly they are the applied scientists
 % who use complex numbers more often than any other scientist.
 %
-% Note: this option has \emph{not} been used to prepare this
+% Notice: this option has \emph{not} been used to prepare this
 % very document.
 %    \begin{macrocode}
 \newif\ifengineer \engineerfalse
@@ -771,26 +797,19 @@
 \DeclareOption{engineer}{\engineertrue}
 \ProcessOptions*\relax
 %    \end{macrocode}
+%
 % Are the necessary packages already loaded? Notice that in previous
 % versions we just loaded |xparse| unless it was already loaded;
 % since 2020 the main functionalities of this package are already
-% contained into the \LaTeX\ kernel, But we are going to use one
+% contained into the \LaTeX\ kernel, but we are going to use one
 % of those “deprecated” functionalities that did not make their way
-% to the \LaTeX\ kernel. We also use the |xfp| floating point
-% computations available with the \LaTeX3 language.
+% to the \LaTeX\ kernel.
 %    \begin{macrocode}
 \@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
 \@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}}
-\RequirePackage{xparse,xfp}
+\RequirePackage{xparse}
 %    \end{macrocode}
 %
-% Since a trick on the ISO compliant upright partial differential
-% symbol requires the functionalities of the |rotate| and |scale|
-% functionalities, we load also the |graphicx| package if it has not
-% been already loaded.
-%    \begin{macrocode}
-\@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}}
-%    \end{macrocode}
 % Now we have almost all software instruments available. We
 % define a macro to switch the definitions of certain math
 % Greek symbols; some of these are defined in the \LaTeX\ 
@@ -800,19 +819,28 @@
 % 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
+% 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.
+% those produced with the textual Greek glyphs obtained when the ISO
+% macros are used. Especially the Greek lowercase letter group  is
+% not appreciated by certain users, because they need to correct
+% any previously typeset document that uses the standard \LaTeX\ 
+% symbols. They may easily revert to the previous settings by
+% applying again the global switching macros
+% \cs{switchvarlowercasegreekletters} and or
+% \cs{switchvaruppercasegreekletters}. We discourage such reset,
+% but users are free to chose what they need.
 %    \begin{macrocode}
 \newcommand\switchvarsymbols[1]{%
 \letcs{\tempA}{#1}\csletcs{#1}{var#1}\cslet{var#1}{\tempA}}
-%%%% 
+%%%%
+\newcommand\switchvarlowercasegreekletters{%
 \switchvarsymbols{epsilon}
 \switchvarsymbols{theta}
 \switchvarsymbols{rho}
-\switchvarsymbols{phi}
-%%%%%
+\switchvarsymbols{phi}}
+%%%%
+\newcommand\switchvaruppercasegreekletters{%
 \switchvarsymbols{Gamma}
 \switchvarsymbols{Delta}
 \switchvarsymbols{Theta}
@@ -823,9 +851,13 @@
 \switchvarsymbols{Upsilon}
 \switchvarsymbols{Phi}
 \switchvarsymbols{Psi}
-\switchvarsymbols{Omega}
+\switchvarsymbols{Omega}}
+%%%%%
+\switchvarlowercasegreekletters
+\switchvaruppercasegreekletters
 %    \end{macrocode}
-% Eventually we load the |alphabeta| package; this package
+%
+% Eventually we load the |alphabeta| package; it
 % allows using the same macros used in math mode while
 % typesetting in text mode. We find it very useful in this
 % package.
@@ -832,10 +864,11 @@
 %    \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 is medium and the shape is normal (or upright).
+% to be used in the macros that follow; as it can be seen,
+% the default family is the Latin Modern roman;
+% the series is medium one and the shape is normal (or upright) one.
 % The codes used are the same used in the font description
 % files with extension |.fd|. The name of these |.fd| files
 % is obtained by merging the encoding name with the family name;
@@ -844,7 +877,7 @@
 % files define the series they contain and 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
+% also other codes. For each series the |.fd| file defines the
 % codes for shapes, and for every valid combination of
 % series, shape and size it defines the specific font file
 % to use. 
@@ -858,8 +891,8 @@
 % trees of the \TeX\ system, and eventually find out the
 % codes for the available series and shapes.
 % 
-% For the Latin and Greek |.fd| files we have the series and
-% shapes shown in table~\ref{tab:lmr-series-shapes}.
+% For the Modern Latin and Greek |.fd| files we have the series
+% and shapes shown in table~\ref{tab:lmr-series-shapes}.
 %
 %\begin{table}[!tb]\centering
 %\begin{tabular}{llllll}
@@ -892,7 +925,7 @@
 %       &      &                 &      & small caps    & sc   \\
 %\bottomrule
 %\end{tabular}
-%\caption{Seres and shapes available with the Latin Modern regular family with Latin and Greek fonts}
+%\caption{Series and shapes available with the Latin Modern regular family with Latin and Greek fonts}
 %\label{tab:lmr-series-shapes}
 %\end{table}
 %
@@ -900,7 +933,7 @@
 \def\ISOfam{lmr}\def\ISOser{m}\def\ISOsha{n}
 %    \end{macrocode}
 %
-% As explained in the initial documentation all font changing
+% As explained in the initial documentation, all font 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 three optional arguments that the user can
@@ -926,15 +959,15 @@
 % mandatory argument is the Latin or Greek letter; the latter
 % one may be specified by the macros |\alpha|, |\beta|,\dots,
 % |\Omega|, the same ones that are normally used in math (although
-% they are going to be used in textmode).
+% they are going to be used in text mode).
 %    \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}}
+\NewDocumentCommand\MathLatin{m g O{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}}{}%
+\providecommand\MLatin[4]{\text{\def\ISOfam{#2}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{\def\ISOser{#3}}%
 \usefont{T1}{\ISOfam}{\ISOser}{\ISOsha}#1}}
 
 \NewDocumentCommand\MathGreek{ m g O{m} d()}{%
@@ -942,9 +975,8 @@
 \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}}{}%
+\newcommand{\MGreek}[4]{\text{\def\ISOfam{#2}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{\def\ISOser{#3}}%
 {\usefont{LGR}{\ISOfam}{\ISOser}{\ISOsha}#1}}}
 
 %    \end{macrocode}
@@ -1018,21 +1050,82 @@
 % slanted shape.
 %    \begin{macrocode}
 \AtBeginDocument{%
-\providecommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
-\providecommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
-\providecommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}}
+  \providecommand\mathrmbf[1]{\MathLatin{#1}{lmr}[bx](n)}
+  \providecommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
+  \providecommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
+  \providecommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}
+  \providecommand\mathsfbf[1]{\MathLatin{#1}{lmss}[bx](n)}
+}
 %    \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|.
+% abbreviation |sym| and replace it with |symbol|.
+% The strange test with the digit ‘9’ is a dirty trick (described in
+% the \TeX\-book) in order to discover if the symbol is a digit or a
+% letter; With digits the vector and tensor symbols should be upright,
+% while with letters they should be italic or slanted. The italic
+% correction |\/| contained by the font selection command is useful
+% in situations where the “text” produced by such command is followed
+% by a tall or raised object 
 %    \begin{macrocode}
 \AtBeginDocument{%
-\let\vectorsymbol\mathbfit
-\let\matrixsymbol\mathbfit
-\let\tensorsymbol\mathsfbfit}
+  \unless\ifdefined\vectorsymbol
+    \NewDocumentCommand\vectorsymbol{s m}{%
+      \ifnum 9<1#2\relax
+        \mathrmbf{#2}%
+      \else
+        \IfBooleanTF{#1}{\!}{}\mathbfit{#2\/}%
+    \fi}%
+  \fi
+  \unless\ifdefined\matrixsymbol\let\matrixsymbol\vectorsymbol\fi
+  \unless\ifdefined\tensorsymbol
+    \NewDocumentCommand\tensorsymbol{s m}{%
+    \ifnum 9<1#2\relax
+      \mathsfbf{#2}%
+    \else
+      \IfBooleanT{#1}{\!}\mathsfbfit{#2\/}%
+    \fi}%
+  \fi
+}
 %    \end{macrocode}
 %
-% We now define some macros for setting some elements in the
+% As shown in the previous various examples, such macros work pretty
+% well, but in some circumstances they require human help;
+% when the symbol is parenthesised, for example when it is the
+% argument of a function,  or when it is at the beginning of a math 
+% sub\,expression, it is not centred between the parentheses or has
+% extra blank space at its left; this happens only if the vector or
+% tensor symbol is a letter, while if it is a digit such extra space
+% does not appear; such considerations hold true also for the
+% |\matrixsymbol| command.
+% Therefore a negative math kerning is required at the left of the
+% literal symbol. For this purpose such commands have the variant with
+% asterisk, therefore their syntax have these two similar forms:
+%\begin{flushleft}\obeylines
+%|\vectorsymbol|\marg{symbol}
+%|\vectorsymbol*|\marg{symbol}
+%|\tensorsymbol|\marg{symbol}
+%|\tensorsymbol*|\marg{symbol}
+%\end{flushleft}
+% where the asterisk can be used by the author in order to eliminate
+% spurious left blanc spaces; if the symbol is numeric, the asterisk
+% presence is ignored: see the following examples:
+%\begin{quote}
+%Vector $\vectorsymbol{T}$ is null: $\vectorsymbol{T}=\vectorsymbol{0}$\\
+%Vector $\vectorsymbol*{T}$ is null: $\vectorsymbol*{T}=\vectorsymbol*{0}$\\
+%Tensor $\tensorsymbol{T}$ is null: $\tensorsymbol{T}=\tensorsymbol{0}$\\
+%Tensor $\tensorsymbol*{T}$ is null: $\tensorsymbol*{T}=\tensorsymbol{0}$
+%\end{quote}
+%They are typeset with the following code:
+%\begin{verbatim}
+%Vector $\vectorsymbol{T}$ is null: $\vectorsymbol{T}=\vectorsymbol{0}$\\
+%Vector $\vectorsymbol*{T}$ is null: $\vectorsymbol*{T}=\vectorsymbol*{0}$\\
+%Tensor $\tensorsymbol{T}$ is null: $\tensorsymbol{T}=\tensorsymbol{0}$\\
+%Tensor $\tensorsymbol*{T}$ is null: $\tensorsymbol*{T}=\tensorsymbol{0}$
+%\end{verbatim}
+%
+%
+% We now define the macros required to set some elements with the
 % proper fonts; the idea is the same as that for vectors,
 % matrices and tensors, except that these macros produce
 % directly the desired symbol without using arguments, if
@@ -1042,7 +1135,7 @@
 % switch, set with the proper option on calling the package.
 % If such option has been specified 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
+% to |\iunit|. In spite of this option-driven aliases, both
 % commands |\iunit| and |\junit| are still available to the
 % user.
 %
@@ -1059,17 +1152,16 @@
 % 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.
+% may indicate the subatomic particle “pion” so that a
+% similar macro, say, |\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,
+% 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
+% use of a thin math space before the upright ‘d’, because
 % spacing between math atoms depends on their category, while
 % the thin space |\,| is absolute and does not change depending
 % on the preceding math atom.
@@ -1084,29 +1176,47 @@
 % ISO regulations such symbol should be upright. For use with
 % \pdfLaTeX the only font distributed with any \TeX system that
 % contains such an upright symbol is the LibertinusT1math one;
-% all other OMS encoded fonts do no contain it. The defined
-% command |\uppartial| name is identical to the one used by the
-% LibertinusT1math font; therefore it is easy to check if this
-% symbol has already been defined
+% all other OMS encoded fonts available today do no contain it.
+% The defined command |\uppartial| name is identical to the one used
+% by the LibertinusT1math font; therefore it is easy to check if
+% this symbol has already been defined.
 %
 % On \texttt{tex.stachexchange.com} some questions were asked on
 % how to produce a suitable upright partial differential symbol,
 % when fonts did not have one available. The solutions we found
-% there are based on rotating and scaling the available slanted
-% partial differential symbol. We follow a similar approach,
-% although a shearing process would be a better solution;
-% we avoid to redefine this symbol if it is already available.
-% The default counterclockwise rotation is fixed to 22°, but may
-% be changed by means of an optional argument. Of course this
+% in that site were of different kinds: some were based on rotating and
+% scaling the available slanted sign, while others used a shearing
+% affine transformation of the available partial differential
+% symbol. We follow a similar approach, but we avoid to redefine
+% this symbol if it is already available. The used commands
+% \cs{pdfsave}, \cs{pdfrestore}, and \cs{pdfsetmatrix} are little
+% known internal commands of the |pdftex| interpreter\footnote{See
+% the documentation with \texttt{texdoc pdftex-a} at §8.20}; they are
+% sort of intermediate between \TeX\ and the PDF internals; they
+% are used to form something similar to a group, within which some
+% PDF settings are locally modified; in this case an affine
+% shearing transformation is defined by means of a matrix (apparently
+% made up of one row and four columns, but in reality it represents
+% the alignment of the rows of a $2\times2$ matrix) that can do
+% many things in a way that is more comfortable for the programmer
+% compared to writing the actual PDF language~code.
+%
+% The default \meta{shearing coefficient} is fixed to 0.25, but it may
+% be changed by means of an optional argument; see below. Of course this
 % solution is a patch; we tested it at several sizes but only
 % with the Latin Modern Type~1 fonts. May be with other fonts
-% the results might need some adjustments.
+% the results might need some adjustments. We also fixed some
+% kerning adjustments so that the normal math spacings take place.
+% The whole syntax is the following
+%\begin{flushleft}
+%\cs{uppartial}\oarg{shearing coefficient}
+%\end{flushleft}
 %
 % 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, but its units and prefixes expressed by means
-% of greek letters must be used only within its |\si| and |SI|
+% of Greek letters must be used only within its |\si| and |\SI|
 % commands. Similar considerations hold true for the
 % |\ap| and |\ped| (apex and pedex, respectively; i.e\ 
 % superscript and subscript); therefore such command definitions
@@ -1142,14 +1252,15 @@
 \providecommand*\diff{}
 \renewcommand*\diff{\ensuremath{\mathop{}\!\MathLatin{d}(n)}}
 % 
-\newbox{\PMpartial}
+\newbox{\PMpartialbox}
 \AtBeginDocument{%
-\@ifdefinable{\uppartial}%
-  {\NewDocumentCommand\uppartial{O{22}}{\setbox\PMpartial\hbox{$\partial$}%
-  \setbox\PMpartial=\hbox{%
-    \scalebox{1}[\fpeval{cosd #1}]{\rotatebox[origin=br]{#1}{\box\PMpartial}}%
-  }\raisebox{0.35ex}{\box\PMpartial}\mkern-1.25mu}}%
-}
+\unless\ifdefined\uppartial%
+  \NewDocumentCommand\uppartial{O{0.25}}{\bgroup%
+  \setbox\PMpartialbox\hbox{%
+     $\mkern1mu\partial$}\hspace{1.3\wd\PMpartialbox}%
+  \pdfsave\pdfsetmatrix{1 0 -#1 1}\llap{\box\PMpartialbox}\pdfrestore
+  \mkern-1.5mu\egroup}
+\fi}
 %
 \providecommand*\micro{}
 \AtBeginDocument{\@ifpackageloaded{textcomp}%
@@ -1184,7 +1295,7 @@
 
 \endinput
 %    \end{macrocode}
-%This is the end
+%^^A This is the end
 %\begin{center}
 %\LARGE HAPPY \TeX{}ing\,!
 %\end{center}
@@ -1194,24 +1305,24 @@
 %\iffalse
 %<*txt>
 %\fi
-%    \begin{macrocode}
-
- This bundle has the LPPL maintenance status "author-maintained".
-
- The list of all files belonging to the PM-ISOmath bundle is
-  pm-isomath.dtx, a README.txt file
- with the derived files: pm-isomath.sty, pm-isomath.pdf.
- 
- 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.
- 
- In the TDS composed of various branches they should be in the 
- following folders:
- .../tex/latex/pm-isomath/     contains pm-isomath.sty
- .../doc/latex/pm-isomath/     contains pm-isomath.pdf and README.txt
- .../source/latex/pm-isomath   contians pm-isomath.dtx
-%    \end{macrocode}
+^^A%    \begin{macrocode}
+^^A
+^^A This bundle has the LPPL maintenance status "author-maintained".
+^^A
+^^A The list of all files belonging to the PM-ISOmath bundle is
+^^A  pm-isomath.dtx, a README.txt file
+^^A with the derived files: pm-isomath.sty, pm-isomath.pdf.
+^^A 
+^^A The set of derived (unpacked) files belonging to the distribution
+^^A and covered by LPPL is created by the self unpacking file
+^^A pm-isomath.dtx which is the principal part of the distribution.
+^^A 
+^^A In the TDS composed of various branches they should be in the 
+^^A following folders:
+^^A .../tex/latex/pm-isomath/     contains pm-isomath.sty
+^^A .../doc/latex/pm-isomath/     contains pm-isomath.pdf and README.txt
+^^A .../source/latex/pm-isomath   contians pm-isomath.dtx
+^^A%    \end{macrocode}
 %\iffalse
 %</txt>
 %\fi

Modified: trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty	2021-05-19 19:59:40 UTC (rev 59268)
+++ trunk/Master/texmf-dist/tex/latex/pm-isomath/pm-isomath.sty	2021-05-19 19:59:58 UTC (rev 59269)
@@ -12,9 +12,9 @@
 %% 
 %%   License information appended
 %% 
-\NeedsTeXFormat{LaTeX2e}[2017/01/01]
+\NeedsTeXFormat{LaTeX2e}[2019/01/01]
 \ProvidesPackage{pm-isomath}[%
-  2021/05/03 v.1.1.01
+  2021/05/15 v.1.1.07
 Poor man package for typesetting ISO compliant math when using pdfLaTeX]
 
 
@@ -47,16 +47,17 @@
 \ProcessOptions*\relax
 \@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
 \@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}}
-\RequirePackage{xparse,xfp}
-\@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}}
+\RequirePackage{xparse}
 \newcommand\switchvarsymbols[1]{%
 \letcs{\tempA}{#1}\csletcs{#1}{var#1}\cslet{var#1}{\tempA}}
 %%%%
+\newcommand\switchvarlowercasegreekletters{%
 \switchvarsymbols{epsilon}
 \switchvarsymbols{theta}
 \switchvarsymbols{rho}
-\switchvarsymbols{phi}
-%%%%%
+\switchvarsymbols{phi}}
+%%%%
+\newcommand\switchvaruppercasegreekletters{%
 \switchvarsymbols{Gamma}
 \switchvarsymbols{Delta}
 \switchvarsymbols{Theta}
@@ -67,17 +68,20 @@
 \switchvarsymbols{Upsilon}
 \switchvarsymbols{Phi}
 \switchvarsymbols{Psi}
-\switchvarsymbols{Omega}
+\switchvarsymbols{Omega}}
+%%%%%
+\switchvarlowercasegreekletters
+\switchvaruppercasegreekletters
 \@ifpackageloaded{alphabeta}{}{\RequirePackage{alphabeta}}
 
 \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}}
+\NewDocumentCommand\MathLatin{m g O{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}}{}%
+\providecommand\MLatin[4]{\text{\def\ISOfam{#2}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{\def\ISOser{#3}}%
 \usefont{T1}{\ISOfam}{\ISOser}{\ISOsha}#1}}
 
 \NewDocumentCommand\MathGreek{ m g O{m} d()}{%
@@ -85,9 +89,8 @@
 \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}}{}%
+\newcommand{\MGreek}[4]{\text{\def\ISOfam{#2}\def\ISOsha{#4}%
+\ifcsstring{math at version}{bold}{\def\ISOser{bx}}{\def\ISOser{#3}}%
 {\usefont{LGR}{\ISOfam}{\ISOser}{\ISOsha}#1}}}
 
 \newcommand\ISOalpha{\MathGreek{\alpha}}
@@ -140,13 +143,31 @@
 \def\ISOsha{it}\expandafter\use at mathgroup
 \csname M at OT1\endcsname{9}}
 \AtBeginDocument{%
-\providecommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
-\providecommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
-\providecommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}}
+  \providecommand\mathrmbf[1]{\MathLatin{#1}{lmr}[bx](n)}
+  \providecommand\mathbfit[1]{\MathLatin{#1}{lmr}[bx](it)}
+  \providecommand\mathsfit[1]{\MathLatin{#1}{lmss}[m](sl)}
+  \providecommand\mathsfbfit[1]{\MathLatin{#1}{lmss}[bx](sl)}
+  \providecommand\mathsfbf[1]{\MathLatin{#1}{lmss}[bx](n)}
+}
 \AtBeginDocument{%
-\let\vectorsymbol\mathbfit
-\let\matrixsymbol\mathbfit
-\let\tensorsymbol\mathsfbfit}
+  \unless\ifdefined\vectorsymbol
+    \NewDocumentCommand\vectorsymbol{s m}{%
+      \ifnum 9<1#2\relax
+        \mathrmbf{#2}%
+      \else
+        \IfBooleanTF{#1}{\!}{}\mathbfit{#2\/}%
+    \fi}%
+  \fi
+  \unless\ifdefined\matrixsymbol\let\matrixsymbol\vectorsymbol\fi
+  \unless\ifdefined\tensorsymbol
+    \NewDocumentCommand\tensorsymbol{s m}{%
+    \ifnum 9<1#2\relax
+      \mathsfbf{#2}%
+    \else
+      \IfBooleanT{#1}{\!}\mathsfbfit{#2\/}%
+    \fi}%
+  \fi
+}
 \newcommand\iunit{\MathLatin{i}(n)}
 \newcommand\junit{\MathLatin{j}(n)}
 \ifengineer
@@ -160,14 +181,15 @@
 \renewcommand\uppi{\ISOpi(n)}
 \providecommand*\diff{}
 \renewcommand*\diff{\ensuremath{\mathop{}\!\MathLatin{d}(n)}}
-\newbox{\PMpartial}
+\newbox{\PMpartialbox}
 \AtBeginDocument{%
-\@ifdefinable{\uppartial}%
-  {\NewDocumentCommand\uppartial{O{22}}{\setbox\PMpartial\hbox{$\partial$}%
-  \setbox\PMpartial=\hbox{%
-    \scalebox{1}[\fpeval{cosd #1}]{\rotatebox[origin=br]{#1}{\box\PMpartial}}%
-  }\raisebox{0.35ex}{\box\PMpartial}\mkern-1.25mu}}%
-}
+\unless\ifdefined\uppartial%
+  \NewDocumentCommand\uppartial{O{0.25}}{\bgroup%
+  \setbox\PMpartialbox\hbox{%
+     $\mkern1mu\partial$}\hspace{1.3\wd\PMpartialbox}%
+  \pdfsave\pdfsetmatrix{1 0 -#1 1}\llap{\box\PMpartialbox}\pdfrestore
+  \mkern-1.5mu\egroup}
+\fi}
 \providecommand*\micro{}
 \AtBeginDocument{\@ifpackageloaded{textcomp}%
   {\renewcommand*\micro{\textormath{\textmu}{\ISOmu(rs)}}}%



More information about the tex-live-commits mailing list.