texlive[49558] Master/texmf-dist: mandi (31dec18)

commits+karl at tug.org commits+karl at tug.org
Mon Dec 31 23:10:54 CET 2018


Revision: 49558
          http://tug.org/svn/texlive?view=revision&revision=49558
Author:   karl
Date:     2018-12-31 23:10:54 +0100 (Mon, 31 Dec 2018)
Log Message:
-----------
mandi (31dec18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/mandi/mandi.pdf
    trunk/Master/texmf-dist/source/latex/mandi/mandi.dtx
    trunk/Master/texmf-dist/tex/latex/mandi/mandi.sty

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

Modified: trunk/Master/texmf-dist/source/latex/mandi/mandi.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/mandi/mandi.dtx	2018-12-31 22:10:36 UTC (rev 49557)
+++ trunk/Master/texmf-dist/source/latex/mandi/mandi.dtx	2018-12-31 22:10:54 UTC (rev 49558)
@@ -32,7 +32,7 @@
 %</internal>
 %
 %<*package>
-%%\ProvidesPackage{mandi}[2018/03/20 2.7.2 Macros for physics and astronomy]
+%%\ProvidesPackage{mandi}[2018/12/30 2.7.3 Macros for physics and astronomy]
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %</package>
 %
@@ -137,7 +137,7 @@
 %    package is indexed. There may be commands similar to indexed commands 
 %    described in relevant parts of the documentation.}
 % 
-% \CheckSum{6548}
+% \CheckSum{6558}
 %
 % \CharacterTable
 %  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -189,6 +189,188 @@
 %   \newpage
 % \restoregeometry
 %
+%\changes{v2.4.0}{2014/12/16}{Made option names consistent with default behavior.} 
+%\changes{v2.4.0}{2014/12/16}{Added option for boldface vector kernels.}
+%\changes{v2.4.0}{2014/12/16}{Added option for approximate values of constants.}
+%\changes{v2.4.0}{2014/12/16}{Added magnetic charge.}
+%\changes{v2.4.0}{2014/12/16}{\cs{vpythonfile} now uses a uniform style.}
+%\changes{v2.4.0}{2014/12/16}{Added table of all predefined quantities with units.}
+%\changes{v2.4.0}{2014/12/16}{Added table of all predefined constants 
+%  with their symbols and units.}
+%\changes{v2.4.0}{2014/12/16}{Added Maxwell's equations in both integral 
+%  and differential forms, both with and without magnetic monopoles.}
+%\changes{v2.4.0}{2014/12/16}{Added Lorentz force, with and 
+%  without magnetic monopoles.}
+%\changes{v2.4.0}{2014/12/16}{\cs{vpythonline} now uses a uniform style.}
+%\changes{v2.4.0}{2014/12/16}{\texttt{vpythonblock} now uses a uniform style.}
+%\changes{v2.4.0}{2014/12/17}{Now coexists with the \pkgname{commath} package.}
+%\changes{v2.4.0}{2014/12/19}{Removed compatibility check for the \pkgname{physymb} 
+%  package.}
+%\changes{v2.4.1}{2015/02/11}{\texttt{vpythonblock} now accepts an optional caption.}
+%\changes{v2.4.1}{2015/02/11}{\cs{vpythonfile} now accepts an optional caption.}
+%\changes{v2.4.1}{2015/02/14}{Commands that use \pkgname{mdframed} 
+%  will not break over pages.}
+%\changes{v2.4.1}{2015/02/20}{Added \cs{scompsCvect} for superscripted 
+%  components.}
+%\changes{v2.4.1}{2015/02/20}{Added \cs{scompsRvect} for superscripted 
+%  components.}
+%\changes{v2.4.1}{2015/01/23}{Added more VPython keywords.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{smallanswerform}.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{mediumanswerform}.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{largeanswerform}.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{largeranswerform}.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{hugeanswerform}.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{hugeranswerform}.}
+%\changes{v2.4.2}{2015/06/08}{Added \cs{fullpageanswerform}.}
+%\changes{v2.5.0}{2016/01/26}{Added explicit mention of VPython and GlowScript.}
+%\changes{v2.5.0}{2016/01/26}{Added GlowScript keywords.}
+%\changes{v2.5.0}{2016/01/26}{Added example showing how to handle long
+%  lines and suppressing numbers on broken lines.}
+%\changes{v2.5.0}{2016/01/26}{\cs{vpythonfile} now begins listings on a new page.}
+%\changes{v2.5.0}{2015/09/13}{Removed autosized parentheses in math mode.}
+%\changes{v2.5.0}{2015/09/13}{Removed compatibility check for the \pkgname{commath}
+%  package.}
+%\changes{v2.5.0}{2015/09/13}{Renamed \cs{abs} to \cs{absof}.}
+%\changes{v2.5.0}{2015/09/13}{\cs{absof} now shows a placeholder for a 
+%  blank argument.}
+%\changes{v2.5.0}{2015/09/13}{\cs{magof} now shows a placeholder for a 
+%  blank argument.}
+%\changes{v2.5.0}{2015/09/13}{\cs{dimsof} now shows a placeholder for a 
+%  blank argument.}
+%\changes{v2.5.0}{2015/09/13}{\cs{unitsof} now shows a placeholder for a 
+%  blank argument.}
+%\changes{v2.5.0}{2015/09/13}{Added \cs{inparens} for grouping with 
+%  parentheses.}
+%\changes{v2.5.0}{2015/09/13}{Changed behavior of \cs{sneakyone}.}
+%\changes{v2.5.0}{2015/10/08}{Added \cs{eulerlagrange} command to 
+%  typeset the Euler-Lagrange equation.}
+%\changes{v2.5.0}{2015/10/08}{Added \cs{Lagr} to get symbol for 
+%  Lagrangian.}
+%\changes{v2.5.0}{2015/10/08}{Added color to \cs{checkpoint}.}
+%\changes{v2.5.0}{2015/10/08}{Added \cs{qed} symbol.}
+%\changes{v2.5.0}{2015/10/09}{Added \cs{ueuzero} and friends.}
+%\changes{v2.5.0}{2015/10/09}{Added commands for Dirac notation.}
+%\changes{v2.5.0}{2015/10/09}{Documented precise and approximate 
+%  constant values.}
+%\changes{v2.5.0}{2015/10/14}{\cs{miderivation} now prints line numbers.}
+%\changes{v2.5.0}{2015/10/14}{Added \cs{miderivation*} to suppress line 
+%  numbers.}
+%\changes{v2.5.0}{2015/10/14}{\cs{bwderivation} now shows line numbers.}
+%\changes{v2.5.0}{2015/10/14}{Added \cs{bwderivation*} to suppress line 
+%  numbers.}
+%\changes{v2.5.0}{2015/10/14}{\cs{mysolution} now prints line numbers.}
+%\changes{v2.5.0}{2015/10/14}{Added \cs{mysolution*} to suppress line numbers.}
+%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's gradient symbol.}
+%\changes{v2.5.0}{2015/10/16}{Added \cs{taisvec} to get Tai's symbolic vector.}
+%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's divergence symbol.}
+%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's curl symbol.}
+%\changes{v2.5.0}{2015/10/20}{Added \cs{scompsdirvect}.}
+%\changes{v2.5.0}{2015/10/20}{Added \cs{compdirvect}.}
+%\changes{v2.5.0}{2015/11/29}{Added \cs{componentalong}.}
+%\changes{v2.5.0}{2015/11/29}{Added \cs{expcomponentalong}.}
+%\changes{v2.5.0}{2015/11/29}{Added \cs{ucomponentalong}.}
+%\changes{v2.5.0}{2015/11/29}{Added \cs{projectiononto}.}
+%\changes{v2.5.0}{2015/11/29}{Added \cs{expprojectiononto}.}
+%\changes{v2.5.0}{2015/11/29}{Added \cs{uprojectiononto}.}
+%\changes{v2.5.0}{2015/11/29}{Fixed parentheses bug in \cs{magvectncomps}.}
+%\changes{v2.5.0}{2015/12/27}{Added option for radians in certain angular 
+%  quantities.}
+%\changes{v2.5.1}{2016/03/13}{Fixed errors in build for uploading to CTAN.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormomentum}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectordisplacement}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorvelocityc}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorvelocity}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectoracceleration}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorgravitationalfield}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorimpulse}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorforce}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularvelocity}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularacceleration}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularmomentum}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularimpulse}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectortorque}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorwavenumber}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorelectricfield}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorelectricdipolemoment}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormagneticfield}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormagneticdipolemoment}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorcurrentdensity}.}
+%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorcmagneticfield}.}
+%\changes{v2.6.0}{2016/05/02}{Created a student guide.}
+%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
+%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
+%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
+%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
+%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
+%\changes{v2.6.0}{2016/05/02}{Added \cs{problem} environment.}
+%\changes{v2.6.0}{2016/05/02}{Added \cs{reason}.}
+%\changes{v2.6.0}{2016/05/03}{Added \cs{energyflux}.}
+%\changes{v2.6.0}{2016/05/03}{Added \cs{momentumflux}.}
+%\changes{v2.6.0}{2016/05/03}{Added \cs{poyntingvector}.}
+%\changes{v2.6.0}{2016/05/03}{Added many new commands that format expressions
+%  with placeholders for numerical quantities.}
+%\changes{v2.6.0}{2016/05/10}{Replaced \cs{evalfromto} with \cs{evaluatedfromto}.}
+%\changes{v2.6.0}{2016/05/10}{Replaced \cs{evalat} with new \cs{evaluatedat}.}
+%\changes{v2.6.0}{2016/05/10}{Removed deprecated commands.}
+%\changes{v2.6.0}{2016/05/11}{Added \cs{direction}.}
+%\changes{v2.6.0}{2016/05/11}{Added \cs{vectordirection}.}
+%\changes{v2.6.0}{2016/05/11}{Added \cs{vectorenergyflux}.}
+%\changes{v2.6.0}{2016/05/11}{Added \cs{vectormomentumflux}.}
+%\changes{v2.6.0}{2016/05/12}{Added \cs{glowscriptline}.}
+%\changes{v2.6.0}{2016/05/12}{Added \texttt{glowscriptblock}.}
+%\changes{v2.6.0}{2016/05/12}{Added \cs{glowscriptfile}.}
+%\changes{v2.6.0}{2016/05/16}{Extensive revisions to documentation.}
+%\changes{v2.6.0}{2016/05/18}{Option \opt{singleabsbars} renamed to 
+%  \opt{singlemagbars}.}
+%\changes{v2.6.0}{2016/05/20}{Documented \cs{chkquantity}.}
+%\changes{v2.6.0}{2016/05/20}{Documented \cs{chkconstant}.}
+%\changes{v2.6.0}{2016/05/20}{Documented \cs{mandiversion}.}
+%\changes{v2.6.0}{2016/05/23}{Loads the \pkgname{tensor} package for future use.}
+%\changes{v2.6.1}{2016/06/30}{Fixed \cs{mandiversion} so it displays correctly
+%  in math mode.}
+%\changes{v2.6.1}{2016/06/30}{Fixed errors in Student Quick Guide documentation.}
+%\changes{v2.6.2}{2016/07/31}{Made minor changes to the documentation.}
+%\changes{v2.6.3}{2016/09/02}{Added \cs{mistandard} for standards.}
+%\changes{v2.6.3}{2016/09/02}{Added \cs{bwstandard} for standards.}
+%\changes{v2.6.3}{2016/09/07}{Added \cs{infeetpersecond}.}
+%\changes{v2.6.3}{2016/09/08}{Added scaling options to \cs{image}.}
+%\changes{v2.6.3}{2016/09/08}{Tweaked \cs{image} to work in documentation.}
+%\changes{v2.6.3}{2016/09/08}{Added \cs{infeet}.}
+%\changes{v2.6.3}{2016/09/08}{Added \cs{infeetpersecondsquared}.}
+%\changes{v2.6.3}{2016/09/11}{Loads the \pkgname{float} package for \cs{image}.}
+%\changes{v2.7.0}{2016/12/16}{Changed \cs{vectdotvect} to use \cs{cdot}.}
+%\changes{v2.7.0}{2016/12/16}{Added \cs{vectDotvect} to use \cs{bullet}.}
+%\changes{v2.7.0}{2017/02/02}{Made numerous internal changes to eliminate warnings.}
+%\changes{v2.7.0}{2017/02/02}{Added blank output lines around mandi messages
+%  during compilation.}
+%\changes{v2.7.0}{2017/02/02}{Changed first line of VPython programs to match 
+%  Jupyter Notebook syntax.}
+%\changes{v2.7.0}{2017/02/02}{Changed \cs{reason} to use minipage.}
+%\changes{v2.7.0}{2017/02/02}{Added fourth argument to \cs{image} for a label.}
+%\changes{v2.7.0}{2017/03/17}{Added \cs{dslashx} for inexact differentials.}
+%\changes{v2.7.0}{2017/04/13}{Added \cs{factorvect}.}
+%\changes{v2.7.0}{2017/04/13}{Added \cs{circulation}.}
+%\changes{v2.7.0}{2017/09/01}{Added better looking parallel symbol.}
+%\changes{v2.7.0}{2017/09/01}{Added an alias for the perpendicular symbol.}
+%\changes{v2.7.0}{2018/01/11}{Added instructions for Overleaf users.}
+%\changes{v2.7.2}{2018/03/14}{Changed \emph{tradunits} to \opt{altnunits}.}
+%\changes{v2.7.2}{2018/03/16}{Documented the \cs{redefinephysicsquantity} command.}
+%\changes{v2.7.2}{2018/03/16}{Documented the \cs{redefinephysicsconstant} command.}
+%\changes{v2.7.2}{2018/03/18}{Changed \cs{lorentz} to \cs{lorentzfactor}.}
+%\changes{v2.7.2}{2018/03/19}{Made \opt{drvdunits} the default.}
+%\changes{v2.7.2}{2018/03/19}{Adjusted units of some predefined quantities and 
+%  constants.}
+%\changes{v2.7.2}{2018/03/20}{Added expanded instructions for Overleaf users.}
+%\changes{v2.7.3}{2018/04/06}{Reformatted source code to allow for better
+%  documentation of changes.}
+%\changes{v2.7.3}{2018/11/10}{Added \cs{emptyunit}. Thanks to Dr. Brian Lane
+%  for suggesting this implementation.}
+%\changes{v2.7.3}{2018/11/11}{Added \cs{anglebetween}.}
+%\changes{v2.7.3}{2018/11/13}{Made variable in series expansions a parameter
+%  with \(x\) as the default.}
+%\changes{v2.7.3}{2018/12/27}{Modified \cs{vpythonfile} and \cs{vpythonblock} to
+%  include both captions and labels.}
+%
 % \section{Introduction}
 % This package provides a collection of commands useful in introductory physics 
 % and astronomy. The underlying philosophy is that the user, potentially an
