texlive[48988] Master/texmf-dist: diffcoeff (25oct18)

commits+karl at tug.org commits+karl at tug.org
Thu Oct 25 23:33:56 CEST 2018


Revision: 48988
          http://tug.org/svn/texlive?view=revision&revision=48988
Author:   karl
Date:     2018-10-25 23:33:56 +0200 (Thu, 25 Oct 2018)
Log Message:
-----------
diffcoeff (25oct18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/diffcoeff/README.txt
    trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeff.pdf
    trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeff.tex
    trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.pdf
    trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex
    trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeffx.sty

Modified: trunk/Master/texmf-dist/doc/latex/diffcoeff/README.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/diffcoeff/README.txt	2018-10-25 21:25:32 UTC (rev 48987)
+++ trunk/Master/texmf-dist/doc/latex/diffcoeff/README.txt	2018-10-25 21:33:56 UTC (rev 48988)
@@ -1,6 +1,6 @@
-README file for LaTeX package: diffcoeff
+README file for LaTeX package: diffcoeff version 1.1
 
-Author: Andrew Parsloe (aparsloe at clear.net.nz) 2016-06-27
+Author: Andrew Parsloe (ajparsloe at gmail.com) 2018-10-25
 
 diffcoeff.sty allows the easy writing of ordinary and partial differential 
 coefficients of arbitrary order. For mixed partial derivatives, the overall 
@@ -12,12 +12,11 @@
 provide analogous coefficients constructed from D, \Delta and \delta and a 
 command for writing Jacobians. 
 
-diffcoeffx.sty is diffcoeff.sty 'on steroids', extending that package in ways 
-that are probably unnecessary but have a certain logical forece. 
-
 The packages require the LaTeX3 bundles, l3kernel and l3packages.
 
-There are six files plus this README: diffcoeff.tex, diffcoeff.pdf (compiled 
-from diffcoeff.tex), and diffcoeff.sty; and diffcoeffx.tex, diffcoeffx.pdf 
-and diffcoeffx.sty. The tex and pdf files should be placed in texmf/doc/
-latex/diff, and the sty files in texmf/tex/latex/diff.
\ No newline at end of file
+There are three files plus this README: diffcoeff.tex, diffcoeff.pdf, and diffcoeff.sty. 
+
+(Version 1.0 of diffcoeff.sty was accompanied by diffcoeffx.sty. However
+that package contained a bug which meant it did not do all the things
+claimed for it. Fixing the bug did not seem feasible without a complete
+rewrite. diffcoeffx is now withdrawn.)
\ No newline at end of file

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

Modified: trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeff.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeff.tex	2018-10-25 21:25:32 UTC (rev 48987)
+++ trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeff.tex	2018-10-25 21:33:56 UTC (rev 48988)
@@ -1,6 +1,6 @@
-%% LyX 2.2.0 created this file.  For more info, see http://www.lyx.org/.
+%% LyX 2.3.1-1 created this file.  For more info, see http://www.lyx.org/.
 %% Do not edit unless you really know what you are doing.
-\documentclass[english,extend]{article}
+\documentclass[english]{article}
 \usepackage{lmodern}
 \renewcommand{\sfdefault}{lmss}
 \renewcommand{\ttdefault}{lmtt}
@@ -18,18 +18,19 @@
 \providecommand{\tabularnewline}{\\}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
- \newenvironment{example}{\begin{center}\ttfamily}{\end{center}}
+\newenvironment{example}%
+{\begin{center}\ttfamily}{\end{center}}
 \newenvironment{lyxcode}
-{\par\begin{list}{}{
-\setlength{\rightmargin}{\leftmargin}
-\setlength{\listparindent}{0pt}% needed for AMS classes
-\raggedright
-\setlength{\itemsep}{0pt}
-\setlength{\parsep}{0pt}
-\normalfont\ttfamily}%
- \item[]}
-{\end{list}}
-\newcommand{\strong}[1]{\textbf{#1}}
+	{\par\begin{list}{}{
+		\setlength{\rightmargin}{\leftmargin}
+		\setlength{\listparindent}{0pt}% needed for AMS classes
+		\raggedright
+		\setlength{\itemsep}{0pt}
+		\setlength{\parsep}{0pt}
+		\normalfont\ttfamily}%
+	 \item[]}
+	{\end{list}}
+\providecommand*{\strong}[1]{\textbf{#1}}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
 \usepackage{diffcoeff}
@@ -41,13 +42,11 @@
 
 \usepackage{babel}
 \begin{document}
-
 \title{\texttt{diffcoeff}~\\
 a \LaTeX{} package for writing\texttt{}~\\
 differential coefficients easily}
-
 \author{Andrew Parsloe\\
-{\small{}(aparsloe at clear.net.nz)}}
+{\small{}(ajparsloe at gmail.com)}}
 \maketitle
 \begin{abstract}
 \noindent \texttt{diffcoeff.sty} allows the easy writing of ordinary and
@@ -60,20 +59,30 @@
 display is possible through key = value settings. Secondary commands provide
 analogous coefficients constructed from $D,\thinspace\Delta,$ and $\delta$,
 and a command for writing Jacobians. The package uses \texttt{expl3} and
-\texttt{xparse} from the \LaTeX{}3 bundles, \texttt{l3kernel} and \texttt{l3packages}.
+\texttt{xparse} from the \LaTeX 3 bundles, \texttt{l3kernel} and \texttt{l3packages}.
 \end{abstract}
 
+\section{Version}
+
+Version 1.1 of the \texttt{diffcoeff} package changes the handling of error
+messages which was just plain wrong in version 1 and caused a conflict
+with the \texttt{mhchem} package. 
+
+\texttt{diffcoeff.sty} had a `big brother' \texttt{diffcoeffx.sty} that
+was `\texttt{diffcoeff} on steroids'. However a bug in \texttt{diffcoeffx}
+means it didn't do all it claimed and it will be withdrawn. 
+
 \section{Requirements}
 
 The \LaTeX{} package \texttt{diffcoeff.sty} is written in the expl3 language
-of \LaTeX{}3\texttt{ }and requires the bundles \texttt{l3kernel} and \texttt{l3packages}
+of \LaTeX 3\texttt{ }and requires the bundles \texttt{l3kernel} and \texttt{l3packages}
 (the latter for the \texttt{xparse} module). However, granted the presence
-of these bundles in your \TeX{} distribution, the \LaTeX{}3 element should
+of these bundles in your \TeX{} distribution, the \LaTeX 3 element should
 be invisible to the user. 
 
 The package is invoked in the usual way by entering
 \begin{lyxcode}
-\textbackslash{}usepackage\{diffcoeff\}
+\textbackslash usepackage\{diffcoeff\}
 \end{lyxcode}
 in the preamble of your document.
 
@@ -85,22 +94,22 @@
 
 \section{Ordinary differential coefficients \label{sec:Ordinary-differential-coefficien}}
 
-Writing\textbf{ }\texttt{\textbackslash{}diff\{y\}\{x\}} will produce $\diff{y}{x}$
+Writing\textbf{ }\texttt{\textbackslash diff\{y\}\{x\}} will produce $\diff{y}{x}$
 in text style (i.e. placed between \texttt{\$ \$}) or 
 \[
 \diff{y}{x}
 \]
-in display style (i.e. placed between \texttt{\textbackslash{}{[} \textbackslash{}{]}}
-). In fact \texttt{\textbackslash{}diff yx} (omitting the braces) will
+in display style (i.e. placed between \texttt{\textbackslash{[} \textbackslash{]}}
+). In fact \texttt{\textbackslash diff yx} (omitting the braces) will
 produce these results, with a saving on keystrokes. The braces are needed
 only when differentiand or variable of differentiation is more than a single
 token.
 
 There is one other form: we can insert a slash, `/', between numerator
-and denominator: \texttt{\textbackslash{}diff f/x} produces $\diff f/x$
+and denominator: \texttt{\textbackslash diff f/x} produces $\diff f/x$
 which may be preferred for textstyle differential coefficients on occasion.
 Nothing is gained in this particular instance. It is quicker to type the
-five keystrokes d, f, /, d, x than it is to type the nine of \textbackslash{},
+five keystrokes d, f, /, d, x than it is to type the nine of \textbackslash ,
 d, i, f, f, , f, /, x but there are occasions when this is not always the
 case. 
 
@@ -108,15 +117,16 @@
 The order need not be a number; an algebraic order of differentiation is
 perfectly acceptable or, indeed, a mix:
 \begin{example}
-\textbackslash{}diff{[}2{]}\{y\}\{x\} $\Longrightarrow\quad{\displaystyle \diff[2]{y}{x},}$\medskip{}
+\textbackslash diff{[}2{]}\{y\}\{x\} $\Longrightarrow\quad{\displaystyle \diff[2]{y}{x},}$\medskip{}
 
-\textbackslash{}diff{[}n+1{]}\{y\}\{x\} $\Longrightarrow\quad{\displaystyle \diff[n+1]{y}{x}}.$
+\textbackslash diff{[}n+1{]}\{y\}\{x\} $\Longrightarrow\quad{\displaystyle \diff[n+1]{y}{x}}.$
 \end{example}
+
 (And again the braces can be omitted for single letters like \textbf{x}
 and \textbf{y}.)
 
-In slash style, \texttt{\textbackslash{}diff{[}2{]}f/x} (11 keystrokes)
-produces $\diff[2]f/x$, not significantly more typing than \texttt{d\textasciicircum{}2f/dx\textasciicircum{}2}
+In slash style, \texttt{\textbackslash diff{[}2{]}f/x} (11 keystrokes)
+produces $\diff[2]f/x$, not significantly more typing than \texttt{d\textasciicircum 2f/dx\textasciicircum 2}
 (9 keystrokes).
 
 If you want to specify a point at which the derivative is evaluated, append
@@ -123,17 +133,18 @@
 a final optional argument, but note that it is given in \emph{braces} rather
 than square brackets:
 \begin{example}
-\textbackslash{}diff{[}2{]}\{y\}\{x\}\{0\} $\Longrightarrow\quad{\displaystyle \diff[2]{y}{x}{0}}$
+\textbackslash diff{[}2{]}\{y\}\{x\}\{0\} $\Longrightarrow\quad{\displaystyle \diff[2]{y}{x}{0}}$
 \end{example}
+
 \noindent (In this example it seems neater \emph{not} to finish with a
 full stop or other punctuation.) The use of braces means that the differential
 coefficient can be followed immediately by a mathematical expression wrapped
-in \texttt{\textbackslash{}\{ \textbackslash{}\}}, or \texttt{{[} {]}},
+in \texttt{\textbackslash\{ \textbackslash\}}, or \texttt{{[} {]}},
 without the expression being confused with the (final) optional argument.
 Note also that there must be \emph{no space} before the argument: it follows
 \emph{immediately} on the second mandatory argument (if it follows at all). 
 
-We could save a few keystrokes by writing this last example as \texttt{\textbackslash{}diff{[}2{]}yx\{0\}}.
+We could save a few keystrokes by writing this last example as \texttt{\textbackslash diff{[}2{]}yx\{0\}}.
 The braces around the final optional argument can \emph{not} be omitted
 \textendash{} otherwise there is no way of knowing that it \emph{is }the
 final optional argument and not part of a following expression.
@@ -141,21 +152,23 @@
 In slash style, the trailing optional argument can be used, but perhaps
 should not be. It looks ugly: 
 \begin{example}
-\textbackslash{}diff{[}2{]}y/x\{0\} $\Longrightarrow\quad{\displaystyle \diff[2]{y}/{x}{0}}$
+\textbackslash diff{[}2{]}y/x\{0\} $\Longrightarrow\quad{\displaystyle \diff[2]{y}/{x}{0}}$
 \end{example}
+
 Slash style is a more casual rendering of the derivative, intended for
 inline use within text and it would be better to use a phrase like `evaluated
 at zero'.
 
-\subsection{\textbackslash{}diffset: formatting tweaks}
+\subsection{\textbackslash diffset: formatting tweaks}
 
 There are a number of tweaks one can make to the display of a derivative.
 Many people now use upright (roman) forms for the `d's of a differential
 coefficient, rather than math italic. To do this, put the command 
 \begin{example}
-{\footnotesize{}\textbackslash{}}diffset{[}roman = true{]}
+{\footnotesize{}\textbackslash}diffset{[}roman = true{]}
 \end{example}
-\noindent in the preamble of your document (following the \texttt{\textbackslash{}usepackage\{diffcoeff\}}
+
+\noindent in the preamble of your document (following the \texttt{\textbackslash usepackage\{diffcoeff\}}
 of course). The default is math italic.
 
 It is possible that you may want more space between the `d' in the numerator
@@ -163,9 +176,10 @@
 Using an upright `d' alleviates this problem, but if using the default
 math italic for the `d's, the separation can be altered by using the 
 \begin{example}
-\textbackslash{}diffset{[}d-sep = $n${]}
+\textbackslash diffset{[}d-sep = $n${]}
 \end{example}
-\noindent command which adds an extra $n$~mu to \TeX{}'s spacing. The
+
+\noindent command which adds an extra $n$~mu to \TeX 's spacing. The
 default value for $n$ is 1 (i.e. 1~mu). The new separation will affect
 all derivatives following the new setting. Put in the preamble, the new
 separation will be document-wide.
@@ -175,74 +189,83 @@
 point of evaluation subscripted to it on the right. You may prefer subscripted
 parentheses. In that case write
 \begin{example}
-\textbackslash{}diffset{[}d-delims~=~(){]}\textmd{.}
+\textbackslash diffset{[}d-delims~=~(){]}\textmd{.}
 \end{example}
-Whatever delimiters you choose need to work with \LaTeX{}'s \texttt{\textbackslash{}left}
-and \texttt{\textbackslash{}right} commands and consist of exactly two
+
+Whatever delimiters you choose need to work with \LaTeX 's \texttt{\textbackslash left}
+and \texttt{\textbackslash right} commands and consist of exactly two
 tokens. \texttt{{[}} and \texttt{{]}}\textbf{ }are acceptable as also are
-pairs like \texttt{\textbackslash{}lceil \textbackslash{}rceil}, \texttt{\textbackslash{}lfloor
-\textbackslash{}rfloor} but if you want to use \texttt{\textbackslash{}\{}\textbf{
-}and\textbf{ }\texttt{\textbackslash{}\}} you need to place the \texttt{\textbackslash{}diffset}
+pairs like \texttt{\textbackslash lceil \textbackslash rceil}, \texttt{\textbackslash lfloor
+\textbackslash rfloor} but if you want to use \texttt{\textbackslash\{}\textbf{
+}and\textbf{ }\texttt{\textbackslash\}} you need to place the \texttt{\textbackslash diffset}
 command between maths delimiters. The default pair, as indicated, is \texttt{. |},
-t or full stop being \LaTeX{}'s way of suppressing (in this case) the
-left delimiter. 
+t or full stop being \LaTeX 's way of suppressing (in this case) the left
+delimiter. 
 
 If you change the delimiters, say to \textbf{( )}, then the position of
 the subscript may need adjusting. To do this, use the command
 \begin{example}
-\textbackslash{}diffset{[}d-nudge = $n${]}
+\textbackslash diffset{[}d-nudge = $n${]}
 \end{example}
+
 A suggested setting for parentheses \textbf{( )} is $-6$ (in fact $-6$~mu
 but the `mu' is supplied by \texttt{diffcoeff}). Thus the total change
 would be
 \begin{example}
-\textbackslash{}diffset{[}d-delims = ( ), d-nudge = -6{]}
+\textbackslash diffset{[}d-delims = ( ), d-nudge = -6{]}
 \end{example}
+
 producing, for example,
 \begin{example}
-\textbackslash{}diff{[}n{]}\{y\}\{x\}\{0\} $\diffset[d-delims=(),d-nudge=-6]\Longrightarrow\quad{\displaystyle \diff[n]{y}{x}{0}}.$
+\textbackslash diff{[}n{]}\{y\}\{x\}\{0\} $\diffset[d-delims=(),d-nudge=-6]\Longrightarrow\quad{\displaystyle \diff[n]{y}{x}{0}}.$
 \end{example}
+
 The default setting for \textbf{. |} is 0. Simply writing
 \begin{example}
-\textbackslash{}diffset $\diffset$
+\textbackslash diffset $\diffset$
 \end{example}
+
 will return all settings to their defaults.
 
 \subsection{Variations}
 
-\subsubsection{Appending the differentiand: \textbackslash{}diff{*}}
+\subsubsection{Appending the differentiand: \textbackslash diff{*}}
 
 If you want the differentiand to follow the differential coefficient rather
 than sit in the numerator, perhaps because it is a fraction itself or because
 it is long, like a polynomial ($ax^{2}+bx+c$), then one way to achieve
-that is to leave the first mandatory argument in the \texttt{\textbackslash{}diff}
+that is to leave the first mandatory argument in the \texttt{\textbackslash diff}
 command empty and immediately follow the differential operator with the
 differentiand:
 \begin{example}
-\textbackslash{}diff\{\}\{x\}(ax\textasciicircum{}2+bx+c) $\Longrightarrow\quad{\displaystyle \diff{}{x}(ax^{2}+bx+c)}.$
+\textbackslash diff\{\}\{x\}(ax\textasciicircum 2+bx+c) $\Longrightarrow\quad{\displaystyle \diff{}{x}(ax^{2}+bx+c)}.$
 \end{example}
-Another is to use the star form of the \texttt{\textbackslash{}diff }command,
+
+Another is to use the star form of the \texttt{\textbackslash diff }command,
 \begin{example}
-\textbackslash{}diff{*}{[}2{]}\{\textbackslash{}frac\{F(x)\}\{G(x)\}\}\{x\}
+\textbackslash diff{*}{[}2{]}\{\textbackslash frac\{F(x)\}\{G(x)\}\}\{x\}
 $\Longrightarrow\quad{\displaystyle \diff*[2]{\frac{F(x)}{G(x)}}{x}.}$ 
 \end{example}
+
 \noindent The LaTeX expression can be harder to read if, as here, one is
-using a command like \texttt{\textbackslash{}frac} with its own pairs of
+using a command like \texttt{\textbackslash frac} with its own pairs of
 braces, but it is much easier, if one isn't sure whether the differentiand
 should be appended or in the numerator, simply to insert or delete an asterisk
 than move the differentiand from one place to the other. The star form
 becomes especially useful if you want to both append the differentiand
 \emph{and }indicate the point of evaluation, since it saves having to set
-up the \texttt{\textbackslash{}left.} and \texttt{\textbackslash{}right|}\textbf{
+up the \texttt{\textbackslash left.} and \texttt{\textbackslash right|}\textbf{
 }delimiters and the subscript:
 \begin{example}
-\textbackslash{}diff{*}\{\textbackslash{}frac\{F(x)\}\{G(x)\}\}\{x\}\{0\}
+\textbackslash diff{*}\{\textbackslash frac\{F(x)\}\{G(x)\}\}\{x\}\{0\}
 $\Longrightarrow\quad{\displaystyle \diffset[d-delims=.|,d-nudge=0]\diff*{\frac{F(x)}{G(x)}}{x}{0}}$ 
 \end{example}
+
 In slash style with the star option, an example above becomes
 \begin{example}
-\textbackslash{}diff{*}\{(ax\textasciicircum{}2+bx+c)\}/\{x\} $\Longrightarrow\quad\text{\ensuremath{{\displaystyle \diff*{(ax^{2}+bx+c)}/{x}}}}$, 
+\textbackslash diff{*}\{(ax\textasciicircum 2+bx+c)\}/\{x\} $\Longrightarrow\quad\text{\ensuremath{{\displaystyle \diff*{(ax^{2}+bx+c)}/{x}}}}$, 
 \end{example}
+
 where the derivative is automatically enclosed in parentheses by \texttt{diffcoeff}.
 
 \subsubsection{Multi-character variables of differentiation}
@@ -249,32 +272,35 @@
 
 Derivatives of a function-of-a-function may require forming a differential
 coefficient in which the variable of differentiation is more complicated
-than a single symbol like \texttt{x} or \texttt{\textbackslash{}alpha}.
+than a single symbol like \texttt{x} or \texttt{\textbackslash alpha}.
 For instance, to differentiate $\ln x^{2}$ (the logarithm of $x^{2}$)
 one first differentiates in $x^{2}$ then in $x$. The initial differentiation
 can be rendered
 \begin{example}
-\textbackslash{}diff\{\textbackslash{}ln x\textasciicircum{}2\}\{x\textasciicircum{}2\}
+\textbackslash diff\{\textbackslash ln x\textasciicircum 2\}\{x\textasciicircum 2\}
 $\Longrightarrow\quad{\displaystyle \diff{\ln x^{2}}{x^{2}}}$; \medskip{}
 
-diff\{\textbackslash{}ln x\textasciicircum{}2\}/\{x\textasciicircum{}2\}
+diff\{\textbackslash ln x\textasciicircum 2\}/\{x\textasciicircum 2\}
 $\Longrightarrow\quad{\displaystyle \diff{\ln x^{2}}/{x^{2}}}.$ 
 \end{example}
+
 \noindent Because of the superscript in the variable of differentiation
 $x^{2}$, parentheses have been automatically inserted in the denominator.
 This does not happen in a first-order derivative unless there is a superscript
 present. For instance,
 \begin{example}
-\textbackslash{}diff\{\textbackslash{}ln\textbackslash{}sin x\}\{\textbackslash{}sin
+\textbackslash diff\{\textbackslash ln\textbackslash sin x\}\{\textbackslash sin
 x\} $\Longrightarrow\quad{\displaystyle \diff{\ln\sin x}{\sin x}.}$ 
 \end{example}
+
 \noindent displays without parentheses. However, for higher order derivatives
 parentheses are \emph{always} inserted to avoid confusion:
 \begin{example}
-\textbackslash{}diff{[}2{]}\{\textbackslash{}ln\textbackslash{}sin x\}\{\textbackslash{}sin
+\textbackslash diff{[}2{]}\{\textbackslash ln\textbackslash sin x\}\{\textbackslash sin
 x\} $\Longrightarrow\quad{\displaystyle \diff[2]{\ln\sin x}{\sin x}.}$ 
 \end{example}
 
+
 \paragraph{Positioning the d in the numerator}
 
 When appending a differentiand, you may want to change the position of
@@ -283,126 +309,138 @@
 value like $n+1$. 
 
 If you `manually' append the differentiand, then there are various ways
-of altering the placement of the `d' from the default midpoint: use \texttt{\textbackslash{}hfill}
-to push it hard to the left; use \texttt{\textbackslash{}hfil} to\textbf{
-}push it to the left an intermediate amount; use \texttt{\textbackslash{}hphantom}
-or \texttt{\textbackslash{}hspace}, both with a braced argument, to push
-it to the left some custom amount; use \texttt{\textbackslash{}hspace}\textbf{
+of altering the placement of the `d' from the default midpoint: use \texttt{\textbackslash hfill}
+to push it hard to the left; use \texttt{\textbackslash hfil} to\textbf{
+}push it to the left an intermediate amount; use \texttt{\textbackslash hphantom}
+or \texttt{\textbackslash hspace}, both with a braced argument, to push
+it to the left some custom amount; use \texttt{\textbackslash hspace}\textbf{
 }with a \emph{negative} braced argument to push it to the right.\emph{
 }These same means can be used to shift the `d' when using the starred
-form of \texttt{\textbackslash{}diff}.\textbf{ }The effect is exactly the
+form of \texttt{\textbackslash diff}.\textbf{ }The effect is exactly the
 same, too:
 \begin{example}
-\textbackslash{}diff{[}n+1{]}\{\textbackslash{}hphantom\{\textbackslash{}sin
-x\}\}\{\textbackslash{}sin x\}\textbackslash{}ln\textbackslash{}sin x $\Longrightarrow\quad{\displaystyle \diff[n+1]{\hphantom{\sin x}}{\sin x}\ln\sin x},$\medskip{}
+\textbackslash diff{[}n+1{]}\{\textbackslash hphantom\{\textbackslash sin
+x\}\}\{\textbackslash sin x\}\textbackslash ln\textbackslash sin x $\Longrightarrow\quad{\displaystyle \diff[n+1]{\hphantom{\sin x}}{\sin x}\ln\sin x},$\medskip{}
 
-\textbackslash{}diff{*}{[}n+1{]}\{\textbackslash{}hphantom\{\textbackslash{}sin
-x\}\textbackslash{}ln\textbackslash{}sin x\}\{\textbackslash{}sin x\} $\Longrightarrow\quad{\displaystyle \diff*[n+1]{\hphantom{\sin x}\ln\sin x}{\sin x}}.$
+\textbackslash diff{*}{[}n+1{]}\{\textbackslash hphantom\{\textbackslash sin
+x\}\textbackslash ln\textbackslash sin x\}\{\textbackslash sin x\} $\Longrightarrow\quad{\displaystyle \diff*[n+1]{\hphantom{\sin x}\ln\sin x}{\sin x}}.$
 \end{example}
+
 \noindent In the starred form \texttt{diffcoeff} understands that the formatting
 is not appended with the differentiand but stays in the numerator. (But
-a \emph{second} \texttt{\textbackslash{}hphantom} or \texttt{\textbackslash{}hfil}
+a \emph{second} \texttt{\textbackslash hphantom} or \texttt{\textbackslash hfil}
 etc. would be appended.) These are to be compared with
 \begin{example}
-\textbackslash{}diff{*}{[}n+1{]}\{\textbackslash{}ln\textbackslash{}sin
-x\}\{\textbackslash{}sin x\} $\Longrightarrow\quad{\displaystyle \diff*[n+1]{\ln\sin x}{\sin x},}$
+\textbackslash diff{*}{[}n+1{]}\{\textbackslash ln\textbackslash sin
+x\}\{\textbackslash sin x\} $\Longrightarrow\quad{\displaystyle \diff*[n+1]{\ln\sin x}{\sin x},}$
 \end{example}
+
 where no phantom has been used. Which is better? Deleting the asterisk
 gives
 \begin{example}
-\textbackslash{}diff{[}n+1{]}\{\textbackslash{}ln\textbackslash{}sin x\}\{\textbackslash{}sin
+\textbackslash diff{[}n+1{]}\{\textbackslash ln\textbackslash sin x\}\{\textbackslash sin
 x\} $\Longrightarrow\quad{\displaystyle \diff[n+1]{\ln\sin x}{\sin x},}$
 \end{example}
-In slash style, the phantom (or \texttt{\textbackslash{}hfil} etc.) is
+
+In slash style, the phantom (or \texttt{\textbackslash hfil} etc.) is
 ignored:
 \begin{example}
-\textbackslash{}diff{*}{[}n+1{]}\{\textbackslash{}hphantom\{\textbackslash{}sin
-x\textbackslash{}sin x\textbackslash{}sin x\}\textbackslash{}ln\textbackslash{}sin
-x\}/\{\textbackslash{}sin x\} $\Longrightarrow\quad{\displaystyle \diff*[n+1]{\hphantom{\sin x\sin x\sin x}\ln\sin x}/{\sin x}}.$
+\textbackslash diff{*}{[}n+1{]}\{\textbackslash hphantom\{\textbackslash sin
+x\textbackslash sin x\textbackslash sin x\}\textbackslash ln\textbackslash sin
+x\}/\{\textbackslash sin x\} $\Longrightarrow\quad{\displaystyle \diff*[n+1]{\hphantom{\sin x\sin x\sin x}\ln\sin x}/{\sin x}}.$
 \end{example}
 
+
 \subsubsection{Iterated derivatives}
 
 A second derivative is an iterated derivative, i.e., one in which a differential
 coefficient forms the differentiand of another differential coefficient:
 \begin{example}
-\textbackslash{}diff{[}2{]}yx = \textbackslash{}diff{*}\{\textbackslash{}diff
+\textbackslash diff{[}2{]}yx = \textbackslash diff{*}\{\textbackslash diff
 yx\}x $\Longrightarrow{\displaystyle \diff[2]yx=\diff*{\diff yx}x},$
 \end{example}
+
 or even
 \begin{example}
-\textbackslash{}diff{[}2{]}yx = \textbackslash{}diff\{\textbackslash{}diff
+\textbackslash diff{[}2{]}yx = \textbackslash diff\{\textbackslash diff
 yx\}x $\Longrightarrow{\displaystyle \diff[2]yx=\diff{\diff yx}x},$
 \end{example}
+
 where omission of unnecessary braces has aided readability. Note how easy
 it is to switch between the different forms on the right, simply by inserting
 or removing an asterisk. 
 
-\subsection{Forming `derivatives' with D, \textbackslash{}Delta, \textbackslash{}delta}
+\subsection{Forming `derivatives' with D, \textbackslash Delta, \textbackslash delta}
 
 Often one wants to construct analogues of a differential coefficient but
 with symbols other than $d$ or $\partial$. The \texttt{diffcoeff} package
 offers three alternatives, all with the same pattern of optional and mandatory
-arguments as for \texttt{\textbackslash{}diff}, except for the slash form.
+arguments as for \texttt{\textbackslash diff}, except for the slash form.
 There is \emph{no} slash option.
 
 An uppercase $D$ is used in place of $d$ for the \emph{material} or \emph{substantive}
-derivative of a quantity in (for example) fluid dynamics. Write \texttt{\textbackslash{}Diff}
-to invoke this command:\footnote{The \texttt{\textbackslash{}diffp} command, the partial derivative, in
+derivative of a quantity in (for example) fluid dynamics. Write \texttt{\textbackslash Diff}
+to invoke this command:\footnote{The \texttt{\textbackslash diffp} command, the partial derivative, in
 the example is discussed in the next section.}
 \begin{example}
-\textbackslash{}Diff\{\textbackslash{}rho\}\{t\}=\textbackslash{}diffp\textbackslash{}rho
-t + \textbackslash{}mathbf\{u\textbackslash{}cdot\}\textbackslash{}nabla\textbackslash{}rho
+\textbackslash Diff\{\textbackslash rho\}\{t\}=\textbackslash diffp\textbackslash rho
+t + \textbackslash mathbf\{u\textbackslash cdot\}\textbackslash nabla\textbackslash rho
 $\Longrightarrow{\displaystyle \Diff{\rho}{t}=\diffp\rho t+\mathbf{u\cdot}\nabla\rho.}$ 
 \end{example}
-(The braces could also be removed from the arguments of \texttt{\textbackslash{}Diff}
-as they have been from the arguments of \texttt{\textbackslash{}diffp}.)\texttt{ }
 
+(The braces could also be removed from the arguments of \texttt{\textbackslash Diff}
+as they have been from the arguments of \texttt{\textbackslash diffp}.)\texttt{ }
+
 The `D's are romanised (along with the `d's of ordinary derivatives)
 with the 
 \begin{example}
-\textbackslash{}diffset{[}roman = true{]}
+\textbackslash diffset{[}roman = true{]}
 \end{example}
+
 command. The default is math italic.
 
-The command \texttt{\textbackslash{}diffd} will form a fraction often used
-in introductory calculus texts (and other places):\footnote{I considered using \texttt{\textbackslash{}diffg} for this command as in
+The command \texttt{\textbackslash diffd} will form a fraction often used
+in introductory calculus texts (and other places):\footnote{I considered using \texttt{\textbackslash diffg} for this command as in
 `diff greek' but decided that the more likely mind-phrase is `diff delta',
 leading to the use of `d' rather than `g'.}
 \begin{example}
-\textbackslash{}diffd\{y\}\{x\} $\Longrightarrow{\displaystyle \diffd yx.}$ 
+\textbackslash diffd\{y\}\{x\} $\Longrightarrow{\displaystyle \diffd yx.}$ 
 \end{example}
-Similarly, \texttt{\textbackslash{}Diffd} forms a fraction with $\Delta$:
+
+Similarly, \texttt{\textbackslash Diffd} forms a fraction with $\Delta$:
 \begin{example}
-\textbackslash{}Diffd\{y\}\{x\} $\Longrightarrow{\displaystyle \Diffd{y}{x}.}$ 
+\textbackslash Diffd\{y\}\{x\} $\Longrightarrow{\displaystyle \Diffd{y}{x}.}$ 
 \end{example}
+
 Higher order forms of these derivatives are produced in the same way as
-with \texttt{\textbackslash{}diff}, using an optional argument to specify
+with \texttt{\textbackslash diff}, using an optional argument to specify
 the order:
 \begin{example}
-\textbackslash{}diffd{[}2{]}\{y\}\{x\} $\Longrightarrow{\displaystyle \diffd[2]yx.}$ 
+\textbackslash diffd{[}2{]}\{y\}\{x\} $\Longrightarrow{\displaystyle \diffd[2]yx.}$ 
 \end{example}
+
 A final optional argument, enclosed in braces, specifies a point of evaluation,
 care being taken, as ever, to ensure that there is no space between it
 and the second mandatory argument:
 \begin{example}
-\textbackslash{}Diffd\{y\}\{x\}\{x=0\} $\Longrightarrow{\displaystyle \Diffd yx{x=0}.}$ 
+\textbackslash Diffd\{y\}\{x\}\{x=0\} $\Longrightarrow{\displaystyle \Diffd yx{x=0}.}$ 
 \end{example}
 
+
 \section{Partial differential coefficients\label{sec:Partial-differential-coefficient}}
 \noindent \begin{flushleft}
 Partial differential coefficients follow the same pattern as for ordinary
 derivatives, with some generalisations arising from the greater possibilities.
-The command this time is \texttt{\textbackslash{}diffp}. Thus \textbf{\textbackslash{}diffp\{F\}\{x\}}
+The command this time is \texttt{\textbackslash diffp}. Thus \textbf{\textbackslash diffp\{F\}\{x\}}
 produces $\diffp{F}{x}$ in text style and 
 \[
 \diffp{F}{x}
 \]
  in display style. Braces can be omitted for single token differentiands
-and variables: \texttt{\textbackslash{}diffp Fx} does the job.\textbf{
-}As for \texttt{\textbackslash{}diff}, there is a slash form for more casual
-use: \texttt{\textbackslash{}diffp F/x} displaying as $\diffp F/x$. Given
-that \texttt{\textbackslash{}partial} takes 8 keystrokes to type, the slash
+and variables: \texttt{\textbackslash diffp Fx} does the job.\textbf{
+}As for \texttt{\textbackslash diff}, there is a slash form for more casual
+use: \texttt{\textbackslash diffp F/x} displaying as $\diffp F/x$. Given
+that \texttt{\textbackslash partial} takes 8 keystrokes to type, the slash
 form \emph{does }economise on keystrokes for a partial derivative.
 \par\end{flushleft}
 
@@ -412,26 +450,28 @@
 indeed, an $n+4$th-order partial derivative, 
 \par\end{flushleft}
 \begin{example}
-\textbackslash{}diffp{[}n+4{]}\{F\}\{x\} $\Longrightarrow\quad{\displaystyle {\displaystyle \diffp[n+4]{F}{x},}}$\medskip{}
+\textbackslash diffp{[}n+4{]}\{F\}\{x\} $\Longrightarrow\quad{\displaystyle {\displaystyle \diffp[n+4]{F}{x},}}$\medskip{}
 
-\textbackslash{}diffp{[}n+4{]}\{F\}/\{x\} $\Longrightarrow\quad{\displaystyle {\displaystyle \diffp[n+4]{F}/{x},}}$
+\textbackslash diffp{[}n+4{]}\{F\}/\{x\} $\Longrightarrow\quad{\displaystyle {\displaystyle \diffp[n+4]{F}/{x},}}$
 \end{example}
+
 In a subject like thermodynamics, there is a need to indicate which variable
 or variables are held constant when the differentiation occurs. To show
 this, append a final optional argument. Thus to differentiate the entropy
 $S$ in the temperature $T$ while holding the volume $V$ constant, write
 \begin{example}
-\textbackslash{}diffp\{S\}\{T\}\{V\} $\Longrightarrow\quad{\displaystyle \diffp{S}{T}{V}}$
+\textbackslash diffp\{S\}\{T\}\{V\} $\Longrightarrow\quad{\displaystyle \diffp{S}{T}{V}}$
 \end{example}
-As with \texttt{\textbackslash{}diff}\textbf{ }note how the final optional
+
+As with \texttt{\textbackslash diff}\textbf{ }note how the final optional
 argument is given in braces rather than square brackets, and that there
 must be \emph{no space} before the argument: if used, it follows \emph{immediately}
 on the second mandatory argument. This means that the differential coefficient
-can be followed immediately by a mathematical expression wrapped in \textbackslash{}\{
-\textbackslash{}\}, or {[} {]}, without the expression being confused with
+can be followed immediately by a mathematical expression wrapped in \textbackslash\{
+\textbackslash\}, or {[} {]}, without the expression being confused with
 the (final) optional argument.
 
-We could save a few keystrokes by writing this last example as \texttt{\textbackslash{}diffp
+We could save a few keystrokes by writing this last example as \texttt{\textbackslash diffp
 ST\{V\}}. The braces around the optional argument can \emph{not} be dispensed
 with (otherwise there is no way of knowing that it \emph{is} the final
 optional argument and not part of a following expression). 
@@ -438,11 +478,12 @@
 
 Note that for the slash form of the derivative it is anticipated that there
 will be no trailing optional argument. If you \emph{do} use one, you will
-need to change the nudge value either with the \texttt{\textbackslash{}diffset}
+need to change the nudge value either with the \texttt{\textbackslash diffset}
 command or, better, by including a spacing command in the third argument:
 \begin{example}
-\textbackslash{}diffp\{S\}/\{T\}\{\textbackslash{};V\} $\Longrightarrow\quad{\displaystyle \diffp{S}/{T}{\;V}}$
+\textbackslash diffp\{S\}/\{T\}\{\textbackslash ;V\} $\Longrightarrow\quad{\displaystyle \diffp{S}/{T}{\;V}}$
 \end{example}
+
 Without the spacing command, the subscript encroaches on the right parenthesis.
 
 \subsubsection{Appending the differentiand}
@@ -451,36 +492,41 @@
 the derivative, one way, as for ordinary derivatives, is to leave the first
 mandatory argument empty and manually append the differentiand:
 \begin{example}
-\textbackslash{}diffp{[}n{]}\{\}xf(x) $\Longrightarrow\quad{\displaystyle \diffp[n]{}xf(x).}$
+\textbackslash diffp{[}n{]}\{\}xf(x) $\Longrightarrow\quad{\displaystyle \diffp[n]{}xf(x).}$
 \end{example}
+
 However, you may wonder how that would look with the differentiand in the
 numerator, which is a good reason for preferring the starred form of the
-\texttt{\textbackslash{}diffp} command to achieve an appended derivative:
+\texttt{\textbackslash diffp} command to achieve an appended derivative:
 \begin{example}
-\textbackslash{}diffp{*}{[}n{]}\{f(x)\}x $\Longrightarrow\quad{\displaystyle \diffp*[n]{f(x)}x.}$
+\textbackslash diffp{*}{[}n{]}\{f(x)\}x $\Longrightarrow\quad{\displaystyle \diffp*[n]{f(x)}x.}$
 \end{example}
+
 Now it is easy to switch between an appended differentiand and one in the
 numerator simply by inserting or deleting the asterisk. In the slash form,
 parentheses are automatically inserted around the differential operator:
 \begin{example}
-\textbackslash{}diffp{*}{[}n{]}\{f(x)\}/x $\Longrightarrow\quad{\displaystyle \diffp*[n]{f(x)}/x.}$
+\textbackslash diffp{*}{[}n{]}\{f(x)\}/x $\Longrightarrow\quad{\displaystyle \diffp*[n]{f(x)}/x.}$
 \end{example}
+
 It also happens, for example in thermodynamics, that you may wish to both
 append the differentiand \emph{and} indicate variables held constant. In
-that case, the starred \texttt{\textbackslash{}diffp} command is much easier
+that case, the starred \texttt{\textbackslash diffp} command is much easier
 to use. Thus, to express a relation in thermodynamics,
 \begin{example}
-\textbackslash{}diffp{*}\{\textbackslash{}frac \{P\}\{T\}\}\{U\}\{V\} =
-\textbackslash{}diffp{*}\{\textbackslash{}frac\{1\}\{T\}\}\{V\}\{U\} $\Longrightarrow\quad{\displaystyle \diffp*{\frac{P}{T}}{U}{V}=\diffp*{\frac{1}{T}}{V}{U}}$
+\textbackslash diffp{*}\{\textbackslash frac \{P\}\{T\}\}\{U\}\{V\} =
+\textbackslash diffp{*}\{\textbackslash frac\{1\}\{T\}\}\{V\}\{U\} $\Longrightarrow\quad{\displaystyle \diffp*{\frac{P}{T}}{U}{V}=\diffp*{\frac{1}{T}}{V}{U}}$
 \end{example}
+
 \noindent where the starred form automatically takes care of the parentheses
 and subscripts. Again, not all the braces are necessary, with some help
 to readability:
 \begin{example}
-\textbackslash{}diffp{*}\{\textbackslash{}frac PT\}U\{V\} = \textbackslash{}diffp{*}\{\textbackslash{}frac
+\textbackslash diffp{*}\{\textbackslash frac PT\}U\{V\} = \textbackslash diffp{*}\{\textbackslash frac
 1T\}V\{U\} $\Longrightarrow\quad{\displaystyle \diffp*{\frac{P}{T}}U{V}=\diffp*{\frac{1}{T}}V{U}}$
 \end{example}
 
+
 \subsection{Mixed partial derivatives}
 
 The new thing with partial derivatives, not present with ordinary derivatives,
@@ -489,21 +535,24 @@
 order, then it is easy to specify the derivative. Say $f(x,y,z)$ is a
 function of three variables, as indicated. Then
 \begin{example}
-\textbackslash{}diffp\{f\}\{x\c{,}y,z\} $\Longrightarrow\quad{\displaystyle \diffp{f}{x,y,z}}.$
+\textbackslash diffp\{f\}\{x\c{,}y,z\} $\Longrightarrow\quad{\displaystyle \diffp{f}{x,y,z}}.$
 \end{example}
+
 The variables of differentiation are listed in order in a comma list forming
 the second mandatory argument. The total order of differentiation (3 in
 this example) is inserted automatically \textendash{} \texttt{diffcoeff}
 does the calculation itself. There is also a slash form:
 \begin{example}
-\textbackslash{}diffp\{f\}/\{x\c{,}y,z\} $\Longrightarrow\quad{\displaystyle \diffp{f}/{x,y,z}}.$
+\textbackslash diffp\{f\}/\{x\c{,}y,z\} $\Longrightarrow\quad{\displaystyle \diffp{f}/{x,y,z}}.$
 \end{example}
+
 If we want to differentiate variables to higher order, then their orders
 need to be specified explicitly. To do so use a comma list also in the
 \emph{optional} argument:
 \begin{example}
-\textbackslash{}diffp{[}2,3{]}\{f\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp[2,3]{f}{x,y,z}.}$
+\textbackslash diffp{[}2,3{]}\{f\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp[2,3]{f}{x,y,z}.}$
 \end{example}
+
 \noindent Notice that the overall order of the derivative \textendash{}
 6 \textendash{} is again automatically calculated and inserted as a superscript
 on the $\partial$ symbol in the numerator. In this example, the comma
@@ -525,9 +574,10 @@
 algebraic. For example, differentiating in three variables with orders
 \texttt{2k}, \texttt{m-k-2}, \texttt{m+k+3}, we have 
 \begin{example}
-\textbackslash{}diffp{[}2k-1,m-k-2,m+k+3{]}\{F(x,y,z)\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp[2k-1,m-k-2,m+k+3]{F(x,y,z)}{x,y,z}}$,
+\textbackslash diffp{[}2k-1,m-k-2,m+k+3{]}\{F(x,y,z)\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp[2k-1,m-k-2,m+k+3]{F(x,y,z)}{x,y,z}}$,
 \end{example}
 
+
 \subsection{The order-override option}
 
 In this example the overall order is presented as \texttt{2k+2m}. You might
@@ -537,9 +587,10 @@
 from that of \texttt{diffcoeff}, use the\emph{ order-override option},
 which is a second optional argument immediately following the first:
 \begin{example}
-\textbackslash{}diffp{[}2k-1,m-k-2,m+k+3{]}{[}2(k+m){]}\{F(x,y,z)\}\{x,y,z\}
+\textbackslash diffp{[}2k-1,m-k-2,m+k+3{]}{[}2(k+m){]}\{F(x,y,z)\}\{x,y,z\}
 $\Longrightarrow\quad{\displaystyle \diffp[2k-1,m-k-2,m+k+3][2(m+k)]{F(x,y,z)}{x,y,z}}$.
 \end{example}
+
 The order-override option does exactly that: overrides the presentation
 of the calculated order with the manually given one. (In fact the algorithm
 does not get called at all.)
@@ -572,9 +623,10 @@
 To take a grotesque example, that will never arise in practice, consider
 the following: 
 \begin{example}
-\textbackslash{}diffp{[}kmn-mn+n-1,2kmn-mn+2n-1,n+1{]}\{f\}\{x,y,z,w\}
+\textbackslash diffp{[}kmn-mn+n-1,2kmn-mn+2n-1,n+1{]}\{f\}\{x,y,z,w\}
 $\Longrightarrow{\displaystyle \diffp[kmn-mn+n-1,2kmn-mn+2n-1,n+1]{f}{x,y,z,w}}.$
 \end{example}
+
 As noted earlier, since the final variable $w$ is differentiated only
 to order 1, there is no need to specify it in the comma list of orders.
 The implicit 1 contributes to the vanishing of the numerical part in the
@@ -585,17 +637,19 @@
 if a minus sign precedes the first many-variable term, and the numerical
 term is positive, it will be presented first:
 \begin{example}
-\textbackslash{}diffp{[}12-2km,k-1,km+1{]}\{f\}\{x,y,z,w\} $\Longrightarrow{\displaystyle \diffp[12-2km,km-1,k+1]{f}{x,y,z,w}}.$
+\textbackslash diffp{[}12-2km,k-1,km+1{]}\{f\}\{x,y,z,w\} $\Longrightarrow{\displaystyle \diffp[12-2km,km-1,k+1]{f}{x,y,z,w}}.$
 \end{example}
+
 Should the numerical term either vanish or be negative and the leading
 algebraic term is preceded by a minus sign, \texttt{diffcoeff} will look
 for an algebraic term with a preceding $+$ sign and put that first:
 \begin{example}
-\textbackslash{}diffp{[}2km-3k-1,2k-1,-3km+4k+1{]}\{f\}\{x,y,z,w\} $\Longrightarrow{\displaystyle \diffp[2km-3k-1,2k-1,-3km+4k+1]{f}{x,y,z,w}}.$
+\textbackslash diffp{[}2km-3k-1,2k-1,-3km+4k+1{]}\{f\}\{x,y,z,w\} $\Longrightarrow{\displaystyle \diffp[2km-3k-1,2k-1,-3km+4k+1]{f}{x,y,z,w}}.$
 \end{example}
 
-\subsection{\textbackslash{}diffset: formatting tweaks}
 
+\subsection{\textbackslash diffset: formatting tweaks}
+
 As with ordinary derivatives, there are a number of tweaks one can make
 to the display of a partial derivative. 
 
@@ -603,9 +657,10 @@
 of a partial derivative and the superscripted order of the derivative.
 The separation can be altered by using the 
 \begin{example}
-\textbackslash{}diffset{[}p-sep = $n${]}
+\textbackslash diffset{[}p-sep = $n${]}
 \end{example}
-\noindent command which adds an extra $n$~mu to \TeX{}'s spacing. The
+
+\noindent command which adds an extra $n$~mu to \TeX 's spacing. The
 default value is 1 (i.e. 1~mu). The new separation will affect all derivatives
 following the new setting. Put in the preamble, the new separation will
 be document-wide.
@@ -613,37 +668,41 @@
 You may also want to adjust the spacing between the terms in the denominator.
 This can be done with the command
 \begin{example}
-\textbackslash{}diffset{[}sep=$n${]}
+\textbackslash diffset{[}sep=$n${]}
 \end{example}
-which adds an extra $n$~mu to \TeX{}'s spacing. The default value is
-2~mu.
 
+which adds an extra $n$~mu to \TeX 's spacing. The default value is 2~mu.
+
 If you wish to indicate the point at which a partial derivative is evaluated,
 you may not want to use parentheses, since these when subscripted are widely
 held to indicate variables held constant. To change the delimiter on the
 right to a vertical line, use
 \begin{example}
-\textbackslash{}diffset{[}p-delims = . | {]}\textmd{,}
+\textbackslash diffset{[}p-delims = . | {]}\textmd{,}
 \end{example}
-the dot suppressing the delimiter on the left. (Note that to use \texttt{\textbackslash{}\{}
-and \texttt{\textbackslash{}\}} as delimiters, \texttt{\textbackslash{}diffset
+
+the dot suppressing the delimiter on the left. (Note that to use \texttt{\textbackslash\{}
+and \texttt{\textbackslash\}} as delimiters, \texttt{\textbackslash diffset
 }must be placed between maths delimiters.) 
 
 Changing the delimiters will usually require a repositioning of the subscript.
 The command is
 \begin{example}
-\textbackslash{}diffset{[}p-nudge = $n${]}\textmd{.}
+\textbackslash diffset{[}p-nudge = $n${]}\textmd{.}
 \end{example}
+
 For parentheses the default value of $n$ is $-6$, but for the vertical
 rule a zero value is appropriate. Thus the overall command for . | would
 be
 \begin{example}
-\textbackslash{}diffset{[}p-delims = . |, p-nudge = 0{]} \textmd{.}
+\textbackslash diffset{[}p-delims = . |, p-nudge = 0{]} \textmd{.}
 \end{example}
+
 Writing 
 \begin{example}
-\textbackslash{}diffset
+\textbackslash diffset
 \end{example}
+
 will return all settings to their default values.
 
 \subsection{Variations}
@@ -659,15 +718,17 @@
 rather than \texttt{\{x,y}\}, the extra writing is trivial and the comma
 list allows the simplest handling of multi-character variables:
 \begin{example}
-\textbackslash{}diffp\{A\_i\}\{ x\textasciicircum{}j,x\textasciicircum{}k
+\textbackslash diffp\{A\_i\}\{ x\textasciicircum j,x\textasciicircum k
 \} $\Longrightarrow{\displaystyle \diffp{A_{i}}{x^{j},x^{k}},}$
 \end{example}
+
 taken from tensor calculus, or this strange object taken from statistical
 mechanics:
 \begin{example}
-\textbackslash{}diffp{[}2{]}q\{\textbackslash{}frac 1\textbackslash{}Theta\}
+\textbackslash diffp{[}2{]}q\{\textbackslash frac 1\textbackslash Theta\}
 $\Longrightarrow{\displaystyle \diffp[2]q{\frac{1}{\Theta}}}$.
 \end{example}
+
 The parentheses have been inserted automatically by \texttt{diffcoeff}
 to clarify exactly what the variable of differentiation is.
 
@@ -674,7 +735,7 @@
 \subsubsection{Use of phantoms when appending differentiands}
 
 As for ordinary derivatives, when appending a differentiand you may want
-to include a phantom (\texttt{\textbackslash{}hphantom} etc.) in the numerator
+to include a phantom (\texttt{\textbackslash hphantom} etc.) in the numerator
 of the differential coefficient to alter the placement of the $\partial$
 symbol. This may be particularly relevant if the order of differentiation
 is a multi-character symbol or if there are a number of variables of differentiation. 
@@ -681,19 +742,21 @@
 
 Either means of achieving the appended differentiand achieve the same result:
 \begin{example}
-\textbackslash{}diffp{[}m,2{]}\{\textbackslash{}hphantom\{\textbackslash{}partial
-y \textbackslash{}partial \}\}\{x,y,z\} (\textbackslash{}ln \textbackslash{}cos
-x + \textbackslash{}ln \textbackslash{}sin y)z $\Longrightarrow\quad{\displaystyle \diffp[m,2]{\hphantom{\partial y\partial}}{x,y,z}}(\ln\cos x+\ln\sin y)z,$\medskip{}
+\textbackslash diffp{[}m,2{]}\{\textbackslash hphantom\{\textbackslash partial
+y \textbackslash partial \}\}\{x,y,z\} (\textbackslash ln \textbackslash cos
+x + \textbackslash ln \textbackslash sin y)z $\Longrightarrow\quad{\displaystyle \diffp[m,2]{\hphantom{\partial y\partial}}{x,y,z}}(\ln\cos x+\ln\sin y)z,$\medskip{}
 
-\textbackslash{}diffp{*}{[}m,2{]}\{\textbackslash{}hphantom\{\textbackslash{}partial
-y \textbackslash{}partial \}(\textbackslash{}ln \textbackslash{}cos x +
-\textbackslash{}ln \textbackslash{}sin y)z\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp*[m,2]{\hphantom{\partial y\partial}(\ln\cos x+\ln\sin y)z}{x,y,z}},$
+\textbackslash diffp{*}{[}m,2{]}\{\textbackslash hphantom\{\textbackslash partial
+y \textbackslash partial \}(\textbackslash ln \textbackslash cos x +
+\textbackslash ln \textbackslash sin y)z\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp*[m,2]{\hphantom{\partial y\partial}(\ln\cos x+\ln\sin y)z}{x,y,z}},$
 \end{example}
+
 which is to be compared with the derivative without the phantom,
 \begin{example}
-\textbackslash{}diffp{*}{[}m,2{]}\{(\textbackslash{}ln \textbackslash{}cos
-x + \textbackslash{}ln \textbackslash{}sin y)z\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp*[m,2]{(\ln\cos x+\ln\sin y)z}{x,y,z}}.$
+\textbackslash diffp{*}{[}m,2{]}\{(\textbackslash ln \textbackslash cos
+x + \textbackslash ln \textbackslash sin y)z\}\{x,y,z\} $\Longrightarrow\quad{\displaystyle \diffp*[m,2]{(\ln\cos x+\ln\sin y)z}{x,y,z}}.$
 \end{example}
+
 \noindent In the starred form, \texttt{diffcoeff} understands that the
 phantom is not appended with the differentiand but stays in the numerator.
 (But a \emph{second} phantom would be appended.) 
@@ -702,27 +765,30 @@
 
 Partial derivatives can be iterated. For example,
 \begin{example}
-\textbackslash{}diffp f\{x,y\} = \textbackslash{}diffp{*}\{\textbackslash{}diffp
+\textbackslash diffp f\{x,y\} = \textbackslash diffp{*}\{\textbackslash diffp
 fy\}x $\Longrightarrow{\displaystyle \diffp f{x,y}=\diffp*{\diffp fy}x,}$\medskip{}
 
-\textbackslash{}diffp f\{x,y\} = \textbackslash{}diffp\{\textbackslash{}diffp
+\textbackslash diffp f\{x,y\} = \textbackslash diffp\{\textbackslash diffp
 fy\}x $\Longrightarrow{\displaystyle \diffp f{x,y}=\diffp{\diffp fy}x.}$
 \end{example}
+
 It is easy to switch between these forms by inserting or deleting the asterisk.
 
 \subsection{Jacobians}
 
-\texttt{diffcoeff} provides a command \texttt{\textbackslash{}jacob} for
+\texttt{diffcoeff} provides a command \texttt{\textbackslash jacob} for
 constructing Jacobians. For example
 \begin{example}
-\textbackslash{}jacob\{u,v,w\}\{x,y,z\} $\Longrightarrow{\displaystyle \jacob{u,v,w}{x,y,z}.}$
+\textbackslash jacob\{u,v,w\}\{x,y,z\} $\Longrightarrow{\displaystyle \jacob{u,v,w}{x,y,z}.}$
 \end{example}
-The comma lists can contain any number of variables. \texttt{\textbackslash{}jacob}
+
+The comma lists can contain any number of variables. \texttt{\textbackslash jacob}
 does \emph{not} check that the two arguments contain the same number of
 variables, so it is perfectly possible to form an object like
 \begin{example}
-\textbackslash{}jacob\{u,v,w\}\{x,y\} ,
+\textbackslash jacob\{u,v,w\}\{x,y\} ,
 \end{example}
+
 which as far as I know has no meaning.
 
 \section{Discussion of the code}
@@ -729,10 +795,10 @@
 
 I set about creating this package when faced with trying to parse \LaTeX{}
 expressions involving derivatives for another program I was working on.
-Trying to parse \texttt{\textbackslash{}frac\{d<something>\}\{d<something
-else>\}}, perhaps with \texttt{\textbackslash{}mathrm\{d\}}'s, and a superscript
-on the first \texttt{d}, perhaps with a \texttt{\textbackslash{}tfrac}
-or \texttt{\textbackslash{}dfrac} for the \texttt{\textbackslash{}frac},\textbf{
+Trying to parse \texttt{\textbackslash frac\{d<something>\}\{d<something
+else>\}}, perhaps with \texttt{\textbackslash mathrm\{d\}}'s, and a superscript
+on the first \texttt{d}, perhaps with a \texttt{\textbackslash tfrac}
+or \texttt{\textbackslash dfrac} for the \texttt{\textbackslash frac},\textbf{
 }wasn't quite hopeless, but it was certainly \emph{messy}. (I used regular
 expressions to transform the fraction into something more systematic.) 
 
@@ -744,39 +810,39 @@
 \begin{itemize}
 \item \texttt{bropd}
 \begin{itemize}
-\item \texttt{\textbackslash{}od{[}n{]}\{y\}\{x\}} and \texttt{\textbackslash{}pd{[}n{]}\{y\}\{x\}}
+\item \texttt{\textbackslash od{[}n{]}\{y\}\{x\}} and \texttt{\textbackslash pd{[}n{]}\{y\}\{x\}}
 for ordinary and partial derivatives of order \texttt{n} in one variable
-\item \texttt{\textbackslash{}pd\{u\}\{x,x,t\}} for a mixed partial derivative,
+\item \texttt{\textbackslash pd\{u\}\{x,x,t\}} for a mixed partial derivative,
 order 2 in \texttt{x}, 1 in \texttt{t}
-\item \texttt{\textbackslash{}pd\{\}\{z\}\{x+y\}} for appending \texttt{(x+y)}
-\item \texttt{\textbackslash{}pd\{!\}\{z\}\{x+y\}} for appending \texttt{x+y}
+\item \texttt{\textbackslash pd\{\}\{z\}\{x+y\}} for appending \texttt{(x+y)}
+\item \texttt{\textbackslash pd\{!\}\{z\}\{x+y\}} for appending \texttt{x+y}
 \end{itemize}
 \item \texttt{commath}
 \begin{itemize}
-\item \texttt{\textbackslash{}od{[}n{]}\{y\}\{x\}} and \texttt{\textbackslash{}pd{[}n{]}\{y\}\{x\}}
+\item \texttt{\textbackslash od{[}n{]}\{y\}\{x\}} and \texttt{\textbackslash pd{[}n{]}\{y\}\{x\}}
 for ordinary and partial derivatives of order \texttt{n} in one variable
-\item \texttt{\textbackslash{}md\{f\}\{5\}\{x\}\{2\}\{y\}\{3\}} for a 5th order
+\item \texttt{\textbackslash md\{f\}\{5\}\{x\}\{2\}\{y\}\{3\}} for a 5th order
 mixed partial derivative
-\item \texttt{\textbackslash{}tmd}, \texttt{\textbackslash{}dmd} and similar
+\item \texttt{\textbackslash tmd}, \texttt{\textbackslash dmd} and similar
 commands for forcing text and display styles
 \end{itemize}
 \item \texttt{esdiff}
 \begin{itemize}
-\item \texttt{\textbackslash{}diff{[}n{]}\{y\}\{x\}}\textbf{ }and \texttt{\textbackslash{}diffp{[}n{]}\{y\}\{x\}}\textbf{
+\item \texttt{\textbackslash diff{[}n{]}\{y\}\{x\}}\textbf{ }and \texttt{\textbackslash diffp{[}n{]}\{y\}\{x\}}\textbf{
 }for ordinary and partial derivatives of order \texttt{n} in one variable
-\item \texttt{\textbackslash{}diffp\{f\}\{\{x\textasciicircum{}2\}\{y\}\{z\textasciicircum{}3\}\}}
+\item \texttt{\textbackslash diffp\{f\}\{\{x\textasciicircum 2\}\{y\}\{z\textasciicircum 3\}\}}
 for a mixed partial derivative of order 6 in three variables
-\item \texttt{\textbackslash{}diff{*}{[}n{]}\{y\}\{x\}\{0\}} for indicating the
+\item \texttt{\textbackslash diff{*}{[}n{]}\{y\}\{x\}\{0\}} for indicating the
 point of evaluation of the derivative (using a subscript on parentheses)
-\item \texttt{\textbackslash{}diffp{*}\{P\}\{T\}\{V\}} to indicate a variable
+\item \texttt{\textbackslash diffp{*}\{P\}\{T\}\{V\}} to indicate a variable
 held constant
 \end{itemize}
 \item \texttt{physymb}
 \begin{itemize}
-\item \texttt{\textbackslash{}ud\{y\}\{x\}} and \texttt{\textbackslash{}pd\{y\}\{x\}}
+\item \texttt{\textbackslash ud\{y\}\{x\}} and \texttt{\textbackslash pd\{y\}\{x\}}
 for ordinary and partial derivatives of first order
-\item \texttt{\textbackslash{}udd\{y\}\{x\}}, \texttt{\textbackslash{}uddd\{y\}\{x\}}
-and \texttt{\textbackslash{}pdd\{y\}\{x\}}, \texttt{\textbackslash{}pddd\{y\}\{x\}}
+\item \texttt{\textbackslash udd\{y\}\{x\}}, \texttt{\textbackslash uddd\{y\}\{x\}}
+and \texttt{\textbackslash pdd\{y\}\{x\}}, \texttt{\textbackslash pddd\{y\}\{x\}}
 for second and third order ordinary and partial derivatives
 \item higher order derivatives not catered for
 \end{itemize}
@@ -795,8 +861,9 @@
 both algebraic and numeric contributions to the order:
 \end{itemize}
 \begin{example}
-\textbackslash{}diffp{[}m-k-1,m+k{]}\{F(x,y,z)\}\{x,y,z\} $\Longrightarrow{\displaystyle \diffp[m-k-1,m+k]{F(x,y,z)}{x,y,z}}.$
+\textbackslash diffp{[}m-k-1,m+k{]}\{F(x,y,z)\}\{x,y,z\} $\Longrightarrow{\displaystyle \diffp[m-k-1,m+k]{F(x,y,z)}{x,y,z}}.$
 \end{example}
+
 \begin{itemize}
 \item Ease of use was another major consideration, trying to avoid the unnecessary
 writing of superscripts and subscripts and brace pairs. In this example,
@@ -810,34 +877,35 @@
 \end{itemize}
 \item I've also tried to make the options `natural' and consistent across both
 ordinary and partial derivatives. Looking at the other packages listed
-above, writing something like \texttt{\textbackslash{}diff{[}n{]}\{f\}\{x\}}
-(which can be trimmed to \texttt{\textbackslash{}diff{[}n{]}fx} in this
+above, writing something like \texttt{\textbackslash diff{[}n{]}\{f\}\{x\}}
+(which can be trimmed to \texttt{\textbackslash diff{[}n{]}fx} in this
 instance) seems `natural' \textendash{} only \texttt{physymb} deviates
 from the pattern. It seems consistent with this pattern to use a comma
 list as an optional argument for mixed partial derivatives. 
 \item I debated whether to include provision for points of evaluation and variables
-held constant into the \texttt{\textbackslash{}diff} and \texttt{\textbackslash{}diffp}
+held constant into the \texttt{\textbackslash diff} and \texttt{\textbackslash diffp}
 commands. \texttt{esdiff} certainly allows this. I think a case can be
 made, in subjects like thermodynamics, to consider the parentheses and
 subscript as part of the overall symbol. The partial derivative itself
 doesn't give the full story; it is ambiguous. Hence provision for these
-extra elements was included in \texttt{\textbackslash{}diff} and \texttt{\textbackslash{}diffp}.
+extra elements was included in \texttt{\textbackslash diff} and \texttt{\textbackslash diffp}.
 It's positioning as a final optional argument also felt natural given the
 position of the resulting symbol in the displayed derivative:
 \end{itemize}
 \begin{example}
-\textbackslash{}diffp ST\{V\} $\Longrightarrow\quad{\displaystyle \diffp ST{V}}$
+\textbackslash diffp ST\{V\} $\Longrightarrow\quad{\displaystyle \diffp ST{V}}$
 \end{example}
+
 \begin{itemize}
 \item Although initially I used standard square brackets for this trailing optional
 argument, the possibility of an immediately following mathematical expression
 being enclosed in square brackets convinced me to use braces for the argument.
 An immediately following expression can now be enclosed in \texttt{{[}
-{]}}, or \texttt{\textbackslash{}\{ \textbackslash{}\}}, without ambiguity.
+{]}}, or \texttt{\textbackslash\{ \textbackslash\}}, without ambiguity.
 \item The star option also prompted the reflection: is it needed? One can always
 leave the first mandatory argument empty and append the differentiand `by
 hand'. But once the provision for points of evaluation or variables held
-constant was incorporated into the \texttt{\textbackslash{}diff} and \texttt{\textbackslash{}diffp}
+constant was incorporated into the \texttt{\textbackslash diff} and \texttt{\textbackslash diffp}
 commands, the star option became the simplest way of handling appended
 differentiands using the extra provision. (Note that it conflicts with
 the star option in \texttt{esdiff}, but I can't see the packages ever being
@@ -1015,16 +1083,16 @@
 
 Row 8 of our table generates an error: a digit following a variable. But
 having allowed products of variables like \texttt{mn} ($mn$), it is very
-tempting to allow \texttt{mm}, i.e. \texttt{m\textasciicircum{}2} ($m^{2}$)
-and, indeed, \texttt{m\textasciicircum{}n} ($m^{n}$). And if we allow
-\texttt{m\textasciicircum{}2} and \texttt{m\textasciicircum{}n}, how can
+tempting to allow \texttt{mm}, i.e. \texttt{m\textasciicircum 2} ($m^{2}$)
+and, indeed, \texttt{m\textasciicircum n} ($m^{n}$). And if we allow
+\texttt{m\textasciicircum 2} and \texttt{m\textasciicircum n}, how can
 we say no to subscripted forms like \texttt{k\_2} ($k_{2}$) and \texttt{k\_n}
 ($k_{n}$)? Or, for that matter, \texttt{k\_+} ($k_{+}$) and \texttt{k\_-}
-($k_{-}$), and therefore \texttt{m\textasciicircum{}+} ($m^{+}$) and
-\texttt{m\textasciicircum{}-} ($m^{-}$)? And having extended the scheme
+($k_{-}$), and therefore \texttt{m\textasciicircum +} ($m^{+}$) and
+\texttt{m\textasciicircum -} ($m^{-}$)? And having extended the scheme
 in this way to exponents of \emph{variables}, surely it should also encompass
-exponents of \emph{numbers}, not only an obvious case like \texttt{2\textasciicircum{}2}
-($2^{2}$) but less obviously, yet still compellingly, \texttt{2\textasciicircum{}n}
+exponents of \emph{numbers}, not only an obvious case like \texttt{2\textasciicircum 2}
+($2^{2}$) but less obviously, yet still compellingly, \texttt{2\textasciicircum n}
 ($2^{n}$)? 
 
 Each of these extensions produces its own problems, but they can all be
@@ -1040,9 +1108,9 @@
 
 In the code, the states are distinguished by integers as indicated in Table~\ref{tab:State-integers}.
 Tokens are assigned similar integer indexes, as indicated in the table.
-The relevant routine is \texttt{\textbackslash{}\_\_diffco\_get\_curr\_index:NN}.
+The relevant routine is \texttt{\textbackslash\_\_diffco\_get\_curr\_index:NN}.
 The actions embodied in Table~\ref{tab:Input-output-states} are encoded
-in \texttt{\textbackslash{}\_\_diffco\_compare\_states:NNNNN} which is
+in \texttt{\textbackslash\_\_diffco\_compare\_states:NNNNN} which is
 a direct translation of the table into expl3 code.
 
 \begin{table}[h]
@@ -1067,17 +1135,17 @@
 Symbol & Code variable\tabularnewline
 \hline 
 \hline 
-$s$,$d$,$v$ & \texttt{\textbackslash{}l\_\_diffco\_curr\_tok\_tl}\tabularnewline
+$s$,$d$,$v$ & \texttt{\textbackslash l\_\_diffco\_curr\_tok\_tl}\tabularnewline
 \hline 
-$T$ & \texttt{\textbackslash{}l\_\_diffco\_curr\_term\_tl}\tabularnewline
+$T$ & \texttt{\textbackslash l\_\_diffco\_curr\_term\_tl}\tabularnewline
 \hline 
-$V$ & \texttt{\textbackslash{}l\_\_diffco\_curr\_var\_tl}\tabularnewline
+$V$ & \texttt{\textbackslash l\_\_diffco\_curr\_var\_tl}\tabularnewline
 \hline 
-$\mathbf{N}$ & \texttt{\textbackslash{}l\_\_diffco\_nos\_tl}\tabularnewline
+$\mathbf{N}$ & \texttt{\textbackslash l\_\_diffco\_nos\_tl}\tabularnewline
 \hline 
-$\mathbf{A}$ & \texttt{\textbackslash{}l\_\_diffco\_alg\_tl}\tabularnewline
+$\mathbf{A}$ & \texttt{\textbackslash l\_\_diffco\_alg\_tl}\tabularnewline
 \hline 
-$\mathbf{V}$ & \texttt{\textbackslash{}l\_\_diffco\_vars\_prop}\tabularnewline
+$\mathbf{V}$ & \texttt{\textbackslash l\_\_diffco\_vars\_prop}\tabularnewline
 \hline 
 \end{tabular}}
 \end{table}
@@ -1085,11 +1153,11 @@
 the number of tokens composing an extended variable. This enables the sorting
 by size needed for the determination of the overall coefficients of variables
 by removing them in turn from the algebraic part of the expression. That
-process is conducted in the routine \texttt{\textbackslash{}\_\_diffco\_eval\_vars:NN}.
+process is conducted in the routine \texttt{\textbackslash\_\_diffco\_eval\_vars:NN}.
 The variables are recorded only on the first scan through the order specification
-expression. This is the function of the boolean \texttt{\textbackslash{}l\_\_diffco\_vars\_noted\_bool}
-which is set in \texttt{\textbackslash{}\_\_diffco\_eval\_vars:NN}. Evaluation
-of the numeric parts of expressions is provided by \texttt{\textbackslash{}\_\_diffco\_eval\_nos:N}.
+expression. This is the function of the boolean \texttt{\textbackslash l\_\_diffco\_vars\_noted\_bool}
+which is set in \texttt{\textbackslash\_\_diffco\_eval\_vars:NN}. Evaluation
+of the numeric parts of expressions is provided by \texttt{\textbackslash\_\_diffco\_eval\_nos:N}.
 
 \section{Summary of main commands}
 
@@ -1097,32 +1165,35 @@
 
 The syntax is
 \begin{example}
-{\small{}\textbackslash{}diff{[}order{]}\{differentiand\}\{variable\}\{point
-of evaluation\}}{\small \par}
+{\small{}\textbackslash diff{[}order{]}\{differentiand\}\{variable\}\{point
+of evaluation\}}{\small\par}
 \end{example}
+
 for the differentiand in the numerator, and where the final argument, although
 using braces, is an \emph{optional} argument. A starred form appends the
 differentiand:
 \begin{example}
-{\small{}\textbackslash{}diff{*}{[}order{]}\{differentiand\}\{variable\}\{point
-of evaluation\}}{\small \par}
+{\small{}\textbackslash diff{*}{[}order{]}\{differentiand\}\{variable\}\{point
+of evaluation\}}{\small\par}
 \end{example}
+
 No space must occur between the final optional argument, if it is used,
 and the second mandatory argument. 
 
 There are also slash forms of both these commands:
 \begin{example}
-{\small{}\textbackslash{}diff{[}order{]}\{differentiand\}/\{variable\}\{point
-of evaluation\}}{\small \par}
+{\small{}\textbackslash diff{[}order{]}\{differentiand\}/\{variable\}\{point
+of evaluation\}}{\small\par}
 
-{\small{}\textbackslash{}diff{*}{[}order{]}\{differentiand\}/\{variable\}\{point
-of evaluation\}}{\small \par}
+{\small{}\textbackslash diff{*}{[}order{]}\{differentiand\}/\{variable\}\{point
+of evaluation\}}{\small\par}
 \end{example}
+
 For the starred form, the differential coefficient is enclosed in parentheses.
 
-Precisely similar definitions, but without the slash forms, apply to \texttt{\textbackslash{}Diff},
-forming a differential coefficient with $D$, \texttt{\textbackslash{}diffd},
-forming a differential coefficient with $\delta$, and \texttt{\textbackslash{}Diffd},
+Precisely similar definitions, but without the slash forms, apply to \texttt{\textbackslash Diff},
+forming a differential coefficient with $D$, \texttt{\textbackslash diffd},
+forming a differential coefficient with $\delta$, and \texttt{\textbackslash Diffd},
 forming a differential coefficient with $\Delta$.
 
 \subsubsection{Partial derivatives}
@@ -1129,9 +1200,10 @@
 
 The syntax is
 \begin{example}
-{\small{}\textbackslash{}diffp{[}order spec.{]}{[}order override{]}\{differentiand\}\{variables\}\{constant
-variables\}}{\small \par}
+{\small{}\textbackslash diffp{[}order spec.{]}{[}order override{]}\{differentiand\}\{variables\}\{constant
+variables\}}{\small\par}
 \end{example}
+
 for the differentiand in the numerator and where the final argument, although
 in braces, is an \emph{optional} argument. No space must occur between
 the final optional argument, if it is used, and the second mandatory argument.
@@ -1139,30 +1211,34 @@
 the \strong{variables} is also a comma-separated list. A starred form
 appends the differentiand:
 \begin{example}
-{\small{}\textbackslash{}diffp{*}{[}order{]}{[}order~override{]}\{differentiand\}\{variables\}\{constant
-variables\}}{\small \par}
+{\small{}\textbackslash diffp{*}{[}order{]}{[}order~override{]}\{differentiand\}\{variables\}\{constant
+variables\}}{\small\par}
 \end{example}
+
 Slash forms exist also for these commands:
 \begin{example}
-{\small{}\textbackslash{}diffp{[}order spec.{]}{[}order override{]}\{differentiand\}/\{variables\}\{constant
-variables\}}{\small \par}
+{\small{}\textbackslash diffp{[}order spec.{]}{[}order override{]}\{differentiand\}/\{variables\}\{constant
+variables\}}{\small\par}
 
-{\small{}\textbackslash{}diffp{*}{[}order{]}{[}order~override{]}\{differentiand\}/\{variables\}\{constant
-variables\}}{\small \par}
+{\small{}\textbackslash diffp{*}{[}order{]}{[}order~override{]}\{differentiand\}/\{variables\}\{constant
+variables\}}{\small\par}
 \end{example}
+
 For the starred version of the slash form, the differential coefficient
 is enclosed in parentheses.
 
 \subsubsection{Settings}
 \begin{example}
-\textbackslash{}diffset{[}option1=<value1>,option2=<value2>,...{]}
+\textbackslash diffset{[}option1=<value1>,option2=<value2>,...{]}
 \end{example}
+
 All numerical values should be integers (\texttt{diffcoeff} interprets
 this in units of mu, 1/18 of an em). To return all options to default values,
 write
 \begin{example}
-\textbackslash{}diffset
+\textbackslash diffset
 \end{example}
+
 The options and defaults are
 \begin{description}
 \item [{\strong{roman = false}}] \textbf{\strong{\textbf{true}}} gives upright
@@ -1185,4 +1261,12 @@
 of a mixed partial derivative
 \end{description}
 
+\subsection{Change history}
+
+Uploaded to CTAN 2016-06-27
+
+2016-06-30 Removed the unused \texttt{extend} package option (a relic from
+earlier experiments).
+
+2018-10-25 v.1.1 Changed the handling of error messages.
 \end{document}

Deleted: trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.pdf
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex	2018-10-25 21:25:32 UTC (rev 48987)
+++ trunk/Master/texmf-dist/doc/latex/diffcoeff/diffcoeffx.tex	2018-10-25 21:33:56 UTC (rev 48988)
@@ -1,656 +0,0 @@
-%% LyX 2.2.0 created this file.  For more info, see http://www.lyx.org/.
-%% Do not edit unless you really know what you are doing.
-\documentclass[twoside,english]{article}
-\usepackage{lmodern}
-\renewcommand{\sfdefault}{lmss}
-\renewcommand{\ttdefault}{lmtt}
-\usepackage[T1]{fontenc}
-\usepackage[latin9]{inputenc}
-\usepackage{geometry}
-\geometry{verbose,lmargin=4cm,rmargin=3.5cm}
-\setcounter{secnumdepth}{2}
-\setcounter{tocdepth}{1}
-\usepackage{wrapfig}
-\usepackage{booktabs}
-\usepackage{amstext}
-\usepackage{esint}
-
-\makeatletter
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
-%% Because html converters don't know tabularnewline
-\providecommand{\tabularnewline}{\\}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
- \newenvironment{example}{\begin{center}\ttfamily}{\end{center}}
-\newenvironment{lyxcode}
-{\par\begin{list}{}{
-\setlength{\rightmargin}{\leftmargin}
-\setlength{\listparindent}{0pt}% needed for AMS classes
-\raggedright
-\setlength{\itemsep}{0pt}
-\setlength{\parsep}{0pt}
-\normalfont\ttfamily}%
- \item[]}
-{\end{list}}
-\newcommand{\strong}[1]{\textbf{#1}}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
-\usepackage{diffcoeffx}
-
-\@ifundefined{showcaptionsetup}{}{%
- \PassOptionsToPackage{caption=false}{subfig}}
-\usepackage{subfig}
-\makeatother
-
-\usepackage{babel}
-\begin{document}
-
-\title{\texttt{diffcoeffx}~\\
-extending the \texttt{diffcoeff} package}
-
-\author{Andrew Parsloe\\
-{\small{}(aparsloe at clear.net.nz)}}
-\maketitle
-\begin{abstract}
-\noindent \texttt{diffcoeffx.sty} is \texttt{diffcoeff.sty} `on steroids'.
-It provides additional functionality for the trailing optional argument
-and extends the algorithm used to calculate the overall order of differentiation
-of mixed partial derivatives. That now accepts order-of-differentiation
-specifications that include powers of numbers and variables, subscripts
-on variables, and (possibly nested) parentheses with numerical coefficients.
-The enhancements come under the category of `gilding the lily'. 
-\end{abstract}
-
-\section{The \texttt{diffcoeffx} package}
-
-The \texttt{diffcoeffx} package is \texttt{diffcoeff} `on steroids',
-providing exactly the same commands but with some extra functionality.\texttt{ }It
-is called in the usual way in the LaTeX preamble:
-\begin{lyxcode}
-\textbackslash{}usepackage\{diffcoeffx\}
-\end{lyxcode}
-It is assumed that you are familiar with the \texttt{diffcoeff} package
-and its manual.\texttt{ }There are two enhancements to that package: \texttt{diffcoeffx}
-takes the calculation of the overall order of mixed partial derivatives
-deep into `overkill' territory, accepting single-token powers of numbers
-and variables, single-token subscripts on variables, and possibly nested
-parentheses with numerical coefficients. The \texttt{\textbackslash{}times}
-token ($\times$) can also be used in an order specification. The other
-enhancement is an extension to the capabilities of the trailing optional
-argument. 
-
-\subsection[Exploiting the final argument]{Exploiting the trailing optional argument}
-
-For \texttt{diffcoeff }there was an attempt to give a `natural feel'
-to the design choices made and their use. By comparison the additional
-functionality that the trailing optional argument acquires in \texttt{diffcoeffx.sty}
-is in the nature of a \emph{hack}. It works, but I'm not sure that it should
-be encouraged. 
-
-In \texttt{diffcoeff} if you write \texttt{\textbackslash{}diff yx\{\}}
-the trailing but \emph{empty} optional argument is ignored. Not so in \texttt{diffcoeffx}:
-\begin{example}
-\textbackslash{}diffp yx\{\}${\displaystyle \Longrightarrow\quad\diffp yx{}}$
-\end{example}
-The parentheses are inserted without a subscript. Thus we can write (for
-instance) Lagrange's equations of motion in analytical mechanics in the
-manner:
-\begin{example}
-\textbackslash{}diffp L\{q\_k\}-\textbackslash{}diff{*}\{\textbackslash{}diffp
-L\{\textbackslash{}dot\{q\}\_k\}\{\}\}t = 0 $\Longrightarrow\quad{\displaystyle \diffp L{q_{k}}-\diff*{\diffp L{\dot{q}_{k}}{}}t}=0$,
-\end{example}
-without having to bother with inserting \texttt{\textbackslash{}left(}
-and \texttt{\textbackslash{}right}).\texttt{ }The empty trailing optional
-argument and the default delimiters for partial derivatives do the job
-for us. 
-
-There are many other places in analytical mechanics where using an empty
-trailing optional argument is a similarly convenient way of writing large
-parentheses, for instance, 
-\begin{example}
-\textbackslash{}dot\{q\_k\}=\textbackslash{}diffp H\{\textbackslash{}diffp
-S\{q\_k\}\{\}\} ${\displaystyle \Longrightarrow\quad\dot{q_{k}}=\diffp H{\diffp S{q_{k}}{}}}\!.$ 
-\end{example}
-An application of Lagrange's equations (to a one-dimensional elastic solid)
-gives rise to a Langrangian density function,
-\begin{example}
-\textbackslash{}frac 12\textbackslash{}left\textbackslash{}\{ \textbackslash{}rho\textbackslash{}dot\{\textbackslash{}eta\}\textasciicircum{}2-E\textbackslash{}diff\textbackslash{}eta
-x\{;2;()\}\textbackslash{}right \textbackslash{}\} $\Longrightarrow\quad{\displaystyle \frac{1}{2}\left\{ \rho\dot{\eta}^{2}-E\diff\eta x{;2;()}\right\} }.$
-\end{example}
-Another application of those equations (the acoustic approximation to the
-irrotational motion of a compressible non-viscous fluid) produces a Lagrangian
-density
-\begin{example}
-\textbackslash{}frac 12\textbackslash{}rho\textbackslash{}left\textbackslash{}\{(\textbackslash{}nabla\textbackslash{}psi)\textasciicircum{}2-\textbackslash{}frac
-1\{c\textasciicircum{}2\}\textbackslash{}diff\textbackslash{}psi t\{;2;()\}\textbackslash{}right\textbackslash{}\}
-$\Longrightarrow\quad{\displaystyle \frac{1}{2}\rho\left\{ (\nabla\psi)^{2}-\frac{1}{c^{2}}\diff\psi t{;2;()}\right\} }.$
-\end{example}
-In both examples, the trailing optional argument of the \emph{ordinary}
-derivative has been filled by a semicolon-delimited list: \texttt{\{;2;()\}}.
-The initial slot where a subscript is specified is empty but the semicolon
-is necessarily included. The second spot specifies a \emph{superscript}
-and the third slot the delimiters to use. Since parentheses are not the
-default delimiters for an ordinary derivative we needed to specify them
-explicitly here. However, this does not change the default delimiters which
-remain \texttt{.|} for an ordinary derivative and can only be changed by
-means of the \texttt{\textbackslash{}diffset} command.
-
-Both subscript and superscript can be used at the same time. In a text
-on ordinary differential equations, an example employing Green's functions
-gives rise to
-\begin{example}
-\textbackslash{}diff{[}n-1{]}Gx\{\textbackslash{}xi-\textbackslash{}epsilon;\textbackslash{}xi+\textbackslash{}epsilon;{[}{]}\}
-$\Longrightarrow\quad{\displaystyle \diff[n-1]Gx{\xi-\epsilon;\xi+\epsilon;[]}}$
-\end{example}
-the derivative being evaluated at both superscript and subscript values
-and the difference taken. Here the trailing optional argument has its first
-three slots filled, with square brackets explicitly specified. The same
-book includes the example
-\begin{example}
-\textbackslash{}diff{*}{[}p-1{]}\{x\textasciicircum{}\textbackslash{}alpha\}\textbackslash{}alpha\{\textbackslash{}alpha=a;;\textbackslash{}\{\textbackslash{}\}\}
-$\Longrightarrow\quad{\displaystyle \diff*[p-1]{x^{\alpha}}\alpha{\alpha=a;;\{\}}}$
-\end{example}
-where, this time braces are specified in the trailing optional argument.\footnote{For LyX users, the braces \textbackslash{}\{ and \textbackslash{}\} are
-inserted into a formula in the maths editor simply by typing the braces
-without the backslashes. LyX takes care of the latter.} 
-
-This argument can be used to form the absolute value of a derivative,
-\begin{example}
-\textbackslash{}diff yx\{;;||\} ${\displaystyle \Longrightarrow\quad\diff yx{;;||}}$ 
-\end{example}
-where both initial slots, subscript and superscript, are empty and two
-semicolons necessarily included in the trailing optional argument: \texttt{\{;;||\}}.
-It also provides an alternative way, indeed \emph{two} alternative ways,
-of forming a quotient of derivatives:
-\begin{example}
-\textbackslash{}diff yx\{;;./\}\textbackslash{}diff xy=\textbackslash{}diff
-yx\textbackslash{}diff xy\{;;/.\} ${\displaystyle {\displaystyle \Longrightarrow\quad\diff yx{;;./}}\diff xy={\displaystyle \diff yx}\diff xy{;;/.}}$
-\end{example}
-where the delimiter specification \texttt{./} on the left has been changed
-to \texttt{/.} on the right. The spacing in the two quotients is not quite
-identical, which might be relevant in some contexts. As a more realistic
-example of use of the same construct, if $F(x,t)$ is a function of $x$
-and $t$ and $x=x(t)$, then if $\diff Ft=0$,
-\begin{example}
-\textbackslash{}diff xt=-\textbackslash{}diffp Ft\{;;./\}\textbackslash{}diffp
-Fx $\Longrightarrow\quad{\displaystyle \diff xt=-\diffp Ft{;;./}\diffp Fx}$
-\end{example}
-For an inline use, you may prefer to use the slash form of the derivative
-$\diff y/z{0;;();-1}$. In this case a \emph{fourth} slot in the trailing
-optional argument has been filled, the \texttt{nudge override} slot, since
-the default nudge is designed to position the subscript relative to the
-\emph{displaystyle} delimiters.
-
-The complete specification of what is available in the trailing optional
-argument is:
-\begin{example}
-\{ subscript; superscript; delimiters; nudge override \}
-\end{example}
-\begin{itemize}
-\item In `normal' use, the \texttt{subscript} is the point of evaluation (ordinary
-derivatives), or list of variables held constant (partial derivatives).
-Since the list of variables held constant is likely to be comma-separated,
-so we have the need for semicolons to separate items in the larger list. 
-\item The \texttt{superscript} is generally a power to which the derivative is
-raised but, as instanced by the Green's function example, it can also be
-another point of evaluation of the derivative.
-\item The \texttt{delimiters} are, by default, \texttt{.|} for ordinary derivatives
-and \texttt{()} for partial derivatives. These are not always the right
-ones for a particular task. Rather than changing them \emph{globally} as
-the use of \texttt{\textbackslash{}diffset} entails, they can be changed
-\emph{locally} for the particular instance by specifying them in this slot.
-The global choices are unaffected. 
-\item If the built-in placement of sub- or superscript relative to the right
-delimiter is unsatisfactory, a value specified in the \texttt{nudge override}
-slot\texttt{ }overrides the default value locally. The value is a pure
-number which \texttt{diffcoeffx} treats as that number of mu (1/18 of an
-em). (For comparison, a thin space \textbackslash{}, and a negative thin
-space \textbackslash{}! are 3/18 of an em.) The default nudges are shown
-in Table~\ref{tab:Default-nudges}. They are intended for displaystyle
-presentation, and are not affected by any value included in this slot.
-\end{itemize}
-\noindent\begin{minipage}[t]{1\columnwidth}%
-\begin{wraptable}[10]{o}{0.35\columnwidth}%
-\centering{}\caption{\label{tab:Default-nudges}Default nudges}
-\begin{tabular}{|c|c|}
-\hline 
-right delimiter & nudge\tabularnewline
-\hline 
-\hline 
-), > & -6\tabularnewline
-\hline 
-\textbackslash{}\} & -4\tabularnewline
-\hline 
-|, {]} & 0\tabularnewline
-\hline 
-other & 0\tabularnewline
-\hline 
-\end{tabular}\end{wraptable}%
-Note that if one wants to use the nudge override with the default delimiters,
-it is necessary to indicate all preceding slots, even if they are empty,
-e.g., \texttt{\{;;;-3\}}. Similarly, to change the delimiters, to parentheses
-say, without sub- or superscript, it is necessary to indicate all preceding
-empty slots, but the following one does not need to be indicated: \texttt{\{;;()\}}.
-If one wants to specify a superscript, 2 say, but leave all else unchanged,
-it is only necessary to specify the one preceding empty slot: \texttt{\{;2\}}.
-Trailing empty slots can be omitted, which is why, if one wants to use
-the trailing empty argument `as nature intended', i.e., to specify a
-point of evaluation or variables held constant, one can close one's mind
-to the other potential slots and simply write (for instance) \texttt{\{0\}}
-or \texttt{\{x=1\}}.%
-\end{minipage}
-
-\subsection{The enhanced mixed partial derivative algorithm\label{subsec:The-enhanced-mixed}}
-
-In the documentation for \texttt{diffcoeff.sty}  I discussed the transition
-table, Table~\ref{tab:Input-output-states}, in which signed \strong{s},
-numeric \strong{n}, or algebraic \strong{a} states changed to one of
-the others, or not, depending on the nature of the current token: sign,
-digit or variable. Signs and digits were explicitly defined; anything and
-everything else was called a (prime) variable. (Not quite true: in fact
-\texttt{diffcoeff.sty} checked for \texttt{(}, \texttt{\textasciicircum{}}
-and \texttt{\_} and raised an error if they were encountered.)\texttt{ }
-
-\begin{table}[h]
-\noindent \begin{centering}
-\caption{A first enhancement}
-\subfloat[\label{tab:Input-output-states}State transitions]{\noindent \centering{}\medskip{}
-\begin{tabular}{ccccc}
-\cmidrule{2-5} 
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5} 
-1 & \strong{s} & $s$ & $Ts\to s'$; $T=s'$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-2 & \strong{s} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5} 
-3 & \strong{s} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-4 & \strong{n} & $s$ & $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-5 & \strong{n} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5} 
-6 & \strong{n} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-7 & \strong{a} & $s$ & $\mathbf{V}V,$; $V=\textrm{\xD8}$; $\mathbf{A}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-8 & \strong{a} & $d$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5} 
-9 & \strong{a} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-\end{tabular}}
-\par\end{centering}
-\noindent \centering{}\subfloat[\label{tab:Allowing-powers-variables}Allowing powers of variables]{\centering{}%
-\begin{tabular}{ccccc}
-\cmidrule{2-5} 
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5} 
-8 & \strong{a} & $d$ & $Vd$; $Td$  & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-\end{tabular}}
-\end{table}
-There is a certain inner logic at play here. Multi-token variables like
-$kmn$ are included in the above scheme. But having accommodated $mn$,
-surely one should be able to handle $mm$, i.e. $m^{2}$? And if $m^{2}$,
-then why not $m^{n}$? In fact it is easy to do so. Since the superscript
-token \textasciicircum{} is neither sign nor digit, no longer raise an
-error if it is encountered but treat it, among the `everything else'
-tokens, as a variable. If we change row 8 of the table as in Table~\ref{tab:Allowing-powers-variables}
-we have enlarged our scheme to include powers of variables \textendash{}
-not only numerical powers (row 8) but also algebraic powers (row 9). As
-a side-effect, if we also suppress the raising of an error when the subscript
-token \texttt{\_} is encountered, it too will be classified as a variable
-and allow numeric and algebraic subscripts on variables: things like $k_{2}$
-or $k_{n}$.
-
-Implicit in this discussion is the understanding that exponents and subscripts
-are restricted to \emph{single tokens}. Coping with multi-token quantities
-in those positions would entail changes to other parts of the code, which
-I have chosen not to do. 
-
-This is a simple way of enlarging the range of tokens acceptable to the
-overall-order algorithm, but it does assume that the user does \emph{not}
-include a sign as a superscript or subscript. If they do, then when the
-algorithm meets the sign it arrives at row 7 of the table and stores what
-is clearly an unintended variable, something like \texttt{k\textasciicircum{}}
-or \texttt{k\_}. So, we need to check when a sign is met whether the previous
-token was one of \texttt{\textasciicircum{}} or \texttt{\_} and raise an
-error if it was. But then the thought arises: if we are going to the trouble
-of checking for sub- or superscript tokens, why just raise an error? Why
-not incorporate signs in sub- or superscript positions into the scheme?
-
-To this end, we might introduce a fourth state, the \emph{script} state,
-denoted by \strong{p}. A script token, denoted $p$, is one of \texttt{\textasciicircum{}}
-or \texttt{\_}. There is only one way to enter a script state, and that
-is by appending a script token to a \emph{variable}. Appending a script
-token to a sign or number (or, indeed, another script token) raises an
-error. Table~\ref{tab:Enlarged-scheme-transitios} is the result. In this
-scheme, signs can be used as sub- or superscripts to variables, but not
-to numbers. We might console ourselves with the thought that this is, in
-any case, a limitation of the calculational engine used to evaluate our
-integer expressions. The \texttt{l3int} module of the LaTeX3 bundle \texttt{l3kernel}
-cannot handle powers of integers.
-
-\begin{table}[h]
-\caption{\label{tab:Enlarged-scheme-transitios}Transition states for an enlarged
-scheme}
-
-\noindent \centering{}%
-\begin{tabular}{ccccc}
-\cmidrule{2-5} 
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5} 
-1 & \strong{s} & $s$ & $Ts\to s'$; $T=s'$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-2 & \strong{s} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5} 
-3 & \strong{s} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-4 & \strong{s} & $p$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5} 
-5 & \strong{n} & $s$ & $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-6 & \strong{n} & $d$ & $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-5} 
-7 & \strong{n} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-8 & \strong{n} & $p$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5} 
-9 & \strong{a} & $s$ & $\mathbf{V}V,$; $V=\textrm{\xD8}$; $\mathbf{A}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-10 & \strong{a} & $x\in\{dv\}$  & $Vx$; $Tx$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-11 & \strong{a} & $p$ & $Vp$; $Tp$ & \strong{p}\tabularnewline
-\cmidrule{2-5} 
-12 & \strong{p} & $x\in\{sdv\}$  & $Vx$; $Tx$ & \strong{a}\tabularnewline
-\cmidrule{2-5} 
-13 & \strong{p} & $p$ & error & \strong{!!}\tabularnewline
-\cmidrule{2-5} 
-\end{tabular}
-\end{table}
-Yet this still leaves an unfinished feeling. While attaching a script token
-to a sign or other script token is a nonmathematical usage, attaching a
-superscript token to a number is a basic mathematical use, and so two of
-the errors raised can really be ignored. For the other, the question nags:
-why should we have to remember that although variables can be raised to
-powers, numbers cannot be? The urge to enlarge the scheme again is irresistible.
-Exponents on numbers should be accepted; but subscripts should not. The
-latter is a nonmathematical usage or is used only in special contexts remote
-from the present one. But that means we need to distinguish sub- and superscript
-tokens. We can't lump them together as `script tokens'.
-
-\subsubsection{Raising numbers to powers: new states}
-
-So a first step is to enlarge the number of states. We need an \emph{exponent}
-state \strong{e} when we encounter the token \textasciicircum{} and a
-\emph{subscript }state \strong{b} when we encounter the token \_. That
-allows us to distinguish acceptable forms like \texttt{2\textasciicircum{}3}
-($2^{3}$) from unacceptable ones like \texttt{2\_3} ($2_{3}$). But how
-do we know which state to transition to when we meet the \texttt{3} in
-\texttt{2\textasciicircum{}3}? The current state is the exponent one \strong{e}
-and the \texttt{3} could be decorating either a variable or a number. We
-need to know the \emph{previous} state as well as the current one. If the
-previous state is numeric we transition to a numeric state; if it is algebraic,
-we transition to an algebraic state.
-
-But that also introduces a problem. It is perfectly acceptable to add a
-digit to a term in a numeric state. Normally, this is how a multi-digit
-number is accumulated: \texttt{23}4, two hundred and thirty four. That
-is a very different meaning from \texttt{2\textasciicircum{}34} which means
-$2^{3}4$ to us (rather than $2^{34}$ since we accept only single-token
-superscripts). At this point, the syntax required by the underlying engine
-used for evaluating numerical expressions comes into play. For all numerical
-evaluations except those involving exponents, \texttt{l3int} of the LaTeX3
-kernel is used; for expressions involving exponents, \texttt{l3fp} is used.
-To \texttt{l3fp}, \texttt{2\textasciicircum{}34} is read as $2^{34}$.
-We need to insert a multiplication token between the \texttt{3} and \texttt{4},
-which for \texttt{l3fp} is the asterisk, \texttt{{*}}. Considering the
-different tokens that might follow \emph{that}, we are forced to introduce
-a third new state, the \emph{multiplicative} state, \strong{m}. So, to
-introduce powers of numbers means considering three new states and reference
-to the previous state.
-
-That, of course, is \emph{numeric} powers of numbers. To also allow algebraic
-powers, forms like $2^{n}$, introduces further complication. These can't
-be evaluated numerically, so presumably they are to be classified as variables.
-We need to consider terms like $+2^{n}$, $3*2^{n}$, $3^{m}2^{n}$, and
-$2^{n}m$. The problem here is that we have something that looks as if
-it is going to be a number (the digit 2) but then transforms into a variable,
-$2^{n}$. Do we need a \emph{fourth} new state, the entangled state \strong{q}
-(the `q' as in `quantum entanglement')?
-
-\begin{table}
-\noindent \centering{}\caption{\label{tab:Revised-input-output}State transitions of the full scheme}
-\medskip{}
-\begin{tabular}{cccccc}
-\cmidrule{2-6} 
- & $S_{-}$ & $S$ & $t\in\left\{ sdv\text{\textasciicircum\_}*\right\} $ & Action & $S_{+}$\tabularnewline
-\cmidrule{2-6} 
-1 &  & \strong{s} & $s$ & $Ts\to s'$; $T=s'$ & \strong{s}\tabularnewline
-\cmidrule{2-6} 
-2 &  & \strong{s} & $d$ & $Qd$; $Td$ & \strong{n}\tabularnewline
-\cmidrule{2-6} 
-3 &  & \strong{s} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-4 &  & \strong{n} & $s$ & $Q=\textrm{\xD8}$; $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-6} 
-5 &  & \strong{n} & $d$  & $Qd$; $Td$  & \strong{n}\tabularnewline
-\cmidrule{2-6} 
-6 &  & \strong{n} & $v$ & $Q=\textrm{\xD8}$; $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-7 &  & \strong{n} & $\text{\textasciicircum}$ & $Q\text{\textasciicircum}$; $T\text{\textasciicircum}$ & \strong{e}\tabularnewline
-\cmidrule{2-6} 
-8 &  & \strong{n} & $*$ & $Q=\textrm{\xD8}$; $T*$ & \strong{m}\tabularnewline
-\cmidrule{2-6} 
-9 &  & \strong{a} & $s$ & $\mathbf{V}V,$; $V=\textrm{\xD8}$; $\mathbf{A}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-6} 
-10 & \strong{e} & \strong{a} & $d$ & $Vd$; $Td$ & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-11 &  & \strong{a} & $v$ & $Vv$; $Tv$ & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-12 &  & \strong{a} & $\text{\textasciicircum}$ & $V\text{\textasciicircum}$; $T\text{\textasciicircum}$ & \strong{e}\tabularnewline
-\cmidrule{2-6} 
-13 &  & \strong{a} & $\text{\_}$ & $V\text{\_}$; $T\text{\_}$ & \strong{b}\tabularnewline
-\cmidrule{2-6} 
-14 & \strong{a} & \strong{e} & $t\in\left\{ sdv\right\} $ & $Vt$; $Tt$  & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-15 & \strong{n} & \strong{e} & $d$ & $Q=\textrm{\xD8}$; $Td*$ & \strong{m}\tabularnewline
-\cmidrule{2-6} 
-16 & \strong{n} & \strong{e} & $v$ & $Qv$; $Tv$; $V=Q$; $Q=\textrm{\xD8}$ & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-17 & \strong{a} & \strong{b} & $t\in\left\{ sdv\right\} $ & $Vt$; $Tt$  & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-18 & \strong{e} & \strong{m} & $s$ & $T1$; $\mathbf{N}T$; $T=s$ & \strong{s}\tabularnewline
-\cmidrule{2-6} 
-19 &  & \strong{m} & $d$ & $Qd$; $Td$  & \strong{n}\tabularnewline
-\cmidrule{2-6} 
-20 &  & \strong{m} & $v$ & $Vv$; $T1v$ & \strong{a}\tabularnewline
-\cmidrule{2-6} 
-21 &  & \strong{m} & $*$ &  & \strong{m}\tabularnewline
-\cmidrule{2-6} 
-\end{tabular}
-\end{table}
-In fact I find that these problems can all be dealt with not by creating
-another state but by including another accumulator for \emph{potential}
-variables. I'll call it $Q$ (from the quantum suggestion, or perhaps quasi-variable,
-or even acqumulator). It stores numbers whose status has not been determined
-yet: they might yet be followed by a superscript token which might in turn
-be followed by a variable. Once resolved, $Q$ either transfers its contents
-to $V$, the variable accumulator, and is emptied (row 16), or is emptied
-forthwith (rows 4, 6, 8, 15).
-
-Table~\ref{tab:Revised-input-output} lists the transitions. I've denoted
-the previous state by $S_{-}$, the present state by $S$, and the next
-state by $S_{+}$. The final row of the table is intended: do nothing if
-we meet a multiplicative token when in a multiplicative state. The first
-scan through an order specification (to split it into numeric and algebraic
-parts) may introduce a {*} token (rows 8 and 15). We don't want to introduce
-a second such token in the recursive determination of the coefficients
-of variables. Hence row 21: do nothing. Also, if in the order specification
-we have something like $2^{3}*3^{2}$ (since \texttt{2\textasciicircum{}33\textasciicircum{}2}
-looks weird), we don't want the manually inserted {*} to cause an error
-because of the automatically inserted one (row 15).
-
-Possibilities not explicitly present in the table generally raise an error,
-e.g. current state \strong{s} and current token $\textnormal{\textasciicircum}$,
-or previous state \strong{n}, current state \strong{e} and current token
-$s$ ($+$ or $-$), and so on. I have omitted them from the table in the
-interests of space. The table is big enough already.
-
-With this table of transitions it is now possible to handle order specifications
-that include components like $n^{2}$ or $n^{m}$ or $k^{+}$ or $k_{2}$
-or $k_{n}$ or $2^{2}$ or $2^{3}3^{2}$ or $2\times3^{n}$ or $2^{2}3^{n}$
-or \ldots{} 
-
-Note that the \texttt{\textbackslash{}times} token is converted internally
-by \texttt{diffcoeffx.sty} to the asterisk. They can be used interchangeably
-but it certainly looks more elegant. 
-
-So, what could be better on a cool winter's evening, snug before the warmth
-of the fire, a glass of sustaining liquid to hand, than to do a few mixed
-partial derivatives? Like this,
-\begin{example}
-\textbackslash{}diffp{[}3\textasciicircum{}22\textasciicircum{}22\textasciicircum{}n+m,12\textasciicircum{}n-3m+2\textasciicircum{}3k,5m+2\textbackslash{}times2\textasciicircum{}32\textasciicircum{}n{]}\{F(x,y,z)\}\{x,y,z\}$\Longrightarrow\quad{\displaystyle \diffp[3^{2}2^{2}2^{n}+m,12^{n}-3m+2^{3}k,5m+2\times2^{3}2^{n}]{F(x,y,z)}{x,y,z}}$
-\end{example}
-or like this,
-\begin{example}
-\textbackslash{}diffp{[}k\textasciicircum{}+k\_-+1,2\textbackslash{}times
-k\_-,3\textasciicircum{}2k\_-,3k\textasciicircum{}+{]}\{F(x,y,z,w)\}\{x,y,z,w\}
-${\displaystyle \Longrightarrow\quad\diffp[k^{+}k_{-}+1,2\times k_{-},3^{2}k_{-},3k^{+}]{F(x,y,z,w)}{x,y,z,w}}$
-\end{example}
-In the first example the \texttt{\textbackslash{}times} symbol is inserted
-by \texttt{diffcoeffx} in the overall order of differentiation in the numerator
-so as to prevent the formation $522^{n}$ which would be read as 522 raised
-to the power $n$ \textendash{} and for a similar reason it was used in
-specifying the order of differentiation of the variable $z$ in the denominator
-in the first example, but could and should have been deleted from the order
-of differentiation of the variable $y$ in the second example. 
-
-\subsubsection{Parentheses}
-
-The other major shortcoming of the basic scheme outlined in \texttt{diffcoeff.sty}
-was the inability to handle even the simplest instance of parentheses in
-an order specification \textendash{} something like\texttt{ {[}m-(n-1),m+(n-1){]}}
-which might well arise in a Taylor expansion. Indeed, there is more reason
-for including these in our scheme than exponents of numbers or $+$ or
-$-$ as sub- or superscripts. 
-
-How might we fit parentheses to the scheme? We are not seeking a general
-treatment. Rather we wish to be able to handle order specifications a little
-more complicated (but only a little) than the one just given, say something
-like \texttt{{[}m+2(n-1),m-(n-1){]}}, perhaps with nesting. In that case
-the following stipulations meet our needs:
-\begin{itemize}
-\item a left parenthesis, (, either starts an item in the comma list, or is preceded
-by a sign or a number or $*$ or (, but \emph{not} by a variable or \textasciicircum{}
-or \_ or );
-\item a right parenthesis, ), either concludes an item in the comma list, or
-is followed by a sign or ), but \emph{not} by a number or a variable or
-\textasciicircum{} or \_ or $*$ or (.
-\end{itemize}
-These limitations allow nesting of parentheses but not products of parentheses.
-The main limitation they impose is that a variable lie \emph{within} parentheses
-but not adjoining-outside. They enable us to get away with the following
-`cheap and cheerful' scheme. It means we do not need to add parenthesis
-states to our scheme. The particular point to note are the $+0$ insertions.
-When we start parsing an expression from the left we do not know what it
-contains. In particular when we meet a left parenthesis, we have no foreknowledge
-of whether the parenthesised expression will be numeric, algebraic or a
-mix of both. We need to prepare for both by inserting a left parenthesis
-to both numeric and algebraic parts. But that brings us up against a quirk
-of \texttt{l3int}, the `engine' behind the numerical evaluations performed
-in \texttt{diffcoeff} and \texttt{diffcoeffx}. \texttt{l3int} objects to
-an empty pair of parentheses, \texttt{()}, which we would have should either
-numeric or algebraic parts be missing from the parenthesised expression.
-To avoid this we insert $+0$ and \texttt{l3int} is happy.\texttt{ }
-
-\begin{table}
-\centering{}\caption{\label{tab:Parentheses}Parentheses}
-\begin{tabular}{ccccc}
-\cmidrule{2-5} 
- & Curr. state & Curr. token & Action & Next state\tabularnewline
-\cmidrule{2-5} 
-1 & \strong{s} & ( & $T\text{1*(}$; $\mathbf{N}T$; $\mathbf{A}T$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-2 & \strong{s} & ) & $\mathbf{N})$; $\mathbf{A})$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-3 & \strong{n} & ( & $T*($; $\mathbf{N}T$; $\mathbf{A}T$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-4 & \strong{n} & ) & $T)$; $\mathbf{N}T$; $\mathbf{A}\text{+0)}$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-5 & \strong{a} & ) & $\mathbf{V}V,$; $V=\textrm{\xD8}$; $\mathbf{N}\text{+0)}$; $T)$; $\mathbf{A}T$
-; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-6 & \strong{m} & ( & $T($; $\mathbf{N}T$; $\mathbf{A}T$; $T=+$ & \strong{s}\tabularnewline
-\cmidrule{2-5} 
-\end{tabular}
-\end{table}
-
-\begin{itemize}
-\item Row 1. Quirks of the \texttt{l3int} module of the \LaTeX{}3 kernel mean
-we need to insert \strong{1{*}} before the left parenthesis.\footnote{Specifically, \texttt{\textbackslash{}int\_eval\{}\textbf{ }\texttt{\textendash (}
-or \texttt{\textbackslash{}int\_eval\{}\textbf{ }\texttt{+(} throw errors.} Note that we add $T$ to \emph{both} the numeric and algebraic parts of
-the expression. We are working through our expression $\mathbf{E}$ from
-the left, token by token, and have no foreknowledge of what the parenthesised
-expression contains, whether algebraic terms only or numeric terms only
-or some combination of both. Hence the need to prepare for both. The system
-shifts to a signed state \strong{s} with $T=+$, exactly the same as when
-beginning to scan $\mathbf{E}$. After all, the parenthesised expression
-is an expression in itself.
-\item Row 2. This is to allow nested parentheses like )). It shouldn't arise
-otherwise. Because of rows 4 and 5, the first right parenthesis puts the
-system into a signed state. The current term will be $T=+$, but we ignore
-it and store only a right parenthesis in both numeric and algebraic parts.
-\item Row 3. We already have a number present in $T$; only the asterisk needs
-inserting before the parenthesis. Again we add $T$ to \emph{both} the
-numeric and algebraic parts of the expression, initialise $T$ to $+$
-and change the state to a signed one.
-\item Row 4. We are in a numeric state. We append ) to the current term and the
-current term to the numeric part of the expression. We append $+0)$ to
-the algebraic part, and shift to a signed state \strong{s} with $T=+$,
-as at the outset. The $+0)$ in the algebraic part is necessary to prevent
-an empty parenthesis pair in $\mathbf{A}$ should the parenthesised expression
-have contained \emph{no} algebraic term.
-\item Row 5. We are in an algebraic state. We append ) to the current term and
-the current term to the algebraic part of the expression. We append $+0)$
-to the numeric part and shift to the initial signed state again. The $+0)$
-in the numeric part is necessary to prevent an empty parenthesis pair in
-$\mathbf{N}$ should the parenthesised expression have contained \emph{no}
-numeric term.
-\item Row 6. We are in the new state, the multiplicative state, and the current
-token is a left parenthesis. We have already met and inserted an asterisk
-(row 5); we don't need to insert another. We append ( to $T$, $T$ to
-both numeric and algebraic parts and shift to the initial signed state
-again. The use of the multiplicative state prevents a string of asterisks
-arising (but we have been able to avoid introducing new states for left
-and right parentheses).
-\end{itemize}
-To work through an example, suppose we have an order specificiation \strong{{[}m+(n\textendash (k\textendash 1)),m\textendash{} 2(n+(k\textendash 1)),k{]}}.
-(Digit \strong{1} rather than a lower-case letter \strong{l} within the
-parentheses!) Concatenating, with linking + signs gives \strong{m+(n\textendash (k-1))+m\textendash 2(n+(k\textendash 1))+k}.
-Splitting into numeric and algebraic parts now results in \strong{+1{*}(\textendash 1{*}(\textendash 1))\textendash 2{*}(+1{*}(\textendash 1))}
-for the numeric part, evaluating to \strong{3}, and \strong{+1m+1{*}(+1n\textendash 1{*}(+1k+0))+1m\textendash 2{*}(+1n+1{*}(+1k+0))+1k}
-for the algebraic part. 
-
-Removing \strong{m} from the latter and splitting into numeric and algebraic
-parts gives \strong{+1+ 1{*}(\textendash 1{*}(+0))+1\textendash 2{*}(+1{*}(+0))}
-for the numeric part, evaluating to \strong{2} which is the overall coefficient
-of \strong{m}, and \strong{+1{*}(+1n\textendash 1{*}(+1k+0))\textendash 2{*}(+1n+1{*}(+1k+0))+1k}
-for the algebraic part.
-
-Now remove \strong{n} from this resulting algebraic part and again split
-into parts. The result is \strong{+1{*}(+1-1{*}(+0))\textendash 2{*}(+1+1{*}(+0))}
-for the numeric part, evaluating to \strong{\textendash 1} which is the
-overall coefficient of \strong{n}, and \strong{+1{*}(\textendash 1{*}(+1k+0))\textendash 2{*}(+1{*}(+1k+0))+1k}
-for the algebraic part. 
-
-Removing \strong{k} from this and splitting gives \strong{+1{*}(\textendash 1{*}(+1+0))\textendash 2{*}(+1{*}(+1+0))+1}
-for the numeric part, evaluating to \strong{\textendash 2} which is the
-overall coefficient of \strong{k}, and \strong{+1{*}(\textendash 1{*}(+0)) \textendash 2{*}(+1{*}(+0))}
-for the algebraic part. But we have run out of variables and so the process
-stops at this point:
-\begin{example}
-\textbackslash{}diffp{[}m+(n-(k-1)),m-2(n+(k-1)),k{]}F\{x,y,z\}$\Longrightarrow{\displaystyle \hspace*{1em}\diffp[m+(n-(k-1)),m-2(n+(k-1)),k]F{x,y,z}}$
-\end{example}
-
-\end{document}

Modified: trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty	2018-10-25 21:25:32 UTC (rev 48987)
+++ trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty	2018-10-25 21:33:56 UTC (rev 48988)
@@ -5,11 +5,11 @@
 % Free Software  Foundation; either version 2 of the License, or (at your
 % option) any later version.
 % 
-% Andrew Parsloe aparsloe at clear.net.nz
+% Andrew Parsloe ajparsloe at gmail.com
 %
 \RequirePackage{expl3}
 \RequirePackage{xparse}
-\ProvidesExplPackage{diffcoeff} {2016/06/27} {1.0} 
+\ProvidesExplPackage{diffcoeff} {2018/10/25} {1.1} 
   {Write differential coefficients easily.}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -26,7 +26,7 @@
 \tl_new:N \g_diffco_p_ldelim_tl
 \tl_new:N \g_diffco_p_rdelim_tl
 
-\tl_new:N \l__diffco_entiand_tl 
+\tl_new:N \l__diffco_rentiand_tl 
 \tl_new:N \l__diffco_phantom_tl
 \tl_new:N \g_diffco_dop_tl
 \tl_new:N \l__diffco_denom_tl
@@ -106,15 +106,19 @@
     d-nudge,p-nudge,sep,d-sep,p-sep }  
     }
   }