@@ -209,16 +391,16 @@
 % There are other underlying philosophies and goals embedded within \mandi, 
 % all of which are summarized here. These philosophies are
 % \begin{itemize}
-%   \item to employ a \emph{type what you think} model for remembering commands
+%   \item to employ a \emph{type what you think} model for remembering commands,
 %   \item to relieve the user of having to explicitly worry about typesetting SI 
-%     units
+%     units,
 %   \item to enforce certain concepts that are too frequently merged, such as the 
 %     distinction between a vector quantity and its magnitude (e.g.\ we often use 
-%     the same name for both)
+%     the same name for both),
 %   \item to enforce consistent terminology in the naming of quantities, with names
 %     that are both meaningful to introductory students and accurate 
-%     (e.g.\ \emph{duration} vs.\ \emph{time})
-%   \item to enforce consistent notation, especially for vector quantities
+%     (e.g.\ \emph{duration} vs.\ \emph{time}), and
+%   \item to enforce consistent notation, especially for vector quantities.
 % \end{itemize}
 %
 % I hope that using \mandi\ will cause users to form good habits that 
@@ -229,9 +411,85 @@
 % to build the documentation. I have not tested the build with with standard \LaTeX,
 % which creates DVI files.
 % 
-% \changes{v2.7.0}{2018/01/11}{Added instructions for Overleaf users.}
-% \changes{v2.7.2}{2018/03/20}{Added expanded instructions for Overleaf users.}
 % \newpage