-     
+
 % now set the defaults    
 \diffset  
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Derivatives
-% Ordinary differential coefficient. #1 is the order; #2 the 
-% differentiand; #3 the variable of differentiation; #4 the 
-% point of evaluation. 
+
+% Ordinary differential coefficient
+
+% #1 = the order
+% #2 =  differentiand
+% #3 = the variable of differentiation
+%  #4 = point of evaluation
+
 \NewDocumentCommand \diff{ s o m t/ m g } 
   {
   \group_begin:
@@ -136,8 +140,8 @@
       { \tl_set:Nn \l__diffco_denom_tl { #5 } } 
     }
   
-% position of differentiand: appended (star) or numerator (no star);
-% slash or fraction?
+  % position of differentiand: appended (star) or in numerator (no star);
+  % slash or fraction?
   \IfBooleanTF { #1 }
     { % differentiand follows diff coeff 
     \__diffco_phantom:n { #3 }
@@ -148,11 +152,11 @@
         (\g_diffco_dop_tl \l__diffco_order_tl 
         /
         \g_diffco_dop_tl \l__diffco_denom_tl )
-        \l__diffco_entiand_tl
+        \l__diffco_rentiand_tl
         }
         { % frac
         \frac { \g_diffco_dop_tl \l__diffco_order_tl \l__diffco_phantom_tl }
-            { \g_diffco_dop_tl \l__diffco_denom_tl } \l__diffco_entiand_tl
+            { \g_diffco_dop_tl \l__diffco_denom_tl } \l__diffco_rentiand_tl
         }
       }
     }
@@ -188,7 +192,7 @@
     }
   \group_end:  
   }  