+% \section{Loading the Package}\label{LoadingthePackage}
+% To load \mandi\ with its default options, simply put the line |\usepackage{mandi}| 
+% in your document's preamble. To use the package's available options, put the line 
+% |\usepackage|\textbf{[}\opt{options}\textbf{]}|{mandi}| in your document's 
+% preamble. There are eight available options, all of which are described below.
+%
+% \begin{itemize}
+%   \item \opt{boldvectors} gives bold letters for the kernels of vector names. 
+%     No arrows are used above the kernel.
+%   \item \opt{romanvectors} gives Roman letters for the kernels of vectors names. 
+%     An arrow appears over the kernel.
+% \end{itemize}
+%
+% If neither \opt{boldvectors} nor \opt{romanvectors} is specified (the
+% default), vectors are displayed with italic letters for the kernels of vector
+% names and an arrow appears over the kernel.
+%
+% \begin{itemize} 
+%   \item \opt{singlemagbars} gives single bars in symbols for vector magnitudes
+%     instead of the default double bars. Double bars may be more familiar to 
+%     students from their calculus courses. 
+%   \item \opt{approxconsts} gives approximate values of constants to one or two 
+%     significant figures, depending on how they appear in \mi, instead of the 
+%     default precise values.
+%   \item \opt{useradians} gives radians in the units of angular momentum,
+%     angular impulse, and torque. The default is to not use radians in the units 
+%     of these quantities.
+%   \item \opt{baseunits} causes all units to be displayed in \baseunits\ form, with
+%     SI base units. No solidi (slashes) are used. Positive and negative exponents 
+%     are used to denote powers of various base units.
+%   \item \opt{drvdunits} causes all units to be displayed, when possible, in
+%     \drvdunits\ form, with SI derived units. Students may already be familiar with
+%     many of these derived units.
+%   \item \opt{altnunits} causes all units to be displayed in \altnunits\ form,
+%     which is intended to allow for custom units when desired. This is sometimes
+%     helpful for enhancing conceptual understanding in some situations.
+% \end{itemize}
+%
+% If neither \opt{baseunits} nor \opt{altnunits} is specified, units are 
+% displayed in \drvdunits\ form, which is typically the way they would usually 
+% appear in textbooks. Units in this form may hide the underlying physical 
+% meaning or indeed may do precisely the opposite and enhance conceptual 
+% understanding. In this document, the default is to use
+% \ifthenelse{\boolean{@optbaseunits}}
+%   {base}
+%   {\ifthenelse{\boolean{@optaltnunits}}
+%     {alternate}
+%     {derived}}
+% units. As you will see later, there are ways to override these options either
+% temporarily or permanently.
+%
+% \mandi\ coexists with the \pkgname{siunitx} package. While there is some 
+% functional overlap between the two packages, \mandi\ is completely independent of 
+% \pkgname{siunitx}. The two are designed for different purposes and probably also
+% for different audiences, but can be used together if desired. \mandi\ coexists with 
+% the \pkgname{commath} package. There is no longer a conflict because \mandi's 
+% |\abs| command has been renamed to \refCom{absof}. \mandi\ no longer checks for the 
+% presence of the \pkgname{physymb} package. That package now incorporates \mandi\ 
+% dependencies, and the two are completely compatible as far as I know.
+%
+%\mandi\ loads the \pkgname{tensor} for likely future use. See that package's 
+% documentation for its commands and how to use them. There are no known conflicts
+% between \mandi\ and \pkgname{tensor}.
+%
+%\iffalse
+%<*example>
+%\fi
+\begin{docCommand}{mandiversion}{}
+Gives the current package version number and build date.
+\end{docCommand}
+\begin{dispExample*}{sidebyside}
+\mandiversion
+\end{dispExample*}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
 % \section{Overleaf Users}
 % \href{https://www.overleaf.com}{Overleaf.com} is an online \LaTeX\ environment 
 % with widespread use. It uses a full \TeX/\LaTeX\ installation but may not always 
@@ -287,107 +545,8 @@
 %   \item You can now delete the \texttt{overleaf-template.zip} file and the
 %   temporary folder you created. 
 % \end{enumerate}
-%
+% 
 % \newpage
-% \section{Loading the Package}\label{LoadingthePackage}
-% To load \mandi\ with its default options, simply put the line |\usepackage{mandi}| 
-% in your document's preamble. To use the package's available options, put the line 
-% |\usepackage|\textbf{[}\opt{options}\textbf{]}|{mandi}| in your document's preamble.
-% There are six available options, with one option being based on the absence of 
-% two of the others. The options are described below.
-% \changes{v2.4.0}{2014/12/16}{Made option names consistent with default behavior.} 
-% \changes{v2.4.0}{2014/12/16}{Added option for boldface vector kernels.}
-% \changes{v2.4.0}{2014/12/16}{Added option for approximate values of constants.}
-% \changes{v2.5.0}{2015/09/13}{Removed autosized parentheses in math mode.}
-% \changes{v2.5.0}{2015/12/27}{Added option for radians in certain angular quantities.}
-% \changes{v2.5.1}{2016/03/13}{Fixed errors in build for uploading to CTAN.}
-% \changes{v2.6.0}{2016/05/10}{Removed deprecated commands.}
-% \changes{v2.6.0}{2016/05/18}{Option \opt{singleabsbars} renamed to 
-%   \opt{singlemagbars}.}
-% \changes{v2.6.0}{2016/05/23}{Loads the \pkgname{tensor} package for future use.}
-% \changes{v2.7.0}{2017/02/02}{Added blank output lines around mandi messages
-%   during compilation.}
-% \changes{v2.7.2}{2018/03/14}{Changed \emph{tradunits} to \opt{altnunits}.}
-% \changes{v2.7.2}{2018/03/19}{Made \opt{drvdunits} the default.}
-%
-% \begin{itemize}
-%   \item \opt{boldvectors} gives bold letters for the kernels of vector names. 
-%     No arrows are used above the kernel.
-%   \item \opt{romanvectors} gives Roman letters for the kernels of vectors names. 
-%     An arrow appears over the kernel.
-%   \item If neither \opt{boldvectors} nor \opt{romanvectors} is specified (the
-%     default), vectors are displayed with italic letters for the kernels of vector
-%     names and an arrow appears over the kernel.
-%   \item \opt{singlemagbars} gives single bars in symbols for vector magnitudes. 
-%     Double bars may be more familiar to students from their calculus courses. 
-%     Double bars is the default.
-%   \item \opt{approxconsts} gives \hypertarget{target1}{approximate} values of 
-%     constants to one or two significant figures, depending on how they appear in 
-%     \mi. Otherwise, the most precise currently available values are used. Precise 
-%     constants is the default.
-%   \item \opt{useradians} gives radians in the units of angular momentum,
-%     angular impulse, and torque. The default is to not use radians in the units 
-%     of these quantities.
-%   \item \opt{baseunits} causes all units to be displayed in \baseunits\ form, with
-%     SI base units. No solidi (slashes) are used. Positive and negative exponents 
-%     are used to denote powers of various base units.
-%   \item \opt{drvdunits} causes all units to be displayed, when possible, in
-%     \drvdunits\ form, with SI derived units. Students may already be familiar with
-%     many of these derived units. This documentation \mandi\ with this option.
-%   \item If neither \opt{baseunits} nor \opt{altnunits} is specified, units are 
-%     displayed in \drvdunits\ form, which is typically the way they would usually 
-%     appear in textbooks. Units in this form may hide the underlying physical 
-%     meaning or indeed may do precisely the opposite and enhance conceptual 
-%     understanding. In this document, the default is to use
-%       \ifthenelse{\boolean{@optbaseunits}}
-%        {base}
-%        {\ifthenelse{\boolean{@optaltnunits}}
-%          {alternate}
-%          {derived}}
-%     units. As you will see later, there are ways to override these options either
-%     temporarily or permanently.
-% \end{itemize}
-%
-% \changes{v2.4.0}{2014/12/17}{Now coexists with the \pkgname{commath} package.}
-% \changes{v2.5.0}{2015/09/13}{Removed compatibility check for the \pkgname{commath}
-%  package.}
-% \mandi\ coexists with the \pkgname{siunitx} package. While there is some 
-% functional overlap between the two packages, \mandi\ is completely independent of 
-% \pkgname{siunitx}. The two are designed for different purposes and probably also
-% for different audiences, but can be used together if desired. \mandi\ coexists with 
-% the \pkgname{commath} package. There is no longer a conflict because \mandi's 
-% |\abs| command has been renamed to \refCom{absof}. \mandi\ no longer checks for the 
-% presence of the \pkgname{physymb} package. That package now incorporates \mandi\ 
-% dependencies, and the two are completely compatible as far as I know.
-% \changes{v2.4.0}{2014/12/19}{Removed compatibility check for the \pkgname{physymb} 
-% package.}
-% \changes{v2.6.0}{2016/05/20}{Documented \cs{mandiversion}.}
-% \changes{v2.6.1}{2016/06/30}{Fixed \cs{mandiversion} so it displays correctly
-% in math mode.}
-%
-%\mandi\ loads the \pkgname{tensor} for likely future use. See that package's 
-% documentation for its commands and how to use them. There are no known conflicts
-% between \mandi\ and \pkgname{tensor}.
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{mandiversion}{}
-Gives the current package version number and build date.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\mandiversion
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-% \changes{v2.6.0}{2016/05/16}{Extensive revisions to documentation.}
-% \changes{v2.6.0}{2016/05/02}{Created a student guide.}
-% \changes{v2.6.1}{2016/06/30}{Fixed errors in Student Quick Guide documentation.}
-% \changes{v2.6.2}{2016/07/31}{Made minor changes to the documentation.}
-% \changes{v2.7.0}{2017/02/02}{Made numerous internal changes to eliminate warnings.}
-% \newpage
 % \section{Student Quick Guide}
 % Use \refCom{vect} to put an arrow over a symbol to make it the symbol for a vector.
 % Typing |\vect{p}| gives \vect{p}.
@@ -406,15 +565,15 @@
 % Use \refCom{compvect} to write the symbol for one of a vector's coordinate
 % components. Typing |\compvect{v}{z}| gives \compvect{v}{z}.
 %
-% Use a physical quantity's name followed by a numerical value in curly braces 
-% to typeset that numerical value and an appropriate SI unit. 
+% Use a \hyperlink{target2}{physical quantity's} name followed by a numerical value 
+% in curly braces to typeset that numerical value and an appropriate 
+% \hyperlink{target1}{SI unit}.
 % Using \refCom{velocity} by typing |\velocity{2.5}| gives
 % \velocity{2.5}. Use \refCom{newphysicsquantity} to define any new quantity 
 % you need.
 %
-% Many physical constants are defined in \mandi. Read the section on 
-% \hyperlink{target1}{physical constants} to see which ones are defined and how
-% to use them.
+% Many \hyperlink{target3}{physical constants} are defined in \mandi\ and are
+% well documented in the corresponding section.
 %
 % Use \refCom{mivector} to write the coordinate representation of a vector.
 % Typing |\mivector{3,2,-4}| gives \mivector{3,2,-4}. Typing |\mivector{a,b,c}|
@@ -440,7 +599,7 @@
 % Typing |\inparens{x^2 + 4}| gives \inparens{x^2 + 4}.
 %
 % Use \refCom{define} to create a variable that can be used in an intermediate
-% step in a solution. This is discussed later in this section.
+% step in a solution. This is discussed \hyperlink{target5}{later in this section}.
 %
 % To typeset a matrix in parentheses, use the \cs{pmatrix} environment by putting 
 % the rows, between |\begin{pmatrix}| and |\end{pmatrix}|. Each row, except the 
@@ -546,9 +705,9 @@
 % lot about the document that you won't understand at first. Look for a line that 
 % says |\begin{document}| and a corresponding line that says |\end{document}| You 
 % will add content between these two lines. Most of your content will be within the 
-% \refEnv{problem} environment. Each use of the |problem| environment 
-% is intended to encapsulate one complete written solution to one physics problem. 
-% In this way, you can build a library of problem solutions for your own convenience. 
+% \refEnv{problem} environment. Each use of this environment is intended to 
+% encapsulate one complete written solution to one physics problem. In this way, 
+% you can build a library of problem solutions for your own convenience. 
 %
 % Since students are this package's primary audience, nearly all of the commands
 % have been defined with students in mind. Writing a problem solution in \LaTeX\
@@ -563,8 +722,6 @@
 % numerical quantities must be eventually inserted. Note that all of these commands
 % end with the word |places| as a reminder that they generate placeholders.
 %
-% \changes{v2.6.0}{2016/05/03}{Added many new commands that format expressions
-%  with placeholders for numerical quantities.}
 %\iffalse
 %<*example>
 %\fi
@@ -846,10 +1003,10 @@
 % \mandi\ knows about them and in doing so, you give the new quantities the same
 % names they would normally have.
 %
-% So now how to you go about getting numerical values (with units) into the 
-% placeholders? Use the \refCom{define} command to define a variable containing 
-% a desired quantity, and then pass that variable to the above commands and that 
-% quantity will appear in the corresponding placeholder.
+% \hypertarget{target5}{So} now how to you go about getting numerical values (with 
+% units) into the placeholders? Use the \refCom{define} command to define a variable 
+% containing a desired quantity, and then pass that variable to the above commands 
+% and that quantity will appear in the corresponding placeholder.
 %
 %\iffalse
 %<*example>
@@ -900,13 +1057,13 @@
 % This barely scratches the surface in describing \mandi\ so continue reading this
 % document to see everything it can do. You will learn new commands as you need 
 % them in your work. To start with, you should at least read the section on
-% \hyperlink{target2}{SI units} and the section on 
-% \hyperlink{target3}{physics quantities}.
+% \hyperlink{target1}{SI units} and the section on 
+% \hyperlink{target2}{physical quantities}.
 %
 % \newpage
 % \section{Features and Commands}
-% \subsection{SI Base Units and Dimensions}
-% This is not a tutorial on \hypertarget{target2}{SI units} and the user is assumed 
+% \hypertarget{target1}{\subsection{SI Base Units and Dimensions}}
+% This is not a tutorial on SI units and the user is assumed 
 % to be familiar with SI rules and usage. Begin by defining shortcuts for the units 
 % for the seven SI base quantities:
 % \emph{spatial displacement} (what others call \emph{length}), \emph{mass}, 
@@ -1013,9 +1170,9 @@
 % form.
 %
 % \subsection{SI Dimensions}
-% For each SI unit, there is a corresponding dimension. Every physical quantity 
-% is some multiplicative product of each of the seven basic SI dimensions raised 
-% to a power.
+% For each SI unit, there is at least one corresponding dimension. Every physical 
+% quantity is some multiplicative product of each of the seven basic SI dimensions 
+% raised to a power.
 %
 %\iffalse
 %<*example>
@@ -1108,7 +1265,7 @@
 %</example>
 %\fi
 %
-% \subsection{Defining Physical Quantities}
+% \hypertarget{target2}{\subsection{Defining Physical Quantities}}
 %
 %\iffalse
 %<*example>
@@ -1115,13 +1272,13 @@
 %\fi
 \begin{docCommand}{newphysicsquantity}
 {\marg{newname}\marg{\baseunits}\oarg{\drvdunits}\oarg{\altnunits}}
-Defines a new physics quantity and its associated commands.
+Defines a new physical quantity and its associated commands.
 \end{docCommand}
 %\iffalse
 %</example>
 %\fi
 %
-% Using this \hypertarget{target3}{command} causes several things to happen.
+% Using this command causes several things to happen.
 % \begin{itemize}
 %   \item A command \colDef{\cs{newname}}\marg{magnitude}, where \colDef{newname} 
 %   is the first argument of \colDef{\cs{newphysicsquantity}}, is created that 
@@ -1182,7 +1339,6 @@
 % as a comma separated list in a \refCom{mivector} command or prepend the quantity 
 % name with |vector|. So specifying a momentum vector is as simple as
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormomentum}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1200,7 +1356,6 @@
 % The first semester of most introductory calculus-based physics courses focuses 
 % on mechanics, dynamics, and statistical mechanics.
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectordisplacement}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1300,9 +1455,6 @@
 % While we're at it, let's also go ahead and define a few non-SI units from 
 % astronomy, astrophysics, and old school physics.
 %
-%\changes{v2.6.3}{2016/09/08}{Added \cs{infeet}.}
-%\changes{v2.6.3}{2016/09/07}{Added \cs{infeetpersecond}.}
-%\changes{v2.6.3}{2016/09/08}{Added \cs{infeetpersecondsquared}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1732,8 +1884,6 @@
 % has an optional second argument that specifies a unit, but that is not needed or 
 % used in the following examples.
 %
-%\changes{v2.6.0}{2016/05/11}{Added \cs{direction}.}
-%\changes{v2.6.0}{2016/05/11}{Added \cs{vectordirection}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1753,7 +1903,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorvelocityc}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1775,7 +1924,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorvelocity}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1800,7 +1948,7 @@
 \begin{docCommand}{speed}{\marg{magnitude}}
 Command for speed. Technically, velocity is defined as the quotient of 
 displacement and duration while speed is defined as the quotient of distance 
-traveled and duration. They have the same dimension and unit, but are slightly 
+traveled and duration. They have the same dimension and unit, but are  
 conceptually different so separate commands are provided. I've never seen speed 
 used as anything other than a scalar.
 \end{docCommand}
@@ -1812,7 +1960,6 @@
 %\fi
 %
 
-%\changes{v2.7.2}{2018/03/18}{Changed \cs{lorentz} to \cs{lorentzfactor}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1846,7 +1993,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectoracceleration}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1865,7 +2011,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorgravitationalfield}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1897,7 +2042,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorimpulse}.}
 %\iffalse
 %<*example>
 %\fi
@@ -1917,7 +2061,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorforce}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2094,7 +2237,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularvelocity}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2113,7 +2255,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularacceleration}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2132,7 +2273,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularmomentum}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2153,7 +2293,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularimpulse}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2174,7 +2313,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectortorque}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2234,7 +2372,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorwavenumber}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2309,7 +2446,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorelectricfield}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2328,7 +2464,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorelectricdipolemoment}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2360,7 +2495,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormagneticfield}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2379,7 +2513,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorcmagneticfield}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2555,7 +2688,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/03}{Added \cs{poyntingvector}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2582,8 +2714,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/03}{Added \cs{energyflux}.}
-%\changes{v2.6.0}{2016/05/11}{Added \cs{vectorenergyflux}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2602,8 +2732,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/03}{Added \cs{momentumflux}.}
-%\changes{v2.6.0}{2016/05/11}{Added \cs{vectormomentumflux}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2648,7 +2776,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormagneticdipolemoment}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2667,7 +2794,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorcurrentdensity}.}
 %\iffalse
 %<*example>
 %\fi
@@ -2790,7 +2916,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.0}{2014/12/16}{Added magnetic charge.}
 %\iffalse
 %<*example>
 %\fi
@@ -2942,7 +3067,6 @@
 % joules per meter. You can redefine a quantity's units on the fly with the 
 % \cs{redefinephysicsquantity} command. 
 %