-  
+
 \NewDocumentCommand \Diff { o m m g }
   {
   \group_begin:
@@ -236,38 +240,33 @@
   {
   \bool_if:nTF
       {
-      \tl_if_head_eq_meaning_p:nN { #1 } \hfill ||
-      \tl_if_head_eq_meaning_p:nN { #1 } \hfil
+        \tl_if_head_eq_meaning_p:nN { #1 } \hfill ||
+        \tl_if_head_eq_meaning_p:nN { #1 } \hfil
       }
+      { \l__diffco_phantom_aux:nn #1\q_stop }
       {
-      \l__diffco_phantom_aux:nn #1\q_stop
+        \bool_if:nTF
+            {
+            \tl_if_head_eq_meaning_p:nN { #1 } \hspace ||
+            \tl_if_head_eq_meaning_p:nN { #1 } \hphantom
+            }
+          { \l__diffco_phantom_aux:nnn #1\q_stop }
+          { \tl_set:Nn \l__diffco_rentiand_tl { #1 } }
       }
-      {
-      \bool_if:nTF
-        {
-        \tl_if_head_eq_meaning_p:nN { #1 } \hspace ||
-        \tl_if_head_eq_meaning_p:nN { #1 } \hphantom
-        }
-        {
-        \l__diffco_phantom_aux:nnn #1\q_stop
-        }
-        {
-        \tl_set:Nn \l__diffco_entiand_tl { #1 } 
-        }
-      }
   }
 
 \cs_new:Npn \l__diffco_phantom_aux:nn #1#2\q_stop
   {
   \tl_set:Nn \l__diffco_phantom_tl { #1 }
-  \tl_set:Nn \l__diffco_entiand_tl { #2 }
+  \tl_set:Nn \l__diffco_rentiand_tl { #2 }
   }
   
 \cs_new:Npn \l__diffco_phantom_aux:nnn #1#2#3\q_stop
   {
   \tl_set:Nn \l__diffco_phantom_tl { #1 { #2  } }
-  \tl_set:Nn \l__diffco_entiand_tl { #3 }
+  \tl_set:Nn \l__diffco_rentiand_tl { #3 }
   }
+  
 %%%%%%%%%%%%%%%%%%%%
 % Partial differential coefficient. 
 % #1 (star) = append differentiand boolean
@@ -305,15 +304,15 @@
         {
         \IfBooleanTF { #5 }
           { % slash (therefore no phantom)
-          ( \partial \__diffco_omit_order_if_i:N
-          \l__diffco_order_tl
-          /
-          \l__diffco_denom_tl ) \l__diffco_entiand_tl
+            ( \partial \__diffco_omit_order_if_i:N
+            \l__diffco_order_tl
+            /
+            \l__diffco_denom_tl ) \l__diffco_rentiand_tl
           }
           { % frac
-          \frac { \partial \__diffco_omit_order_if_i:N
-            \l__diffco_order_tl \l__diffco_phantom_tl } 
-            { \l__diffco_denom_tl } \l__diffco_entiand_tl
+            \frac { \partial \__diffco_omit_order_if_i:N
+              \l__diffco_order_tl \l__diffco_phantom_tl } 
+              { \l__diffco_denom_tl } \l__diffco_rentiand_tl
           }
         }
     }
@@ -326,17 +325,15 @@
           / \l__diffco_denom_tl
           }
           {
-          \frac { \partial
-             \__diffco_omit_order_if_i:N \l__diffco_order_tl
-             #4 } { \l__diffco_denom_tl } 
+            \frac { \partial
+                \__diffco_omit_order_if_i:N \l__diffco_order_tl
+                #4 } { \l__diffco_denom_tl } 
           }
         }
     }
 
   \IfNoValueTF { #7 }
-    { 
-    \l__diffco_coeff_tl 
-    }
+    { \l__diffco_coeff_tl }
     {
     \tl_if_empty:nTF { #7 }
       { 
@@ -465,29 +462,27 @@
     \int_set:Nn #2 { \c_one }
     }
     {
-    \tl_case:NnF #1
-      {
-      + { \int_set_eq:NN #2 \c_zero }
-      - { \int_set_eq:NN #2 \c_zero }
-      ( {
-        \msg_error:nnxx { diffcoeff } { unknown_token } 
-            { \l__diffco_order_spec_tl } { parentheses }
+      \tl_case:NnF #1
+        {
+        + { \int_set_eq:NN #2 \c_zero }
+        - { \int_set_eq:NN #2 \c_zero }
+        ( {
+            \msg_error:nnxx { diffcoeff } { unknown_token } 
+                { \l__diffco_order_spec_tl } { parentheses }
+          }
+        ^ { 
+            \msg_error:nnxx { diffcoeff } { unknown_token }
+                { \l__diffco_order_spec_tl } { superscript } 
+          }
+        }  
+        {
+          \token_if_math_subscript:NTF #1 
+            { 
+              \msg_error:nnxx { diffcoeff } { unknown_token } 
+                  { \l__diffco_order_spec_tl } { subscript } 
+            }
+            { \int_set_eq:NN #2 \c_two } % var
         }
-      ^ { 
-        \msg_error:nnxx { diffcoeff } { unknown_token }
-            { \l__diffco_order_spec_tl } { superscript } 
-        }
-      }  
-      {
-      \token_if_math_subscript:NTF #1 
-        { 
-        \msg_error:nnxx { diffcoeff } { unknown_token } 
-            { \l__diffco_order_spec_tl } { subscript } 
-        }
-        {  % var 
-        \int_set_eq:NN #2 \c_two 
-        } 
-      }
     }
   }
  
@@ -505,10 +500,9 @@
           {
             { \c_zero } % tok = s
               {
-              \tl_if_eq:NNTF \l__diffco_curr_term_tl \l__diffco_curr_tok_tl
-                { \tl_set:Nn \l__diffco_curr_term_tl { + } }
-                { \tl_set:Nn \l__diffco_curr_term_tl { - } }
-              % \int_set:Nn #1 { \c_zero }
+                \tl_if_eq:NNTF \l__diffco_curr_term_tl \l__diffco_curr_tok_tl
+                  { \tl_set:Nn \l__diffco_curr_term_tl { + } }
+                  { \tl_set:Nn \l__diffco_curr_term_tl { - } }
               }
             { \c_one } % tok = d
               { \__diffco_term_append:NN #1#2 }
@@ -550,6 +544,7 @@
               }
             { \c_one } % tok = d
               { 
+              \__diffco_term_var_append:NN #1 \c_two
               \msg_error:nnx { diffcoeff } { variable_digit_sequence } 
                 { \l__diffco_order_spec_tl }
               }
@@ -692,20 +687,19 @@
   }
 %%%%%%%%%%%
 % messages
-\cs_gset:Npn \msg_error_text:n #1
-  { Unimplemented~in~#1.sty: }
-\cs_gset:Npn \msg_info_text:n #1  
+\tl_gset:Nn \g__diffcoeff_info_text: 
   { Use~the~order-override~option~to~specify~the~overall~order~of~
-      differentiation~(or~use~diffcoeffx.sty). }
+      differentiation. }
   
 \msg_new:nnnn { diffcoeff } { unknown_token } 
-  { \msg_error_text:n { diffcoeff }~#2~in~the~order~specification~#1~
+  { Unimplemented~in~diffcoeff.sty:~#2~in~the~order~specification~#1~
       \msg_line_context:. }
-  { \msg_info_text:n { diffcoeff } }
+  { \g__diffcoeff_info_text: }
   
 \msg_new:nnnn { diffcoeff } { variable_digit_sequence } 
-  { \msg_error_text:n { diffcoeff }~a~digit~follows~a~variable~in~the~order~
+  { Unimplemented~in~diffcoeff.sty:~a~digit~follows~a~variable~in~the~order~
       specification~#1~\msg_line_context:. }
-  { \msg_info_text:n { diffcoeff } }
+  { \g__diffcoeff_info_text: }
 
-  
\ No newline at end of file
+%% version history
+% 1.1 Fix message handling mess; avoids conflict with mhchem.sty
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeffx.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeffx.sty	2018-10-25 21:25:32 UTC (rev 48987)
+++ trunk/Master/texmf-dist/tex/latex/diffcoeff/diffcoeffx.sty	2018-10-25 21:33:56 UTC (rev 48988)
@@ -1,972 +0,0 @@
-% This is file `diffcoeffx.sty'.
-%
-% This program is free software; you can redistribute it and/or modify it 
-% under the terms of the GNU General Public License as published by the 
-% Free Software  Foundation; either version 2 of the License, or (at your
-% option) any later version.
-% 
-% Andrew Parsloe aparsloe at clear.net.nz
-%
-\RequirePackage{expl3}
-\RequirePackage{xparse}
-\ProvidesExplPackage{diffcoeffx} {2015/06/27} {1.0} 
-  {Write differential coefficients easily.}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\cs_generate_variant:Nn \tl_if_eq:nnF { no }
-\cs_generate_variant:Nn \tl_if_eq:nnT { no }
-\cs_generate_variant:Nn \tl_if_in:NnTF { NV }
-\cs_generate_variant:Nn \prop_pop:NnNT { NV }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% variables
-\tl_new:N \g_diffco_d_ldelim_tl
-\tl_new:N \g_diffco_d_rdelim_tl
-\tl_new:N \g_diffco_p_ldelim_tl
-\tl_new:N \g_diffco_p_rdelim_tl
-
-\tl_new:N \l__diffco_entiand_tl 
-\tl_new:N \l__diffco_phantom_tl
-\tl_new:N \g_diffco_dop_tl
-\tl_new:N \l__diffco_denom_tl
-\tl_new:N \l__diffco_coeff_tl
-
-\clist_new:N \l__diffco_order_clist
-\tl_new:N \l__diffco_order_spec_tl
-\tl_new:N \l__diffco_nudge_tl
-
-\bool_new:N \g__diffco_erent_shape_bool
-\bool_new:N \l__diffco_no_parens_bool
-\bool_new:N \l__diffco_override_bool
-\bool_new:N \l__diffco_ordinary_bool
-\bool_new:N \l__diffco_fp_bool
-\bool_new:N \l__diffco_vars_noted_bool
-
-\tl_new:N \l__diffco_orders_in_tl
-\tl_new:N \l__diffco_order_tl
-
-\tl_new:N \l__diffco_curr_tok_tl
-\tl_new:N \l__diffco_curr_term_tl
-
-\int_new:N \l__diffco_curr_tok_int
-\int_new:N \l__diffco_curr_state_int
-\int_new:N \l__diffco_prev_state_int
-
-\prop_new:N \l__diffco_vars_prop
-\tl_new:N \l__diffco_vars_tl
-\clist_new:N \l__diffco_vars_clist
-
-\tl_new:N \l__diffco_curr_var_tl
-\tl_new:N \l__diffco_curr_qvar_tl
-\tl_new:N \l__diffco_nos_tl
-\tl_new:N \l__diffco_nos_aux_tl
-
-\tl_new:N \l__diffco_alg_tl
-\tl_new:N  \l__diffco_alg_aux_tl
-\tl_new:N \l__diffco_alg_expr_tl
-
-\tl_const:Nn \c__diffco_digits_tl { 1234567890 }
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\keys_define:nn { diffcoeffx }
-  {
-  roman .bool_gset:N  = \g_diffco_roman_bool, 
-  roman .default:n = { false }, 
-  d-delims .code:n = { 
-                      \tl_gset:Nx \g_diffco_d_ldelim_tl { \left \use_i:nn #1 }
-                      \tl_gset:Nx \g_diffco_d_rdelim_tl 
-                          { \right \use_ii:nn #1 }
-                      },
-  d-delims .default:n = { .| },
-  p-delims .code:n = { 
-                      \tl_gset:Nx \g_diffco_p_ldelim_tl { \left \use_i:nn #1 }
-                      \tl_gset:Nx \g_diffco_p_rdelim_tl 
-                          { \right \use_ii:nn #1 }
-                      },
-  p-delims .default:n = { () },
-  d-nudge .code:n = { \tl_gset:Nn \g_diffco_d_nudge_tl { \mskip #1 mu } },
-  d-nudge .default:n = { 0 },
-  p-nudge .code:n = { \tl_gset:Nn \g_diffco_p_nudge_tl { \mskip #1 mu } },
-  p-nudge .default:n = { -6 },
-  sep .code:n = { \tl_gset:Nn \g_diffco_sep_tl { \mskip #1 mu } },
-  sep .default:n = { 2 },
-  d-sep .code:n = { \tl_gset:Nn \g_diffco_d_sep_tl { \mskip #1 mu } },
-  d-sep .default:n = { 1 },
-  p-sep .code:n = { \tl_gset:Nn \g_diffco_p_sep_tl { \mskip #1 mu } },
-  p-sep .default:n = { 1 }
-  }  
-
-\DeclareDocumentCommand \diffset { o }
-  {
-  \IfValueTF { #1 }
-    { 
-    \clist_if_empty:nTF { #1 }
-      { 
-      \keys_set:nn { diffcoeffx } { roman,d-delims,p-delims,
-      d-nudge,p-nudge,sep,d-sep,p-sep }
-      }
-      { 
-      \keys_set:nn { diffcoeffx } { #1 } 
-      }
-    }
-    { 
-    \keys_set:nn { diffcoeffx } { roman,d-delims,p-delims,
-    d-nudge,p-nudge,sep,d-sep,p-sep }
-    }
-  }
-   
-% now set the defaults    
-\diffset  
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Derivatives
-% Ordinary differential coefficient. #1 (star) is the append boolean;
-% #2 is the order; #3 the differentiand; #4 slash / boolean;
-% #5 the variable of differentiation; #6 the point of evaluation. 
- 
-\NewDocumentCommand \diff{ s o m t/ m g } 
-  {
-  \group_begin:
-  % roman or italic?
-  \bool_if:NF \g__diffco_erent_shape_bool
-    { \__diffco_shape:N d }
-  
-  \IfValueTF { #2 } 
-    { 
-    \tl_set:Nn \l__diffco_order_tl { \g_diffco_d_sep_tl ^{ #2 } }
-    \int_compare:nNnTF { \tl_count:n { #5 } } > { \c_one }
-      { \tl_set:Nn \l__diffco_denom_tl { (#5)^{ #2 } } }
-      { \tl_set:Nn \l__diffco_denom_tl { #5^{ #2 } } }
-    }
-    { 
-    \tl_set:Nn \l__diffco_order_tl { }
-    \tl_if_in:nnTF { #5 } { ^ }
-      { \tl_set:Nn \l__diffco_denom_tl { (#5) } }
-      { \tl_set:Nn \l__diffco_denom_tl { #5 } } 
-    }
-  
-  % differentiand appended (star) or numerator (no star);
-  % slash or fraction?
-  \IfBooleanTF { #1 }
-    { % differentiand follows diff coeff 
-    \__diffco_phantom:n { #3 }
-    \tl_set:Nn \l__diffco_coeff_tl
-      {
-      \IfBooleanTF { #4 }
-        { % slash (therefore no phantom)
-        (\g_diffco_dop_tl \l__diffco_order_tl 
-        /
-        \g_diffco_dop_tl \l__diffco_denom_tl )
-        \l__diffco_entiand_tl
-        }
-        { % frac
-        \frac { \g_diffco_dop_tl \l__diffco_order_tl \l__diffco_phantom_tl }
-            { \g_diffco_dop_tl \l__diffco_denom_tl } \l__diffco_entiand_tl
-        }
-      }
-    }
-    { % differentiand in numerator
-    \tl_set:Nn \l__diffco_coeff_tl
-      {
-      \IfBooleanTF { #4 }
-        { % slash
-        \g_diffco_dop_tl \l__diffco_order_tl #3
-        /
-        \g_diffco_dop_tl \l__diffco_denom_tl 
-        }
-        { % frac
-        \frac { \g_diffco_dop_tl \l__diffco_order_tl #3  }
-          { \g_diffco_dop_tl \l__diffco_denom_tl }
-        }
-      }
-    }
-    
-  % point of eval?
-  \IfNoValueTF { #6 }
-    { % no
-    \l__diffco_coeff_tl 
-    }
-    { % yes
-    \bool_set_true:N \l__diffco_ordinary_bool
-    \__diffco_delims:nnnnN #6;;;;\q_stop \l__diffco_ordinary_bool
-    }
-  \group_end:  
-  }    
-  
-\NewDocumentCommand \Diff { o m m g }
-  {
-  \group_begin:
-  \__diffco_shape:N D 
-  \bool_gset_true:N \g__diffco_erent_shape_bool
-  \diff[#1]{#2}{#3}{#4}
-  \bool_gset_false:N \g__diffco_erent_shape_bool
-  \group_end:
-  }
-  
-\NewDocumentCommand \diffdelta { o m m g } 
-  {
-  \group_begin:
-  \__diffco_shape:N \delta
-  \bool_gset_true:N \g__diffco_erent_shape_bool
-  \diff[#1]{#2}{#3}{#4}
-  \bool_gset_false:N \g__diffco_erent_shape_bool
-  \group_end:
-  }
-  
-\NewDocumentCommand \Diffdelta { o m m g }
-  {
-  \group_begin:
-  \__diffco_shape:N \Delta
-  \bool_gset_true:N \g__diffco_erent_shape_bool
-  \diff[#1]{#2}{#3}{#4}
-  \bool_gset_false:N \g__diffco_erent_shape_bool
-  \group_end:
-  }
-    
-\cs_new_nopar:Npn \__diffco_shape:N #1    
-  {
-  \bool_if:NTF \g_diffco_roman_bool
-    { \tl_gset:Nn \g_diffco_dop_tl { \mathrm{ #1} } }
-    { \tl_gset:Nn \g_diffco_dop_tl { #1 } }
-  } 
-%%%%%
-\cs_new:Npn \__diffco_phantom:n #1
-  {
-  \bool_if:nTF
-      {
-      \tl_if_head_eq_meaning_p:nN { #1 } \hfill ||
-      \tl_if_head_eq_meaning_p:nN { #1 } \hfil
-      }
-      {
-      \l__diffco_phantom_aux:nn #1\q_stop
-      }
-      {
-      \bool_if:nTF
-          {
-          \tl_if_head_eq_meaning_p:nN { #1 } \hspace ||
-          \tl_if_head_eq_meaning_p:nN { #1 } \hphantom
-          }
-        {
-        \l__diffco_phantom_aux:nnn #1\q_stop
-        }
-        {
-        \tl_set:Nn \l__diffco_entiand_tl { #1 } 
-        }
-      }
-  }
-
-\cs_new:Npn \l__diffco_phantom_aux:nn #1#2\q_stop
-  {
-  \tl_set:Nn \l__diffco_phantom_tl { #1 }
-  \tl_set:Nn \l__diffco_entiand_tl { #2 }
-  }
-  
-\cs_new:Npn \l__diffco_phantom_aux:nnn #1#2#3\q_stop
-  {
-  \tl_set:Nn \l__diffco_phantom_tl { #1 { #2  } }
-  \tl_set:Nn \l__diffco_entiand_tl { #3 }
-  }
-%%%%%%%%%%%%%%%%%%%%
-% Partial differential coefficient. #1 (star) = append differentiand 
-% to diff. coeff.(displace from numerator); #2 = comma list of the
-%  orders of diff. in each var.; #3 = order override for the 
-% numerator; #4 = differentiand; #5 = clist of vars of diff. in
-% order; #6 = list of vars held constant
-\NewDocumentCommand \diffp{ s o o t/ m m g } 
-  {
-  \group_begin:
-  
-  % diff. order list 
-  \tl_clear:N \l__diffco_order_clist
-  \IfValueT { #2 }
-    { 
-    \clist_set:Nn \l__diffco_order_clist { #2 }
-    \tl_set:Nx \l__diffco_order_spec_tl 
-        { [\clist_use:Nn \l__diffco_order_clist { , }]}
-    }
-  
-  % order list override  
-  \IfValueT { #3 }
-    { 
-    \bool_set_true:N \l__diffco_override_bool
-    \tl_set:Nn \l__diffco_order_tl { #3 } 
-    }
-    
-  \__diffco_orders:Nn \l__diffco_order_clist { #6 }
-
-  % position of differentiand
-  \IfBooleanTF { #1 }
-    { % appended
-    \__diffco_phantom:n { #5 }
-    \tl_set:Nn \l__diffco_coeff_tl
-        {
-        \frac { \partial
-          \__diffco_omit_order_if_i:N \l__diffco_order_tl
-          \l__diffco_phantom_tl } { \l__diffco_denom_tl }
-        \l__diffco_entiand_tl
-        }
-    }
-    { % in numerator
-    \tl_set:Nn \l__diffco_coeff_tl
-        {
-        \frac { \partial
-           \__diffco_omit_order_if_i:N \l__diffco_order_tl
-           #5 } { \l__diffco_denom_tl }  
-        }
-    }
-  
-  \IfNoValueTF { #7 }
-    { 
-    \l__diffco_coeff_tl 
-    }
-    { % hold some vars const./ pt of eval.
-    \bool_set_false:N \l__diffco_ordinary_bool
-    \__diffco_delims:nnnnN #7;;;;\q_stop \l__diffco_ordinary_bool
-    }
-  
-  \group_end:  
-  } % end of \diffp 
-  
-
-\NewDocumentCommand \jacob { m m }
-  { % need extra braces in denom for clist manipulations
-  \diffp{ (#1) }{ { {{(#2)}} } }
-  }
- 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
-% #1 subscript; #2 superscript; #3 delims; #4 nudge override
-% #5 detritus; #6 boolean (true = ordinary deriv.; false = partial deriv.)
-\cs_new:Npn \__diffco_delims:nnnnN #1;#2;#3;#4;#5\q_stop#6
-  {
-  \tl_set:Nn \l__diffco_sub_tl { #1 }
-  \tl_set:Nn \l__diffco_super_tl { #2 }
-  \tl_if_empty:nTF { #3 }
-    { % default delims 
-    \bool_if:NTF #6
-      { % ordinary
-      \tl_set_eq:NN \l__diffco_ldelim_tl \g_diffco_d_ldelim_tl
-      \tl_set_eq:NN \l__diffco_rdelim_tl \g_diffco_d_rdelim_tl
-      \tl_if_empty:nTF { #4 }
-        { \tl_set_eq:NN \l__diffco_nudge_tl \g_diffco_d_nudge_tl }
-        { \tl_set:Nn \l__diffco_nudge_tl { \mskip #4 mu } }
-      }
-      { % partial
-      \tl_set_eq:NN \l__diffco_ldelim_tl \g_diffco_p_ldelim_tl
-      \tl_set_eq:NN \l__diffco_rdelim_tl \g_diffco_p_rdelim_tl
-      \tl_if_empty:nTF { #4 }
-        { \tl_set_eq:NN \l__diffco_nudge_tl \g_diffco_p_nudge_tl }
-        { \tl_set:Nn \l__diffco_nudge_tl { \mskip #4 mu } }
-      }
-    }
-    { % delims specified
-    \tl_set:Nn \l__diffco_ldelim_tl { \left \use_i:nn #3 }
-    \tl_set:Nn \l__diffco_rdelim_tl { \right \use_ii:nn #3 }
-    \tl_if_empty:nTF { #4 }
-      { 
-      \tl_set:NV \l_tmpa_tl { \use_ii:nn #3 } 
-      \__diffco_get_nudge:N \l_tmpa_tl
-      }
-      { 
-      \tl_set:Nx \l__diffco_nudge_tl { \mskip #4 mu } 
-      }
-    }
-  \l__diffco_ldelim_tl \l__diffco_coeff_tl \l__diffco_rdelim_tl
-  \tl_if_empty:NF \l__diffco_sub_tl
-    { \c_math_subscript_token { \l__diffco_nudge_tl \l__diffco_sub_tl } }
-  \tl_if_empty:NF \l__diffco_super_tl
-    { \c_math_superscript_token { \l__diffco_nudge_tl \l__diffco_super_tl } }
-  }
-
-\cs_new:Npn \__diffco_get_nudge:N #1
-  { 
-  \exp_args:NV\tl_case:NnF #1
-    {
-    ) { \tl_set:Nn \l__diffco_nudge_tl { \mskip -6mu } }
-    > { \tl_set:Nn \l__diffco_nudge_tl { \mskip -6mu } }
-    \} { \tl_set:Nn \l__diffco_nudge_tl { \mskip -4mu } }
-    \rangle { \tl_set:Nn \l__diffco_nudge_tl { \mskip -6mu } }
-    }
-    { \tl_set:Nn \l__diffco_nudge_tl { \mskip 0mu } }
-  }
-
-% #1 is the clist of diff. orders
-% #2 is the clist of variables
-\cs_new:Npn \__diffco_orders:Nn #1#2
-  {
-  \int_zero:N \l_tmpa_int
-  \tl_clear:N \l_tmpb_tl
-  \clist_clear:N \l_tmpa_clist
-  \clist_clear:N \l_tmpb_clist
-  \clist_clear:N \l__diffco_vars_clist
-
-  \clist_set:Nn \l__diffco_vars_clist { #2 }  
-  \clist_map_inline:Nn \l__diffco_vars_clist
-    {
-    \bool_set_false:N \l__diffco_no_parens_bool
-    
-    % get order of each variable
-    \clist_pop:NNF #1 \l_tmpa_tl 
-      { \tl_set:Nn \l_tmpa_tl { 1 } }
-
-    \tl_if_eq:noT { 1 } \l_tmpa_tl
-      { \bool_set_true:N \l__diffco_no_parens_bool }
-
-    \clist_put_right:NV \l_tmpa_clist \l_tmpa_tl 
-    
-    % create the denominator
-    \tl_clear:N \l_tmpb_tl
-    \bool_if:nTF
-        {
-        \int_compare_p:nNn { \tl_count:n { ##1 } } = { \c_one } 
-        ||
-        \l__diffco_no_parens_bool
-        }
-      { \tl_put_right:Nn \l_tmpb_tl { \partial ##1 } }
-      { \tl_put_right:Nn \l_tmpb_tl { \partial (##1) } }
-
-    \tl_if_eq:noF { 1 } \l_tmpa_tl
-      { 
-      \tl_put_right:Nn \l_tmpb_tl { ^ } 
-      \tl_put_right:Nx \l_tmpb_tl { { \l_tmpa_tl } }
-      }
-
-    \clist_put_right:No \l_tmpb_clist \l_tmpb_tl
-    } % end of inline map
-
-  % numerator order 
-  \bool_if:NF \l__diffco_override_bool
-    {
-    \tl_set:Nx \l__diffco_orders_in_tl { \clist_use:Nn \l_tmpa_clist {+} }
-    \diff_simplify_orders:NN \l__diffco_orders_in_tl \l__diffco_order_tl
-    }
-
-  % denominator
-  \tl_set:Nx \l__diffco_denom_tl { \clist_use:Nn
-        \l_tmpb_clist { \g_diffco_sep_tl } }
-  }
-
-% don't display order 1 superscript
-\cs_new:Npn \__diffco_omit_order_if_i:N #1
-  {
-  \tl_if_eq:noF { 1 } #1
-    { ^{ \g_diffco_p_sep_tl \l__diffco_order_tl } }
-  }
-%%%%%%%%%%%%%%%%%%%%%%
-% #1 is expr. in; #2 is expr. out
-\cs_new:Npn \diff_simplify_orders:NN #1 #2
-  {
-  \tl_clear:N \l__diffco_nos_tl
- 
-  \__diffco_digest_expr:NNNN #1 \l__diffco_nos_tl 
-      \l__diffco_alg_tl \l__diffco_vars_prop
-
-  \__diffco_eval_nos:N \l__diffco_nos_tl
-  
-  \tl_if_empty:NF \l__diffco_alg_tl
-    { \__diffco_eval_vars:NN \l__diffco_alg_tl \l__diffco_vars_prop }
-  
-  \__diffco_manicure_result:NNN \l__diffco_nos_tl \l__diffco_alg_tl #2
-  }
-
-% #1 is the expression; #2 (tl) receives the numerical part;
-% #3 (tl) receives the algebraic part; #4 (prop) receives the vars
-\cs_new:Npn \__diffco_digest_expr:NNNN #1#2#3#4
-  {  
-  \tl_put_right:Nn #1 { + }
-  \tl_set:Nn \l__diffco_curr_term_tl { + }
-  \int_set:Nn \l__diffco_curr_state_int { \c_zero }
-  \int_set:Nn \l__diffco_prev_state_int { \c_zero }
-  \int_set:Nn \l__diffco_curr_tok_int { \c_zero }
-  \tl_clear:N #3
-  \prop_clear:N #4
-    
-  \tl_map_inline:Nn #1
-    { 
-    \tl_set:Nn \l__diffco_curr_tok_tl { ##1 }
-    \__diffco_get_curr_index:NN ##1 \l__diffco_curr_tok_int
-    \__diffco_compare_states:NNNNN \l__diffco_curr_state_int 
-        \l__diffco_curr_tok_int #2#3#4
-    }
-  \tl_if_empty:NT #2 { \tl_set:Nn #2 { 0 } }
-  }
-
-% #1 contains current token (tl); #2 receives current token index (int)
-\cs_new:Npn \__diffco_get_curr_index:NN #1#2
-  {
-  \tl_if_in:NnTF \c__diffco_digits_tl { #1 }
-    { % digit
-    \int_set:Nn #2 { \c_one }
-    }
-    {
-    \tl_case:NnF #1
-      {
-      + { \int_set_eq:NN #2 \c_zero }
-      - { \int_set_eq:NN #2 \c_zero }
-      ^ { \int_set_eq:NN #2 \c_three }
-      * { \int_set_eq:NN #2 \c_five }
-      \times 
-        { 
-        \int_set_eq:NN #2 \c_five
-        \tl_set:Nn \l__diffco_curr_tok_tl { * }
-        }
-      ( { \int_set_eq:NN #2 \c_six }
-      ) { \int_set_eq:NN #2 \c_seven }
-      }  
-      {
-      \token_if_math_subscript:NTF #1 
-        { \int_set_eq:NN #2 { \c_four } }
-        { 
-        \int_set_eq:NN #2 \c_two }  % var
-      }
-    }
-  }
- 
-% #1 (int) is curr. state; #2 (int) is curr token index; 
-% #3 (tl) receives the numerical part; 
-% #4 (tl) receives the algebraic part; 
-% #5 (prop) receives the vars
-\cs_new:Npn \__diffco_compare_states:NNNNN #1#2#3#4#5
-  { 
-  \int_case:nn { #1 }
-    { 
-      { \c_zero } % sgn
-        { \__diffco_sgn_transitions:NNNN #1#2#3#4 }
-      { \c_one } % num
-        { \__diffco_num_transitions:NNNN #1#2#3#4 }
-      { \c_two } % alg
-        { \__diffco_alg_transitions:NNNNN #1#2#3#4#5 }
-      { \c_three } % exp
-        { \__diffco_exp_transitions:NN #1#2 }
-      { \c_four } % sub (_)
-        { \__diffco_sub_transitions:NN #1#2 }
-      { \c_five } % mul (*,X)
-        { \__diffco_mul_transitions:NNNN #1#2#3#4 }
-    }
-  }
-  
-% transitions from the signed state
-% #1 = 0, current state; #2 current token index
-% #3 store num. part; #4 store alg. part
-\cs_new:Npn \__diffco_sgn_transitions:NNNN #1#2#3#4
-  {
-  \int_case:nnF { #2 }
-    {
-      { \c_zero } % tok = s
-        {
-        \tl_if_eq:NNTF \l__diffco_curr_term_tl \l__diffco_curr_tok_tl
-          { \tl_set:Nn \l__diffco_curr_term_tl { + } }
-          { \tl_set:Nn \l__diffco_curr_term_tl { - } }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        % \int_set:Nn #1 { \c_zero }
-        }
-      { \c_one } % tok = d
-        { \__diffco_term_qvar_append:NN #1 #2 }
-      { \c_two } % tok = v
-        {
-        \tl_put_right:Nn \l__diffco_curr_term_tl { 1 }
-        \__diffco_term_var_append:NN #1 #2
-        }
-      { \c_six } % tok = (
-        {
-        \tl_put_right:Nn \l__diffco_curr_term_tl { 1*( }
-        \tl_put_right:NV #3 \l__diffco_curr_term_tl
-        \tl_put_right:NV #4 \l__diffco_curr_term_tl
-        \tl_set:Nn \l__diffco_curr_term_tl { + }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        \int_set:Nn #1 { \c_zero }
-        }
-      { \c_seven } % tok = )
-        {
-        \tl_put_right:Nn #3 { ) }
-        \tl_put_right:Nn #4 { ) }
-        \tl_set:Nn \l__diffco_curr_term_tl { + }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        \int_set:Nn #1 { \c_zero }
-        }
-    }
-    {
-    \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-      { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } { sign }
-    }
-  }
-  
-% transitions from the numeric state
-% #1 = 1, current state; #2 current token index
-% #3 store num. part; #4 store alg. part
-\cs_new:Npn \__diffco_num_transitions:NNNN #1#2#3#4
-  {
-  \int_case:nnF { #2 }
-    {
-      { \c_zero } % tok = s
-        {
-        \tl_put_right:NV #3 \l__diffco_curr_term_tl 
-        \tl_clear:N \l__diffco_curr_qvar_tl
-        \tl_clear:N \l__diffco_curr_term_tl
-        \__diffco_term_append:NN #1#2
-        }
-      { \c_one } % tok = d
-        { \__diffco_term_qvar_append:NN #1 #2 }
-      { \c_two } % tok = v
-        { 
-        \tl_clear:N \l__diffco_curr_qvar_tl
-        \__diffco_term_var_append:NN #1#2 
-        }
-      { \c_three } % tok = ^
-        { \__diffco_term_qvar_append:NN #1#2 }  
-      { \c_five } % tok = *
-        { 
-        \tl_clear:N \l__diffco_curr_qvar_tl
-        \__diffco_term_append:NN #1#2
-        }
-      { \c_six } % tok = (
-        {
-        \tl_put_right:Nn \l__diffco_curr_term_tl { *( }
-        \tl_put_right:NV #3 \l__diffco_curr_term_tl
-        \tl_put_right:NV #4 \l__diffco_curr_term_tl
-        \tl_set:Nn \l__diffco_curr_term_tl { + }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        \int_set:Nn #1 { \c_zero }
-        } 
-      { \c_seven } % tok = )
-        {
-        \tl_put_right:Nn \l__diffco_curr_term_tl { ) }
-        \tl_put_right:NV #3 \l__diffco_curr_term_tl
-        \tl_put_right:Nn #4 { +0) }
-        \tl_set:Nn \l__diffco_curr_term_tl { + }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        \int_set:Nn #1 { \c_zero }
-        }
-    }
-    {
-    \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-      { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } { number }
-    }
-  }
-
-% transitions from the algebraic state
-% #1 = 2, current state; #2 current token index
-% #3 store num. part; #4 store alg. part; #5 var store
-\cs_new:Npn \__diffco_alg_transitions:NNNNN #1#2#3#4#5
-  { 
-  \int_case:nnF { #2 }
-    {
-      { \c_zero } % tok = s
-        { 
-        \bool_if:NF \l__diffco_vars_noted_bool
-          { \__diffco_store_var:NN #5 \l__diffco_curr_var_tl }
-        \tl_clear:N \l__diffco_curr_var_tl
-        \tl_put_right:NV #4 \l__diffco_curr_term_tl
-        \tl_clear:N \l__diffco_curr_term_tl
-        \__diffco_term_append:NN #1 #2
-        }
-      { \c_one } % tok = d
-        {
-        \int_compare:nNnTF { \l__diffco_prev_state_int } = { \c_three }
-          { \__diffco_term_var_append:NN #1 \c_two }
-          { 
-          \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-            { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } 
-            { variable }
-          }
-        }
-      { \c_two } % tok = v
-        { \__diffco_term_var_append:NN #1 #2 }
-
-      { \c_three } % tok = ^
-        { \__diffco_term_var_append:NN #1#2 }  
-      { \c_four } % tok = _
-        { \__diffco_term_var_append:NN #1#2 }
-      { \c_seven } % tok = )
-        {
-        \bool_if:NF \l__diffco_vars_noted_bool
-          { \__diffco_store_var:NN #5 \l__diffco_curr_var_tl }
-        \tl_clear:N \l__diffco_curr_var_tl 
-        \tl_put_right:Nn \l__diffco_curr_term_tl { ) }
-        \tl_put_right:Nn #3 { +0) }
-        \tl_put_right:NV #4 \l__diffco_curr_term_tl
-        \tl_set:Nn \l__diffco_curr_term_tl { + }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        \int_set:Nn #1 { \c_zero }
-        }              
-    }
-    {
-    \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-      { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } { variable }
-    }
-  }
-
-% transitions from the exponent state
-% #1 = 3, current state; #2 current token index
-\cs_new:Npn \__diffco_exp_transitions:NN #1#2
-  {
-  \int_case:nn { \l__diffco_prev_state_int }
-    { 
-      { \c_one } % prev = num
-        { 
-        \int_case:nnF { #2 }
-          {
-            { \c_one } % tok = d
-              {
-              \tl_clear:N \l__diffco_curr_qvar_tl
-              \tl_put_right:Nn \l__diffco_curr_tok_tl { * }
-              \__diffco_term_append:NN #1 \c_five
-              \bool_set_true:N \l__diffco_fp_bool
-              }
-            { \c_two } % tok = v
-              {
-              \__diffco_term_qvar_append:NN #1 \c_two
-              \tl_set_eq:NN \l__diffco_curr_var_tl \l__diffco_curr_qvar_tl
-              \tl_clear:N \l__diffco_curr_qvar_tl
-              }
-          }
-          {
-          \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-            { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } { ^ }
-          }
-        }
-      { \c_two } % prev = alg
-        {
-        \int_compare:nNnTF { #2 } < { \c_three }
-          { \__diffco_term_var_append:NN #1 \c_two }
-          {
-          \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-            { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } { ^ }
-          }
-        }
-    }
-  }
-
-% transitions from the subscript state
-% #1 = 4, current state; #2 current token index
-\cs_new:Npn \__diffco_sub_transitions:NN #1#2  
-  {
-  \bool_if:nTF 
-      {(
-      \int_compare_p:nNn { \l__diffco_prev_state_int } = { \c_two } &&
-      \int_compare_p:nNn { #2 } < { \c_three }
-      )}
-    { 
-    \__diffco_term_var_append:NN #1 \c_two 
-    }
-    {
-    \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-      { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } { _ }
-    }
-  }
-  
-% transitions from the multiplicative state
-% #1 = 5, current state; #2 current token index
-% #3 store num. part; #4 store alg. part
-\cs_new:Npn \__diffco_mul_transitions:NNNN #1#2#3#4
-  { 
-  \int_case:nnF { #2 }
-    {
-      { \c_zero } % tok = s
-        {
-        \int_compare:nNnTF {\l__diffco_prev_state_int } = { \c_three }
-          {
-          \tl_put_right:Nn \l__diffco_curr_term_tl { 1 }
-          \tl_put_right:NV #3 \l__diffco_curr_term_tl
-          \tl_clear:N \l__diffco_curr_term_tl
-          \__diffco_term_append:NN #1 #2 
-          }
-          {
-          \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-            { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } 
-            { multiplicative~token }
-          }
-        }
-      { \c_one } % tok = d
-        { \__diffco_term_qvar_append:NN #1 #2 }
-      { \c_two } % tok = v
-        { 
-        \tl_put_right:Nn \l__diffco_curr_term_tl {1 }
-        \__diffco_term_var_append:NN #1#2
-        }
-      { \c_five } % tok = *
-        { \prg_do_nothing: }  
-      { \c_six } % tok = (
-        {
-        \tl_put_right:Nn \l__diffco_curr_term_tl { ( }
-        \tl_put_right:NV #3 \l__diffco_curr_term_tl
-        \tl_put_right:NV #4 \l__diffco_curr_term_tl
-        \tl_set:Nn \l__diffco_curr_term_tl { + }
-        \int_set_eq:NN \l__diffco_prev_state_int #1
-        \int_set:Nn #1 { \c_zero }
-        }
-    }
-    {
-    \msg_error:nnxxx { diffcoeffx } { order_spec_construct } 
-      { \l__diffco_order_spec_tl } { \l__diffco_curr_tok_tl } 
-      { multiplicative~token }
-    }
-  }
-
-%%%%%%%%%%%%%%%%%%%
-% term/var/qvar appending routines  
-% #1 current state; #2 current token index
-\cs_new:Npn \__diffco_term_var_append:NN #1#2
-  {
-  \tl_put_right:NV \l__diffco_curr_term_tl \l__diffco_curr_tok_tl
-  \tl_put_right:NV \l__diffco_curr_var_tl \l__diffco_curr_tok_tl
-  \int_set_eq:NN \l__diffco_prev_state_int #1
-  \int_set_eq:NN #1 #2
-  }
-  
-% #1 current state; #2 current token index
-\cs_new:Npn \__diffco_term_qvar_append:NN #1#2
-  {
-  \tl_put_right:NV \l__diffco_curr_term_tl \l__diffco_curr_tok_tl
-  \tl_put_right:NV \l__diffco_curr_qvar_tl \l__diffco_curr_tok_tl
-  \int_set_eq:NN \l__diffco_prev_state_int #1
-  \int_set_eq:NN #1 #2
-  }  
-
-% #1 current state; #2 current token index
-\cs_new:Npn \__diffco_term_append:NN #1#2
-  {
-  \tl_put_right:NV \l__diffco_curr_term_tl \l__diffco_curr_tok_tl
-  \int_set_eq:NN \l__diffco_prev_state_int #1
-  \int_set_eq:NN #1 #2
-  }  
-  
-% #1 is prop list; #2 is tl containing var
-\cs_new:Npn  \__diffco_store_var:NN #1 #2
-  {
-  \int_set:Nn \l_tmpa_int { \exp_args:NV \tl_count_tokens:n #2 }
-  \prop_get:NVNTF #1 \l_tmpa_int \l_tmpa_tl
-    {
-    \tl_put_right:Nn \l_tmpa_tl { , }
-    \tl_put_right:NV \l_tmpa_tl #2
-    \prop_put:NVV #1 \l_tmpa_int \l_tmpa_tl
-    }
-    {
-    \prop_put:NVV #1 \l_tmpa_int #2
-    }
-  }
-  
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% evals numerical expr. in #1, which receives the
-% evaluated expr.
-\cs_new:Npn \__diffco_eval_nos:N #1 
-  {
-  \bool_if:NTF \l__diffco_fp_bool
-    { % exponent; use l3fp
-    \fp_set:Nn \l_tmpa_fp { #1 }
-    \int_set:Nn \l_tmpa_int { \fp_use:N \l_tmpa_fp }
-    \bool_set_false:N \l__diffco_fp_bool
-    }
-    { % normal mode; use l3int
-    \int_set:Nn \l_tmpa_int { #1 }
-    }
-  \tl_set:Nx  #1 { \int_use:N \l_tmpa_int } 
-
-  \int_compare:nNnT { \l_tmpa_int } > { \c_zero }
-    { \tl_put_left:Nn #1 { + } }
-  }
-
-% #1 (tl) has algebraic part & receives eval. expression
-% #2 (prop) contains the variables
-% The idea is to remove each var but leave coeffs, split into
-% num & alg parts, eval. the num part for the net coeff of var
-\cs_new:Npn \__diffco_eval_vars:NN #1#2
-  { 
-  \bool_set_true:N \l__diffco_vars_noted_bool
-  \prop_set_eq:NN \l_tmpa_prop #2
-  \int_set_eq:NN \l_tmpa_int \c_one
-  \bool_until_do:nn { \prop_if_empty_p:N #2 }
-    {
-    \prop_pop:NVNT #2 \l_tmpa_int \l_tmpa_tl
-      {
-      \tl_put_left:Nn \l_tmpa_tl { , }
-      \tl_put_left:NV \l__diffco_vars_tl  \l_tmpa_tl
-      }
-    \int_incr:N \l_tmpa_int
-    }
-    
-  \clist_set:NV \l__diffco_vars_clist \l__diffco_vars_tl
-  \clist_remove_duplicates:N \l__diffco_vars_clist
-  \bool_if:NF \l__diffco_override_bool
-    {
-    \clist_map_inline:Nn \l__diffco_vars_clist
-      {
-      \tl_replace_all:Nnn #1 { ##1 } { }
-      \__diffco_digest_expr:NNNN #1 \l__diffco_nos_aux_tl 
-          \l__diffco_alg_aux_tl \l_tmpa_prop
-      \__diffco_eval_nos:N \l__diffco_nos_aux_tl
-       
-      \__diffco_cumulate_expr:NnN \l__diffco_nos_aux_tl { ##1 }
-          \l__diffco_alg_expr_tl
-       
-      \tl_set_eq:NN #1 \l__diffco_alg_aux_tl
-      \tl_clear:N \l__diffco_nos_aux_tl
-      \tl_clear:N \l__diffco_alg_aux_tl
-      }
-    }
-  \tl_set_eq:NN #1 \l__diffco_alg_expr_tl
-  }
-
-% #1 is num coeff; #2 is var; #3 is cumulating expr. (All tl.)
-\cs_new:Npn \__diffco_cumulate_expr:NnN #1#2#3
-  { 
-  \int_case:nnF { #1 }
-    {
-      { 0 } { \prg_do_nothing: }
-      { +1 } { \tl_put_right:Nn #3 { + #2 } }
-      { -1 } { \tl_put_right:Nn #3 { - #2 } }
-    }
-    {
-    \tl_put_right:NV #3 { #1 } 
-    \exp_args:NNx \tl_if_in:NnT \c__diffco_digits_tl { \tl_head:n { #2 } }
-      { \tl_put_right:Nn #3 { \times} }
-    \tl_put_right:Nn #3 { #2 }
-    }
-  }
-
-% alg. part precedes num. part unless alg. starts 
-% with - and nums > 0. #1 nums, #2 alg, #3 output 
-\cs_new:Npn \__diffco_manicure_result:NNN #1#2#3
-  { % alg < 0 ?
-  \exp_args:NV \tl_if_head_eq_charcode:nNTF #2 -
-    {
-    \int_compare:nNnTF { #1 } > { \c_zero }
-      {  % nums > 0
-      \tl_concat:NNN #3 #1 #2
-      }
-      {  % nums =< 0
-      \seq_set_split:NnV \l_tmpa_seq { + } #2    
-      \seq_pop:NN \l_tmpa_seq \l_tmpa_tl
-      \tl_set:Nx \l_tmpb_tl { \seq_use:Nn \l_tmpa_seq { + } }
-      \int_compare:nNnF { #1 } = { \c_zero }
-        { \tl_concat:NNN \l_tmpa_tl \l_tmpa_tl #1 }
-      \tl_concat:NNN #3 \l_tmpb_tl \l_tmpa_tl
-      }
-    }
-    { % alg >= 0
-    \int_compare:nNnTF { #1 } = { \c_zero }
-      { \tl_set_eq:NN #3 #2 }
-      { \tl_concat:NNN #3 #2 #1 }
-    }
-
-  % if everything cancels, output 0
-  \tl_if_empty:NTF #3 { \tl_set:Nn #3 { 0 } }
-    {
-    % trim initial + sign
-    \exp_args:NV \tl_if_head_eq_charcode:nNT #3 +
-      { \tl_set:Nx #3 { \tl_tail:N #3 } }
-    }
-  }
-
-%%%%%%%%%%%%%%%%%%%%
-% messages
-\cs_gset:Npn \msg_error_text:n #1
-  { #1.sty.~Is~this~construction~intended }
-\cs_gset:Npn \msg_info_text:n #1  
-  { If~intended~then~use~the~order-override~option~to~specify~the~overall~
-      order~of~differentiation. }
-  
-\msg_new:nnnn { diffcoeffx } { order_spec_construct } 
-  { \msg_error_text:n { diffcoeffx }:~#3~followed~by~#2~in~the~order~
-      specification~#1~\msg_line_context:? } 
-  { \msg_info_text:n { diffcoeffx } }
\ No newline at end of file



More information about the tex-live-commits mailing list