-%\changes{v2.7.2}{2018/03/16}{Documented the \cs{redefinephysicsquantity} command.}
 %\iffalse
 %<*example>
 %\fi
@@ -2956,12 +3080,8 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.0}{2014/12/16}{Added table of all predefined quantities with units.}
-%\changes{v2.7.2}{2018/03/19}{Adjusted units of some predefined quantities and 
-%  constants.}
 %\subsubsection{All Predefined Quantities}
 %
-%\changes{v2.6.0}{2016/05/20}{Documented \cs{chkquantity}.}
 %\iffalse
 %<*example>
 %\fi
@@ -3074,12 +3194,29 @@
 % with SI standards, loading \mandi\ with the \opt{useradians} option includes
 % angular units in these quantities. See \nameref{LoadingthePackage} for details.
 %
+% \subsection{The Empty Unit}
+% Sometimes, when discussing manipulation of units, it is helpful to have a generic
+% symbol that does not correspond to any particular existing unit. The 
+% \cs{emptyunit} is provided for this purpose. It serves as a visual placeholder
+% for any unit.
+%
+%\iffalse
+%<*example>
+%\fi
+\begin{docCommand}{emptyunit}{}
+Command for a generic visual placeholder symbolizing any actual unit.
+\end{docCommand}
+\begin{dispExample*}{sidebyside}
+\( \frac{\emptyunit\squared}{\cubic\emptyunit} = \emptyunit^{-1} \)
+\end{dispExample*}
+%\iffalse
+%</example>
+%\fi
+%
 % \newpage
-%\changes{v2.5.0}{2015/10/09}{Documented precise and approximate 
-%  constant values.}
-% \subsection{Physical Constants}
+% \hypertarget{target3}{\subsection{Physical Constants}}
 % \subsubsection{Defining Physical Constants}
-% \mandi\ has many predefined \hypertarget{target4}{physical constants}. 
+% \mandi\ has many predefined physical constants. 
 % This section explains how to use them.
 %
 %\iffalse
@@ -3141,7 +3278,6 @@
 % There is a command similar to \refCom{redefinephysicsquantity} that allows for
 % redefining physical constants.
 %
-%\changes{v2.7.2}{2018/03/16}{Documented the \cs{redefinephysicsconstant} command.}
 %\iffalse
 %<*example>
 %\fi
@@ -3672,18 +3808,15 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.0}{2014/12/16}{Added table of all predefined constants 
-%  with their symbols and units.}
 %\subsubsection{All Predefined Constants}
 %
-%\changes{v2.6.0}{2016/05/20}{Documented \cs{chkconstant}.}
 %\iffalse
 %<*example>
 %\fi
 \begin{docCommand}{chkconstant}{\marg{constantname}}
-Diagnostic command for the symbol, value (either 
-\hyperlink{target4}{approximate or precise} depending on how the package 
-was loaded), and units for a defined physical constant. See table below.
+Diagnostic command for the symbol, value (either approximate or precise depending 
+on how the package was loaded), and units for a defined physical constant. See table 
+below.
 \end{docCommand}
 %\iffalse
 %</example>
@@ -4087,7 +4220,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.7.0}{2017/04/13}{Added \cs{factorvect}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4101,7 +4233,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Added \cs{componentalong}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4115,7 +4246,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Added \cs{expcomponentalong}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4129,7 +4259,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Added \cs{ucomponentalong}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4144,7 +4273,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Added \cs{projectiononto}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4158,7 +4286,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Added \cs{expprojectiononto}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4172,7 +4299,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Added \cs{uprojectiononto}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4209,7 +4335,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/11/29}{Fixed parentheses bug in \cs{magvectncomps}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4254,7 +4379,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/20}{Added \cs{scompsdirvect}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4269,7 +4393,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/20}{Added \cs{compdirvect}.}
 %\iffalse
 %<*example>
 %\fi
@@ -4818,8 +4941,6 @@
 % think \emph{dot product expanded as a sum}. These, along with the previous 
 % naming conventions, handle many dot product expressions.
 %
-%\changes{v2.7.0}{2.16/12/16}{Changed \cs{vectdotvect} to use \cs{cdot}.}
-%\changes{v2.7.0}{2016/12/16}{Added \cs{vectDotvect} to use \cs{bullet}.}
 %\iffalse
 %<*example>
 %\fi
@@ -5300,7 +5421,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/09}{Added \cs{ueuzero} and friends.}
 %\iffalse
 %<*example>
 %\fi
@@ -5570,8 +5690,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.1}{2015/02/20}{Added \cs{scompsCvect} for superscripted 
-%  components.}
 %\iffalse
 %<*example>
 %\fi
@@ -5606,8 +5724,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.1}{2015/02/20}{Added \cs{scompsRvect} for superscripted 
-%  components.}
 %\iffalse
 %<*example>
 %\fi
@@ -5625,10 +5741,49 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/09}{Added commands for Dirac notation.}
 %\iffalse
 %<*example>
 %\fi
+\begin{docCommand}{anglebetween}{\marg{kernal}\marg{kernel}}
+Typesets the symbol for the angle between two vectors.
+\end{docCommand}
+\begin{dispExample*}{sidebyside}
+\anglebetween{a}{b}
+\end{dispExample*}
+%\iffalse
+%</example>
+%\fi
+%
+%\iffalse
+%<*example>
+%\fi
+\begin{docCommand}{parallelto}{\marg{thing}}
+A better looking parallel symbol whose height is the same as the perpendicular
+symbol's height.
+\end{docCommand}
+\begin{dispExample*}{sidebyside}
+\(\vect{A}_{\parallelto\vect{B}}\)
+\end{dispExample*}
+%\iffalse
+%</example>
+%\fi
+%
+%\iffalse
+%<*example>
+%\fi
+\begin{docCommand}{perpendicularto}{\marg{thing}}
+An alias for the perpendicular symbol.
+\end{docCommand}
+\begin{dispExample*}{sidebyside}
+\(\vect{A}_{\perpendicularto\vect{B}}\)
+\end{dispExample*}
+%\iffalse
+%</example>
+%\fi
+%
+%\iffalse
+%<*example>
+%\fi
 \begin{docCommand}{bra}{\marg{bra}}
 Typesets a Dirac bra.
 \end{docCommand}
@@ -5822,7 +5977,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.7.0}{2017/03/17}{Added \cs{dslashx} for inexact differentials.}
 %\iffalse
 %<*example>
 %\fi
@@ -5836,7 +5990,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/10}{Replaced \cs{evalfromto} with \cs{evaluatedfromto}.}
 %\iffalse
 %<*example>
 %\fi
@@ -5852,7 +6005,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/10}{Replaced \cs{evalat} with new \cs{evaluatedat}.}
 %\iffalse
 %<*example>
 %\fi
@@ -6112,7 +6264,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's gradient symbol.}
 %\iffalse
 %<*example>
 %\fi
@@ -6126,7 +6277,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/16}{Added \cs{taisvec} to get Tai's symbolic vector.}
 %\iffalse
 %<*example>
 %\fi
@@ -6140,7 +6290,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's divergence symbol.}
 %\iffalse
 %<*example>
 %\fi
@@ -6154,7 +6303,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's curl symbol.}
 %\iffalse
 %<*example>
 %\fi
@@ -6201,7 +6349,8 @@
 Series expansion of \(f(x)\) around \(x=a\).
 \end{docCommand}
 \begin{dispExample}
-\seriesfofx
+\seriesfofx \\
+\seriesfofx[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6214,7 +6363,8 @@
 Series expansion of \(e^x\).
 \end{docCommand}
 \begin{dispExample}
-\seriesexpx
+\seriesexpx \\
+\seriesexpx[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6227,7 +6377,8 @@
 Series expansion of \(\sin x\).
 \end{docCommand}
 \begin{dispExample}
-\seriessinx
+\seriessinx \\
+\seriessinx[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6240,7 +6391,8 @@
 Series expansion of \(\cos x\).
 \end{docCommand}
 \begin{dispExample}
-\seriescosx
+\seriescosx \\
+\seriescosx[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6253,7 +6405,8 @@
 Series expansion of \(\tan x\).
 \end{docCommand}
 \begin{dispExample}
-\seriestanx
+\seriestanx \\
+\seriestanx[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6266,7 +6419,8 @@
 Series expansion of \(a^x\).
 \end{docCommand}
 \begin{dispExample}
-\seriesatox
+\seriesatox \\
+\seriesatox[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6279,7 +6433,8 @@
 Series expansion of \(\ln(1+x)\).
 \end{docCommand}
 \begin{dispExample}
-\serieslnoneplusx
+\serieslnoneplusx \\
+\serieslnoneplusx[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6292,7 +6447,8 @@
 Series expansion of \((1+x)^n\).
 \end{docCommand}
 \begin{dispExample}
-\binomialseries
+\binomialseries \\
+\binomialseries[z]
 \end{dispExample}
 %\iffalse
 %</example>
@@ -6324,8 +6480,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/08}{Added \cs{eulerlagrange} command to 
-%  typeset the Euler-Lagrange equation.}
 %\iffalse
 %<*example>
 %\fi
@@ -6473,8 +6627,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/08}{Added \cs{Lagr} to get symbol for 
-%  Lagrangian.}
 %\iffalse
 %<*example>
 %\fi
@@ -6501,7 +6653,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.7.0}{2017/04/13}{Added \cs{circulation}.}
 %\iffalse
 %<*example>
 %\fi
@@ -6515,9 +6666,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/09/13}{Added \cs{inparens} for grouping with 
-%  parentheses.}
-%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
 %\iffalse
 %<*example>
 %\fi
@@ -6532,10 +6680,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/09/13}{Renamed \cs{abs} to \cs{absof}.}
-%\changes{v2.5.0}{2015/09/13}{\cs{absof} now shows a placeholder for a 
-%  blank argument.}
-%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
 %\iffalse
 %<*example>
 %\fi
@@ -6549,9 +6693,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/09/13}{\cs{magof} now shows a placeholder for a 
-%  blank argument.}
-%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
 %\iffalse
 %<*example>
 %\fi
@@ -6567,9 +6708,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/09/13}{\cs{dimsof} now shows a placeholder for a 
-%  blank argument.}
-%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
 %\iffalse
 %<*example>
 %\fi
@@ -6584,9 +6722,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/09/13}{\cs{unitsof} now shows a placeholder for a 
-%  blank argument.}
-%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.}
 %\iffalse
 %<*example>
 %\fi
@@ -7920,8 +8055,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.0}{2014/12/16}{Added Maxwell's equations in both integral 
-%  and differential forms, both with and without magnetic monopoles.}
 %\iffalse
 %<*example>
 %\fi
@@ -8771,8 +8904,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.0}{2014/12/16}{Added Lorentz force, with and 
-%  without magnetic monopoles.}
 %\iffalse
 %<*example>
 %\fi
@@ -8809,12 +8940,6 @@
 % Because Classic VPython will no longer be developed, the first line of all
 % VPython programs not used in GlowScript will conform to Jupyter syntax.
 %
-%\changes{v2.4.0}{2014/12/16}{\cs{vpythonline} now uses a uniform style.}
-%\changes{v2.4.1}{2015/01/23}{Added more VPython keywords.}
-%\changes{v2.5.0}{2016/01/26}{Added explicit mention of VPython and GlowScript.}
-%\changes{v2.5.0}{2016/01/26}{Added GlowScript keywords.}
-%\changes{v2.7.0}{2017/02/02}{Changed first line of VPython programs to match 
-% Jupyter syntax.}
 %\iffalse
 %<*example>
 %\fi
@@ -8828,7 +8953,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/12}{Added \cs{glowscriptline}.}
 %\iffalse
 %<*example>
 %\fi
@@ -8843,16 +8967,18 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.0}{2014/12/16}{\texttt{vpythonblock} now uses a uniform style.}
-%\changes{v2.4.1}{2015/02/11}{\texttt{vpythonblock} now accepts an optional caption.}
 %\iffalse
 %<*example>
 %\fi
-\begin{docEnvironment}{vpythonblock}{\oarg{caption}}
-Environment for a block of VPython or GlowScript code. 
+\begin{docEnvironment}{vpythonblock}{\marg{caption}\marg{label}}
+Environment for a block of VPython code. A caption and label are
+required. The label can be used by \cs{ref} or \cs{hyperref}.
 \end{docEnvironment}
+\begin{docEnvironment}{glowscriptblock}{\marg{caption}\marg{label}}
+Functionally identical to \refEnv{vpythonblock}.
+\end{docEnvironment}
 \begin{dispExample}
-\begin{vpythonblock}[Example VPython Listing]
+\begin{vpythonblock}{Example VPython Listing}{listing1}
   from vpython import *
   
   sphere(pos=vector(1,2,3),color=color.green)
@@ -8865,45 +8991,19 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/12}{Added \texttt{glowscriptblock}.}
 %\iffalse
 %<*example>
 %\fi
-\begin{docEnvironment}{glowscriptblock}{\oarg{caption}}
-Environment for a block of GlowScript code.
-\end{docEnvironment}
-\begin{dispExample}
-\begin{glowscriptblock}[Example GlowScript Listing]
-GlowScript 2.3 VPython
-
-Aarr = arrow(pos=vector(0,0,0),axis=A,color=color.red)
-label(pos=Aarr.axis,text='A')
-Barr = arrow(pos=vector(0,0,0),axis=B,color=color.blue)
-label(pos=Barr.axis,text='B')
-Carr = arrow(pos=vector(0,0,0),axis=C,color=color.green)
-label(pos=Carr.axis,text='C')
-\end{glowscriptblock}
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\changes{v2.4.0}{2014/12/16}{\cs{vpythonfile} now uses a uniform style.}
-%\changes{v2.4.1}{2015/02/11}{\cs{vpythonfile} now accepts an optional caption.}
-%\changes{v2.5.0}{2016/01/26}{\cs{vpythonfile} now begins listings on a new page.}
-%\changes{v2.6.0}{2016/05/12}{Added \cs{glowscriptfile}.}
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{vpythonfile}{\oarg{caption}\meta{filename}}
-Typesets a file in the current directory containing VPython code. 
+\begin{docCommand}{vpythonfile}{\marg{caption}\marg{label}\meta{filename}}
+Typesets a file in the current directory containing VPython code. A caption and
+label are required. The label can be used by \cs{ref} and \cs{hyperref}.
 The listing will begin on a new page.
 \end{docCommand}
-\begin{docCommand}{glowscriptfile}{\oarg{caption}\meta{filename}}
+\begin{docCommand}{glowscriptfile}{\marg{caption}\marg{label}\meta{filename}}
 Functionally identical to \refCom{vpythonfile}.
 \end{docCommand}
 \begin{dispExample}
-\vpythonfile[vdemo.py]{vdemo.py}
+\vpythonfile{Program vdemo.py}{vlisting1}{vdemo.py}
 \end{dispExample}
 %\iffalse
 %</example>
@@ -9130,7 +9230,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{smallanswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9148,7 +9247,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{mediumanswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9166,7 +9264,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{largeanswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9181,7 +9278,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{largeranswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9196,7 +9292,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{hugeanswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9211,7 +9306,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{hugeranswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9226,7 +9320,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.2}{2015/06/08}{Added \cs{fullpageanswerform}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9241,8 +9334,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.4.1}{2015/02/14}{Commands that use \pkgname{mdframed} 
-%  will not break over pages.}
 %\iffalse
 %<*example>
 %\fi
@@ -9289,9 +9380,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/14}{\cs{miderivation} now prints line numbers.}
-%\changes{v2.5.0}{2015/10/14}{Added \cs{miderivation*} to suppress line 
-%  numbers.}
 %\iffalse
 %<*example>
 %\fi
@@ -9322,7 +9410,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.3}{2016/09/02}{Added \cs{mistandard} for standards.}
 %\iffalse
 %<*example>
 %\fi
@@ -9384,9 +9471,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/14}{\cs{bwderivation} now shows line numbers.}
-%\changes{v2.5.0}{2015/10/14}{Added \cs{bwderivation*} to suppress line 
-%  numbers.}
 %\iffalse
 %<*example>
 %\fi
@@ -9414,7 +9498,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.3}{2016/09/02}{Added \cs{bwstandard} for standards.}
 %\iffalse
 %<*example>
 %\fi
@@ -9430,10 +9513,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/10/14}{\cs{mysolution} now prints line numbers.}
-%\changes{v2.5.0}{2015/10/14}{Added \cs{mysolution*} to suppress line numbers.}
-%\changes{v2.5.0}{2016/01/26}{Added example showing how to handle long
-%  lines and suppressing numbers on broken lines.}
 %\iffalse
 %<*example>
 %\fi
@@ -9477,12 +9556,11 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/02}{Added \cs{problem} environment.}
 %\iffalse
 %<*example>
 %\fi
 \begin{docEnvironment}{problem}{\marg{problemname}}
-Creates a simple environment for \hypertarget{target5}{problem solutions}. This 
+Creates a simple environment for problem solutions. This 
 environment is mainly for students. Each new problem starts on a new page in an 
 effort to force organization upon students. The environment also creates a new 
 |enumerate| environment called |parts| for which labels are alphabetic, 
@@ -9505,8 +9583,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.0}{2016/05/02}{Added \cs{reason}.}
-%\changes{v2.7.0}{2017/02/02}{Changed \cs{reason} to use minipage.}
 %\iffalse
 %<*example>
 %\fi
@@ -9529,7 +9605,6 @@
 % \newpage
 % \subsection{Miscellaneous Commands}
 %
-%\changes{v2.5.0}{2015/10/08}{Added color to \cs{checkpoint}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9543,10 +9618,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.6.3}{2016/09/11}{Loads the \pkgname{float} package for \cs{image}.}
-%\changes{v2.6.3}{2016/09/08}{Added scaling options to \cs{image}.}
-%\changes{v2.6.3}{2016/09/08}{Tweaked \cs{image} to work in documentation.}
-%\changes{v2.7.0}{2017/02/02}{Added fourth argument to \cs{image} for a label.}
 %\iffalse
 %<*example>
 %\fi
@@ -9569,7 +9640,6 @@
 %</example>
 %\fi
 %
-%\changes{v2.5.0}{2015/09/13}{Changed behavior of \cs{sneakyone}.}
 %\iffalse
 %<*example>
 %\fi
@@ -9583,39 +9653,9 @@
 %</example>
 %\fi
 %
-%\changes{v2.7.0}{2017/09/01}{Added better looking parallel symbol.}
 %\iffalse
 %<*example>
 %\fi
-\begin{docCommand}{parallelto}{\marg{thing}}
-A better looking parallel symbol whose height is the same as the perpendicular
-symbol's height.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\vect{A}_{\parallelto\vect{B}}\) and \(\vect{A}_{\perpendicularto\vect{B}}\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\changes{v2.7.0}{2017/09/01}{Added an alias for the perpendicular symbol.}
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{perpendicularto}{\marg{thing}}
-An alias for the perpendicular symbol.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\vect{A}_{\parallelto\vect{B}}\) and \(\vect{A}_{\perpendicularto\vect{B}}\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\changes{v2.5.0}{2015/10/08}{Added \cs{qed} symbol.}
-%\iffalse
-%<*example>
-%\fi
 \begin{docCommand}{qed}{}
 Command for QED symbol.
 \end{docCommand}
@@ -9731,9 +9771,9 @@
 %
 %    \begin{macrocode}
 \newcommand*{\mandiversion}{\ifmmode%
-    2.7.2\mbox{ dated }2018/03/20%
+    2.7.3\mbox{ dated }2018/12/30%
   \else%
-    2.7.2 dated 2018/03/20%
+    2.7.3 dated 2018/12/30%
   \fi
   }%
 \typeout{                                                }
@@ -9813,6 +9853,7 @@
 \newcommand*{\reciprocalsquared}{\ensuremath{^{-2}}}        % postfix -2
 \newcommand*{\reciprocalcubed}{\ensuremath{^{-3}}}          % postfix -3
 \newcommand*{\reciprocalquarted}{\ensuremath{^{-4}}}        % postfix -4
+\newcommand*{\emptyunit}{\ensuremath{\Box}}
 %    \end{macrocode}
 %
 % \noindent Define a new named physics quantity or physical constant and 
@@ -10842,6 +10883,7 @@
     \rowvector[,]{\msup{#2}{0},\msup{#2}{1},\msup{#2}{2},\msup{#2}{3}}%
   }%
 }%
+\newcommand*{\anglebetween}[2]{\ensuremath{\theta_{\vect{#1},\vect{#2}}}}
 \newcommand*{\bra}[1]{\ensuremath{\left\langle{#1}\right\lvert}}
 \newcommand*{\ket}[1]{\ensuremath{\left\lvert{#1}\right\rangle}}
 \newcommand*{\bracket}[2]{\ensuremath{\left\langle{#1}\!\!\right.%
@@ -11244,25 +11286,26 @@
   \frac{\partial{#1}}{\partial{#2}}}}
 \newcommand*{\ppbyp}[2]{\ensuremath{%
   \frac{\partial^{2}{#1}}{\partial{#2}^{2}}}}
-\newcommand*{\seriesfofx}{\ensuremath{%
-  f(x) \approx f(a) + \frac{f^\prime (a)}{1!}(x-a) + \frac{f^{\prime\prime}(a)}{2!}
-  (x-a)^2 + \frac{f^{\prime\prime\prime}(a)}{3!}(x-a)^3 + \ldots}\xspace}
-\newcommand*{\seriesexpx}{\ensuremath{%
-  e^x \approx 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \ldots}\xspace}
-\newcommand*{\seriessinx}{\ensuremath{%
-  \sin x \approx x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots}\xspace}
-\newcommand*{\seriescosx}{\ensuremath{%
-  \cos x \approx 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \ldots}\xspace}
-\newcommand*{\seriestanx}{\ensuremath{%
-  \tan x \approx x + \frac{x^3}{3} + \frac{2x^5}{15} + \ldots}\xspace}
-\newcommand*{\seriesatox}{\ensuremath{%
-  a^x \approx 1 + x \ln{a} + \frac{(x \ln a)^2}{2!} + \frac{(x \ln a)^3}{3!} + %
-  \ldots}\xspace}
-\newcommand*{\serieslnoneplusx}{\ensuremath{%
-  \ln(1 \pm x) \approx \pm\; x - \frac{x^2}{2} \pm \frac{x^3}{3} - %
-    \frac{x^4}{4} \pm \ldots}\xspace}
-\newcommand*{\binomialseries}{\ensuremath{%
-  (1 + x)^n \approx 1 + nx + \frac{n(n-1)}{2!}x^2 + \ldots}\xspace}
+\newcommandx{\seriesfofx}[1][1=x,usedefault]{\ensuremath{%
+  f({#1}) \approx f(a) + \frac{f^\prime (a)}{1!}({#1}-a) + 
+  \frac{f^{\prime\prime}(a)}{2!}({#1}-a)^2 + 
+  \frac{f^{\prime\prime\prime}(a)}{3!}({#1}-a)^3 + \ldots}\xspace}
+\newcommandx{\seriesexpx}[1][1=x,usedefault]{\ensuremath{%
+  e^{#1} \approx 1 + {#1} + \frac{{#1}^2}{2!} + \frac{{#1}^3}{3!} + \ldots}\xspace}
+\newcommandx{\seriessinx}[1][1=x,usedefault]{\ensuremath{%
+  \sin {#1} \approx {#1} - \frac{{#1}^3}{3!} + \frac{{#1}^5}{5!} - \ldots}\xspace}
+\newcommandx{\seriescosx}[1][1=x,usedefault]{\ensuremath{%
+  \cos {#1} \approx 1 - \frac{{#1}^2}{2!} + \frac{{#1}^4}{4!} - \ldots}\xspace}
+\newcommandx{\seriestanx}[1][1=x,usedefault]{\ensuremath{%
+  \tan {#1} \approx {#1} + \frac{{#1}^3}{3} + \frac{2{#1}^5}{15} + \ldots}\xspace}
+\newcommandx{\seriesatox}[1][1=x,usedefault]{\ensuremath{%
+  a^{#1} \approx 1 + {#1} \ln{a} + \frac{({#1} \ln a)^2}{2!} + 
+  \frac{({#1} \ln a)^3}{3!} + \ldots}\xspace}
+\newcommandx{\serieslnoneplusx}[1][1=x,usedefault]{\ensuremath{%
+  \ln(1 \pm {#1}) \approx \pm\; {#1} - \frac{{#1}^2}{2} \pm \frac{{#1}^3}{3} - %
+    \frac{{#1}^4}{4} \pm \ldots}\xspace}
+\newcommandx{\binomialseries}[1][1=x,usedefault]{\ensuremath{%
+  (1 + {#1})^n \approx 1 + n{#1} + \frac{n(n-1)}{2!}{#1}^2 + \ldots}\xspace}
 \newcommand*{\gradient}{\ensuremath{\boldsymbol{\nabla}}}
 \newcommand*{\divergence}{\ensuremath{\boldsymbol{\nabla}\bullet}}
 \newcommand*{\curl}{\ensuremath{\boldsymbol{\nabla\times}}}
@@ -11663,11 +11706,14 @@
   \DbyD{\mathcal{L}}{#1}-\DbyDt\inparens{\DbyD{\mathcal{L}}{\dot{#1}}} = 0}}
 \newcommand*{\vpythonline}{\lstinline[style=vpython]}
 \newcommand*{\glowscriptline}{\lstinline[style=vpython]}
-\lstnewenvironment{vpythonblock}[1][]{\lstset{style=vpython,caption={#1}}}{}
-\lstnewenvironment{glowscriptblock}[1][]{\lstset{style=vpython,caption={#1}}}{}
-\newcommand*{\vpythonfile}[1][]{\newpage\lstinputlisting[style=vpython,caption={#1}]}
-\newcommand*{\glowscriptfile}[1][]{%
-  \newpage\lstinputlisting[style=vpython,caption={#1}]}
+\lstnewenvironment{vpythonblock}[2]{%
+  \lstset{style=vpython,caption={#1},label={#2}}}{}
+\lstnewenvironment{glowscriptblock}[2]{%
+  \lstset{style=vpython,caption={#1},label={#2}}}{}
+\newcommand*{\vpythonfile}[3]{%
+  \newpage\lstinputlisting[style=vpython,caption={#1},label={#2}]{#3}}
+\newcommand*{\glowscriptfile}[3]{%
+  \newpage\lstinputlisting[style=vpython,caption={#1},label={#2}]{#3}}
 \newcommandx{\emptyanswer}[2][1=0.80,2=0.1,usedefault]
   {\begin{minipage}{#1\textwidth}\hfill\vspace{#2\textheight}\end{minipage}}
 \newenvironmentx{activityanswer}[5][1=white,2=black,3=black,4=0.90,%

Modified: trunk/Master/texmf-dist/tex/latex/mandi/mandi.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/mandi/mandi.sty	2018-12-31 22:10:36 UTC (rev 49557)
+++ trunk/Master/texmf-dist/tex/latex/mandi/mandi.sty	2018-12-31 22:10:54 UTC (rev 49558)
@@ -28,7 +28,7 @@
 %%                                  vdemo.py.
 %% ---------------------------------------------------------------------------
 %% 
-%%\ProvidesPackage{mandi}[2018/03/20 2.7.2 Macros for physics and astronomy]
+%%\ProvidesPackage{mandi}[2018/12/30 2.7.3 Macros for physics and astronomy]
 \NeedsTeXFormat{LaTeX2e}[1999/12/01]
 
 \RequirePackage{amsmath}
@@ -124,9 +124,9 @@
 \DeclareOption{useradians}{\setboolean{@optuseradians}{true}}
 \ProcessOptions\relax
 \newcommand*{\mandiversion}{\ifmmode%
-    2.7.2\mbox{ dated }2018/03/20%
+    2.7.3\mbox{ dated }2018/12/30%
   \else%
-    2.7.2 dated 2018/03/20%
+    2.7.3 dated 2018/12/30%
   \fi
   }%
 \typeout{                                                }
@@ -196,6 +196,7 @@
 \newcommand*{\reciprocalsquared}{\ensuremath{^{-2}}}        % postfix -2
 \newcommand*{\reciprocalcubed}{\ensuremath{^{-3}}}          % postfix -3
 \newcommand*{\reciprocalquarted}{\ensuremath{^{-4}}}        % postfix -4
+\newcommand*{\emptyunit}{\ensuremath{\Box}}
 \newcommand*\mi at exchangeargs[2]{#2#1}%
 \newcommand*\mi at name{}%
 \long\def\mi at name#1#{\romannumeral0\mi at innername{#1}}%
@@ -1178,6 +1179,7 @@
     \rowvector[,]{\msup{#2}{0},\msup{#2}{1},\msup{#2}{2},\msup{#2}{3}}%
   }%
 }%
+\newcommand*{\anglebetween}[2]{\ensuremath{\theta_{\vect{#1},\vect{#2}}}}
 \newcommand*{\bra}[1]{\ensuremath{\left\langle{#1}\right\lvert}}
 \newcommand*{\ket}[1]{\ensuremath{\left\lvert{#1}\right\rangle}}
 \newcommand*{\bracket}[2]{\ensuremath{\left\langle{#1}\!\!\right.%
@@ -1580,25 +1582,26 @@
   \frac{\partial{#1}}{\partial{#2}}}}
 \newcommand*{\ppbyp}[2]{\ensuremath{%
   \frac{\partial^{2}{#1}}{\partial{#2}^{2}}}}
-\newcommand*{\seriesfofx}{\ensuremath{%
-  f(x) \approx f(a) + \frac{f^\prime (a)}{1!}(x-a) + \frac{f^{\prime\prime}(a)}{2!}
-  (x-a)^2 + \frac{f^{\prime\prime\prime}(a)}{3!}(x-a)^3 + \ldots}\xspace}
-\newcommand*{\seriesexpx}{\ensuremath{%
-  e^x \approx 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \ldots}\xspace}
-\newcommand*{\seriessinx}{\ensuremath{%
-  \sin x \approx x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots}\xspace}
-\newcommand*{\seriescosx}{\ensuremath{%
-  \cos x \approx 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \ldots}\xspace}
-\newcommand*{\seriestanx}{\ensuremath{%
-  \tan x \approx x + \frac{x^3}{3} + \frac{2x^5}{15} + \ldots}\xspace}
-\newcommand*{\seriesatox}{\ensuremath{%
-  a^x \approx 1 + x \ln{a} + \frac{(x \ln a)^2}{2!} + \frac{(x \ln a)^3}{3!} + %
-  \ldots}\xspace}
-\newcommand*{\serieslnoneplusx}{\ensuremath{%
-  \ln(1 \pm x) \approx \pm\; x - \frac{x^2}{2} \pm \frac{x^3}{3} - %
-    \frac{x^4}{4} \pm \ldots}\xspace}
-\newcommand*{\binomialseries}{\ensuremath{%
-  (1 + x)^n \approx 1 + nx + \frac{n(n-1)}{2!}x^2 + \ldots}\xspace}
+\newcommandx{\seriesfofx}[1][1=x,usedefault]{\ensuremath{%
+  f({#1}) \approx f(a) + \frac{f^\prime (a)}{1!}({#1}-a) +
+  \frac{f^{\prime\prime}(a)}{2!}({#1}-a)^2 +
+  \frac{f^{\prime\prime\prime}(a)}{3!}({#1}-a)^3 + \ldots}\xspace}
+\newcommandx{\seriesexpx}[1][1=x,usedefault]{\ensuremath{%
+  e^{#1} \approx 1 + {#1} + \frac{{#1}^2}{2!} + \frac{{#1}^3}{3!} + \ldots}\xspace}
+\newcommandx{\seriessinx}[1][1=x,usedefault]{\ensuremath{%
+  \sin {#1} \approx {#1} - \frac{{#1}^3}{3!} + \frac{{#1}^5}{5!} - \ldots}\xspace}
+\newcommandx{\seriescosx}[1][1=x,usedefault]{\ensuremath{%
+  \cos {#1} \approx 1 - \frac{{#1}^2}{2!} + \frac{{#1}^4}{4!} - \ldots}\xspace}
+\newcommandx{\seriestanx}[1][1=x,usedefault]{\ensuremath{%
+  \tan {#1} \approx {#1} + \frac{{#1}^3}{3} + \frac{2{#1}^5}{15} + \ldots}\xspace}
+\newcommandx{\seriesatox}[1][1=x,usedefault]{\ensuremath{%
+  a^{#1} \approx 1 + {#1} \ln{a} + \frac{({#1} \ln a)^2}{2!} +
+  \frac{({#1} \ln a)^3}{3!} + \ldots}\xspace}
+\newcommandx{\serieslnoneplusx}[1][1=x,usedefault]{\ensuremath{%
+  \ln(1 \pm {#1}) \approx \pm\; {#1} - \frac{{#1}^2}{2} \pm \frac{{#1}^3}{3} - %
+    \frac{{#1}^4}{4} \pm \ldots}\xspace}
+\newcommandx{\binomialseries}[1][1=x,usedefault]{\ensuremath{%
+  (1 + {#1})^n \approx 1 + n{#1} + \frac{n(n-1)}{2!}{#1}^2 + \ldots}\xspace}
 \newcommand*{\gradient}{\ensuremath{\boldsymbol{\nabla}}}
 \newcommand*{\divergence}{\ensuremath{\boldsymbol{\nabla}\bullet}}
 \newcommand*{\curl}{\ensuremath{\boldsymbol{\nabla\times}}}
@@ -1998,11 +2001,14 @@
   \DbyD{\mathcal{L}}{#1}-\DbyDt\inparens{\DbyD{\mathcal{L}}{\dot{#1}}} = 0}}
 \newcommand*{\vpythonline}{\lstinline[style=vpython]}
 \newcommand*{\glowscriptline}{\lstinline[style=vpython]}
-\lstnewenvironment{vpythonblock}[1][]{\lstset{style=vpython,caption={#1}}}{}
-\lstnewenvironment{glowscriptblock}[1][]{\lstset{style=vpython,caption={#1}}}{}
-\newcommand*{\vpythonfile}[1][]{\newpage\lstinputlisting[style=vpython,caption={#1}]}
-\newcommand*{\glowscriptfile}[1][]{%
-  \newpage\lstinputlisting[style=vpython,caption={#1}]}
+\lstnewenvironment{vpythonblock}[2]{%
+  \lstset{style=vpython,caption={#1},label={#2}}}{}
+\lstnewenvironment{glowscriptblock}[2]{%
+  \lstset{style=vpython,caption={#1},label={#2}}}{}
+\newcommand*{\vpythonfile}[3]{%
+  \newpage\lstinputlisting[style=vpython,caption={#1},label={#2}]{#3}}
+\newcommand*{\glowscriptfile}[3]{%
+  \newpage\lstinputlisting[style=vpython,caption={#1},label={#2}]{#3}}
 \newcommandx{\emptyanswer}[2][1=0.80,2=0.1,usedefault]
   {\begin{minipage}{#1\textwidth}\hfill\vspace{#2\textheight}\end{minipage}}
 \newenvironmentx{activityanswer}[5][1=white,2=black,3=black,4=0.90,%



More information about the tex-live-commits mailing list