summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-12-31 23:17:17 +0000
committerKarl Berry <karl@freefriends.org>2012-12-31 23:17:17 +0000
commitf7d44df0c7bc9939ac13ff254fe97b47af0b16b9 (patch)
tree38c5af534c6e3040c10c3d03694ee7f6f26bdcf6 /Master
parent3c0d257b00b36e468d76902fa2e37b97b490afba (diff)
new latex package mandi (31dec12)
git-svn-id: svn://tug.org/texlive/trunk@28677 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/mandi/README10
-rw-r--r--Master/texmf-dist/doc/latex/mandi/README.txt10
-rw-r--r--Master/texmf-dist/doc/latex/mandi/mandi.pdfbin0 -> 907395 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mandi/vdemo.py22
-rw-r--r--Master/texmf-dist/source/latex/mandi/mandi.dtx8262
-rw-r--r--Master/texmf-dist/source/latex/mandi/mandi.ins83
-rw-r--r--Master/texmf-dist/tex/latex/mandi/mandi.sty1371
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/mandi.tlpsrc0
10 files changed, 9760 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/mandi/README b/Master/texmf-dist/doc/latex/mandi/README
new file mode 100644
index 00000000000..eaa43321f25
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mandi/README
@@ -0,0 +1,10 @@
+The mandi package provides commands for typesetting symbols, expressions, and
+quantities used in introductory physics and astronomy. Many of the commands are
+inspired by Matter & Interactions by Ruth Chabay and Bruce Sherwood. Many of
+the astronomical commands were inspired by my own classroom needs. It must be
+understood that mandi does not do any computations! It only provides commands
+for typesetting.
+
+Run the file mandi.dtx through (pdf)LaTeX to generate README (this file),
+mandi.ins, mandi.sty, vdemo.py, and mandi.pdf (user documentation). I assume
+a TeXLive2011 or later distribution is installed.
diff --git a/Master/texmf-dist/doc/latex/mandi/README.txt b/Master/texmf-dist/doc/latex/mandi/README.txt
new file mode 100644
index 00000000000..eaa43321f25
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mandi/README.txt
@@ -0,0 +1,10 @@
+The mandi package provides commands for typesetting symbols, expressions, and
+quantities used in introductory physics and astronomy. Many of the commands are
+inspired by Matter & Interactions by Ruth Chabay and Bruce Sherwood. Many of
+the astronomical commands were inspired by my own classroom needs. It must be
+understood that mandi does not do any computations! It only provides commands
+for typesetting.
+
+Run the file mandi.dtx through (pdf)LaTeX to generate README (this file),
+mandi.ins, mandi.sty, vdemo.py, and mandi.pdf (user documentation). I assume
+a TeXLive2011 or later distribution is installed.
diff --git a/Master/texmf-dist/doc/latex/mandi/mandi.pdf b/Master/texmf-dist/doc/latex/mandi/mandi.pdf
new file mode 100644
index 00000000000..07cbcbcb0fd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mandi/mandi.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mandi/vdemo.py b/Master/texmf-dist/doc/latex/mandi/vdemo.py
new file mode 100644
index 00000000000..b50f0c35eea
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mandi/vdemo.py
@@ -0,0 +1,22 @@
+from __future__ import print_function, division
+from visual import *
+
+giant = sphere(pos=vector(-1e11,0,0),radius=2e10,mass=2e30,color=color.red)
+giant.p = vector(0, 0, -1e4) * giant.mass
+
+dwarf = sphere(pos=vector(1.5e11,0,0),radius=1e10,mass=1e30,color=color.yellow)
+dwarf.p = -giant.p
+
+for a in [giant, dwarf]:
+ a.orbit = curve(color=a.color, radius=2e9)
+
+dt = 86400
+while 1:
+ rate(100)
+ dist = dwarf.pos - giant.pos
+ force = 6.7e-11 * giant.mass * dwarf.mass * dist / mag(dist)**3
+ giant.p = giant.p + force*dt
+ dwarf.p = dwarf.p - force*dt
+ for a in [giant, dwarf]:
+ a.pos = a.pos + a.p/a.mass * dt
+ a.orbit.append(pos=a.pos)
diff --git a/Master/texmf-dist/source/latex/mandi/mandi.dtx b/Master/texmf-dist/source/latex/mandi/mandi.dtx
new file mode 100644
index 00000000000..20b03d7c31b
--- /dev/null
+++ b/Master/texmf-dist/source/latex/mandi/mandi.dtx
@@ -0,0 +1,8262 @@
+% \iffalse meta-comment
+% !TEX TS-program = dtxmk
+%
+% Copyright (C) 2011,2012 by Paul J. Heafner <heafnerj@gmail.com>
+% ---------------------------------------------------------------------------
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License, either version 1.3 of this license or (at
+% your option) any later version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX version
+% 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Paul J. Heafner.
+%
+% This work consists of the files mandi.dtx
+%
+% and includes the derived files README
+% mandi.ins
+% mandi.sty
+% vdemo.py and
+% mandi.pdf.
+% ---------------------------------------------------------------------------
+%
+% \fi
+%
+% \iffalse
+%
+%<*internal>
+\iffalse
+%</internal>
+%
+%<*package>
+\ProvidesPackage{mandi}[2012/12/31 2.0.0 Macros for intro physics and astronomy]
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%</package>
+%
+%<*readme>
+The mandi package provides commands for typesetting symbols, expressions, and
+quantities used in introductory physics and astronomy. Many of the commands are
+inspired by Matter & Interactions by Ruth Chabay and Bruce Sherwood. Many of
+the astronomical commands were inspired by my own classroom needs. It must be
+understood that mandi does not do any computations! It only provides commands
+for typesetting.
+
+Run the file mandi.dtx through (pdf)LaTeX to generate README (this file),
+mandi.ins, mandi.sty, vdemo.py, and mandi.pdf (user documentation). I assume
+a TeXLive2011 or later distribution is installed.
+%</readme>
+%
+%<*vdemo>
+from __future__ import print_function, division
+from visual import *
+
+giant = sphere(pos=vector(-1e11,0,0),radius=2e10,mass=2e30,color=color.red)
+giant.p = vector(0, 0, -1e4) * giant.mass
+
+dwarf = sphere(pos=vector(1.5e11,0,0),radius=1e10,mass=1e30,color=color.yellow)
+dwarf.p = -giant.p
+
+for a in [giant, dwarf]:
+ a.orbit = curve(color=a.color, radius=2e9)
+
+dt = 86400
+while 1:
+ rate(100)
+ dist = dwarf.pos - giant.pos
+ force = 6.7e-11 * giant.mass * dwarf.mass * dist / mag(dist)**3
+ giant.p = giant.p + force*dt
+ dwarf.p = dwarf.p - force*dt
+ for a in [giant, dwarf]:
+ a.pos = a.pos + a.p/a.mass * dt
+ a.orbit.append(pos=a.pos)
+%</vdemo>
+%
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%
+%<*install>
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\usedir{tex/latex/mandi}
+\preamble
+
+Copyright (C) 2011,2012 by Paul J. Heafner <heafnerj@gmail.com>
+---------------------------------------------------------------------------
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3 of this license or (at
+your option) any later version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Paul J. Heafner.
+
+This work consists of the files mandi.dtx
+
+and includes the derived files README
+ mandi.ins
+ mandi.sty
+ mandi.pdf and
+ vdemo.py.
+---------------------------------------------------------------------------
+
+\endpreamble
+
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
+\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}}}
+\generate{\usepreamble\empty\usepostamble\empty
+ \file{vdemo.py}{\from{\jobname.dtx}{vdemo}}}
+\generate{\usepreamble\empty\usepostamble\empty
+ \file{README.txt}{\from{\jobname.dtx}{readme}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* mandi.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file mandi.dtx *}
+\Msg{* through (pdf)LaTeX. *}
+\Msg{* *}
+\Msg{*************************************************************}
+%</install>
+%<install>\endbatchfile
+%
+%<*internal>
+\usedir{tex/latex/mandi}
+\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}}}
+\generate{\usepreamble\empty\usepostamble\empty
+ \file{vdemo.py}{\from{\jobname.dtx}{vdemo}}}
+\generate{\usepreamble\empty\usepostamble\empty
+ \file{README.txt}{\from{\jobname.dtx}{readme}}}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+%
+%<*driver>
+\ProvidesFile{mandi.dtx}
+%</driver>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{\jobname}
+\usepackage{array}
+\usepackage[textwidth=1.0cm]{todonotes}
+\setlength{\marginparwidth}{1.0in} % proper placement of todonotes in left margin
+\usepackage{rotating}
+\usepackage{listings}
+\usepackage{microtype}
+%\usepackage[noprint]{dox}
+\usepackage{hypdoc}
+\usepackage[left=1.75in,right=0.5in]{geometry}
+\usepackage[listings]{tcolorbox}
+\EnableCrossrefs
+\PageIndex
+\RecordChanges
+\parindent 0.0mm
+%\OnlyDescription % only print user documentation
+\newcommandx{\ntodo}[2][1,usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\todo[size=\footnotesize,fancyline,caption={#2},color=yellow!40]{\begin{sideways}
+ #2\end{sideways}}}
+ {\todo[size=\footnotesize,fancyline,caption={#1},color=yellow!40]{\begin{sideways}
+ #2\end{sideways}}}}
+\tcbset{enlarge left by=1cm, enlarge right by=2cm,enlarge top by=-3mm,
+ enlarge bottom by=3mm,width=\linewidth-2cm}
+\tcbset{coltitle=blue!50!black,colframe=blue!25,colback=blue!15}
+%\DeclareMathSizes{10}{18}{12}{8}
+%\DeclareMathSizes{11}{19}{13}{9}
+%\DeclareMathSizes{12}{20}{14}{10}
+\everymath{\displaystyle}
+\begin{document}
+ \DocInput{\jobname.dtx}
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \newcommand{\pkgname}[1]{\texttt{#1}}
+% \newcommand{\mandi}{\pkgname{mandi}}
+% \newcommand{\mi}{\textit{Matter \& Interactions}}
+% \hyphenation{Matter Interactions}
+% \newcommand{\opt}[1]{\textsf{\textbf{#1}}}
+% \newcommand{\baseunits}{\textit{baseunits}}
+% \newcommand{\drvdunits}{\textit{drvdunits}}
+% \newcommand{\tradunits}{\textit{tradunits}}
+%
+% \IndexPrologue{\section{Index}Numbers written in italic refer to the page/codeline
+% where the corresponding entry is described; numbers/codelines
+% underlined refer to the definition; numbers in roman refer to the
+% pages/codelines where the entry is used.}
+%
+% \CheckSum{4386}
+%
+% \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
+% Lower-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
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \DoNotIndex{\,,\!,\;,\\,\{,\},\(,\),\[,
+% \active,\advance,\AtBeginOfPackageFile,\baselineskip,\begin,\begingroup,\Big,\Bigg,
+% \boolean,\bullet,\boldsymbol,\BODY,\box,\cancelto,\caption,\catcode,\cbcolor,\cbend,
+% \cbstart,\centerline,\color,\changebarsep,\changebarwidth,\char,\clist,\cr,\cs,
+% \csname,\csundef,
+% \DeclareFontShape,\DeclareGraphicsRule,\DeclareMathAlphabet,\DeclareMathOperator,
+% \DeclareOption,\def,\definecolor,\dimen,\displaystyle,\dp,\else,\end,\endcsname,
+% \endgroup,\ensuremath,\equal,\ExecuteOptions,\expandafter,\ExplSyntaxOff,
+% \ExplSyntaxOn,\fbox,\fcolorbox,\fi,\frac,\global,\halign,\hat,\hbox,\hfil,\hfill,
+% \hline,\hspace,\ht,\iffalse,\ifnum,\ifthenelse,\IfValueT,\ifx,\includegraphics,\l,
+% \label,\langle,\left,\let,\LetLtxMacro,\linewidth,\long,\lower,\lstinline,
+% \lstinputlisting,\lstnewenvironment,\lstset,\lVert,\lvert,\mathbf,\mathcal,
+% \mathchardef,\mathcode,\mathpzc,\mathrel,\mathrm,\mbox,\meaning,\mdfdefinestyle,
+% \mi,\mskip,\newboolean,\newcommand,\newcommandx,\newcount,\NewDocumentCommand,
+% \NewEnviron,\newenvironment,\newenvironmentx,\noalign,\noexpand,\nolimits,\odot,
+% \offinterlineskip,\parbox,\partial,\phantom,\ProcessOptions,\protect,\rangle,\relax,
+% \renewcommand,\right,\romannumeral,\RequirePackage,\rVert,\rvert,\scriptstyle,
+% \seq,\setboolean,\setbox,\setcounter,\setlength,\skipper,\smart,\space,\string,
+% \sqrt,\stackrel,\sum,\text,\textbf,\textfont,\textheight,\textsf,\texttt,\textwidth,
+% \the,\tiny,\tl,\typeout,\upshape,\usetikzlibrary,\usebox,\vcenter,\vector,\vrule,
+% \vskip,\vspace,\widehat,\WithSuffix,\xdef,\xLongleftarrow,\xLongleftrightarrow,
+% \xLongrightarrow,\xrightarrow,\xspace}
+%
+% \DoNotIndex{\activity@fbox,\@eolst,\@firstofone,\@firstoftwo,\Mathstrutbox@,\mi@delim,
+% \mi@exchangeargs,\mi@forkifnull,\mi@innername,\mi@name,\mi@vector,\oldr@@t,\rc@delim,
+% \rc@vector,\response@fbox,\resetMathstrut@,\r@@t,\@tempa,\@tempb,\@tempboxa,
+% \@secondoftwo,\z@}
+%
+% \DoNotIndex{\selectbaseunit,\selectdrvdunit,\selecttradunit,\selectunit,
+% \redefinephysicsquantity,\redefinephysicsconstant,\definephysicsquantity,
+% \definephysicsconstant,\innerdefinewhatsoeverquantity,
+% \innerdefinewhatsoeverquantityfork,}
+%
+% \DoNotIndex{\alpha,\beta,\chi,\delta,\Delta,\epsilon,\eta,\gamma,\Gamma,\iota,\kappa,
+% \lambda,\Lambda,\mu,\nu,\omega,\Omega,\phi,\Phi,\pi,\Pi,\psi,\Psi,\rho,\sigma,\Sigma,
+% \tau,\theta,\Theta,\upsilon,\Upsilon,\varepsilon,\varphi,\varpi,\varrho,\varsigma,
+% \vartheta\xi,\Xi,\zeta}
+%
+% \DoNotIndex{\approx,\bigint,\bigoint,\cos,\cosh,\cot,\coth,\csc,\csch,\ell,\hbar,\int,
+% \ldots,\ln,\log,\mathcalligra,\nabla,\oint,\oldsqrt,\prime,\pm,\sec,\sech,\sin,\sinh,
+% \sqrt,\star,\tan,\tanh,\times,\vec}
+%
+% \DoNotIndex{\ampere,\arcminute,\arcsecond,\candela,\coulomb,\coulombbase,\cubed,\cubic,
+% \degree,\derjoule,\electronvolt,\farad,\fourth,\henry,\hertz,\hertzbase,\hour,\joule,
+% \jouleperkelvin,\kelvin,\kilogram,\kilogrammetrepersecond,\kilogrampermetre,
+% \kilogrammetrepersecondnp,\kilogrammetrepersquaresecondnp,\kilogrampermetrenp,
+% \kilogrampersquaremetre,\kilogrampersquaremetrenp,\kilogrampercubicmetre,
+% \kilogrampercubicmetrenp,\kilogramsquaremetrepersecondnp,\kilogramsquaremetre,
+% \kilogramsquaremetrepersecond,\metre,\metrepersecond,\metrepersecondnp,
+% \metrepersquaresecond,\metrepersquaresecondnp,\mole,\nano,\newton,\newtonpermetre,
+% \newtonperkilogram,\newtonpersquaremetre,\newtonsecond,\pascal,\pascalbase,\per,
+% \radian,\radianpersecond,\radianpersecondnp,\radianpersquaresecond,
+% \radianpersquaresecondnp,\reciprocal,\rp,\rpsquare,\rpsquared,\rpcubed,\rpcubic,
+% \rpfourth,\second,\SIminus,\sipower,\square,\squared,\squaremetre,\steradian,\tesla,
+% \unit,\usk,\volt,\watt,\wattbase}
+%
+% \providecommand*{\url}{\texttt}
+% \GetFileInfo{\jobname.sty}
+% \title{The \textsf{mandi} package}
+% \author{Paul J. Heafner \\
+% \href{mailto:heafnerj@gmail.com?subject=[Heafner]\%20mandi}
+% {\nolinkurl{heafnerj@gmail.com}}}
+% \date{Version \fileversion~dated \filedate}
+%
+% \maketitle
+%
+% ^^A \centerline{\textbf{PLEASE DO NOT DISTRIBUTE THIS VERSION.}}
+%
+% \changes{v2.0.0beta}{\today}{First public release}
+%
+% \tableofcontents
+% \newpage
+% \PrintChanges
+% \addcontentsline{toc}{section}{Change History}
+% \addcontentsline{toc}{section}{Possible Future Enhancements}
+% \listoftodos[Possible Future Enhancements]
+% \newpage
+%
+% \section{Introduction}
+% This package provides a collection of commands useful in introductory physics
+% and astronomy. The underlying philosophy is that the user, potentially an
+% introductory student, should just type the name of a physical quantity, with a
+% numerical value if needed, without having to think about the units. \mandi\
+% will typeset everything correctly. For symbolic quantities, the user should
+% type only what is necessary to get the desired result. What one types should
+% correspond as closely as possible to what one thinks when writing. The package
+% name derives from \mi
+% \footnote{See the \mi\ home page at \url{http://www.matterandinteractions.org/}
+% for more information about this innovative introductory calculus-based physics
+% curriculum.} by Ruth Chabay and Bruce Sherwood. The package certainly is rather
+% tightly tied to that textbook but can be used for typesetting any document that
+% requires consistent physics notation. With \mandi\ many complicated expressions
+% can be typeset with just a single command. Great thought has been given to command
+% names and I hope users find the conventions logical and easy to remember.\medskip
+%
+% There are other underlying philosophies and goals embedded within \mandi, all of
+% which are summarized here. They are
+% \begin{itemize}
+% \item to employ a \textit{type what you think} model for remembering commands
+% \item to relieve the user of having to explicitly worry about typesetting SI units
+% \item to enforce certain concepts that are too frequently merged, which causes
+% confusion, such as the distinction between a vector quantity and its magnitude
+% (e.g.\ we often use 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.\ \textit{duration} vs.\ \textit{time})
+% \item to enforce consistent notation, especially for vector quantities
+% \end{itemize}
+%
+% I hope that using \mandi\ will cause users to form good habits that benefit
+% physics students.
+%
+% \section{Building From Source}
+% I am assuming the user will use pdf\LaTeX, which creates PDF files as output, to
+% build the documentation. I have not tested the build with with standard \LaTeX,
+% which creates DVI files.
+%
+% \newpage
+% \section{Loading the Package}
+% To load the \mandi\ package, simply put the line \medskip
+%
+% |\usepackage{mandi}| \medskip
+%
+% \noindent in your document's preamble to load \mandi\ with its default
+% options. To use the package's available options, write \medskip
+%
+% |\usepackage|\textbf{[}\opt{options}\textbf{]}|{mandi}| \medskip
+%
+% There are five available options, with one option being based on the absence of two
+% of the others.
+% \begin{itemize}
+% \item \opt{italicvectors} gives italic letters for the kernels of vector
+% names. Otherwise, the letters are in Roman.
+% \item \opt{doubleabsbars} gives double bars in symbols for vector magnitudes.
+% Otherwise, single bars are used. Double bars may be more familiar to
+% students from their calculus courses.
+% \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 If neither \opt{baseunits} nor \opt{drvdunits} is specified (the
+% default), units are displayed in what I call \tradunits\ form, which
+% is typically the way they would traditionally appear in textbooks. Units in this
+% form frequently hide the underlying physical meaning and are probably not best
+% pedagogically but are familiar to students and teachers. In this document, the
+% default is to use
+% \ifthenelse{\boolean{@optbaseunits}}
+% {base}
+% {\ifthenelse{\boolean{@optdrvdunits}}
+% {derived}
+% {traditional}}
+% units. As you will see later, there are ways to override these options either
+% temporarily or permanently.
+% \end{itemize}
+%
+% \newpage
+% \section{Usage}
+% So what does \mandi\ allow you to do? Suppose you want to typeset a calculation of
+% a particle's kinetic energy (assume the magnitude of the particle's velocity is much
+% less than the magnitude of light's velocity). You could use
+%
+% \begin{center}
+% |K \approx \frac{1}{2}\left(\unit{2}{\kg}\right)\left(\unit{2}{\m\per\s}\right)^2|
+% \end{center}
+%
+% but it is more logical and more readable to use
+%
+% \begin{center}
+% |K \approx \onehalf (\mass{2})(\velocity{2})^2|
+% \end{center}
+%
+% given that they produce the same output. The second way is what \mandi\ lets you do.
+%
+% \[ K \approx \onehalf (\mass{2})(\velocity{2})^2 \]
+%
+% The second way is more readable if you come back to the document, perhaps having
+% not looked at the source code for a while. Suppose you want to use vectors quantities.
+% That's no problem because \mandi\ handles vector quantities.
+%
+% \begin{center}
+% |Calculate the magnitude of \momentum{\mivector{3,2,5}}.|
+% \end{center}
+%
+% produces
+%
+% \begin{center}
+% Calculate the magnitude of \momentum{\mivector{3,2,5}}.
+% \end{center}
+%
+% The underlying strategy is to \textit{think about how you would say what you want
+% to write and then write it the way you would say it}. With a few exceptions, this
+% is how \mandi\ works. You need not worry about units because \mandi\ knows what
+% SI units go with which physical quantities. You can define new quantities so that
+% \mandi\ knows about them and in doing so, you give the new quantities the same
+% names they would normally have.
+%
+% If you want to save time in writing out the energy principle, just use
+%
+% \begin{center}
+% |\energyprinciple|
+% \end{center}
+%
+% which gives
+%
+% \[
+% \energyprinciple
+% \]
+%
+% with fewer keystrokes, and it's easier to remember.
+%
+% This barely scratches the surface in describing \mandi\ so continue reading this
+% document to see everything this package can do.
+%
+% \newpage
+% \section{Features and Commands}
+% \subsection{Autosized Parentheses}
+% An experimental feature of \mandi\ is autosized parentheses in math mode. This means
+% you need never use |\left(| or |\right)|. Just use unadorned parentheses and they will
+% size correctly. Note that this only works in math mode, only works for parentheses and
+% not for other delimiters.
+%
+% To illustrate, |(\oofpezmathsymbol)| gives (\oofpezmathsymbol) but
+% |\((\oofpezmathsymbol)\)| gives \((\oofpezmathsymbol)\).
+%
+% \subsection{SI Base Units}
+% 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:
+% \textit{spatial displacement} (what others call \textit{length}), \textit{mass},
+% \textit{temporal displacement} (what others call \textit{time}, but we will call
+% it \textit{duration} in most cases), \textit{electric current}, \textit
+% {thermodynamic temperature}, \textit{amount}, and \textit{luminous intensity}.
+% These shortcuts are used internally and need not explicitly be invoked by the
+% user.\medskip
+%
+% \DescribeMacro{\m}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=metre or SI unit of spatial displacement (length)}
+\m
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\kg}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=kilogram or SI unit of mass}
+\kg
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\s}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=second or SI unit of temporal displacement (duration)}
+\s
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\A}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=ampere or SI unit of electric current}
+\A
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\K}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=kelvin or SI unit of thermodynamic temperature}
+\K
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\mol}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=mole or SI unit of amount}
+\mol
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\cd}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=candela or SI unit of luminous intensity}
+\cd
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% If \mandi\ was invoked with \opt{baseunits}, then every physical
+% quantity will have a unit that is some product of powers of these seven base SI
+% units. Exceptions are angular quantities, which will include either degrees or
+% radians depending upon the application. Again, this is what we mean by
+% \baseunits\ form.\medskip
+%
+% Certain combinations of the SI base units have nicknames and each such
+% combination and nickname constitutes a \textit{derived unit}. Derived units are
+% no more physically meaningful than the base units, they are merely nicknames for
+% particular combinations of base units. An example of a derived unit is the
+% newton, for which the symbol (it is not an abbreviation) is \newton. However,
+% the symbol \newton\ is merely a nickname for a particular combination of base
+% units, specifically \newtonbase. It is not the case that every unique combination
+% of base units has a nickname, but those that do are usually named in honor of a
+% scientist. Incidentally, in such cases, the symbol is capitalized but the
+% \textit{name} of the unit is \textbf{never} capitalized. Thus we would write the
+% name of the derived unit of force as newton and not Newton. Again, using these
+% select nicknames for certain combinations of base units is what we mean by
+% \drvdunits\ form.
+%
+% \newpage
+% \subsection{Defining Physics Quantities}
+%
+% \DescribeMacro{\newphysicsquantity}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=define a physics quantity,listing only}
+\newphysicsquantity\marg{foobar}\marg{\baseunits}\oarg{\drvdunits}
+ \oarg{\tradunits}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% Using this command causes several things to happen.
+% \begin{itemize}
+% \item A command |\yournewquantity|\marg{magnitude}, where |foobar| is the first
+% argument passed to \\
+% |\newphysicsquantity|, is created that takes one mandatory
+% argument, a numerical magnitude. Subsequent use of your defined scalar quantity
+% can be invoked by typing \\ |\yournewquantity|\marg{magnitude} and the units will be
+% typeset according to the options given when \mandi\ was loaded. Note that if the
+% \drvdunits\ and \tradunits\ forms are not specified, they will be
+% populated with the \baseunits\ form.
+% \item A command |\yournewquantitybaseunit|\marg{magnitude} is created that expresses
+% the quantity and its units in \baseunits\ form.
+% \item A command |\yournewquantitydrvdunit|\marg{magnitude} is created that expresses
+% the quantity and its units in \drvdunits\ form. This command is created whether
+% or not the first optional argument is provided.
+% \item A command |\yournewquantitytradunit|\marg{magnitude} is created that
+% expresses the quantity and its units in \tradunits\ form. This command is
+% created whether or not the first optional argument is provided.
+% \item A command |\yournewquantityonlybaseunit|\marg{magnitude} is created that
+% expresses
+% \textbf{only} the quantity's units in \baseunits\ form.
+% \item A command |\yournewquantityonlydrvdunit|\marg{magnitude} is created that
+% expresses \textbf{only} the quantity's units in \drvdunits\ form.
+% \item A command |\yournewquantityonlytradunit|\marg{magnitude} is created that
+% expresses \textbf{only} the quantity's units in \tradunits\ form.
+% \item A command |\yournewquantityvalue|\marg{magnitude} is created that expresses
+% \textbf{only} the quantity's numerical value.
+% \end{itemize}
+%
+% The following command defines the quantity |\displacement| and its
+% associated commands containing its units.
+% \begin{quotation}
+% \begin{tabular}{l}
+% |\newphysicsquantity{displacement}{\m}[\m][\m]|
+% \end{tabular}
+% \end{quotation}
+%
+% You would then invoke this quantity with |\displacement{3}|
+% to get \displacement{3} in a calculation.
+%
+% \subsubsection{Defining Vector Quantities}
+%
+% Vector quantities are defined exactly like other quantities, except a formatted
+% vector is used when invoking the value of that quantity. The following command defines
+% a vector |\displacementvector| and its associated commands containing its units.
+%
+% \begin{quotation}
+% \begin{tabular}{l}
+% |\newphysicsquantity{displacementvector}{\m}[\m][\m]|
+% \end{tabular}
+% \end{quotation}
+%
+% \newphysicsquantity{displacementvector}{\m}[\m][\m]
+%
+% You would then invoke this quantity with |\displacementvector{\mivector{2,3,-5}}|
+% to get \displacementvector{\mivector{2,3,-5}} in a calculation.
+%
+% \subsection{First Semester Physics}
+% The first semester of \mi\ focuses on mechanics, dynamics, and statistical mechanics.
+%
+% \subsubsection{Predefined Quantities}
+%
+% The seven fundamental quantities are similarly defined and examples of their
+% usage is given in the following table.
+%
+% \begin{center}
+% \begin{tabular}{c c}
+% |\displacement{3.14}| & \displacement{3.14} \\
+% |\mass{2.81}| & \mass{2.81} \\
+% |\duration{4.32}| & \duration{4.32} \\
+% |\current{5.19}| & \current{5.19} \\
+% |\temperature{273}| & \temperature{273} \\
+% |\amount{2.87}| & \amount{2.87} \\
+% |\luminous{5.64}| & \luminous{5.64} \\
+% \end{tabular}
+% \end{center}
+%
+% Okay, so much for the base quantities. While we're at it, let's also go ahead and
+% define plane angle, solid angle, and a few non-SI units of angular measure, energy,
+% and distance.
+%
+% \begin{center}
+% \begin{tabular}{c c}
+% |\planeangle{2.88}| & \planeangle{2.88} \\
+% |\solidangle{4\pi}| & \solidangle{4\pi} \\
+% |\indegrees{30.1}| & \indegrees{30.1} \\
+% |\inarcminutes{30.1}| & \inarcminutes{30.1} \\
+% |\inarcseconds{30.1}| & \inarcseconds{30.1} \\
+% |\ineV{10.2}| & \ineV{10.2} \\
+% |\inAU{5.2}| & \inAU{5.2}
+% \end{tabular}
+% \end{center}
+%
+% Angles are confusing in introductory physics because sometimes we write the unit
+% and sometimes we do not. Some concepts, such as flux, are simplified by
+% introducing solid angle.\medskip
+%
+% Now let us move on into first semester physics, defining quantities in the approximate
+% order in which they appear in \mi. Use |\scin[]{}| to get
+% scientific notation, with the mantissa as the optional first argument and the exponent
+% as the required second argument. An optional third argument specifies a unit, but that
+% is not needed in the following examples.
+%
+% \begin{center}
+% \begin{tabular}{c c}
+% |\velocityc{0.24}| & \velocityc{0.24} \\
+% |\velocity{2.99}| & \velocity{2.99} \\
+% |\gamman{4.32}| & \gamman{4.32} \\
+% |\momentum{\scin[2.44]{4}}| & \momentum{\scin[2.44]{4}} \\
+% |\acceleration{9.81}| & \acceleration{9.81} \\
+% |\impulse{3.56}| & \impulse{3.56} \\
+% |\force{2.84}| & \force{2.84} \\
+% |\springstiffness{6.92}| & \springstiffness{6.92} \\
+% |\springstretch{0.212}| & \springstretch{0.212} \\
+% |\area{0.125}| & \area{0.125} \\
+% |\volume{5.33}| & \volume{5.33} \\
+% |\linearmassdensity{2.33}| & \linearmassdensity{2.33} \\
+% |\areamassdensity{3.60}| & \areamassdensity{3.60} \\
+% |\volumemassdensity{27.4}| & \volumemassdensity{27.4} \\
+% |\youngsmodulus{\scin[2.12]{9}}| & \youngsmodulus{\scin[2.12]{9}} \\
+% |\work{4.04}| & \work{4.04} \\
+% |\energy{4.40}| & \energy{4.40} \\
+% |\power{100.2}| & \power{100.2} \\
+% |\angularvelocity{3.02}| & \angularvelocity{3.02} \\
+% |\angularacceleration{5.32}| & \angularacceleration{5.32} \\
+% |\angularmomentum{6.81}| & \angularmomentum{6.81} \\
+% |\momentofinertia{4.59}| & \momentofinertia{4.59} \\
+% |\torque{3.40}| & \torque{3.40} \\
+% |\entropy{5.95}| & \entropy{5.95} \\
+% |\wavelength{\scin[4.00]{-7}}| & \wavelength{\scin[4.00]{-7}} \\
+% |\wavenumber{\scin[2.50]{6}}| & \wavenumber{\scin[2.50]{6}} \\
+% |\frequency{\scin[7.50]{14}}| & \frequency{\scin[7.50]{14}} \\
+% |\angularfrequency{\scin[4.70]{15}}| & \angularfrequency{\scin[4.70]{15}}
+% \end{tabular}
+% \end{center}
+%
+% Two quick thoughts here. First, work and energy are similar to momentum and impulse
+% in that they come from two different concepts. Work comes from force acting through
+% a spatial displacement and energy is a fundamental property of matter. It is a
+% coincidence that they have the same dimensions and thus the same unit. Second, notice
+% that I didn't define speed. Velocity is the only quantity I can think of for which we
+% have different names for the vector and the magnitude of the vector. I decided to put
+% it on the same footing as momentum, acceleration, and force.
+%
+% \newpage
+% \subsection{Second Semester Physics}
+% The second semester of \mi\ focuses on electromagnetic theory, and there are many
+% primary and secondary quantities.
+%
+% \subsubsection{Predefined Quantities}
+%
+% \begin{center}
+% \begin{tabular}{c c}
+% |\charge{\scin[2]{-9}}| & \charge{\scin[2]{-9}} \\
+% |\permittivity{\scin[9]{-12}}| & \permittivity{\scin[9]{-12}} \\
+% |\electricfield{\scin[2]{5}}| & \electricfield{\scin[2]{5}} \\
+% |\electricdipolemom{\scin[3]{-22}}| & \electricdipolemom{\scin[3]{-22}} \\
+% |\permeability{\scin[4\pi]{-7}}| & \permeability{\scin[4\pi]{-7}} \\
+% |\magneticfield{1.25}| & \magneticfield{1.25} \\
+% |\cmagneticfield{1.25}| & \cmagneticfield{1.25}
+% \end{tabular}
+% \end{center}
+%
+% \newpage
+% \subsection{Further Words on Units}
+% As you recall, when a new scalar or vector is defined, a host of other commands
+% is also automatically defined. Consider momentum. The following commands are
+% defined:
+%
+% \begin{quotation}
+% \begin{tabular}{c c c}
+% |\momentum{3}| & \momentum{3} & unit determined by global options\\
+% |\momentumbaseunit{3}| & \momentumbaseunit{3} & quantity with base unit \\
+% |\momentumdrvdunit{3}| & \momentumdrvdunit{3} & quantity with derived unit \\
+% |\momentumtradunit{3}| & \momentumtradunit{3} & quantity with traditional unit \\
+% |\momentumvalue{3}| & \momentumvalue{3} & numerical value of quantity \\
+% |\momentumonlybaseunit| & \momentumonlybaseunit & selects only base unit \\
+% |\momentumonlydrvdunit| & \momentumonlydrvdunit & selects only derived unit \\
+% |\momentumonlytradunit| & \momentumonlytradunit & selects only traditional unit
+% \end{tabular}
+% \end{quotation}
+%
+% The form of a quantity's unit can be changed on the fly regardless of the global
+% format determined by \opt{baseunits} and \opt{drvdunits}. One way, as illustrated
+% in the table above, is to append |baseunit|, |drvdunit|, |tradunit| to the
+% quantity's name, and this will override the global options for that instance.
+%
+% \DescribeMacro{\hereusebaseunit}
+% \DescribeMacro{\hereusedrvdunit}
+% \DescribeMacro{\hereusetradunit}
+% A second way is to use the commands |\hereusebaseunit{}|, |\hereusedrvdunit{}|, or
+% |\hereusetradunit{}| with the quantity as the argument.
+%
+% \begin{quotation}
+% \begin{tabular}{c c}
+% |\hereusebaseunit{\momentum{3}}| & \hereusebaseunit{\momentum{3}} \\
+% |\hereusedrvdunit{\momentum{3}}| & \hereusedrvdunit{\momentum{3}} \\
+% |\hereusetradunit{\momentum{3}}| & \hereusetradunit{\momentum{3}}
+% \end{tabular}
+% \end{quotation}
+%
+% \DescribeEnv{usebaseunit}
+% \DescribeEnv{usedrvdunit}
+% \DescribeEnv{usetradunit}
+% A third way is to use the |usebaseunit|, |usedrvdunit|, |usetradunit|
+% environments. \\
+%
+% \begin{quotation}
+% \begin{tabular}{c c}
+% |\begin{usebaseunit}| & \\
+% | \momentum{3} | & \begin{usebaseunit}\momentum{3}\end{usebaseunit}\\
+% |\end{usebaseunit} | & \\
+% |\begin{usedrvdunit}| & \\
+% | \momentum{3} | & \begin{usedrvdunit}\momentum{3}\end{usedrvdunit}\\
+% |\end{usedrvdunit} | & \\
+% |\begin{usetradunit}| & \\
+% | \momentum{3} | & \begin{usetradunit}\momentum{3}\end{usetradunit}\\
+% |\end{usetradunit} | & \\
+% \end{tabular}
+% \end{quotation}
+%
+% \DescribeMacro{\perpusebaseunit}
+% \DescribeMacro{\perpusedrvdunit}
+% \DescribeMacro{\perpusetradunit}
+% A fourth way is to use the global switches |\perpusebaseunit|, |\perpusedrvdunit|,
+% and \\
+% |\perpusetradunit| (think \textit{perpetually use\ldots}). \textbf{It's important to
+% remember that these switches override the global options for the rest of the document
+% or until overridden by one of the other two switches.}
+%
+% \newpage
+% \subsection{Expressions with Vectors}
+% \subsubsection{Basic Vectors}
+%
+% \DescribeMacro{\vect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for a vector quantity\\
+ \cs{vect}\marg{kernel}}
+\vect{p}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for a vector quantity's magnitude\\
+ \cs{magvect}\marg{kernel}}
+\magvect{p}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dirvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for a vector quantity's direction\\
+ \cs{dirvect}\marg{kernel}}
+\dirvect{p}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ncompszerovect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the zero vector expressed in components \\
+ Deprecated. Use \cs{mivector} instead.\\
+ \cs{ncompszerovect}}
+\ncompszerovect
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+%\newpage
+% \DescribeMacro{\symvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for vector with expressions as components\\
+ Deprecated. Use \cs{mivector} instead.\\
+ \cs{symvect}\marg{listofcomps}}
+\symvect{\magvect{E}\cos\theta,\magvect{E}\sin\theta,0}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ncompsvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=vector with numerical components and an
+ Deprecated. Use \cs{mivector} instead.\\
+ optional unit\\ \cs{ncompsvect}\marg{listofcomps}\oarg{unit}}
+\ncompsvect{3,4,6}[\m\per\s]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magvectncomps}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for a vector's magnitude with numerical
+ components and an optional unit\\
+ \cs{magvectncomps}\marg{listofcomps}\oarg{unit}}
+\magvectncomps{3.12,4.04,6.73}[\m\per\s]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of a vector\\
+ \cs{scompsvect}\marg{kernel}}
+\scompsvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic component of a vector\\
+ \cs{compvect}\marg{kernel}\marg{comp}}
+\compvect{E}{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magvectscomps}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for a vector's magnitude in
+ terms of its symbolic components\\ \cs{magvectscomps}\marg{kernel}}
+\magvectscomps{B}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsubsection{Position Vectors}
+%
+% \DescribeMacro{\scompspos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of a position vector\\
+ \cs{scompspos}}
+\scompspos
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\comppos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of a position vector\\
+ \cs{comppos}\marg{comp}}
+\comppos{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsubsection{Differentials and Derivatives of Vectors}
+% \DescribeMacro{\dvect}
+% \DescribeMacro{\Dvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the differential of a vector\\
+ \cs{dvect}\marg{kernel} or \cs{Dvect}\marg{kernel}}
+\dvect{E} or \Dvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dirdvect}
+% \DescribeMacro{\dirDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the direction of the differential
+ of a vector\\ \cs{dirdvect}\marg{kernel} or \cs{dirDvect}\marg{kernel}}
+\dirdvect{E} or \dirDvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ddirvect}
+% \DescribeMacro{\Ddirvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the differential of a vector's
+ direction\\ \cs{ddirvect}\marg{kernel} or \cs{Ddirvect}\marg{kernel}}
+\ddirvect{E} or \Ddirvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magdvect}
+% \DescribeMacro{\magDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of the differential of a vector\\
+ \cs{magdvect}\marg{kernel} or \cs{magDvect}\marg{kernel}}
+\magdvect{E} or \magDvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dmagvect}
+% \DescribeMacro{\Dmagvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=differential of the magnitude of a vector\\
+ \cs{dmagvect}\marg{kernel} or \cs{Dmagvect}\marg{kernel}}
+\dmagvect{E} or \Dmagvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\scompsdvect}
+% \DescribeMacro{\scompsDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the differential
+ of a vector\\ \cs{scompsdvect}\marg{kernel} or \cs{scompsDvect}\marg{kernel}}
+\scompsdvect{E} or \scompsDvect{E}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compdvect}
+% \DescribeMacro{\compDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one symbolic component of the differential of
+ a vector\\ \cs{compdvect}\marg{kernel}\marg{comp} or \cs{compDvect}\marg{kernel}
+ \marg{comp}}
+\compdvect{E}{z} or \compDvect{E}{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsdpos}
+% \DescribeMacro{\scompsDpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the differential of a
+ position vector\\ \cs{scompsdpos} or \cs{scompsDpos}}
+\scompsdpos\ or \scompsDpos
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compdpos}
+% \DescribeMacro{\compDpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the differential of a
+ position vector\\ \cs{compdpos}\marg{comp} or \cs{compDpos}\marg{comp}}
+\compdpos{z} or \compDpos{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dervect}
+% \DescribeMacro{\Dervect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the derivative of a vector\\
+ \cs{dervect}\marg{kernel}\marg{indvar} or \cs{Dervect}\marg{kernel}\marg{indvar}}
+\dervect{E}{t} or \Dervect{E}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\dermagvect}
+% \DescribeMacro{\Dermagvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the derivative of the magnitude of a
+ vector\\ \cs{dermagvect}\marg{kernel}\marg{indvar} or
+ \cs{Dermagvect}\marg{kernel}\marg{indvar}}
+\dermagvect{E}{t} or \Dermagvect{E}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsdervect}
+% \DescribeMacro{\scompsDervect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the derivative of a
+ vector\\ \cs{scompsdervect}\marg{kernel}\marg{indvar} or\\
+ \cs{scompsDervect}\marg{kernel}\marg{indvar}}
+\scompsdervect{E}{t} or \scompsDervect{E}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compdervect}
+% \DescribeMacro{\compDervect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the derivative of a vector\\
+ \cs{compdervect}\marg{kernel}\marg{indvar}\marg{comp} or\\
+ \cs{compDervect}\marg{kernel}\marg{indvar}\marg{comp}}
+\compdervect{E}{t}{y} or \compDervect{E}{t}{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magdervect}
+% \DescribeMacro{\magDervect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of the derivative of a vector\\
+ \cs{magdervect}\marg{kernel}\marg{indvar} or \cs{magDervect}\marg{kernel}\marg{indvar}}
+\magdervect{E}{t} or \magDervect{E}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\scompsderpos}
+% \DescribeMacro{\scompsDerpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the derivative of a
+ position vector\\ \cs{scompsderpos}\marg{indvar} or \cs{scompsDerpos}\marg{indvar}}
+\scompsderpos{t} or \scompsDerpos{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compderpos}
+% \DescribeMacro{\compDerpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the derivative of a position
+ vector\\ \cs{compderpos}\marg{comp}\marg{indvar} or\\
+ \cs{compDerpos}\marg{comp}\marg{indvar}}
+\compderpos{z}{t} or \compDerpos{z}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsubsection{Naming Conventions You Have Seen}
+% By now you probably understand that commands are named as closely as possible
+% to the way you would say or write what you want. Every time you see |comp|
+% you should think of a single component. Every time you see |scomps| you should
+% think of a set of symbolic components. Every time you see |der| you should
+% think derivative. Every time you see |dir| you should think direction. I have
+% tried to make the names simple both logically and lexically. \\
+%
+% \newpage
+% \subsubsection{Subscripted Vectors}
+% Now we have commands for vectors that carry subscripts, usually to identify an
+% object or something similar. Basically, |vect| becomes |vectsub| and |pos|
+% becomes |possub|. Ideally, a subscript should not contain mathematical
+% symbols. However, if you wish to do so, just wrap the symbol with
+% |\(|\(\ldots \)|\)| as you normally would. All of the commands for non-subscripted
+% vectors are available for subscripted vectors. \\
+%
+% \DescribeMacro{\vectsub}
+% \DescribeMacro{\magvectsub}
+% \DescribeMacro{\dirvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=name magnitude and direction of a subscripted
+ vector\\ \cs{vectsub}\marg{kernel}\marg{sub}\\
+ \cs{dirvectsub}\marg{kernel}\marg{sub}\\
+ \cs{magvectsub}\marg{kernel}\marg{sub}}
+\vectsub{p}{ball} and \magvectsub{p}{ball} and \dirvectsub{p}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of a subscripted vector\\
+ \cs{scompsvectsub}\marg{kernel}\marg{sub}}
+\scompsvectsub{p}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of a subscripted vector\\
+ \cs{compvectsub}\marg{kernel}\marg{sub}\marg{comp}}
+\compvectsub{p}{ball}{z}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\magvectsubscomps}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of a subscripted vector in terms of its
+ symbolic components\\ \cs{magvectsubscomps}\marg{kernel}\marg{sub}}
+\magvectsubscomps{p}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompspossub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of a subscripted position
+ vector\\ \cs{scompspossub}\marg{sub}}
+\scompspossub{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\comppossub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of a subscripted position vector\\
+ \cs{comppossub}\marg{sub}\marg{comp}}
+\comppossub{ball}{x}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dvectsub}
+% \DescribeMacro{\Dvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=differential of a subscripted vector\\
+ \cs{dvectsub}\marg{kernel}\marg{sub} or \cs{Dvectsub}\marg{kernel}\marg{sub}}
+\dvectsub{p}{ball} or \Dvectsub{p}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsdvectsub}
+% \DescribeMacro{\scompsDvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components the differential of a
+ subscripted vector\\ \cs{scompsdvectsub}\marg{kernel}\marg{sub} or\\
+ \cs{scompsDvectsub}\marg{kernel}\marg{sub}}
+\scompsdvectsub{p}{ball} or \scompsDvectsub{p}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\compdvectsub}
+% \DescribeMacro{\compDvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the differential of a
+ subscripted vector\\ \cs{compdvectsub}\marg{kernel}\marg{sub}\marg{comp} or\\
+ \cs{compDvectsub}\marg{kernel}\marg{sub}\marg{comp}}
+\compdvectsub{p}{ball}{y} or \compDvectsub{p}{ball}{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsdpossub}
+% \DescribeMacro{\scompsDpossub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the differential of a
+ subscripted position vector\\ \cs{scompsdpossub}\marg{sub} or\\
+ \cs{scompsDpossub}\marg{sub}}
+\scompsdpossub{ball} or \scompsDpossub{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compdpossub}
+% \DescribeMacro{\compDpossub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the differential of a
+ subscripted position vector\\ \cs{compdpossub}\marg{sub}\marg{comp} or\\
+ \cs{compDpossub}\marg{sub}\marg{comp}}
+\compdpossub{ball}{x} or \compDpossub{ball}{x}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dervectsub}
+% \DescribeMacro{\Dervectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=derivative of a subscripted vector\\
+ \cs{dervectsub}\marg{kernel}\marg{sub}\marg{indvar} or\\
+ \cs{Dervectsub}\marg{kernel}\marg{sub}\marg{indvar}}
+\dervectsub{p}{ball}{t} or \Dervectsub{p}{ball}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\dermagvectsub}
+% \DescribeMacro{\Dermagvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for the derivative of the magnitude of a
+ subscripted vector\\ \cs{dermagvectsub}\marg{kernel}\marg{sub}\marg{indvar} or\\
+ \cs{Dermagvectsub}\marg{kernel}\marg{sub}\marg{indvar}}
+\dermagvectsub{E}{ball}{t} or \Dermagvectsub{E}{ball}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsdervectsub}
+% \DescribeMacro{\scompsDervectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the derivative of a
+ subscripted vector\\ \cs{scompsdervectsub}\marg{kernel}\marg{sub}\marg{indvar} or\\
+ \cs{scompsDervectsub}\marg{kernel}\marg{sub}\marg{indvar}}
+\scompsdervectsub{p}{ball}{t} or \scompsDervectsub{p}{ball}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compdervectsub}
+% \DescribeMacro{\compDervectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the derivative of a subscripted
+ vector\\ \cs{compdervectsub}\marg{kernel}\marg{sub}\marg{indvar}\marg{comp} or\\
+ \cs{compDervectsub}\marg{kernel}\marg{sub}\marg{indvar}\marg{comp}}
+\compdervectsub{p}{ball}{t}{y} or \compDervectsub{p}{ball}{t}{y}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magdervectsub}
+% \DescribeMacro{\magDervectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of the derivative of a subscripted
+ vector\\ \cs{magdervectsub}\marg{kernel}\marg{sub}\marg{indvar} or\\
+ \cs{magDervectsub}\marg{kernel}\marg{sub}\marg{indvar}}
+\magdervectsub{p}{ball}{t} or \magDervectsub{p}{ball}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\scompsderpossub}
+% \DescribeMacro{\scompsDerpossub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbolic components of the derivative of an indexed
+ position vector\\ \cs{scompsderpossub}\marg{sub}\marg{indvar} or\\
+ \cs{scompsDerpossub}\marg{sub}\marg{indvar}}
+\scompsderpossub{ball}{t} or \scompsDerpossub{ball}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\compderpossub}
+% \DescribeMacro{\compDerpossub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=one component of the derivative of a subscripted
+ position vector\\ \cs{compderpossub}\marg{sub}\marg{indvar}\marg{comp} or\\
+ \cs{compDerpossub}\marg{sub}\marg{indvar}\marg{comp}}
+\compderpossub{ball}{t}{z} or \compDerpossub{ball}{t}{z}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsubsection{Relative Vectors}
+% Sometimes we need the position, velocity, momentum, or force of/on one thing
+% relative to/due to another thing. \\
+%
+% \DescribeMacro{\relpos}
+% \DescribeMacro{\relvel}
+% \DescribeMacro{\relmom}
+% \DescribeMacro{\relfor}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=relative position or velocity or
+ momentum or force vectors for two objects\\
+ \cs{relpos}\marg{sub} and \cs{relvel}\marg{sub} and \cs{relmom}\marg{sub}\\
+ and \cs{relfor}\marg{sub}}
+\relpos{12} and \relvel{12} and \relmom{12} and \relfor{12}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsubsection{Expressions Containing Dot Products}
+% Now we get to commands that will save you many, many keystrokes. All of the
+% naming conventions documented in earlier commands still apply. There are some
+% new ones though. Every time you see |dot| you should think \textit{dot product}.
+% When you see |dots| you should think \textit{dot product in terms of symbolic
+% components}. When you see |dote| you should think \textit{dot product
+% expanded as a sum}. These, along with the previous naming conventions, handle
+% many dot product expressions. \\
+%
+% \newpage
+% \DescribeMacro{\vectdotvect}
+% \DescribeMacro{\vectdotsvect}
+% \DescribeMacro{\vectdotevect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of two vectors as a single symbol or with
+ symbolic components or as an expanded sum\\
+ \cs{vectdotvect}\marg{vector1}\marg{vector2}\\
+ \cs{vectdotsvect}\marg{kernel1}\marg{kernel2}\\
+ \cs{vectdotevect}\marg{kernel1}\marg{kernel2}}
+\vectdotvect{\vect{F}}{\vect{v}} \\
+\vectdotsvect{F}{v} \\
+\vectdotevect{F}{v}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vectdotspos}
+% \DescribeMacro{\vectdotepos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a vector and a position vector with symbolic
+ components or as an expanded sum\\
+ \cs{vectdotspos}\marg{kernel} or \cs{vectdotepos}\marg{kernel}}
+\vectdotspos{F} \\
+\vectdotepos{F}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vectdotsdvect}
+% \DescribeMacro{\vectdotsDvect}
+% \DescribeMacro{\vectdotedvect}
+% \DescribeMacro{\vectdoteDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a vector and the differential of a vector
+ with symbolic components or expanded as a sum \\
+ \cs{vectdotsdvect}\marg{kernel1}\marg{kernel2}\\
+ \cs{vectdotsDvect}\marg{kernel1}\marg{kernel2}\\
+ \cs{vectdotedvect}\marg{kernel1}\marg{kernel2}\\
+ \cs{vectdoteDvect}\marg{kernel1}\marg{kernel2}}
+\vectdotsdvect{F}{r} or \vectdotsDvect{F}{r} \\
+\vectdotedvect{F}{r} or \vectdoteDvect{F}{r} \\
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\vectdotsdpos}
+% \DescribeMacro{\vectdotsDpos}
+% \DescribeMacro{\vectdotedpos}
+% \DescribeMacro{\vectdoteDpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a vector and the differential position
+ vector with symbolic components or expanded as a sum \\
+ \cs{vectdotsdpos}\marg{kernel} or \cs{vectdotsDpos}\marg{kernel}\\
+ \cs{vectdotedpos}\marg{kernel} or \cs{vectdoteDpos}\marg{kernel}}
+\vectdotsdpos{F} or \vectdotsDpos{F} \\
+\vectdotedpos{F} or \vectdoteDpos{F}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vectsubdotsvectsub}
+% \DescribeMacro{\vectsubdotevectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of two subscripted vectors with symbolic
+ components or expanded as a sum \\
+ \cs{vectsubdotsvectsub}\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}\\
+ \cs{vectsubdotevectsub}\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}}
+\vectsubdotsvectsub{F}{grav}{r}{ball} \\
+\vectsubdotevectsub{F}{grav}{r}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vectsubdotsdvectsub}
+% \DescribeMacro{\vectsubdotsDvectsub}
+% \DescribeMacro{\vectsubdotedvectsub}
+% \DescribeMacro{\vectsubdoteDvectsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a subscripted vector and the differential
+ of a subscripted vector with symbolic components or expanded as a sum \\
+ \cs{vectsubdotsdvectsub}\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2} \\
+ \cs{vectsubdotsDvectsub}\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2} \\
+ \cs{vectsubdotedvectsub}\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2} \\
+ \cs{vectsubdoteDvectsub}\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}}
+\vectsubdotsdvectsub{A}{ball}{B}{car} \\
+\vectsubdotsDvectsub{A}{ball}{B}{car} \\
+\vectsubdotedvectsub{A}{ball}{B}{car} \\
+\vectsubdoteDvectsub{A}{ball}{B}{car}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\vectsubdotsdvect}
+% \DescribeMacro{\vectsubdotsDvect}
+% \DescribeMacro{\vectsubdotedvect}
+% \DescribeMacro{\vectsubdoteDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a subscripted vector and the differential
+ of a vector with symbolic components or expanded as a sum \\
+ \cs{vectsubdotsdvect}\marg{kernel1}\marg{sub1}\marg{kernel2}\\
+ \cs{vectsubdotsDvect}\marg{kernel1}\marg{sub1}\marg{kernel2}\\
+ \cs{vectsubdotedvect}\marg{kernel1}\marg{sub1}\marg{kernel2}\\
+ \cs{vectsubdoteDvect}\marg{kernel1}\marg{sub1}\marg{kernel2}}
+\vectsubdotsdvect{A}{ball}{B} \\
+\vectsubdotsDvect{A}{ball}{B} \\
+\vectsubdotedvect{A}{ball}{B} \\
+\vectsubdoteDvect{A}{ball}{B}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vectsubdotsdpos}
+% \DescribeMacro{\vectsubdotsDpos}
+% \DescribeMacro{\vectsubdotedpos}
+% \DescribeMacro{\vectsubdoteDpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a subscripted vector and a differential
+ position vector with symbolic components or expanded as a sum \\
+ \cs{vectsubdotsdpos}\marg{kernel}\marg{sub} \\
+ \cs{vectsubdotsDpos}\marg{kernel}\marg{sub} \\
+ \cs{vectsubdotedpos}\marg{kernel}\marg{sub} \\
+ \cs{vectsubdoteDpos}\marg{kernel}\marg{sub}}
+\vectsubdotsdpos{A}{ball}\\
+\vectsubdotsDpos{A}{ball}\\
+\vectsubdotedpos{A}{ball}\\
+\vectsubdoteDpos{A}{ball}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\dervectdotsvect}
+% \DescribeMacro{\Dervectdotsvect}
+% \DescribeMacro{\dervectdotevect}
+% \DescribeMacro{\Dervectdotevect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of the derivative of a vector and a vector
+ with symbolic components or expanded as a sum\\
+ \cs{dervectdotsvect}\marg{kernel1}\marg{indvar}\marg{kernel2}\\
+ \cs{Dervectdotsvect}\marg{kernel1}\marg{indvar}\marg{kernel2}\\
+ \cs{dervectdotevect}\marg{kernel1}\marg{indvar}\marg{kernel2}\\
+ \cs{Dervectdotevect}\marg{kernel1}\marg{indvar}\marg{kernel2}}
+\dervectdotsvect{A}{t}{B} \\
+\Dervectdotsvect{A}{t}{B} \\
+\dervectdotevect{A}{t}{B} \\
+\Dervectdotevect{A}{t}{B}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vectdotsdervect}
+% \DescribeMacro{\vectdotsDervect}
+% \DescribeMacro{\vectdotedervect}
+% \DescribeMacro{\vectdoteDervect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of a vector and the derivative of a vector with \\
+ symbolic components or expanded as a sum \\
+ \cs{vectdotsdervect}\marg{kernel1}\marg{kernel2}\marg{indvar}\\
+ \cs{vectdotsDervect}\marg{kernel1}\marg{kernel2}\marg{indvar}\\
+ \cs{vectdotedervect}\marg{kernel1}\marg{kernel2}\marg{indvar}\\
+ \cs{vectdoteDervect}\marg{kernel1}\marg{kernel2}\marg{indvar}}
+\vectdotsdervect{A}{B}{t} \\
+\vectdotsDervect{A}{B}{t} \\
+\vectdotedervect{A}{B}{t} \\
+\vectdoteDervect{A}{B}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\dervectdotspos}
+% \DescribeMacro{\Dervectdotspos}
+% \DescribeMacro{\dervectdotepos}
+% \DescribeMacro{\Dervectdotepos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of the derivative of a vector and a position
+ vector using symbolic components or expanded as a sum \\
+ \cs{dervectdotspos}\marg{kernel}\marg{indvar}\\
+ \cs{Dervectdotspos}\marg{kernel}\marg{indvar}\\
+ \cs{dervectdotepos}\marg{kernel}\marg{indvar}\\
+ \cs{Dervectdotepos}\marg{kernel}\marg{indvar}}
+\dervectdotspos{A}{t} \\
+\Dervectdotspos{A}{t} \\
+\dervectdotepos{A}{t} \\
+\Dervectdotepos{A}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dervectdotsdvect}
+% \DescribeMacro{\DervectdotsDvect}
+% \DescribeMacro{\dervectdotedvect}
+% \DescribeMacro{\DervectdoteDvect}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of the derivative of a vector and the
+ differential of a vector using symbolic components or expanded as a sum \\
+ \cs{dervectdotsdvect}\marg{kernel1}\marg{indvar}\marg{kernel2}\\
+ \cs{DervectdotsDvect}\marg{kernel1}\marg{indvar}\marg{kernel2}\\
+ \cs{dervectdotedvect}\marg{kernel1}\marg{indvar}\marg{kernel2}\\
+ \cs{DervectdoteDvect}\marg{kernel1}\marg{indvar}\marg{kernel2}}
+\dervectdotsdvect{A}{t}{B} \\
+\DervectdotsDvect{A}{t}{B} \\
+\dervectdotedvect{A}{t}{B} \\
+\DervectdoteDvect{A}{t}{B}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\dervectdotsdpos}
+% \DescribeMacro{\DervectdotsDpos}
+% \DescribeMacro{\dervectdotedpos}
+% \DescribeMacro{\DervectdoteDpos}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=dot product of the derivative of a vector and the
+ differential of a position vector using symbolic components or expanded as a sum \\
+ \cs{dervectdotsdpos}\marg{kernel}\marg{indvar}\\
+ \cs{DervectdotsDpos}\marg{kernel}\marg{indvar}\\
+ \cs{dervectdotedpos}\marg{kernel}\marg{indvar}\\
+ \cs{DervectdoteDpos}\marg{kernel}\marg{indvar}}
+\dervectdotsdpos{A}{t} \\
+\DervectdotsDpos{A}{t} \\
+\dervectdotedpos{A}{t} \\
+\DervectdoteDpos{A}{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsubsection{Basis Vectors and Bivectors}
+% If you use geometric algebra or tensors, eventually you will need symbols for
+% basis vectors and basis bivectors. \\
+%
+% \DescribeMacro{\ezero}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=basis vectors with lower indices 0 to 4
+ (use \cs{ek} or \cs{e} for indices > 4)\\ \cs{zero}}
+\ezero \(\cdots\) \efour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\uezero}
+%\if false
+%<*example>
+%\fi
+\begin{tcblisting}{title=normalized basis vectors with lower
+ indices 0 to 4 (use \cs{uek} or \cs{ue} for indices > 4)\\ \cs{uezero}}
+\uezero \(\cdots\) \uefour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\ezerozero}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=basis bivectors with lower indices
+ (use \cs{ek} or \cs{e} for indices > 4)\\ \cs{ezerozero}}
+\ezerozero \(\cdots\) \efourfour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\euzero}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=basis vectors with upper indices 0 to 4
+ (use \cs{euk} or \cs{eu} for indices > 4)\\ \cs{euzero}}
+\euzero \(\cdots\) \eufour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\euzerozero}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=basis bivectors with upper indices
+ (use \cs{euk} or \cs{eu} for indices > 4)\\ \cs{euzerozero}}
+\euzerozero \(\cdots\) \eufourfour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\gzero}
+% \DescribeMacro{\guzero}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=basis vectors with \(\gamma\) as the kernel
+ (use \cs{guk} or \cs{gu} for indices > 4)\\ \cs{gzero} or \cs{guzero}}
+\gzero \(\cdots\) \gfour \\
+\guzero \(\cdots\) \gufour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\gzerozero}
+% \DescribeMacro{\guzerozero}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=basis bivectors with \(\gamma\) as the kernel
+ (use \cs{guk} or \cs{gu} for indices > 4)\\ \cs{gzerozero} or \cs{guzerozero}}
+\gzerozero \(\cdots\) \gfourfour \\
+\guzerozero \(\cdots\) \gufourfour
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\mivector}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=generic command for vectors formatted as in \mi \\
+ \cs{mivector}\oarg{printeddelimiter}\marg{commadelimitedlistofcomps}\oarg{unit}}
+\begin{align*}
+ \msub{u}{\mu} &= \mivector{\ezero,\eone,\etwo,\ethree} \\
+ \vect{v} &= \mivector{1,3,5}[\m\per\s] \\
+ \vect{E} &= \mivector{\oofpezmathsymbol \frac{Q}{\msup{x}{2}},0,0}
+\end{align*}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\colvector}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets column vectors\\
+ \cs{colvect}\marg{commadelimitedlistofcomps}}
+\colvector{\msup{x}{0},\msup{x}{1},\msup{x}{2},\msup{x}{3}}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\rowvector}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets row vectors\\
+ \cs{rowvect}\marg{commadelimitedlistofcomps}}
+\rowvector{\msup{x}{0},\msup{x}{1},\msup{x}{2},\msup{x}{3}}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompscvect}
+% \ntodo[Suggestion]{Allow for superscripts.}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets symbolic components of column 3- or 4-vectors
+(use any nonzero value for the optional argument to typeset a 4-vector\\
+ \cs{scompscvect}\oarg{anynonzero}\marg{kernel}}
+\begin{align*}
+ \vect{p} &= \scompscvect{p} \\
+ \vect{p} &= \scompscvect[4]{p}
+\end{align*}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scompsrvect}
+% \ntodo[Suggestion]{Allow for superscripts.}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets symbolic components of row 3- or 4-vectors
+(use any nonzero value for the optional argument to typeset a 4-vector\\
+ \cs{scompscvect}\oarg{anynonzero}\marg{kernel}}
+\begin{align*}
+ \vect{p} &= \scompsrvect{p} \\
+ \vect{p} &= \scompsrvect[4]{p}
+\end{align*}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Physical Constants}
+% \subsubsection{Defining Physical Constants}
+% \DescribeMacro{\newphysicsconstant}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=define a physical constant\\
+ \cs{newphysicsconstant}\marg{symbol}\marg{value}\marg{foobar}\marg{\baseunits}
+ \oarg{\drvdunits}\oarg{\tradunits}}
+Here is how \oofpez (the Coulomb constant) is defined internally.
+\newphysicsconstant{oofpez}
+{\ensuremath{\frac{1}{\phantom{_o}4\pi\ssub{\epsilon}{o}}}}
+{\scin[9]{9}}
+{\ensuremath{\m\cubed\usk\kg\usk\s^{-4}\usk\A\rpsquared}}
+[\m\per\farad]
+[\newton\usk\m\squared\per\coulomb\squared]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% Using this command causes several things to happen.
+% \begin{itemize}
+% \item A command |\physconstantmathsymbol| is created that expresses
+% \textbf{only} the constant's mathematical symbol.
+% \item A command |\physconstantvalue| is created that expresses
+% \textbf{only} the constant's numerical value.
+% \item A command |\physconstant| is created and contains the constant and units
+% typeset according to the options given when \mandi\ was loaded.
+% \item A command |\physconstantbaseunit| is created that expresses
+% the constant and its units in \baseunits\ form.
+% \item A command |\physconstantdrvdunit| is created that expresses
+% the constant and its units in \drvdunits\ form.
+% \item A command |\physconstanttradunit| is created that
+% expresses the constant and its units in \tradunits\ form.
+% \item A command |\physconstantonlybaseunit| is created that expresses
+% \textbf{only} the constant's units in \baseunits\ form.
+% \item A command |\physconstantonlydrvdunit| is created that
+% expresses \textbf{only} the constant's units in \drvdunits\ form.
+% \item A command |\physconstantonlytradunit| is created that
+% expresses \textbf{only} the constant's units in \tradunits\ form.
+% \end{itemize}
+% None of these commands takes any arguments.
+%
+% \subsubsection{Predefined Physical Constants}
+% \DescribeMacro{\oofpez}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Coulomb constant\\ \cs{oofpez}}
+\(\oofpezmathsymbol \approx \oofpez\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\oofpezcs}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=alternate form for Coulomb constant\\ \cs{oofpezcs}}
+\(\oofpezcsmathsymbol = \oofpezcs\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\epsz}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=vacuum permittivity\\ \cs{epsz}}
+\(\epszmathsymbol = \epsz\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\mzofp}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Biot-Savart constant\\ \cs{mzofp}}
+\(\mzofpmathsymbol = \mzofp\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\muz}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=vacuum permeability\\ \cs{muz}}
+\(\muzmathsymbol = \muz\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\kboltz}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Boltzmann constant\\ \cs{kboltz}}
+\(\kboltzmathsymbol \approx \kboltz\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\kboltznev}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=anternate Boltzmann constant\\ \cs{kboltznev}}
+\(\kboltzmathsymbol \approx \kboltznev\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\stefan}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Stefan-Boltzmann constant\\ \cs{stefan}}
+\(\stefanmathsymbol \approx \stefan\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\planck}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Planck constant\\ \cs{planck}}
+\(\planckmathsymbol \approx \planck\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\plancknev}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=alternate Planck constant\\ \cs{plancknev}}
+\(\planckmathsymbol \approx \plancknev\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\planckbar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=reduced Planck constant (Dirac constant)\\ \cs{planckbar}}
+\(\planckbarmathsymbol \approx \planckbar\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\planckbarnev}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=alternate reduced Planck constant (Dirac constant)\\
+ \cs{planckbarnev}}
+\(\planckbarmathsymbol \approx \planckbarnev\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Navogadro}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Avogadro constant\\ \cs{Navogadro}}
+\(\planckbarmathsymbol \approx \Navogadro\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\bigG}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=gravitational constant\\ \cs{bigG}}
+\(\bigGmathsymbol \approx \bigG\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\littleg}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Earth's surface gravitational field strength\\ \cs{littleg}}
+\(\littlegmathsymbol \approx \littleg\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\clight}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of light's velocity\\ \cs{clight}}
+\(\clightmathsymbol \approx \clight\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\clightnfn}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of light's velocity (alternate)\\ \cs{clightnfn}}
+\(\clightnfn\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ratom}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=approximate atomic radius\\ \cs{Ratom}}
+\(\Ratommathsymbol \approx \Ratom\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Mproton}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=proton's mass\\ \cs{Mproton}}
+\(\Mprotonmathsymbol \approx \Mproton\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Mneutron}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=neutron's mass\\ \cs{Mneutron}}
+\(\Mneutronmathsymbol \approx \Mneutron\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Mhydrogen}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=hydrogen atom's mass\\ \cs{Mhydrogen}}
+\(\Mhydrogenmathsymbol \approx \Mhydrogen\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Melectron}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=electron's mass\\ \cs{Melectron}}
+\(\Melectronmathsymbol \approx \Melectron\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\echarge}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=elementary charge quantum\\ \cs{echarge}}
+\(\echargemathsymbol \approx \echarge\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Qelectron}
+% \DescribeMacro{\qelectron}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=electron's charge\\ \cs{Qelectron} or \cs{qelectron}}
+\(\qelectronmathsymbol \approx \qelectron\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Qproton}
+% \DescribeMacro{\qproton}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=proton's charge\\ \cs{Qproton} or \cs{qproton}}
+\(\qprotonmathsymbol \approx \qproton\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\MEarth}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Earth's mass\\ \cs{MEarth}}
+\(\MEarthmathsymbol \approx \MEarth\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\MMoon}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Moon's mass\\ \cs{MMoon}}
+\(\MMoonmathsymbol \approx \MMoon\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\MSun}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun's mass\\ \cs{MSun}}
+\(\MSunmathsymbol \approx \MSun\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\REarth}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Earth's radius\\ \cs{REarth}}
+\(\REarthmathsymbol \approx \REarth\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\RMoon}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Moon's radius\\ \cs{RMoon}}
+\(\RMoonmathsymbol \approx \RMoon\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\RSun}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun's radius\\ \cs{RSun}}
+\(\RSunmathsymbol \approx \RSun\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ESdist}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun-Earth distance or Earth-Sun distance\\ \cs{ESdist} or
+ \cs{SEdist}}
+\(\ESdistmathsymbol \approx \SEdist\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\EMdist}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Earth-Moon distance or Moon-Earth distance\\ \cs{EMdist} or
+ \cs{MEdist}}
+\(\EMdistmathsymbol \approx \EMdist\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Astronomical Constants and Quantities}
+% \DescribeMacro{\lightyear}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=various ways of denoting light years and years and parsecs
+ as units}
+\lightyear\ or \Lightyear\ or \cyear\ or \cyr\ or \yyear\ or \yr \\
+\parsec
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\LSun}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun's luminosity\\
+ \cs{LSun}}
+\(\LSunmathsymbol \approx \LSun\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\TSun}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun's effective temperature\\
+ \cs{TSun}}
+\(\TSunmathsymbol \approx \TSun\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\MagSun}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun's absolute magnitude\\
+ \cs{MagSun}}
+\(\MagSunmathsymbol \approx \MagSun\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magSun}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Sun's apparent magnitude\\
+ \cs{magSun}}
+\(\magSunmathsymbol \approx \magSun\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Lstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar luminosity\\
+ \cs{Lstar}\oarg{object}}
+\Lstar or \Lstar[Sirius] or \Lsolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Tstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar and solar temperature\\
+ \cs{Tstar}\oarg{object}}
+\Tstar or \Tstar[Sirius] or \Tsolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Rstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar and solar radius\\
+ \cs{Rstar}\oarg{object}}
+\Rstar or \Rstar[Sirius] or \Rsolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Mstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar and solar mass\\
+ \cs{Mstar}\oarg{object}}
+\Mstar or \Mstar[Sirius] or \Msolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Fstar}
+% \DescribeMacro{\fstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar and solar flux\\
+ \cs{Fstar}\oarg{object} or \cs{fstar}\oarg{object}}
+\Fstar or \Fstar[Sirius] or \FSun or \Fsolar or \fstar or
+\fstar[Sirius] or \fSun or \fsolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Magstar}
+% \DescribeMacro{\magstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar and solar magnitude\\
+ \cs{Magstar}\oarg{object} or \cs{magstar}\oarg{object}}
+\Magstar or \Magstar[Sirius] or \magstar or \magstar[Sirius] or
+\Magsolar or \magsolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Dstar}
+% \DescribeMacro{\dstar}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=stellar and solar distance (or diameter)\\
+ \cs{Dstar}\oarg{object} or \cs{dstar}\oarg{object}}
+\Dstar or \Dstar[Sirius] or \Dsolar or \dstar or \dstar[Sirius] or
+\dsolar
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsection{Frequently Used Fractions}
+%
+% \DescribeMacro{\onehalf}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=small fractions with numerator 1\\
+ \cs{onehalf}}
+\(\onehalf \cdots \onetenth\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\twothirds}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=small fractions with numerator 2\\
+ \cs{twothirds}}
+\(\twothirds \cdots \twoninths\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\threehalves}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=small fractions with numerator 3\\
+ \cs{threehalves}}
+\(\threehalves \cdots \threetenths\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\fourthirds}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=small fractions with numerator 4\\
+ \cs{fourthirds}}
+\fourthirds
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Calculus}
+%
+% \DescribeMacro{\dx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=properly typesets variables of integration (the d should
+ not be in italics and should be properly spaced relative to the integrand)\\
+ \cs{dx}\marg{integrationvariable}}
+\[ \int y^{2}\dx{y} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\evalfromto}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=properly typesets evaluation of definite integrals\\
+ \cs{evalfromto}\marg{antiderivative}\marg{lowerlimit}\marg{upperlimit}}
+\[ \evalfromto{\onethird y^3}{0}{3} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\evalat}
+% \ntodo[Suggestion]{Combine with \cs{evaluatedat}?}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=properly typesets quantities evaluated at a
+ particular point or value\\ \cs{evalat}\marg{expression}\marg{evaluationpoint}}
+\[ \evalat{\dbydt[x]}{t=1} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\evaluatedat}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=properly indicates evaluation at a particular point or
+ value without specifying the quantity\\
+ \cs{evaluatedat}\marg{evaluationpoint}}
+\[ \mbox{LMST}\evaluatedat{\longitude{0}} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\integral}
+% \DescribeMacro{\Integral}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets indefinite and definite integrals\\
+ \cs{integral}\oarg{lowerlimit}\oarg{upperlimit}\marg{integrand}\marg{variable}\\
+ \cs{Integral}\oarg{lowerlimit}\oarg{upperlimit}\marg{integrand}\marg{variable}}
+\[ \integral{y^2}{y} \]
+\[ \integral[0][3]{y^2}{y} \]
+\[ \Integral{y^2}{y} \]
+\[ \Integral[0][3]{y^2}{y} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\opensurfintegral}
+% \DescribeMacro{\opensurfIntegral}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=integral over an open surface of the normal component of
+ a vector field\\
+ \cs{opensurfintegral}\marg{surfacename}\marg{vectorname}\\
+ \cs{opensurfIntegral}\marg{surfacename}\marg{vectorname}}
+\[ \opensurfintegral{S}{E} \]
+\[ \opensurfIntegral{S}{E} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\closedsurfintegral}
+% \DescribeMacro{\closedsurfIntegral}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=integral over a closed surface of the normal component of
+ a vector field\\
+ \cs{closedsurfintegral}\marg{surfacename}\marg{vectorname}\\
+ \cs{closedsurfIntegral}\marg{surfacename}\marg{vectorname}}
+\[ \closedsurfintegral{S}{E} \]
+\[ \closedsurfIntegral{S}{E} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\openlineintegral}
+% \DescribeMacro{\openlineIntegral}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=integral over an open path of the tangential component of
+ a vector field\\
+ \cs{openlineintegral}\marg{pathname}\marg{vectorname}\\
+ \cs{openlineIntegral}\marg{pathname}\marg{vectorname}}
+\[ \openlineintegral{C}{E} \]
+\[ \openlineIntegral{C}{E} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\closedlineintegral}
+% \DescribeMacro{\closedlineIntegral}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=integral over a closed path of the tangential component of
+ a vector field\\
+ \cs{closedlineintegral}\marg{pathname}\marg{vectorname}\\
+ \cs{closedlineIntegral}\marg{pathname}\marg{vectorname}}
+\[ \closedlineintegral{C}{E} \]
+\[ \closedlineIntegral{C}{E} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% For line integrals, I have not employed the common \dx{\vect{\ell}} symbol.
+% Instead, I use \(\hat{t}\dx{\ell}\) for two main reason. The first is that
+% line integrals require the component of a vector that is tangent to a curve,
+% and I use \(\hat{t}\) to denote a unit tangent. The second is that the new
+% notation looks more like that for surface integrals. \\
+%
+% \newpage
+% \DescribeMacro{\dbydt}
+% \DescribeMacro{\DbyDt}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=first time derivative operator with optional operand\\
+ \cs{dbydt}\oarg{operand} or \cs{DbyDt}\oarg{operand}}
+\[ \dbydt \]
+\[ \dbydt x \]
+\[ \dbydt[x] \]
+\[ \DbyDt \]
+\[ \DbyDt x \]
+\[ \DbyDt[x] \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\ddbydt}
+% \DescribeMacro{\DDbyDt}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=second time derivative operator with optional operand\\
+ \cs{ddbydt}\oarg{operand} or \cs{DDbyDt}\oarg{operand}}
+\[ \ddbydt \]
+\[ \ddbydt x \]
+\[ \ddbydt[x] \]
+\[ \DDbyDt \]
+\[ \DDbyDt x \]
+\[ \DDbyDt[x] \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\pbypt}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=first time partial derivative operator with optional operand\\
+ \cs{pbypt}\oarg{operand}}
+\[ \pbypt \]
+\[ \pbypt x \]
+\[ \pbypt[x] \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\ppbypt}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=second time partial derivative operator with optional operand\\
+ \cs{ppbypt}\oarg{operand}}
+\[ \ppbypt \]
+\[ \ppbypt x \]
+\[ \ppbypt[x] \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dbyd}
+% \DescribeMacro{\DbyD}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=generic first derivative operator\\
+ \cs{dbyd}\marg{dependentvariable}\marg{indvar} or \cs{dbyd}\marg{dependentvariable}
+ \marg{indvar}}
+\[ \dbyd{f}{y} \]
+\[ \DbyD{f}{y} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ddbyd}
+% \DescribeMacro{\DDbyD}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=generic second derivative operator\\
+ \cs{ddbyd}\marg{dependentvariable}\marg{indvar} or \cs{ddbyd}\marg{dependentvariable}
+ \marg{indvar}}
+\[ \ddbyd{f}{y} \]
+\[ \DDbyD{f}{y} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\pbyp}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=generic first partial derivative operator\\
+ \cs{pbyp}\marg{dependentvariable}\marg{indvar}}
+\[ \pbyp{f}{y} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ppbyp}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=generic second partial derivative operator\\
+ \cs{ppbyp}\marg{dependentvariable}\marg{indvar}}
+\[ \ppbyp{f}{y} \]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\divergence}
+% \DescribeMacro{\curl}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=divergence and curl of a quantity (you must explicitly
+ provide an arrow with \cs{vect} if you want one)\\
+ \cs{divergence}\marg{vector} and \cs{curl}\marg{vector}}
+\divergence{\vect{E}} and \curl{\vect{E}}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\seriesfofx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \(f(x)\) \\
+ \cs{seriesfofx}}
+\seriesfofx
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\seriesexpx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \msup{e}{x} \\
+ \cs{seriesexpx}}
+\seriesexpx
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\seriessinx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \(\sin x\) \\
+ \cs{seriessinx}}
+\seriessinx
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\seriescosx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \(\cos x\) \\
+ \cs{seriescosx}}
+\seriescosx
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\seriestanx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \(\tan x\) \\
+ \cs{seriestanx}}
+\seriestanx
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\seriesatox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \msup{a}{x} \\
+ \cs{seriesatox}}
+\seriesatox
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\serieslnoneplusx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \(\ln\quant{1+x}\) \\
+ \cs{serieslnoneplusx}}
+\serieslnoneplusx
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\binomialseries}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=series expansion of \msup{\quant{1+x}}{n} \\
+ \cs{binomialseries}}
+\binomialseries
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\diracdelta}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Dirac delta function\\
+ \cs{diracdelta}\marg{arg}}
+\diracdelta{x}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsection{Other Useful Commands}
+%
+% \DescribeMacro{\asin}
+% \DescribeMacro{\acos}
+% \DescribeMacro{\atan}
+% \DescribeMacro{\asec}
+% \DescribeMacro{\acsc}
+% \DescribeMacro{\acot}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=trigonometric and inverse trigonometric functions
+ not defined in \LaTeX\\
+ \cs{asin} and \cs{acos} and \cs{atan} and \cs{asec} and \cs{acsc} and \cs{acot}}
+\(\asin\) and \(\acos\) and \(\atan\) and \(\asec\) and \(\acsc\) and \(\acot\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\sech}
+% \DescribeMacro{\csch}
+% \DescribeMacro{\asinh}
+% \DescribeMacro{\acosh}
+% \DescribeMacro{\atanh}
+% \DescribeMacro{\asech}
+% \DescribeMacro{\acsch}
+% \DescribeMacro{\acoth}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=hyperbolic and inverse hyperbolic functions
+ not defined in \LaTeX\\
+ \cs{sech} and \cs{csch} and \cs{asinh} and \cs{acosh} \\
+ \cs{atanh} and \cs{asech} and \cs{acsch} and \cs{acoth}}
+\(\sech\) and \(\csch\) and \(\asinh\) and \(\acosh\) \\
+\(\atanh\) and \(\asech\) and \(\acsch\) and \(\acoth\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\sgn}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=signum function\\
+ \cs{sgn}}
+\(\sgn\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dex}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=decimal exponentiation function (used in astrophysics)\\
+ \cs{dex}}
+\(\dex\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\eV}
+% \DescribeMacro{\ev}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=shortcuts for \cs{electronvolt}\\
+ \cs{eV} or \cs{ev}}
+\eV\ or \eV
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\emf}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for electromotive force\\
+ \cs{emf}}
+\emf
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\logb}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=logarithms to arbitrary bases \\
+ \cs{logb}\oarg{base}}
+\logb 8 or \logb[2] 8
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\cB}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=alternate symbol for magnetic field inspired by
+ Tom Moore \\
+ \cs{cB}}
+\cB\ or \vect{\cB}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\newpi}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Bob Palais' symbol for \(2\pi\) \\
+ \cs{newpi}}
+\newpi
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scripty}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=use to get fonts in Griffith's electrodynamics textbook \\
+ \cs{scripty}\marg{kernel}}
+\scripty{r}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\flux}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for flux of a vector field\\
+ \cs{flux}\oarg{label}}
+\flux or \flux[E]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\abs}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=absolute value function\\
+ \cs{abs}\marg{arg}}
+\abs{-4}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\magof}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=magnitude of a quantity (lets you selectively use
+ double bars without setting the \opt{doubleabsbars} option)\\
+ \cs{magof}\marg{arg}}
+\magof{\vect{E}}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\dimsof}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=notation for showing the dimensions of a quantity\\
+ \cs{dimsof}\marg{arg}}
+\(\dimsof{\vect{v}} = L \cdot T^{-1}\)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\unitsof}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=notation for showing the units of a quantity (I propose
+ this notation and hope to propagate it because I could not find any standard
+ notation for this same idea in other sources)\\
+ \cs{unitsof}\marg{arg}}
+\unitsof{\vect{v}} = \m\per\s
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\quant}
+% \DescribeMacro{\bquant}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=surrounds the argument with variable sized parentheses
+ (use \cs{bquant} to get square brackets)\\
+ \cs{quant}\marg{arg} or \cs{bquant}\marg{arg}}
+\quant{\oofpez} or \bquant{\oofpez}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Changein}
+% \DescribeMacro{\changein}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=notation for \textit{the change in a quantity}\\
+ \cs{Changein}\marg{quantity} or \cs{changein}\marg{quantity}}
+\Changein{\vect{E}} or \changein{\vect{E}}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\scin}
+% \DescribeMacro{\ee}
+% \DescribeMacro{\EE}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=scientific notation (use \cs{ee} or \cs{EE} for computer code)\\
+ \cs{scin}\oarg{mantissa}\marg{exponent}\oarg{unit}\\
+ \cs{ee}\marg{mantissa}\marg{exponent}\\
+ \cs{EE}\marg{mantissa}\marg{exponent}}
+\scin[2.99]{8}[\m\per\s] \\
+\ee{2.99}{8} \\
+\EE{2.99}{8}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\dms}
+% \DescribeMacro{\hms}
+% \DescribeMacro{\clockreading}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=formatted angles and times\\
+ \cs{dms}\marg{deg}\marg{min}\marg{sec}\\
+ \cs{hms}\marg{hour}\marg{min}\marg{sec}\\
+ \cs{clock reading}\marg{hour}\marg{minute}\marg{second}}
+\dms{23}{34}{10.27} \\
+\hms{23}{34}{10.27} \\
+\clockreading{23}{34}{10.27}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\latitude}
+% \DescribeMacro{\latitudeN}
+% \DescribeMacro{\latitudeS}
+% \DescribeMacro{\longitude}
+% \DescribeMacro{\longitudeE}
+% \DescribeMacro{\longitudeW}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=formatted latitude and longitude}
+\latitude{+35} or \latitudeN{35} or \latitudeS{35} \\
+\longitude{-81} or \longitudeE{81} or \longitudeW{81}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ssub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=text subscripts\\
+ \cs{ssub}\marg{kernel}\marg{sub}}
+\ssub{N}{AB}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ssup}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=text superscripts\\
+ \cs{ssup}\marg{kernel}\marg{sup}}
+\ssup{N}{contact}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\ssud}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=text superscripts and subscripts\\
+ \cs{ssud}\marg{kernel}\marg{sup}\marg{sub}}
+\ssud{N}{contact}{AB}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\msub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=mathematical subscripts\\
+ \cs{msub}\marg{kernel}\marg{sub}}
+\msub{R}{\alpha\beta}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\msup}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=mathematical superscripts\\
+ \cs{msup}\marg{kernel}\marg{sup}}
+\msup{R}{\gamma}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\msud}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=mathematical superscripts and subscripts\\
+ \cs{msud}\marg{kernel}\marg{sup}\marg{sub}}
+\msud{\Gamma}{\gamma}{\alpha\beta}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\levicivita}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=Levi-Civita symbol\\
+ \cs{levicivita}\marg{indices}}
+\levicivita{ijk}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\xaxis}
+% \DescribeMacro{\yaxis}
+% \DescribeMacro{\zaxis}
+% \DescribeMacro{\naxis}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=shortcuts for coordinate axes\\
+ \cs{xaxis} or \cs{yaxis} or \cs{zaxis} or \cs{naxis}\marg{axis}}
+\xaxis or \yaxis or \zaxis or \naxis{t}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\xyplane}
+% \DescribeMacro{\yzplane}
+% \DescribeMacro{\zxplane}
+% \DescribeMacro{\yxplane}
+% \DescribeMacro{\zyplane}
+% \DescribeMacro{\xzplane}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=shortcuts for coordinate planes\\
+ \cs{xyplane} or \cs{yzplane} or \cs{zxplane} or \cs{yzplane} or \cs{zyplane}
+ or \cs{xzplane}}
+\xyplane or \yzplane or \zxplane or \yxplane or \zyplane or \xzplane
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\cuberoot}
+% \DescribeMacro{\fourthroot}
+% \DescribeMacro{\fifthroot}
+% \DescribeMacro{\fsqrt}
+% \DescribeMacro{\fcuberoot}
+% \DescribeMacro{\ffourthroot}
+% \DescribeMacro{\ffifthroot}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=frequently used roots as radicals\\
+ \cs{cuberoot}\marg{arg} or \cs{fourthroot}\marg{arg} or \cs{fifthroot}\marg{arg}
+ or \cs{fsqrt}\marg{arg} or \cs{fcuberoot}\marg{arg} or \cs{ffourthroot}\marg{arg}
+ or \cs{ffifthroot}\marg{arg}}
+\cuberoot{x} or \fourthroot{x} or \fifthroot{x} or \fsqrt{x}
+or \fcuberoot{x} or \ffourthroot{x} or \ffifthroot{x}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\relgamma}
+% \DescribeMacro{\frelgamma}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expressions for relativistic gamma factor\\
+ \cs{relgamma}\marg{arg} or \cs{frelgamma}\marg{arg}}
+\relgamma{\magvect{v}} or \relgamma{(0.5c)} \\
+\frelgamma{\magvect{v}} or \frelgamma{(0.5c)}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\oosqrtomxs}
+% \DescribeMacro{\oosqrtomx}
+% \DescribeMacro{\ooomx}
+% \DescribeMacro{\ooopx}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expressions convenient for numerically evaluating \(\gamma\)\\
+ \cs{oosqrtomxs}\marg{arg} (\textit{one over square root of one minus x squared})\\
+ \cs{oosqrtomx}\marg{arg} (\textit{one over square root of one minus x})\\
+ \cs{ooomx}\marg{arg} (\textit{one over one minus x})\\
+ \cs{ooopx}\marg{arg} (\textit{one over one plus x})}
+\oosqrtomxs{0.22} \\
+\oosqrtomx{0.22} \\
+\ooomx{0.22} \\
+\ooopx{0.11}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \subsection{Custom Operators}
+%
+% \DescribeMacro{\isequals}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets \textit{test-for-equality} operator \\
+ \cs{isequals}}
+5 \isequals 3
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\wordoperator}
+% \DescribeMacro{\pwordoperator}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=typesets two lines of tiny text to be use as an
+ operator without using mathematical symbols\\
+ \cs{wordoperator}\marg{firstline}\marg{secondline}\\
+ \cs{pwordoperator}\marg{firstline}\marg{secondline}}
+\wordoperator{added}{to} \\
+\pwordoperator{added}{to}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\definedas}
+% \DescribeMacro{\associated}
+% \DescribeMacro{\adjustedby}
+% \DescribeMacro{\earlierthan}
+% \DescribeMacro{\laterthan}
+% \DescribeMacro{\forevery}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=frequently used word operators \\
+ \cs{definedas} or \cs{associated} or \cs{adjustedby} or \cs{earlierthan} or
+ \cs{laterthan} or \cs{forevery}}
+\definedas or \associated or \adjustedby \\
+\earlierthan or \laterthan or \forevery
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\pdefinedas}
+% \DescribeMacro{\passociated}
+% \DescribeMacro{\padjustedby}
+% \DescribeMacro{\pearlierthan}
+% \DescribeMacro{\platerthan}
+% \DescribeMacro{\pforevery}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=frequently used word operators with parentheses \\
+ \cs{pdefinedas} or \cs{passociated} or \cs{padjustedby} or \cs{pearlierthan} or
+ \cs{platerthan} or \cs{pforevery}}
+\pdefinedas or \passociated or \padjustedby \\
+\pearlierthan or \platerthan or \pforevery
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\defines}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=\textit{defines} or \textit{defined by} operator \\
+ \cs{defines}}
+\vect{p} \defines \(\gamma m\)\vect{v}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\inframe}
+% \ntodo[Suggestion]{Make the arrow's length fixed.}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=operator for indicating the coordinate representation of
+ a vector in a particular reference frame denoted by a capital letter\\
+ \cs{inframe}\oarg{frame}}
+\vect{p} \inframe[S] \momentum{\mivector{1,2,3}} \\
+\vect{p} \inframe[S'] \momentum{\mivector{\sqrt{14},0,0}}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\associates}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=\textit{associated with} or \textit{associates with}
+ operator (for verbal concepts) \\
+ \cs{associates}}
+kinetic energy \associates velocity
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\becomes}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=\textit{becomes} operator \\
+ \cs{becomes}}
+\(\gamma m\)\vect{v} \becomes \(m\)\vect{v}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\rrelatedto}
+% \DescribeMacro{\lrelatedto}
+% \DescribeMacro{\brelatedto}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=operators for directional mathematical relationships
+ without mathematical notation \\
+ \cs{rrelatedto}\marg{loperation} \\
+ \cs{lrelatedto}\marg{roperation} \\
+ \cs{brelatedto}\marg{loperation}\marg{roperation}}
+(flux ratio) \rrelatedto{taking logarithm} (mag diff) \\
+(flux ratio) \lrelatedto{exponentiation} (mag diff) \\
+(mag diff) \brelatedto{taking logarithm}{exponentiation}(flux ratio)
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Commands Specific to \mi}
+%
+% \DescribeMacro{\momprinciple}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=momentum principle \\
+ \cs{LHSmomprinciple} or \cs{RHSmomprinciple} or \cs{momprinciple}}
+\LHSmomprinciple \\
+\RHSmomprinciple \\
+\momprinciple
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\energyprinciple}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=energy principle \\
+ \cs{LHSenergyprinciple} or \cs{RHSenergyprinciple} or \cs{energyprinciple}}
+\LHSenergyprinciple \\
+\RHSenergyprinciple \\
+\energyprinciple
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\angularmomprinciple}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=angular momentum principle \\
+ \cs{LHSangularmomprinciple} or \cs{RHSangularmomprinciple} or \cs{angularmomprinciple}}
+\LHSangularmomprinciple \\
+\RHSangularmomprinciple \\
+\angularmomprinciple
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\gravinteraction}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for gravitational interaction \\
+ \cs{gravinteraction}}
+\gravinteraction
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\elecinteraction}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=xxpression for electric interaction \\
+ \cs{elecinteraction}}
+\elecinteraction
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Efieldofparticle}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for electric field of a particle \\
+ \cs{Efieldofparticle}}
+\Efieldofparticle
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Bfieldofparticle}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for magnetic field of a particle \\
+ \cs{Bfieldofparticle}}
+\Bfieldofparticle
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Esys}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for energy of system \\
+ \cs{Esys}}
+\Esys
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Us}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for spring potential energy \\
+ \cs{Us}}
+\Us
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ug}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for gravitational potential energy \\
+ \cs{Ug}}
+\Ug
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ue}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for electric potential energy \\
+ \cs{Ue}}
+\Ue
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ktrans}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for translational kinetic energy \\
+ \cs{Ktrans}}
+\Ktrans
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Krot}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for rotational kinetic energy \\
+ \cs{Krot}}
+\Krot
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Eparticle}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for particle energy \\
+ \cs{Eparticle}}
+\Eparticle
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Einternal}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for internal energy \\
+ \cs{Einternal}}
+\Einternal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Erest}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for rest energy \\
+ \cs{Erest}}
+\Erest
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Echem}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for chemical energy \\
+ \cs{Echem}}
+\Echem
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Etherm}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for thermal energy \\
+ \cs{Etherm}}
+\Etherm
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Evib}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for vibrational energy \\
+ \cs{Evib}}
+\Evib
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ephoton}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for photon energy \\
+ \cs{Ephoton}}
+\Ephoton
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DUs}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in spring potential energy \\
+ \cs{DUs}}
+\DUs
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DUg}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in gravitational potential energy \\
+ \cs{DUg}}
+\DUg
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\DUe}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in electric potential energy \\
+ \cs{DUe}}
+\DUe
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DKtrans}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in translational kinetic energy \\
+ \cs{DKtrans}}
+\DKtrans
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DKrot}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in rotational kinetic energy \\
+ \cs{DKrot}}
+\DKrot
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DEparticle}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in particle energy \\
+ \cs{DEparticle}}
+\DEparticle
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DEinternal}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in internal energy \\
+ \cs{DEinternal}}
+\DEinternal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\DErest}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in rest energy \\
+ \cs{DErest}}
+\DErest
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DEchem}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in chemical energy \\
+ \cs{DEchem}}
+\DEchem
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DEtherm}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in thermal energy \\
+ \cs{DEtherm}}
+\DEtherm
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DEvib}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in vibrational energy \\
+ \cs{DEvib}}
+\DEvib
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\DEphoton}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for change in photon energy \\
+ \cs{DEphoton}}
+\DEphoton
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Usfinal}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for final spring potential energy \\
+ \cs{Usfinal}}
+\Usfinal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Usinitial}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for initial spring potential energy \\
+ \cs{Usinitial}}
+\Usfinal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ugfinal}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for final gravitational potential energy \\
+ \cs{Ugfinal}}
+\Ugfinal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Uginitial}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for initial gravitational potential energy \\
+ \cs{Uginitial}}
+\Ugfinal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\Uefinal}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for final electric potential energy \\
+ \cs{Uefinal}}
+\Uefinal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Ueinitial}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=expression for initial electric potential energy \\
+ \cs{Ueinitial}}
+\Uefinal
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\ks}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=symbol for spring stiffness \\
+ \cs{ks}}
+\ks
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\Fnet}
+% \DescribeMacro{\Fnetext}
+% \DescribeMacro{\Fnetsys}
+% \DescribeMacro{\Fsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=various symbols for net force \\
+ \cs{Fnet} or \cs{Fnetext} or \cs{Fnetsys} or \cs{Fsub}\marg{label}}
+\Fnet or \Fnetext or \Fnetsys or \Fsub{ball,bat}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+%
+% \DescribeMacro{\Tnet}
+% \DescribeMacro{\Tnetext}
+% \DescribeMacro{\Tnetsys}
+% \DescribeMacro{\Tsub}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=various symbols for net torque \\
+ \cs{Tnet} or \cs{Tnetext} or \cs{Tnetsys} or \cs{Tsub}\marg{label}}
+\Tnet or \Tnetext or \Tnetsys or \Tsub{ball,bat}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\vpythonline}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=single line of VPython code used inline\\
+ \cs{vpythonline}\marg{vpythoncode}}
+\vpythonline{from visual import *}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeEnv{vpythonblock}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=environment for a block of VPython code\\
+ \cs{begin\{vpythonblock\}}\\
+ \meta{vpythoncode}\\
+ \cs{end\{vpythonblock\}}}
+\begin{vpythonblock}
+ from visual import *
+ sphere(center=pos(1,2,3),color=color.green)
+ MyArrow=arrow(pos=earth.pos, axis=fscale*Fnet, color=color.green)
+ print ("arrow.pos = "), arrow.pos
+\end{vpythonblock}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\vpythonfile}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=file in the current directory containing VPython code\\
+ \cs{vpythonfile}\meta{filename}}
+\vpythonfile{vdemo.py}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Boxes and Environments}
+%
+% \DescribeMacro{\emptyanswer}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only, title=empty space for filling answer boxes so
+ there is nothing to see\\ \cs{emptyanswer}\oarg{wdth}\oarg{hght}}
+\emptyanswer[0.75][0.2]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeEnv{activityanswer}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=main environment for typesetting boxed answers\\
+ \cs{begin\{activityanswer\}}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}
+ \\
+ \meta{content}\\
+ \cs{end\{activityanswer\}}}
+\begin{activityanswer}
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+ Morbi commodo, ipsum sed pharetra gravida, orci magna
+ rhoncus neque, id pulvinar odio lorem non turpis. Nullam
+ sit amet enim.
+\end{activityanswer}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{adjactivityanswer}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=like \cs{activityanswer} but adjusts vertically to
+ tightly surround text\\
+\cs{begin\{adjactivityanswer\}}
+\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght} \\
+ \meta{content}\\
+ \cs{end\{adjactivityanswer\}}}
+\begin{adjactivityanswer}
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi
+ commodo, ipsum sed pharetra gravida, orci magna rhoncus neque,
+ id pulvinar odio lorem non turpis. Nullam sit amet enim.
+ Suspendisse id velit vitae ligula volutpat condimentum. Aliquam
+ erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero.
+ Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam,
+ nunc eget euismod ullamcorper, lectus nunc ullamcorper orci,
+ fermentum bibendum enim nibh eget ipsum. Donec porttitor ligula
+ eu dolor. Maecenas vitae nulla consequat libero cursus venenatis.
+ Nam magna enim, accumsan eu, blandit sed, blandit a, eros.
+\end{adjactivityanswer}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\emptybox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=provides a fixed-size box with optional text\\
+ \cs{emptybox}\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}}
+\emptybox[Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque,
+id pulvinar odio lorem non turpis. Nullam sit amet enim.]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\adjemptybox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=like \cs{emptybox} but adjusts vertically to tightly surround
+ text\\
+\cs{adjemptybox}\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}}
+\adjemptybox[Lorem ipsum dolor sit amet, consectetuer adipiscing
+elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus
+neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\answerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=wrapper for \cs{emptybox}\\
+\cs{answerbox}\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}}
+\answerbox[Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
+Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque,
+id pulvinar odio lorem non turpis. Nullam sit amet enim.]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\adjanswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=wrapper for \cs{adjemptybox}\\
+\cs{adjanswerbox}\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}}
+\adjanswerbox[Lorem ipsum dolor sit amet, consectetuer adipiscing
+elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus
+neque, id pulvinar odio lorem non turpis. Nullam sit amet enim.]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\smallanswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=answer box with height 0.10 that of current \cs{textheight}
+ and width 0.90 that of current \cs{linewidth}\\
+ \cs{smallanswerbox}\oarg{txt}\oarg{bgclr}}
+\smallanswerbox[][red]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\mediumanswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=answer box with height 0.20 that of current \cs{textheight}
+ and width 0.90 that of current \cs{linewidth}\\
+ \cs{mediumanswerbox}\oarg{txt}\oarg{bgclr}}
+\mediumanswerbox[][lightgray]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\largeanswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=answer box with height 0.25 that of current
+\cs{textheight} and width 0.90 that of current \cs{linewidth} (too large to show here)\\
+ \cs{largeanswerbox}\oarg{txt}\oarg{bgclr}}
+\largeanswerbox[][lightgray]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeMacro{\largeranswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=answer box with height 0.33 that of current
+\cs{textheight} and width 0.90 that of current \cs{linewidth} (too large to show here)\\
+ \cs{largreanswerbox}\oarg{txt}\oarg{bgclr}}
+\largreanswerbox[][lightgray]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\hugeanswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=answer box with height 0.50 that of current
+\cs{textheight} and width 0.90 that of current \cs{linewidth} (too large to show here)\\
+ \cs{hugeanswerbox}\oarg{txt}\oarg{bgclr}}
+\hugeanswerbox[][lightgray]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\hugeranswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=answer box with height 0.75 that of current
+\cs{textheight} and width 0.90 that of current \cs{linewidth} (too large to show here)\\
+ \cs{hugeranswerbox}\oarg{txt}\oarg{bgclr}}
+\hugeranswerbox[][lightgray]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\fullpageanswerbox}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=answer box with height 1.00 that of current
+\cs{textheight} and width 0.90 that of current \cs{linewidth} (too large to show here)\\
+ \cs{fullpageanswerbox}\oarg{txt}\oarg{bgclr}}
+\fullpageanswerbox[][lightgray]
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{miinstructornote}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=environment for highlighting notes to instructors\\
+ \cs{begin\{miinstructornote\}}\\
+ \meta{content}\\
+ \cs{end\{{miinstructornote}\}}}
+\begin{miinstructornote}
+ Nunc auctor bibendum eros. Maecenas porta accumsan mauris. Etiam
+ enim enim, elementum sed, bibendum quis, rhoncus non, metus. Fusce
+ neque dolor, adipiscing sed, consectetuer et, lacinia sit amet,
+ quam. Suspendisse wisi quam, consectetuer in, blandit sed,
+ suscipit eu, eros. Etiam ligula enim, tempor ut, blandit nec,
+ mollis eu, lectus. Nam cursus. Vivamus iaculis. Aenean risus
+ purus, pharetra in, blandit quis, gravida a, turpis. Donec nisl.
+ Aenean eget mi. Fusce mattis est id diam. Phasellus faucibus
+ interdum sapien.
+\end{miinstructornote}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{mistudentnote}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=environment for highlighting notes to students\\
+ \cs{begin\{studentnote\}}\\
+ \meta{content}\\
+ \cs{end\{{studentnote}\}}}
+\begin{mistudentnote}
+ Nunc auctor bibendum eros. Maecenas porta accumsan mauris. Etiam
+ enim enim, elementum sed, bibendum quis, rhoncus non, metus. Fusce
+ neque dolor, adipiscing sed, consectetuer et, lacinia sit amet,
+ quam. Suspendisse wisi quam, consectetuer in, blandit sed,
+ suscipit eu, eros. Etiam ligula enim, tempor ut, blandit nec,
+ mollis eu, lectus. Nam cursus. Vivamus iaculis. Aenean risus
+ purus, pharetra in, blandit quis, gravida a, turpis. Donec nisl.
+ Aenean eget mi. Fusce mattis est id diam. Phasellus faucibus
+ interdum sapien.
+\end{mistudentnote}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{miderivation}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=fancy environment for mathematical derivations based on
+ |align| environment\\
+ \cs{begin\{miderivation\}}\\
+ \meta{content}\\
+ \cs{end\{miderivation\}}}
+\begin{miderivation}
+ \gamma &= \relgamma{\magvect{v}}
+ && \text{given} \\
+ \msup{\gamma}{2}&= \ooomx{\msup{(\frac{\magvect{v}}{c})}{2}}
+ &&\text{square both sides}\\
+ \frac{1}{\msup{\gamma}{2}}&=1-\msup{(\frac{\magvect{v}}{c})}{2}
+ &&\text{reciprocal of
+ both sides} \\
+ \msup{(\frac{\magvect{v}}{c})}{2}&=1-\frac{1}{\msup{\gamma}{2}}
+ &&\text{rearrange} \\
+ \frac{\magvect{v}}{c}&=\sqrt{1-\frac{1}{\msup{\gamma}{2}}}
+ &&\text{square root of both sides}
+\end{miderivation}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{bwinstructornote}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=environment for highlighting notes to instructors\\
+ \cs{begin\{bwinstructornote\}}\\
+ \meta{content}\\
+ \cs{end\{{bwinstructornote}\}}}
+\begin{bwinstructornote}
+ Nunc auctor bibendum eros. Maecenas porta accumsan mauris. Etiam
+ enim enim, elementum sed, bibendum quis, rhoncus non, metus. Fusce
+ neque dolor, adipiscing sed, consectetuer et, lacinia sit amet,
+ quam. Suspendisse wisi quam, consectetuer in, blandit sed,
+ suscipit eu, eros. Etiam ligula enim, tempor ut, blandit nec,
+ mollis eu, lectus. Nam cursus. Vivamus iaculis. Aenean risus
+ purus, pharetra in, blandit quis, gravida a, turpis. Donec nisl.
+ Aenean eget mi. Fusce mattis est id diam. Phasellus faucibus
+ interdum sapien.
+\end{bwinstructornote}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{bwstudentnote}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=environment for highlighting notes to students\\
+ \cs{begin\{bwstudentnote\}}\\
+ \meta{content}\\
+ \cs{end\{{bwstudentnote}\}}}
+\begin{bwstudentnote}
+ Nunc auctor bibendum eros. Maecenas porta accumsan mauris. Etiam
+ enim enim, elementum sed, bibendum quis, rhoncus non, metus. Fusce
+ neque dolor, adipiscing sed, consectetuer et, lacinia sit amet,
+ quam. Suspendisse wisi quam, consectetuer in, blandit sed,
+ suscipit eu, eros. Etiam ligula enim, tempor ut, blandit nec,
+ mollis eu, lectus. Nam cursus. Vivamus iaculis. Aenean risus
+ purus, pharetra in, blandit quis, gravida a, turpis. Donec nisl.
+ Aenean eget mi. Fusce mattis est id diam. Phasellus faucibus
+ interdum sapien.
+\end{bwstudentnote}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \DescribeEnv{bwderivation}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=fancy environment for mathematical derivations based on
+ |align| environment\\
+ \cs{begin\{bwderivation\}}\\
+ \meta{content}\\
+ \cs{end\{bwderivation\}}}
+\begin{bwderivation}
+ \gamma &= \relgamma{\magvect{v}}
+ && \text{given} \\
+ \msup{\gamma}{2}&= \ooomx{\msup{(\frac{\magvect{v}}{c})}{2}}
+ &&\text{square both sides}\\
+ \frac{1}{\msup{\gamma}{2}}&=1-\msup{(\frac{\magvect{v}}{c})}{2}
+ &&\text{reciprocal of
+ both sides} \\
+ \msup{(\frac{\magvect{v}}{c})}{2}&=1-\frac{1}{\msup{\gamma}{2}}
+ &&\text{rearrange} \\
+ \frac{\magvect{v}}{c}&=\sqrt{1-\frac{1}{\msup{\gamma}{2}}}
+ &&\text{square root of both sides}
+\end{bwderivation}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Miscellaneous Commands}
+%
+% \DescribeMacro{\checkpoint}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=centered checkpoint for student discussion\\
+ \cs{checkpoint}}
+\checkpoint
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\image}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{listing only,title=centered figure displayed actual size with
+ caption\\ \cs{image}\marg{imagefilename}\marg{caption}}
+\image{satellite.pdf}{Photograph of satellite}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \DescribeMacro{\sneakyone}
+%\iffalse
+%<*example>
+%\fi
+\begin{tcblisting}{title=shows factors dividing to a sneaky one\\
+ \cs{sneakyone}\marg{thing}}
+\sneakyone{\m}
+\end{tcblisting}
+%\iffalse
+%</example>
+%\fi
+%
+% \newpage
+% \subsection{Experimental Commands}
+% Commands defined in this section are not guaranteed to work consistently and are
+% included for experimental uses only. They may or may not exist in future releases.
+% Most are an attempt to simplify existing commands
+% \ntodo[Question]{Should the subscript or component come first?}
+% for subscripted vectors.
+%
+%\begin{center}
+%\begin{tabular}{ccc}
+% \multicolumn{2}{l}{Experimental Syntax} & Existing Syntax \\
+% \hline \\
+% \verb|\vecto{E}| & \vecto{E} & \verb|\vect{E}| \\
+% \verb|\vecto{E}[ball]| & \vecto{E}[ball] & \verb|\vectsub{E}{ball}| \\
+% \verb|\compvecto{E}{y}| & \compvecto{E}{y} & \verb|\compvect{E}{y}| \\
+% \verb|\compvecto{E}[ball]{x}|&\compvecto{E}[ball]{x}&\verb|\compvectsub{E}{ball}{x}| \\
+% \verb|\scompsvecto{E}| & \scompsvecto{E} & \verb|\scompsvect{E}| \\
+% \verb|\scompsvecto{E}[ball]|&\scompsvecto{E}[ball] & \verb|\scompsvectsub{E}{ball}| \\
+% \verb|\compposo{y}| & \compposo{y} & \verb|\comppos{y}| \\
+% \verb|\compposo[ball]{y}| & \compposo[ball]{y} & \verb|\comppossub{ball}{y}| \\
+% \verb|\scompsposo| & \scompsposo & \verb|\scompspos| \\
+% \verb|\scompsposo[ball]| & \scompsposo[ball] & \verb|\scompspossub{ball}|
+%\end{tabular}
+%\end{center}
+%
+% \StopEventually{}
+%
+% \newpage
+% \section{Source Code}
+%
+% \iffalse
+%<*package>
+% \fi
+% Note the packages that must be present.
+% \begin{macrocode}
+\RequirePackage[intlimits]{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{bigints}
+\RequirePackage{cancel}
+\RequirePackage[leftbars,color]{changebar}
+\RequirePackage[dvipsnames]{xcolor}
+\RequirePackage{environ}
+\RequirePackage{etoolbox}
+\RequirePackage{extarrows}
+\RequirePackage{filehook}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{graphicx}
+\RequirePackage{epstopdf}
+\RequirePackage{textcomp}
+\RequirePackage{letltxmacro}
+\RequirePackage{listings}
+\RequirePackage[framemethod=TikZ]{mdframed}
+\RequirePackage[amssymb,cdot,derivedinbase,derived,thickqspace]{SIunits}
+\RequirePackage{suffix}
+\RequirePackage{xargs}
+\RequirePackage{xparse}
+\RequirePackage{xspace}
+\RequirePackage{ifthen}
+\RequirePackage{calligra}
+\DeclareMathAlphabet{\mathcalligra}{T1}{calligra}{m}{n}
+\DeclareFontShape{T1}{calligra}{m}{n}{<->s*[2.2]callig15}{}
+\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `basename #1 .tif`.png}
+\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
+\usetikzlibrary{shadows}
+\definecolor{vpythoncolor}{rgb}{0.95,0.95,0.95}
+\newcommand{\lstvpython}{\lstset{language=Python,numbers=left,numberstyle=\tiny,
+ backgroundcolor=\color{vpythoncolor},upquote=true,breaklines}}
+\newboolean{@optitalicvectors}
+\newboolean{@optdoubleabsbars}
+\newboolean{@optbaseunits}
+\newboolean{@optdrvdunits}
+\setboolean{@optitalicvectors}{false}
+\setboolean{@optdoubleabsbars}{false}
+\setboolean{@optbaseunits}{false}
+\setboolean{@optdrvdunits}{false}
+\DeclareOption{italicvectors}{\setboolean{@optitalicvectors}{true}}
+\DeclareOption{doubleabsbars}{\setboolean{@optdoubleabsbars}{true}}
+\DeclareOption{baseunits}{\setboolean{@optbaseunits}{true}}
+\DeclareOption{drvdunits}{\setboolean{@optdrvdunits}{true}}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \newpage
+% \noindent This block of code corrects conflicts with SIunits.
+% \begin{macrocode}
+\AtBeginOfPackageFile*{SIunits}{%
+ \csundef{power}
+ \csundef{square}
+ \newcommand*{\square}[1]{\ensuremath{\mathrm{#1}^{2}}}
+ \renewcommand*{\squared}{\ensuremath{^{\mathrm{2}}}}
+ \renewcommand*{\cubic}[1]{\ensuremath{\mathrm{#1}^{3}}}
+ \renewcommand*{\cubed}{\ensuremath{^{\mathrm{3}}}}
+ \renewcommand*{\fourth}[1]{\ensuremath{\mathrm{#1}^{4}}}
+ \renewcommand*{\reciprocal}[1]{\ensuremath{\mathrm{#1}^{\SIminus1}}}
+ \renewcommand*{\rp}{\ensuremath{^{\mathrm{\SIminus1}}}}
+ \renewcommand*{\rpsquare}[1]{\ensuremath{\mathrm{#1}^{\SIminus2}}}
+ \renewcommand*{\rpsquared}{\ensuremath{^{\mathrm{\SIminus2}}}}
+ \renewcommand*{\rpcubic}[1]{\ensuremath{\mathrm{#1}^{\SIminus3}}}
+ \renewcommand*{\rpcubed}{\ensuremath{^{\mathrm{\SIminus3}}}}
+ \renewcommand*{\rpfourth}[1]{\ensuremath{\mathrm{#1}^{\SIminus4}}}
+ \typeout{mandi: SIunits conflicts fixed, but don't use \protect\square\space.}
+}%
+% \end{macrocode}
+%
+% \begin{macro}{\newphysicsquantity}
+% \begin{macro}{\newphysicsconstant}
+% \begin{macro}{\hereusebaseunit}
+% \begin{macro}{\hereusedrvdunit}
+% \begin{macro}{\hereusetradunit}
+% \begin{macro}{\usebaseunit}
+% \begin{macro}{\usedrvdunit}
+% \begin{macro}{\usetradunit}
+% \begin{macro}{\perpusebaseunit}
+% \begin{macro}{\perpusedrvdunit}
+% \begin{macro}{\perpusetradunit}
+% Define a new named physics quantity or physical constant and commands for
+% selecting units. My thanks to Ulrich Diez for contributing this code.
+% \begin{macrocode}
+\newcommand\mi@exchangeargs[2]{#2#1}%
+\newcommand\mi@name{}%
+\long\def\mi@name#1#{\romannumeral0\mi@innername{#1}}%
+\newcommand\mi@innername[2]{%
+ \expandafter\mi@exchangeargs\expandafter{\csname#2\endcsname}{#1}}%
+\begingroup
+\@firstofone{%
+ \endgroup
+ \newcommand\mi@forkifnull[3]{%
+ \romannumeral\iffalse{\fi\expandafter\@secondoftwo\expandafter
+ {\expandafter{\string#1}\expandafter\@secondoftwo\string}%
+ \expandafter\@firstoftwo\expandafter{\iffalse}\fi0 #3}{0 #2}}}%
+\newcommand\selectbaseunit[3]{#1}
+\newcommand\selectdrvdunit[3]{#2}
+\newcommand\selecttradunit[3]{#3}
+\newcommand\selectunit{}
+\newcommand\perpusebaseunit{\let\selectunit=\selectbaseunit}
+\newcommand\perpusedrvdunit{\let\selectunit=\selectdrvdunit}
+\newcommand\perpusetradunit{\let\selectunit=\selecttradunit}
+\newcommand\hereusebaseunit[1]{%
+ \begingroup\perpusebaseunit#1\endgroup}%
+\newcommand\hereusedrvdunit[1]{%
+ \begingroup\perpusedrvdunit#1\endgroup}%
+\newcommand\hereusetradunit[1]{%
+ \begingroup\perpusetradunit#1\endgroup}%
+\newenvironment{usebaseunit}{\perpusebaseunit}{}%
+\newenvironment{usedrvdunit}{\perpusedrvdunit}{}%
+\newenvironment{usetradunit}{\perpusetradunit}{}%
+\newcommand*\newphysicsquantity{\definephysicsquantity{\newcommand}}
+\newcommand*\redefinephysicsquantity{\definephysicsquantity{\renewcommand}}
+\newcommandx\definephysicsquantity[5][4=,5=]{%
+ \innerdefinewhatsoeverquantityfork{#3}{#4}{#5}{#1}{#2}{}{[1]}{##1}}%
+\newcommand*\newphysicsconstant{\definephysicsconstant{\newcommand}}
+\newcommand*\redefinephysicsconstant{\definephysicsconstant{\renewcommand}}
+\newcommandx\definephysicsconstant[7][6=,7=]{%
+ \innerdefinewhatsoeverquantityfork{#5}{#6}{#7}{#1}{#2}{#3}{}{#4}}%
+\newcommand\innerdefinewhatsoeverquantityfork[3]{%
+ \expandafter\innerdefinewhatsoeverquantity\romannumeral0%
+ \mi@forkifnull{#3}{\mi@forkifnull{#2}{{#1}}{{#2}}{#1}}%
+ {\mi@forkifnull{#2}{{#1}}{{#2}}{#3}}{#1}}%
+\newcommand\innerdefinewhatsoeverquantity[8]{%
+ \mi@name#4{#5}#7{\ensuremath{\unit{#8}{\selectunit{#3}{#1}{#2}}}}%
+ \mi@name#4{#5baseunit}#7{\ensuremath{\unit{#8}{#3}}}%
+ \mi@name#4{#5drvdunit}#7{\ensuremath{\unit{#8}{#1}}}%
+ \mi@name#4{#5tradunit}#7{\ensuremath{\unit{#8}{#2}}}%
+ \mi@name#4{#5onlyunit}{\ensuremath{\selectunit{#3}{#1}{#2}}}%
+ \mi@name#4{#5onlybaseunit}{\ensuremath{#3}}%
+ \mi@name#4{#5onlydrvdunit}{\ensuremath{#1}}%
+ \mi@name#4{#5onlytradunit}{\ensuremath{#2}}%
+ \mi@name#4{#5value}#7{\ensuremath{#8}}%
+ \mi@forkifnull{#7}{%
+ \ifx#4\renewcommand\mi@name\let{#5mathsymbol}=\relax\fi
+ \mi@name\newcommand{#5mathsymbol}{\ensuremath{#6}}}{}}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \noindent This block of code processes the options.
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\typeout{mandi: You'll get italic vector kernels.}}
+ {\typeout{mandi: You'll get Roman vector kernels.}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\typeout{mandi: You'll get double absolute value bars.}}
+ {\typeout{mandi: You'll get single absolute value bars.}}
+\ifthenelse{\boolean{@optbaseunits}}
+ {\perpusebaseunit %
+ \typeout{mandi: You'll get base units.}}
+ {\ifthenelse{\boolean{@optdrvdunits}}
+ {\perpusedrvdunit %
+ \typeout{mandi: You'll get derived units.}}
+ {\perpusetradunit %
+ \typeout{mandi: You'll get traditional units.}}}
+% \end{macrocode}
+%
+% \noindent This block of code makes parentheses adjustable.
+% \begin{macrocode}
+\def\resetMathstrut@{%
+ \setbox\z@\hbox{%
+ \mathchardef\@tempa\mathcode`\[\relax
+ \def\@tempb##1"##2##3{\the\textfont"##3\char"}%
+ \expandafter\@tempb\meaning\@tempa \relax
+ }%
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@}
+\begingroup
+ \catcode`(\active \xdef({\left\string(}
+ \catcode`)\active \xdef){\right\string)}
+\endgroup
+\mathcode`(="8000 \mathcode`)="8000
+\typeout{mandi: parentheses made adjustable in math mode.}
+% \end{macrocode}
+%
+% \noindent This block of code fixes square root symbol.
+% \begin{macrocode}
+\let\oldr@@t\r@@t
+\def\r@@t#1#2{%
+\setbox0=\hbox{\(\oldr@@t#1{#2\,}\)}\dimen0=\ht0
+\advance\dimen0-0.2\ht0
+\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
+{\box0\lower0.4pt\box2}}
+\LetLtxMacro{\oldsqrt}{\sqrt}
+\renewcommand*{\sqrt}[2][\relax]{\oldsqrt[#1]{#2}}
+\typeout{mandi: square root symbol fixed.}
+% \end{macrocode}
+%
+% \begin{macro}{\m}
+% SI base unit of length or spatial displacement
+% \begin{macrocode}
+\newcommand{\m}{\metre}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kg}
+% SI base unit of mass
+% \begin{macrocode}
+\newcommand{\kg}{\kilogram}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\s}
+% SI base unit of time or temporal displacement
+% \begin{macrocode}
+\newcommand{\s}{\second}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\A}
+% SI base unit of electric current
+% \begin{macrocode}
+\newcommand{\A}{\ampere}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\K}
+% SI base unit of thermodynamic temperature
+% \begin{macrocode}
+\newcommand{\K}{\kelvin}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mol}
+% SI base unit of amount
+% \begin{macrocode}
+\newcommand{\mol}{\mole}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cd}
+% SI base unit of luminous intensity
+% \begin{macrocode}
+\newcommand{\cd}{\candela}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\displacement}
+% \begin{macrocode}
+\newphysicsquantity{displacement}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mass}
+% \begin{macrocode}
+\newphysicsquantity{mass}{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\duration}
+% \begin{macrocode}
+\newphysicsquantity{duration}{\s}[\s][\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\current}
+% \begin{macrocode}
+\newphysicsquantity{current}{\A}[\A][\A]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\temperature}
+% \begin{macrocode}
+\newphysicsquantity{temperature}{\K}[\K][\K]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\amount}
+% \begin{macrocode}
+\newphysicsquantity{amount}{\mol}[\mol][\mol]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\luminous}
+% \begin{macrocode}
+\newphysicsquantity{luminous}{\cd}[\cd][\cd]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\planeangle}
+% \begin{macrocode}
+\newphysicsquantity{planeangle}{\m\usk\reciprocal\m}[\radian][\radian]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\solidangle}
+% \begin{macrocode}
+\newphysicsquantity{solidangle}{\m\squared\usk\rpsquare\m}[\steradian][\steradian]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\indegrees}
+% \begin{macrocode}
+\newcommand{\indegrees}[1]{\ensuremath{\unit{#1}{\degree}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\inarcminutes}
+% \begin{macrocode}
+\newcommand{\inarcminutes}[1]{\ensuremath{\unit{#1}{\arcminute}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\inarcseconds}
+% \begin{macrocode}
+\newcommand{\inarcseconds}[1]{\ensuremath{\unit{#1}{\arcsecond}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ineV}
+% \begin{macrocode}
+\newcommand{\ineV}[1]{\ensuremath{\unit{#1}{\electronvolt}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\inAU}
+% \begin{macrocode}
+\newcommand{\inAU}[1]{\ensuremath{\unit{#1}{AU}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\velocityc}
+% \begin{macrocode}
+\newcommand{\velocityc}[1]{\ensuremath{#1c}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\velocity}
+% \begin{macrocode}
+\newphysicsquantity{velocity}{\m\usk\reciprocal\s}[\m\usk\reciprocal\s][\m\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acceleration}
+% \begin{macrocode}
+\newphysicsquantity{acceleration}{\m\usk\s\rpsquared}[\newton\per\kg][\m\per\s\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\gamman}
+% \begin{macrocode}
+\newcommand{\gamman}[1]{\ensuremath{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\momentum}
+% \begin{macrocode}
+\newphysicsquantity{momentum}{\m\usk\kg\usk\reciprocal\s}[\newton\usk\s][\kg\usk\m\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\impulse}
+% \begin{macrocode}
+\newphysicsquantity{impulse}{\m\usk\kg\usk\reciprocal\s}[\newton\usk\s][\kg\usk\m\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\force}
+% \begin{macrocode}
+\newphysicsquantity{force}{\m\usk\kg\usk\s\rpsquared}[\newton][\newton]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\springstiffness}
+% \begin{macrocode}
+\newphysicsquantity{springstiffness}{\kg\usk\s\rpsquared}[\newton\per\m][\newton\per\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\springstretch}
+% \begin{macrocode}
+\newphysicsquantity{springstretch}{\m}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\area}
+% \begin{macrocode}
+\newphysicsquantity{area}{\m\squared}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\volume}
+% \begin{macrocode}
+\newphysicsquantity{volume}{\cubic\m}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\linearmassdensity}
+% \begin{macrocode}
+\newphysicsquantity{linearmassdensity}{\reciprocal\m\usk\kg}[\kg\per\m][\kg\per\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\areamassdensity}
+% \begin{macrocode}
+\newphysicsquantity{areamassdensity}{\m\rpsquared\usk\kg}[\kg\per\m\squared]
+[\kg\per\m\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\volumemassdensity}
+% \begin{macrocode}
+\newphysicsquantity{volumemassdensity}{\m\rpcubed\usk\kg}[\kg\per\m\cubed]
+[\kg\per\m\cubed]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\youngsmodulus}
+% \begin{macrocode}
+\newphysicsquantity{youngsmodulus}{\reciprocal\m\usk\kg\usk\s\rpsquared}
+[\newton\per\m\squared][\pascal]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\work}
+% \begin{macrocode}
+\newphysicsquantity{work}{\m\squared\usk\kilogram\usk\s\rpsquared}[\joule]
+[\newton\usk\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\energy}
+% \begin{macrocode}
+\newphysicsquantity{energy}{\m\squared\usk\kilogram\usk\s\rpsquared}[\joule]
+[\newton\usk\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\power}
+% \begin{macrocode}
+\newphysicsquantity{power}{\m\squared\usk\kg\usk\s\rpcubed}[\watt][\joule\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\angularvelocity}
+% \begin{macrocode}
+\newphysicsquantity{angularvelocity}{\radian\usk\reciprocal\s}[\radian\per\s]
+[\radian\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\angularacceleration}
+% \begin{macrocode}
+\newphysicsquantity{angularacceleration}{\radian\usk\s\rpsquared}[\radian\per\s\squared]
+[\radian\per\s\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\angularmomentum}
+% \begin{macrocode}
+\newphysicsquantity{angularmomentum}{\m\squared\usk\kg\usk\reciprocal\s}[\joule\usk\s]
+[\kg\usk\m\squared\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\momentofinertia}
+% \begin{macrocode}
+\newphysicsquantity{momentofinertia}{\m\squared\usk\kg}[\joule\usk\s\squared]
+[\kg\usk\m\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\torque}
+% \begin{macrocode}
+\newphysicsquantity{torque}{\m\squared\usk\kg\usk\s\rpsquared}[\joule\per\radian]
+[\newton\usk\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\entropy}
+% \begin{macrocode}
+\newphysicsquantity{entropy}{\m\squared\usk\kilogram\usk\s\rpsquared\usk\reciprocal\K}
+[\joule\per\K][\joule\per\K]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\wavelength}
+% \begin{macrocode}
+\newphysicsquantity{wavelength}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\wavenumber}
+% \begin{macrocode}
+\newphysicsquantity{wavenumber}{\reciprocal\m}[\per\m][\per\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\frequency}
+% \begin{macrocode}
+\newphysicsquantity{frequency}{\reciprocal\s}[\hertz][\hertz]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\angularfrequency}
+% \begin{macrocode}
+\newphysicsquantity{angularfrequency}{\radian\usk\reciprocal\s}[\radian\per\s]
+[\radian\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\charge}
+% \begin{macrocode}
+\newphysicsquantity{charge}{\A\usk\s}[\coulomb][\coulomb]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\permittivity}
+% \begin{macrocode}
+\newphysicsquantity{permittivity}{\m\rpcubed\usk\reciprocal\kg\usk\s^{4}\usk\A\squared}
+[\farad\per\m][\coulomb\squared\per\newton\usk\m\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\permeability}
+% \begin{macrocode}
+\newphysicsquantity{permeability}{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}
+[\henry\per\m][\tesla\usk\m\per\A]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electricfield}
+% \begin{macrocode}
+\newphysicsquantity{electricfield}{\m\usk\kg\usk\s\rpcubed\usk\reciprocal\A}[\volt\per\m]
+[\newton\per\coulomb]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\electricdipolemom}
+% \begin{macrocode}
+\newphysicsquantity{electricdipolemom}{\m\usk\s\usk\A}[\coulomb\usk\m][\coulomb\usk\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magneticfield}
+% \begin{macrocode}
+\newphysicsquantity{magneticfield}{\kg\usk\s\rpsquared\usk\reciprocal\A}[\tesla]
+[\newton\per\coulomb\usk(\m\per\s)]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cmagneticfield}
+% \begin{macrocode}
+\newphysicsquantity{cmagneticfield}{\m\usk\kg\usk\s\rpcubed\usk\reciprocal\A}[\volt\per\m]
+[\newton\per\coulomb]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\lv}
+% \begin{macro}{\rv}
+% \begin{macrocode}
+\newcommand{\lv}{\ensuremath{\left\langle}}
+\newcommand{\rv}{\ensuremath{\right\rangle}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\symvect}
+% \begin{macrocode}
+\newcommand{\symvect}{\mivector}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ncompsvect}
+% \begin{macrocode}
+\newcommand{\ncompsvect}{\mivector}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magvectncomps}
+% Written in LaTeX3
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\magvectncomps}{ m O{} }
+ {%
+ \sum_of_squares:nn { #1 }{ #2 }
+ }%
+
+\cs_new:Npn \sum_of_squares:nn #1 #2
+ {%
+ \tl_if_empty:nTF { #2 }
+ {%
+ \clist_set:Nn \l_tmpa_clist { #1 }
+ \ensuremath{%
+ \sqrt{(\clist_use:Nnnn \l_tmpa_clist { )^2+( } { )^2+( } { )^2+( } )^2 }
+ }%
+ }%
+ {%
+ \clist_set:Nn \l_tmpa_clist { #1 }
+ \ensuremath{%
+ \sqrt{(\clist_use:Nnnn \l_tmpa_clist {\;{ #2 })^2+(} {\;{ #2 })^2+(}
+ {\;{ #2 })^2+(} \;{ #2 })^2}
+ }%
+ }%
+ }%
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\zerovect}
+% \begin{macro}{\ncompszerovect}
+% \begin{macrocode}
+\newcommand{\zerovect}{\vect{0}}
+\newcommand{\ncompszerovect}{\mivector{0,0,0}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vect}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\vect}[1]{\ensuremath{\vec{#1}}}}
+ {\newcommand{\vect}[1]{\ensuremath{\vec{\mathrm{#1}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magvect}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magvect}[1]{\ensuremath{\magof{\vect{#1}}}}}
+ {\newcommand{\magvect}[1]{\ensuremath{\abs{\vect{#1}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dmagvect}
+% \begin{macro}{\Dmagvect}
+% \begin{macrocode}
+\newcommand{\dmagvect}[1]{\ensuremath{\dx{\magvect{#1}}}}
+\newcommand{\Dmagvect}[1]{\ensuremath{\Delta\!\magvect{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dirvect}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\dirvect}[1]{\ensuremath{\widehat{{#1}}}}}
+ {\newcommand{\dirvect}[1]{\ensuremath{\widehat{\mathrm{#1}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\compvect}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\compvect}[2]{\ensuremath{\ssub{#1}{\(#2\)}}}}
+ {\newcommand{\compvect}[2]{\ensuremath{\ssub{\mathrm{#1}}{\(#2\)}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompsvect}
+% \begin{macrocode}
+\newcommand{\scompsvect}[1]{\ensuremath{\lv
+ \compvect{#1}{x},
+ \compvect{#1}{y},
+ \compvect{#1}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magvectscomps}
+% \begin{macrocode}
+\newcommand{\magvectscomps}[1]{\ensuremath{\sqrt{
+ \msup{\compvect{#1}{x}}{2}+
+ \msup{\compvect{#1}{y}}{2}+
+ \msup{\compvect{#1}{z}}{2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dvect}
+% \begin{macro}{\Dvect}
+% \begin{macrocode}
+\newcommand{\dvect}[1]{\ensuremath{\mathrm{d}\vect{#1}}}
+\newcommand{\Dvect}[1]{\ensuremath{\Delta\vect{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dirdvect}
+% \begin{macro}{\dirDvect}
+% \begin{macrocode}
+\newcommand{\dirdvect}[1]{\ensuremath{\widehat{\dvect{#1}}}}
+\newcommand{\dirDvect}[1]{\ensuremath{\widehat{\Dvect{#1}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ddirvect}
+% \begin{macro}{\Ddirvect}
+% \begin{macrocode}
+\newcommand{\ddirvect}[1]{\ensuremath{\mathrm{d}\dirvect{E}}}
+\newcommand{\Ddirvect}[1]{\ensuremath{\Delta\dirvect{E}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\magdvect}
+% \begin{macro}{\magDvect}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magdvect}[1]{\ensuremath{\magof{\dvect{#1}}}}
+ \newcommand{\magDvect}[1]{\ensuremath{\magof{\Dvect{#1}}}}}
+ {\newcommand{\magdvect}[1]{\ensuremath{\abs{\dvect{#1}}}}
+ \newcommand{\magDvect}[1]{\ensuremath{\abs{\Dvect{#1}}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdvect}
+% \begin{macro}{\compDvect}
+% \begin{macrocode}
+\newcommand{\compdvect}[2]{\ensuremath{\mathrm{d}\compvect{#1}{#2}}}
+\newcommand{\compDvect}[2]{\ensuremath{\Delta\compvect{#1}{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsdvect}
+% \begin{macro}{\scompsDvect}
+% \begin{macrocode}
+\newcommand{\scompsdvect}[1]{\ensuremath{\lv
+ \compdvect{#1}{x},
+ \compdvect{#1}{y},
+ \compdvect{#1}{z}\rv}}
+\newcommand{\scompsDvect}[1]{\ensuremath{\lv
+ \compDvect{#1}{x},
+ \compDvect{#1}{y},
+ \compDvect{#1}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervect}
+% \begin{macro}{\Dervect}
+% \begin{macrocode}
+\newcommand{\dervect}[2]{\ensuremath{\frac{\dvect{#1}}{\mathrm{d}{#2}}}}
+\newcommand{\Dervect}[2]{\ensuremath{\frac{\Dvect{#1}}{\Delta{#2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdervect}
+% \begin{macro}{\compDervect}
+% \begin{macrocode}
+\newcommand{\compdervect}[3]{\ensuremath{\dbyd{\compvect{#1}{#3}}{#2}}}
+\newcommand{\compDervect}[3]{\ensuremath{\DbyD{\compvect{#1}{#3}}{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsdervect}
+% \begin{macro}{\scompsDervect}
+% \begin{macrocode}
+\newcommand{\scompsdervect}[2]{\ensuremath{\lv
+ \compdervect{#1}{#2}{x},
+ \compdervect{#1}{#2}{y},
+ \compdervect{#1}{#2}{z}\rv}}
+\newcommand{\scompsDervect}[2]{\ensuremath{\lv
+ \compDervect{#1}{#2}{x},
+ \compDervect{#1}{#2}{y},
+ \compDervect{#1}{#2}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\magdervect}
+% \begin{macro}{\magDervect}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magdervect}[2]{\ensuremath{\magof{\dervect{#1}{#2}}}}
+ \newcommand{\magDervect}[2]{\ensuremath{\magof{\Dervect{#1}{#2}}}}}
+ {\newcommand{\magdervect}[2]{\ensuremath{\abs{\dervect{#1}{#2}}}}
+ \newcommand{\magDervect}[2]{\ensuremath{\abs{\Dervect{#1}{#2}}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dermagvect}
+% \begin{macro}{\Dermagvect}
+% \begin{macrocode}
+\newcommand{\dermagvect}[2]{\ensuremath{\dbyd{\magvect{#1}}{#2}}}
+\newcommand{\Dermagvect}[2]{\ensuremath{\DbyD{\magvect{#1}}{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompspos}
+% \begin{macrocode}
+\newcommand{\scompspos}{\mivector{x,y,z}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\comppos}
+% \begin{macrocode}
+\newcommand{\comppos}[1]{\ensuremath{{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompsdpos}
+% \begin{macro}{\scompsDpos}
+% \begin{macrocode}
+\newcommand{\scompsdpos}{\mivector{\mathrm{d}x,\mathrm{d}y,\mathrm{d}z}}
+\newcommand{\scompsDpos}{\mivector{\Delta x,\Delta y,\Delta z}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdpos}
+% \begin{macro}{\compDpos}
+% \begin{macrocode}
+\newcommand{\compdpos}[1]{\ensuremath{\mathrm{d}{#1}}}
+\newcommand{\compDpos}[1]{\ensuremath{\Delta{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsderpos}
+% \begin{macro}{\scompsDerpos}
+% \begin{macrocode}
+\newcommand{\scompsderpos}[1]{\ensuremath{\lv
+ \frac{\mathrm{d}x}{\mathrm{d}{#1}},\frac{\mathrm{d}y}{\mathrm{d}{#1}},
+ \frac{\mathrm{d}z}{\mathrm{d}{#1}}\rv}}
+\newcommand{\scompsDerpos}[1]{\ensuremath{\lv
+ \frac{\Delta x}{\Delta{#1}},\frac{\Delta y}{\Delta{#1}},
+ \frac{\Delta z}{\Delta{#1}}\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compderpos}
+% \begin{macro}{\compDerpos}
+% \begin{macrocode}
+\newcommand{\compderpos}[2]{\ensuremath{\frac{\mathrm{d}{#1}}{\mathrm{d}{#2}}}}
+\newcommand{\compDerpos}[2]{\ensuremath{\frac{\Delta{#1}}{\Delta{#2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsub}
+% \begin{macrocode}
+\newcommand{\vectsub}[2]{\ensuremath{\ssub{\vect{#1}}{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\compvectsub}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\compvectsub}[3]{\ensuremath{\ssub{#1}{#2,\(#3\)}}}}
+ {\newcommand{\compvectsub}[3]{\ensuremath{\ssub{\mathrm{#1}}{#2,\(#3\)}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompsvectsub}
+% \begin{macrocode}
+\newcommand{\scompsvectsub}[2]{\ensuremath{\lv
+ \compvectsub{#1}{#2}{x},
+ \compvectsub{#1}{#2}{y},
+ \compvectsub{#1}{#2}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magvectsub}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magvectsub}[2]{\ensuremath{\magof{\vectsub{#1}{#2}}}}}
+ {\newcommand{\magvectsub}[2]{\ensuremath{\abs{\vectsub{#1}{#2}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magvectsubscomps}
+% \begin{macrocode}
+\newcommand{\magvectsubscomps}[2]{\ensuremath{\sqrt{
+ \msup{\compvectsub{#1}{#2}{x}}{2}+
+ \msup{\compvectsub{#1}{#2}{y}}{2}+
+ \msup{\compvectsub{#1}{#2}{z}}{2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dirvectsub}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\dirvectsub}[2]{\ensuremath{\ssub{\widehat{#1}}{#2}}}}
+ {\newcommand{\dirvectsub}[2]{\ensuremath{\ssub{\widehat{\mathrm{#1}}}{#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dvectsub}
+% \begin{macro}{\Dvectsub}
+% \begin{macrocode}
+\newcommand{\dvectsub}[2]{\ensuremath{\mathrm{d}\vectsub{#1}{#2}}}
+\newcommand{\Dvectsub}[2]{\ensuremath{\Delta\vectsub{#1}{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdvectsub}
+% \begin{macro}{\compDvectsub}
+% \begin{macrocode}
+\newcommand{\compdvectsub}[3]{\ensuremath{\mathrm{d}\compvectsub{#1}{#2}{#3}}}
+\newcommand{\compDvectsub}[3]{\ensuremath{\Delta\compvectsub{#1}{#2}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsdvectsub}
+% \begin{macro}{\scompsDvectsub}
+% \begin{macrocode}
+\newcommand{\scompsdvectsub}[2]{\ensuremath{\lv
+ \compdvectsub{#1}{#2}{x},
+ \compdvectsub{#1}{#2}{y},
+ \compdvectsub{#1}{#2}{z}\rv}}
+\newcommand{\scompsDvectsub}[2]{\ensuremath{\lv
+ \compDvectsub{#1}{#2}{x},
+ \compDvectsub{#1}{#2}{y},
+ \compDvectsub{#1}{#2}{z},\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dermagvectsub}
+% \begin{macro}{\Dermagvectsub}
+% \begin{macrocode}
+\newcommand{\dermagvectsub}[3]{\ensuremath{\dbyd{\magvectsub{#1}{#2}}{#3}}}
+\newcommand{\Dermagvectsub}[3]{\ensuremath{\DbyD{\magvectsub{#1}{#2}}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectsub}
+% \begin{macro}{\Dervectsub}
+% \begin{macrocode}
+\newcommand{\dervectsub}[3]{\ensuremath{\dbyd{\vectsub{#1}{#2}}{#3}}}
+\newcommand{\Dervectsub}[3]{\ensuremath{\DbyD{\vectsub{#1}{#2}}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\magdervectsub}
+% \begin{macro}{\magDervectsub}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magdervectsub}[3]{\ensuremath{\magof{\dervectsub{#1}{#2}{#3}}}}
+ \newcommand{\magDervectsub}[3]{\ensuremath{\magof{\Dervectsub{#1}{#2}{#3}}}}}
+ {\newcommand{\magdervectsub}[3]{\ensuremath{\abs{\dervectsub{#1}{#2}{#3}}}}
+ \newcommand{\magDervectsub}[3]{\ensuremath{\abs{\Dervectsub{#1}{#2}{#3}}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compdervectsub}
+% \begin{macro}{\compDervectsub}
+% \begin{macrocode}
+\newcommand{\compdervectsub}[4]{\ensuremath{\dbyd{\compvectsub{#1}{#2}{#4}}{#3}}}
+\newcommand{\compDervectsub}[4]{\ensuremath{\DbyD{\compvectsub{#1}{#2}{#4}}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsdervectsub}
+% \begin{macro}{\scompsDervectsub}
+% \begin{macrocode}
+\newcommand{\scompsdervectsub}[3]{\ensuremath{\lv
+ \compdervectsub{#1}{#2}{#3}{x},
+ \compdervectsub{#1}{#2}{#3}{y},
+ \compdervectsub{#1}{#2}{#3}{z}\rv}}
+\newcommand{\scompsDervectsub}[3]{\ensuremath{\lv
+ \compDervectsub{#1}{#2}{#3}{x},
+ \compDervectsub{#1}{#2}{#3}{y},
+ \compDervectsub{#1}{#2}{#3}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\comppossub}
+% \begin{macrocode}
+\newcommand{\comppossub}[2]{\ensuremath{\ssub{#2}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompspossub}
+% \begin{macrocode}
+\newcommand{\scompspossub}[1]{\ensuremath{\lv
+ \comppossub{#1}{x},
+ \comppossub{#1}{y},
+ \comppossub{#1}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\compdpossub}
+% \begin{macro}{\compDpossub}
+% \begin{macrocode}
+\newcommand{\compdpossub}[2]{\ensuremath{\mathrm{d}\comppossub{#1}{#2}}}
+\newcommand{\compDpossub}[2]{\ensuremath{\Delta\comppossub{#1}{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsdpossub}
+% \begin{macro}{\scompsDpossub}
+% \begin{macrocode}
+\newcommand{\scompsdpossub}[1]{\ensuremath{\lv
+ \compdpossub{#1}{x},
+ \compdpossub{#1}{y},
+ \compdpossub{#1}{z}\rv}}
+\newcommand{\scompsDpossub}[1]{\ensuremath{\lv
+ \compDpossub{#1}{x},
+ \compDpossub{#1}{y},
+ \compDpossub{#1}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\compderpossub}
+% \begin{macro}{\compDerpossub}
+% \begin{macrocode}
+\newcommand{\compderpossub}[3]{\ensuremath{\dbyd{\comppossub{#1}{#3}}{#2}}}
+\newcommand{\compDerpossub}[3]{\ensuremath{\DbyD{\comppossub{#1}{#3}}{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompsderpossub}
+% \begin{macro}{\scompsDerpossub}
+% \begin{macrocode}
+\newcommand{\scompsderpossub}[2]{\ensuremath{\lv
+ \compderpossub{#1}{#2}{x},
+ \compderpossub{#1}{#2}{y},
+ \compderpossub{#1}{#2}{z}\rv}}
+\newcommand{\scompsDerpossub}[2]{\ensuremath{\lv
+ \compDerpossub{#1}{#2}{x},
+ \compDerpossub{#1}{#2}{y},
+ \compDerpossub{#1}{#2}{z}\rv}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\relpos}
+% \begin{macrocode}
+\newcommand{\relpos}[1]{\ensuremath{\vectsub{r}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\relvel}
+% \begin{macrocode}
+\newcommand{\relvel}[1]{\ensuremath{\vectsub{v}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\relmom}
+% \begin{macrocode}
+\newcommand{\relmom}[1]{\ensuremath{\vectsub{p}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\relfor}
+% \begin{macrocode}
+\newcommand{\relfor}[1]{\ensuremath{\vectsub{F}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectdotvect}
+% \begin{macrocode}
+\newcommand{\vectdotvect}[2]{\ensuremath{{#1}\bullet{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectdotsvect}
+% \begin{macrocode}
+\newcommand{\vectdotsvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsvect{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectdotevect}
+% \begin{macrocode}
+\newcommand{\vectdotevect}[2]{\ensuremath{
+ \compvect{#1}{x}\compvect{#2}{x}+
+ \compvect{#1}{y}\compvect{#2}{y}+
+ \compvect{#1}{z}\compvect{#2}{z}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectdotspos}
+% \begin{macrocode}
+\newcommand{\vectdotspos}[1]{\ensuremath{\scompsvect{#1}\bullet\scompspos}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectdotepos}
+% \begin{macrocode}
+\newcommand{\vectdotepos}[1]{\ensuremath{
+ \compvect{#1}{x}\comppos{x}+
+ \compvect{#1}{y}\comppos{y}+
+ \compvect{#1}{z}\comppos{z}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectdotsdvect}
+% \begin{macro}{\vectdotsDvect}
+% \begin{macrocode}
+\newcommand{\vectdotsdvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsdvect{#2}}}
+\newcommand{\vectdotsDvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsDvect{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectdotedvect}
+% \begin{macro}{\vectdoteDvect}
+% \begin{macrocode}
+\newcommand{\vectdotedvect}[2]{\ensuremath{
+ \compvect{#1}{x}\compdvect{#2}{x}+
+ \compvect{#1}{y}\compdvect{#2}{y}+
+ \compvect{#1}{z}\compdvect{#2}{z}}}
+\newcommand{\vectdoteDvect}[2]{\ensuremath{
+ \compvect{#1}{x}\compDvect{#2}{x}+
+ \compvect{#1}{y}\compDvect{#2}{y}+
+ \compvect{#1}{z}\compDvect{#2}{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectdotsdpos}
+% \begin{macro}{\vectdotsDpos}
+% \begin{macrocode}
+\newcommand{\vectdotsdpos}[1]{\ensuremath{\scompsvect{#1}\bullet\scompsdpos}}
+\newcommand{\vectdotsDpos}[1]{\ensuremath{\scompsvect{#1}\bullet\scompsDpos}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectdotedpos}
+% \begin{macro}{\vectdoteDpos}
+% \begin{macrocode}
+\newcommand{\vectdotedpos}[1]{\ensuremath{
+ \compvect{#1}{x}\compdpos{x}+
+ \compvect{#1}{y}\compdpos{y}+
+ \compvect{#1}{z}\compdpos{z}}}
+\newcommand{\vectdoteDpos}[1]{\ensuremath{
+ \compvect{#1}{x}\compDpos{x}+
+ \compvect{#1}{y}\compDpos{y}+
+ \compvect{#1}{z}\compDpos{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotsvectsub}
+% \begin{macrocode}
+\newcommand{\vectsubdotsvectsub}[4]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsvectsub{#3}{#4}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotevectsub}
+% \begin{macrocode}
+\newcommand{\vectsubdotevectsub}[4]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compvectsub{#3}{#4}{x}+
+ \compvectsub{#1}{#2}{y}\compvectsub{#3}{#4}{y}+
+ \compvectsub{#1}{#2}{z}\compvectsub{#3}{#4}{z}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotsdvectsub}
+% \begin{macro}{\vectsubdotsDvectsub}
+% \begin{macrocode}
+\newcommand{\vectsubdotsdvectsub}[4]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsdvectsub{#3}{#4}}}
+\newcommand{\vectsubdotsDvectsub}[4]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsDvectsub{#3}{#4}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotedvectsub}
+% \begin{macro}{\vectsubdoteDvectsub}
+% \begin{macrocode}
+\newcommand{\vectsubdotedvectsub}[4]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compdvectsub{#3}{#4}{x}+
+ \compvectsub{#1}{#2}{y}\compdvectsub{#3}{#4}{y}+
+ \compvectsub{#1}{#2}{z}\compdvectsub{#3}{#4}{z}}}
+\newcommand{\vectsubdoteDvectsub}[4]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compDvectsub{#3}{#4}{x}+
+ \compvectsub{#1}{#2}{y}\compDvectsub{#3}{#4}{y}+
+ \compvectsub{#1}{#2}{z}\compDvectsub{#3}{#4}{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotsdvect}
+% \begin{macro}{\vectsubdotsDvect}
+% \begin{macrocode}
+\newcommand{\vectsubdotsdvect}[3]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsdvect{#3}}}
+\newcommand{\vectsubdotsDvect}[3]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsDvect{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotedvect}
+% \begin{macro}{\vectsubdoteDvect}
+% \begin{macrocode}
+\newcommand{\vectsubdotedvect}[3]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compdvect{#3}{x}+
+ \compvectsub{#1}{#2}{y}\compdvect{#3}{y}+
+ \compvectsub{#1}{#2}{z}\compdvect{#3}{z}}}
+\newcommand{\vectsubdoteDvect}[3]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compDvect{#3}{x}+
+ \compvectsub{#1}{#2}{y}\compDvect{#3}{y}+
+ \compvectsub{#1}{#2}{z}\compDvect{#3}{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotsdpos}
+% \begin{macro}{\vectsubdotsDpos}
+% \begin{macrocode}
+\newcommand{\vectsubdotsdpos}[2]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsdpos}}
+\newcommand{\vectsubdotsDpos}[2]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsDpos}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectsubdotedpos}
+% \begin{macro}{\vectsubdoteDpos}
+% \begin{macrocode}
+\newcommand{\vectsubdotedpos}[2]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compdpos{x}+
+ \compvectsub{#1}{#2}{y}\compdpos{y}+
+ \compvectsub{#1}{#2}{z}\compdpos{z}}}
+\newcommand{\vectsubdoteDpos}[2]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compDpos{x}+
+ \compvectsub{#1}{#2}{y}\compDpos{y}+
+ \compvectsub{#1}{#2}{z}\compDpos{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotsvect}
+% \begin{macro}{\Dervectdotsvect}
+% \begin{macrocode}
+\newcommand{\dervectdotsvect}[3]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompsvect{#3}}}
+\newcommand{\Dervectdotsvect}[3]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompsvect{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotevect}
+% \begin{macro}{\Dervectdotevect}
+% \begin{macrocode}
+\newcommand{\dervectdotevect}[3]{\ensuremath{
+ \compdervect{#1}{#2}{x}\compvect{#3}{x}+
+ \compdervect{#1}{#2}{y}\compvect{#3}{y}+
+ \compdervect{#1}{#2}{z}\compvect{#3}{z}}}
+\newcommand{\Dervectdotevect}[3]{\ensuremath{
+ \compDervect{#1}{#2}{x}\compvect{#3}{x}+
+ \compDervect{#1}{#2}{y}\compvect{#3}{y}+
+ \compDervect{#1}{#2}{z}\compvect{#3}{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectdotsdervect}
+% \begin{macro}{\vectdotsDervect}
+% \begin{macrocode}
+\newcommand{\vectdotsdervect}[3]{\ensuremath{
+ \scompsvect{#1}\bullet\scompsdervect{#2}{#3}}}
+\newcommand{\vectdotsDervect}[3]{\ensuremath{
+ \scompsvect{#1}\bullet\scompsDervect{#2}{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vectdotedervect}
+% \begin{macro}{\vectdoteDervect}
+% \begin{macrocode}
+\newcommand{\vectdotedervect}[3]{\ensuremath{
+ \compvect{#1}{x}\compdervect{#2}{#3}{x}+
+ \compvect{#1}{y}\compdervect{#2}{#3}{y}+
+ \compvect{#1}{z}\compdervect{#2}{#3}{z}}}
+\newcommand{\vectdoteDervect}[3]{\ensuremath{
+ \compvect{#1}{x}\compDervect{#2}{#3}{x}+
+ \compvect{#1}{y}\compDervect{#2}{#3}{y}+
+ \compvect{#1}{z}\compDervect{#2}{#3}{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotspos}
+% \begin{macro}{\Dervectdotspos}
+% \begin{macrocode}
+\newcommand{\dervectdotspos}[2]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompspos}}
+\newcommand{\Dervectdotspos}[2]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompspos}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotepos}
+% \begin{macro}{\Dervectdotepos}
+% \begin{macrocode}
+\newcommand{\dervectdotepos}[2]{\ensuremath{
+ \compdervect{#1}{#2}{x}\comppos{x}+
+ \compdervect{#1}{#2}{y}\comppos{y}+
+ \compdervect{#1}{#2}{z}\comppos{z}}}
+\newcommand{\Dervectdotepos}[2]{\ensuremath{
+ \compDervect{#1}{#2}{x}\comppos{x}+
+ \compDervect{#1}{#2}{y}\comppos{y}+
+ \compDervect{#1}{#2}{z}\comppos{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotsdvect}
+% \begin{macro}{\DervectdotsDvect}
+% \begin{macrocode}
+\newcommand{\dervectdotsdvect}[3]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompsdvect{#3}}}
+\newcommand{\DervectdotsDvect}[3]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompsDvect{#3}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotedvect}
+% \begin{macro}{\DervectdoteDvect}
+% \begin{macrocode}
+\newcommand{\dervectdotedvect}[3]{\ensuremath{
+ \compdervect{#1}{#2}{x}\compdvect{#3}{x}+
+ \compdervect{#1}{#2}{y}\compdvect{#3}{y}+
+ \compdervect{#1}{#2}{z}\compdvect{#3}{z}}}
+\newcommand{\DervectdoteDvect}[3]{\ensuremath{
+ \compDervect{#1}{#2}{x}\compDvect{#3}{x}+
+ \compDervect{#1}{#2}{y}\compDvect{#3}{y}+
+ \compDervect{#1}{#2}{z}\compDvect{#3}{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotsdpos}
+% \begin{macro}{\DervectdotsDpos}
+% \begin{macrocode}
+\newcommand{\dervectdotsdpos}[2]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompsdpos}}
+\newcommand{\DervectdotsDpos}[2]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompsDpos}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dervectdotedpos}
+% \begin{macro}{\DervectdoteDpos}
+% \begin{macrocode}
+\newcommand{\dervectdotedpos}[2]{\ensuremath{
+ \compdervect{#1}{#2}{x}\compdpos{x}+
+ \compdervect{#1}{#2}{y}\compdpos{y}+
+ \compdervect{#1}{#2}{z}\compdpos{z}}}
+\newcommand{\DervectdoteDpos}[2]{\ensuremath{
+ \compDervect{#1}{#2}{x}\compDpos{x}+
+ \compDervect{#1}{#2}{y}\compDpos{y}+
+ \compDervect{#1}{#2}{z}\compDpos{z}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ezero}
+% \begin{macro}{\eone}
+% \begin{macro}{\etwo}
+% \begin{macro}{\ethree}
+% \begin{macro}{\efour}
+% \begin{macro}{\ek}
+% \begin{macro}{\e}
+% \begin{macrocode}
+\newcommand{\ezero}{\ensuremath{\msub{\mathbf{e}}{0}}}
+\newcommand{\eone}{\ensuremath{\msub{\mathbf{e}}{1}}}
+\newcommand{\etwo}{\ensuremath{\msub{\mathbf{e}}{2}}}
+\newcommand{\ethree}{\ensuremath{\msub{\mathbf{e}}{3}}}
+\newcommand{\efour}{\ensuremath{\msub{\mathbf{e}}{4}}}
+\newcommand{\ek}[1]{\ensuremath{\msub{\mathbf{e}}{#1}}}
+\newcommand{\e}{\ek}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\uezero}
+% \begin{macro}{\ueone}
+% \begin{macro}{\uetwo}
+% \begin{macro}{\uethree}
+% \begin{macro}{\uefour}
+% \begin{macro}{\uek}
+% \begin{macro}{\ue}
+% \begin{macrocode}
+\newcommand{\uezero}{\ensuremath{\msub{\widehat{\mathbf{e}}}{0}}}
+\newcommand{\ueone}{\ensuremath{\msub{\widehat{\mathbf{e}}}{1}}}
+\newcommand{\uetwo}{\ensuremath{\msub{\widehat{\mathbf{e}}}{2}}}
+\newcommand{\uethree}{\ensuremath{\msub{\widehat{\mathbf{e}}}{3}}}
+\newcommand{\uefour}{\ensuremath{\msub{\widehat{\mathbf{e}}}{4}}}
+\newcommand{\uek}[1]{\ensuremath{\msub{\widehat{\mathbf{e}}}{#1}}}
+\newcommand{\ue}{\uek}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ezerozero}
+% \begin{macro}{\eoneone}
+% \begin{macro}{\eonetwo}
+% \begin{macro}{\eonethree}
+% \begin{macro}{\eonefour}
+% \begin{macro}{\etwoone}
+% \begin{macro}{\etwotwo}
+% \begin{macro}{\etwothree}
+% \begin{macro}{\etwofour}
+% \begin{macro}{\ethreeone}
+% \begin{macro}{\ethreetwo}
+% \begin{macro}{\ethreethree}
+% \begin{macro}{\ethreefour}
+% \begin{macro}{\efourone}
+% \begin{macro}{\efourtwo}
+% \begin{macro}{\efourthree}
+% \begin{macro}{\efourfour}
+% \begin{macrocode}
+\newcommand{\ezerozero}{\ek{00}}
+\newcommand{\eoneone}{\ek{11}}
+\newcommand{\eonetwo}{\ek{12}}
+\newcommand{\eonethree}{\ek{13}}
+\newcommand{\eonefour}{\ek{14}}
+\newcommand{\etwoone}{\ek{21}}
+\newcommand{\etwotwo}{\ek{22}}
+\newcommand{\etwothree}{\ek{23}}
+\newcommand{\etwofour}{\ek{24}}
+\newcommand{\ethreeone}{\ek{31}}
+\newcommand{\ethreetwo}{\ek{32}}
+\newcommand{\ethreethree}{\ek{33}}
+\newcommand{\ethreefour}{\ek{34}}
+\newcommand{\efourone}{\ek{41}}
+\newcommand{\efourtwo}{\ek{42}}
+\newcommand{\efourthree}{\ek{43}}
+\newcommand{\efourfour}{\ek{44}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\euzero}
+% \begin{macro}{\euone}
+% \begin{macro}{\eutwo}
+% \begin{macro}{\euthree}
+% \begin{macro}{\eufour}
+% \begin{macro}{\euk}
+% \begin{macro}{\eu}
+% \begin{macrocode}
+\newcommand{\euzero}{\ensuremath{\msup{\mathbf{e}}{0}}}
+\newcommand{\euone}{\ensuremath{\msup{\mathbf{e}}{1}}}
+\newcommand{\eutwo}{\ensuremath{\msup{\mathbf{e}}{2}}}
+\newcommand{\euthree}{\ensuremath{\msup{\mathbf{e}}{3}}}
+\newcommand{\eufour}{\ensuremath{\msup{\mathbf{e}}{4}}}
+\newcommand{\euk}[1]{\ensuremath{\msup{\mathbf{e}}{#1}}}
+\newcommand{\eu}{\euk}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \newpage
+% \begin{macro}{\euzerozero}
+% \begin{macro}{\euoneone}
+% \begin{macro}{\euonetwo}
+% \begin{macro}{\euonethree}
+% \begin{macro}{\euonefour}
+% \begin{macro}{\eutwoone}
+% \begin{macro}{\eutwotwo}
+% \begin{macro}{\eutwothree}
+% \begin{macro}{\eutwofour}
+% \begin{macro}{\euthreeone}
+% \begin{macro}{\euthreetwo}
+% \begin{macro}{\euthreethree}
+% \begin{macro}{\euthreefour}
+% \begin{macro}{\eufourone}
+% \begin{macro}{\eufourtwo}
+% \begin{macro}{\eufourthree}
+% \begin{macro}{\eufourfour}
+% \begin{macrocode}
+\newcommand{\euzerozero}{\euk{00}}
+\newcommand{\euoneone}{\euk{11}}
+\newcommand{\euonetwo}{\euk{12}}
+\newcommand{\euonethree}{\euk{13}}
+\newcommand{\euonefour}{\euk{14}}
+\newcommand{\eutwoone}{\euk{21}}
+\newcommand{\eutwotwo}{\euk{22}}
+\newcommand{\eutwothree}{\euk{23}}
+\newcommand{\eutwofour}{\euk{24}}
+\newcommand{\euthreeone}{\euk{31}}
+\newcommand{\euthreetwo}{\euk{32}}
+\newcommand{\euthreethree}{\euk{33}}
+\newcommand{\euthreefour}{\euk{34}}
+\newcommand{\eufourone}{\euk{41}}
+\newcommand{\eufourtwo}{\euk{42}}
+\newcommand{\eufourthree}{\euk{43}}
+\newcommand{\eufourfour}{\euk{44}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\gzero}
+% \begin{macro}{\gone}
+% \begin{macro}{\gtwo}
+% \begin{macro}{\gthree}
+% \begin{macro}{\gfour}
+% \begin{macro}{\gk}
+% \begin{macro}{\g}
+% \begin{macrocode}
+\newcommand{\gzero}{\ensuremath{\msub{\mathbf{\gamma}}{0}}}
+\newcommand{\gone}{\ensuremath{\msub{\mathbf{\gamma}}{1}}}
+\newcommand{\gtwo}{\ensuremath{\msub{\mathbf{\gamma}}{2}}}
+\newcommand{\gthree}{\ensuremath{\msub{\mathbf{\gamma}}{3}}}
+\newcommand{\gfour}{\ensuremath{\msub{\mathbf{\gamma}}{4}}}
+\newcommand{\gk}[1]{\ensuremath{\msub{\mathbf{\gamma}}{#1}}}
+\newcommand{\g}{\gk}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\gzerozero}
+% \begin{macro}{\goneone}
+% \begin{macro}{\gonetwo}
+% \begin{macro}{\gonethree}
+% \begin{macro}{\gonefour}
+% \begin{macro}{\gtwoone}
+% \begin{macro}{\gtwotwo}
+% \begin{macro}{\gtwothree}
+% \begin{macro}{\gtwofour}
+% \begin{macro}{\gthreeone}
+% \begin{macro}{\gthreetwo}
+% \begin{macro}{\gthreethree}
+% \begin{macro}{\gthreefour}
+% \begin{macro}{\gfourone}
+% \begin{macro}{\gfourtwo}
+% \begin{macro}{\gfourthree}
+% \begin{macro}{\gfourfour}
+% \begin{macrocode}
+\newcommand{\gzerozero}{\gk{00}}
+\newcommand{\goneone}{\gk{11}}
+\newcommand{\gonetwo}{\gk{12}}
+\newcommand{\gonethree}{\gk{13}}
+\newcommand{\gonefour}{\gk{14}}
+\newcommand{\gtwoone}{\gk{21}}
+\newcommand{\gtwotwo}{\gk{22}}
+\newcommand{\gtwothree}{\gk{23}}
+\newcommand{\gtwofour}{\gk{24}}
+\newcommand{\gthreeone}{\gk{31}}
+\newcommand{\gthreetwo}{\gk{32}}
+\newcommand{\gthreethree}{\gk{33}}
+\newcommand{\gthreefour}{\gk{34}}
+\newcommand{\gfourone}{\gk{41}}
+\newcommand{\gfourtwo}{\gk{42}}
+\newcommand{\gfourthree}{\gk{43}}
+\newcommand{\gfourfour}{\gk{44}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \newpage
+% \begin{macro}{\guzero}
+% \begin{macro}{\guone}
+% \begin{macro}{\gutwo}
+% \begin{macro}{\guthree}
+% \begin{macro}{\gufour}
+% \begin{macro}{\guk}
+% \begin{macro}{\gu}
+% \begin{macrocode}
+\newcommand{\guzero}{\ensuremath{\msup{\mathbf{\gamma}}{0}}}
+\newcommand{\guone}{\ensuremath{\msup{\mathbf{\gamma}}{1}}}
+\newcommand{\gutwo}{\ensuremath{\msup{\mathbf{\gamma}}{2}}}
+\newcommand{\guthree}{\ensuremath{\msup{\mathbf{\gamma}}{3}}}
+\newcommand{\gufour}{\ensuremath{\msup{\mathbf{\gamma}}{4}}}
+\newcommand{\guk}[1]{\ensuremath{\msup{\mathbf{\gamma}}{#1}}}
+\newcommand{\gu}{\guk}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\guzerozero}
+% \begin{macro}{\guoneone}
+% \begin{macro}{\guonetwo}
+% \begin{macro}{\guonethree}
+% \begin{macro}{\guonefour}
+% \begin{macro}{\gutwoone}
+% \begin{macro}{\gutwotwo}
+% \begin{macro}{\gutwothree}
+% \begin{macro}{\gutwofour}
+% \begin{macro}{\guthreeone}
+% \begin{macro}{\guthreetwo}
+% \begin{macro}{\guthreethree}
+% \begin{macro}{\guthreefour}
+% \begin{macro}{\gufourone}
+% \begin{macro}{\gufourtwo}
+% \begin{macro}{\gufourthree}
+% \begin{macro}{\gufourfour}
+% \begin{macrocode}
+\newcommand{\guzerozero}{\guk{00}}
+\newcommand{\guoneone}{\guk{11}}
+\newcommand{\guonetwo}{\guk{12}}
+\newcommand{\guonethree}{\guk{13}}
+\newcommand{\guonefour}{\guk{14}}
+\newcommand{\gutwoone}{\guk{21}}
+\newcommand{\gutwotwo}{\guk{22}}
+\newcommand{\gutwothree}{\guk{23}}
+\newcommand{\gutwofour}{\guk{24}}
+\newcommand{\guthreeone}{\guk{31}}
+\newcommand{\guthreetwo}{\guk{32}}
+\newcommand{\guthreethree}{\guk{33}}
+\newcommand{\guthreefour}{\guk{34}}
+\newcommand{\gufourone}{\guk{41}}
+\newcommand{\gufourtwo}{\guk{42}}
+\newcommand{\gufourthree}{\guk{43}}
+\newcommand{\gufourfour}{\guk{44}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\mivector}
+% Vectors formated as in M\&I, written in LaTeX3
+% \begin{macrocode}
+\ExplSyntaxOn
+\NewDocumentCommand{\mivector}{ O{,} m o }%
+ {%
+ \mi_vector:nn { #1 } { #2 }
+ \IfValueT{#3}{\;{#3}}
+ }%
+\seq_new:N \l__mi_list_seq
+\cs_new_protected:Npn \mi_vector:nn #1 #2
+{%
+ \ensuremath{%
+ \seq_set_split:Nnn \l__mi_list_seq { , } { #2 }
+ \int_compare:nF { \seq_count:N \l__mi_list_seq = 1 } { \left\langle }
+ \seq_use:Nnnn \l__mi_list_seq { #1 } { #1 } { #1 }
+ \int_compare:nF { \seq_count:N \l__mi_list_seq = 1 } { \right\rangle }
+ }%
+}%
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\colvector}
+% \begin{macro}{\rowvector}
+% Column and row vectors, written in LaTeX3
+% \begin{macrocode}
+\ExplSyntaxOn
+\seq_new:N \l__vector_arg_seq
+\cs_new_protected:Npn \vector_main:nnnn #1 #2 #3 #4
+ {%
+ \seq_set_split:Nnn \l__vector_arg_seq { #3 } { #4 }
+ \begin{#1matrix}
+ \seq_use:Nnnn \l__vector_arg_seq { #2 } { #2 } { #2 }
+ \end{#1matrix}
+ }%
+\NewDocumentCommand{\rowvector}{ O{,} m }
+ {%
+ \ensuremath{
+ \vector_main:nnnn { p } { \,\, } { #1 } { #2 }
+ }%
+ }%
+\NewDocumentCommand{\colvector}{ O{,} m }
+ {%
+ \ensuremath{
+ \vector_main:nnnn { p } { \\ } { #1 } { #2 }
+ }%
+ }%
+\ExplSyntaxOff
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scompscvect}
+% \begin{macrocode}
+\newcommandx{\scompscvect}[2][1,usedefault]{%
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \colvector{\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+ {%
+ \colvector{\msub{#2}{0},\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompsrvect}
+% \begin{macrocode}
+\newcommandx{\scompsrvect}[2][1,usedefault]{%
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \rowvector[,]{\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+ {%
+ \rowvector[,]{\msub{#2}{0},\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oofpez}
+% Coulomb constant
+% \begin{macrocode}
+\newphysicsconstant{oofpez}{\ensuremath{\frac{1}{\phantom{_o}4\pi\ssub{\epsilon}{o}}}}
+{\scin[9]{9}}{\ensuremath{\m\cubed\usk\kg\usk\s^{-4}\usk\A\rpsquared}}[\m\per\farad]
+[\newton\usk\m\squared\per\coulomb\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oofpezcs}
+% Coulomb constant (alternate)
+% \begin{macrocode}
+\newphysicsconstant{oofpezcs}{\ensuremath{\frac{1}{\phantom{_o}4\pi\ssub{\epsilon}{o}
+c^2\phantom{_o}}}}{\scin{-7}}{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}[\tesla\usk\m
+\squared][\newton\usk\s\squared\per\coulomb\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\epsz}
+% vacuum permittivity
+% \begin{macrocode}
+\newphysicsconstant{epsz}{\ensuremath{\ssub{\epsilon}{o}}}{\scin[9]{-12}}
+{\m\rpcubed\usk\reciprocal\kg\usk\s^{4}\usk\A\squared}[\farad\per\m]
+[\coulomb\squared\per\newton\usk\m\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mzofp}
+% Biot-Savart constant
+% \begin{macrocode}
+\newphysicsconstant{mzofp}{\ensuremath{\frac{\phantom{_oo}\ssub{\mu}{o}\phantom{_o}}
+{4\pi}}}{\scin{-7}}{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}[\henry\per\m]
+[\tesla\usk\m\per\A]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\muz}
+% vacuum permeability
+% \begin{macrocode}
+\newphysicsconstant{muz}{\ensuremath{\ssub{\mu}{o}}}{\scin[4\pi]{-7}}
+{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}[\henry\per\m][\tesla\usk\m\per\A]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kboltz}
+% Boltzmann constant
+% \begin{macrocode}
+\newphysicsconstant{kboltz}{\ensuremath{\ssub{k}{B}}}{\scin[1.38]{-23}}
+{\kg\usk\m\squared\usk\rpsquare\s\usk\reciprocal\K}[\joule\per\K][\joule\per\K]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\kboltznev}
+% Boltzmann constant (alternate)
+% \begin{macrocode}
+\newcommand{\kboltznev}{\ensuremath{\scin[8.62]{-5}{\eV\per\K}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\stefan}
+% Stefan-Boltzmann constant
+% \begin{macrocode}
+\newphysicsconstant{stefan}{\ensuremath{\sigma}}{\scin[5.67]{-8}}{\kg\usk\s\rpcubed\usk
+\K^{-4}}[\watt\per\m\squared\usk\K^4][\watt\per\m\squared\usk\K^4]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\planck}
+% Planck constant
+% \begin{macrocode}
+\newphysicsconstant{planck}{\ensuremath{h}}{\scin[6.62]{-34}}
+{\m\squared\usk\kg\usk\reciprocal\s}[\joule\usk\s][\kg\usk\m\squared\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\plancknev}
+% Planck constant (alternate)
+% \begin{macrocode}
+\newcommand{\plancknev}{\ensuremath{\scin[4.136]{-15}{\eV\usk\s}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\planckbar}
+% reduced Planck constant (Dirac constant)
+% \begin{macrocode}
+\newphysicsconstant{planckbar}{\ensuremath{\hbar}}{\scin[1.05]{-34}}
+{\m\squared\usk\kg\usk\reciprocal\s}[\joule\usk\s][\kg\usk\m\squared\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\planckbarnev}
+% reduced Planck constant (alternate)
+% \begin{macrocode}
+\newcommand{\planckbarnev}{\ensuremath{\scin[4.136]{-15}{\eV\usk\s}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Navogadro}
+% Avogadro constant
+% \begin{macrocode}
+\newphysicsconstant{Navogadro}{\ensuremath{\ssub{N}{A}}}{\scin[6.022]{23}}{\reciprocal
+\mol}[\reciprocal\mol][\reciprocal\mol]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\bigG}
+% universal gravitational constant
+% \begin{macrocode}
+\newphysicsconstant{bigG}{\ensuremath{G}}{\scin[6.67]{-11}}
+{\m\cubed\usk\reciprocal\kg\usk\s\rpsquared}[\joule\usk\m\per\kg\squared]
+[\newton\usk\m\squared\per\kg\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\littleg}
+% gravitational field strength at Earth's surface
+% \begin{macrocode}
+\newphysicsconstant{littleg}{\ensuremath{g}}{9.80}{\m\usk\s\rpsquared}[\newton\per\kg]
+[\m\per\s\squared]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\clight}
+% light's speed
+% \begin{macrocode}
+\newphysicsconstant{clight}{\ensuremath{c}}{\scin[3.00]{8}}{\m\usk\reciprocal\s}
+[\m\usk\reciprocal\s][\m\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\clightnfn}
+% light's speed (alternate)
+% \begin{macrocode}
+\newcommand{\clightnfn}{\ensuremath{\unit{1}{ft\per\nano\s}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ratom}
+% approximate atomic radius
+% \begin{macrocode}
+\newphysicsconstant{Ratom}{\ensuremath{\ssub{r}{atom}}}{\scin{-10}}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Mproton}
+% proton's mass
+% \begin{macrocode}
+\newphysicsconstant{Mproton}{\ensuremath{\ssub{m}{proton}}}{\scin[1.673]{-27}}{\kg}
+[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Mneutron}
+% neutron's mass
+% \begin{macrocode}
+\newphysicsconstant{Mneutron}{\ensuremath{\ssub{m}{neutron}}}{\scin[1.675]{-27}}
+{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Mhydrogen}
+% hydrogen atom's mass
+% \begin{macrocode}
+\newphysicsconstant{Mhydrogen}{\ensuremath{\ssub{m}{hydrogen}}}{\scin[1.673]{-27}}
+{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Melectron}
+% electron's mass
+% \begin{macrocode}
+\newphysicsconstant{Melectron}{\ensuremath{\ssub{m}{electron}}}{\scin[9.109]{-31}}
+{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\echarge}
+% charge quantum
+% \begin{macrocode}
+\newphysicsconstant{echarge}{\ensuremath{e}}{\scin[1.602]{-19}}{\A\usk\s}[\coulomb]
+[\coulomb]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Qelectron}
+% \begin{macro}{\qelectron}
+% electron's charge
+% \begin{macrocode}
+\newphysicsconstant{Qelectron}{\ensuremath{\ssub{Q}{electron}}}{-\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsconstant{qelectron}{\ensuremath{\ssub{q}{electron}}}{-\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Qproton}
+% \begin{macro}{\qproton}
+% proton's charge
+% \begin{macrocode}
+\newphysicsconstant{Qproton}{\ensuremath{\ssub{Q}{proton}}}{+\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsconstant{qproton}{\ensuremath{\ssub{q}{proton}}}{+\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\MEarth}
+% Earth's mass
+% \begin{macrocode}
+\newphysicsconstant{MEarth}{\ensuremath{\ssub{M}{Earth}}}{\scin[6]{24}}{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MMoon}
+% Moon's mass
+% \begin{macrocode}
+\newphysicsconstant{MMoon}{\ensuremath{\ssub{M}{Moon}}}{\scin[7]{22}}{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MSun}
+% Sun's mass
+% \begin{macrocode}
+\newphysicsconstant{MSun}{\ensuremath{\ssub{M}{Sun}}}{\scin[2]{30}}{\kg}[\kg][\kg]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\REarth}
+% Earth's radius
+% \begin{macrocode}
+\newphysicsconstant{REarth}{\ensuremath{\ssub{R}{Earth}}}{\scin[6.4]{6}}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RMoon}
+% Moon's radius
+% \begin{macrocode}
+\newphysicsconstant{RMoon}{\ensuremath{\ssub{R}{Moon}}}{\scin[1.75]{6}}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\RSun}
+% Sun's radius
+% \begin{macrocode}
+\newphysicsconstant{RSun}{\ensuremath{\ssub{R}{Sun}}}{\scin[7]{8}}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ESdist}
+% \begin{macro}{\SEdist}
+% Earth-Sun distance (Sun-Earth distance)
+% \begin{macrocode}
+\newphysicsconstant{ESdist}{\magvectsub{r}{ES}}{\scin[1.5]{11}}{\m}[\m][\m]
+\newphysicsconstant{SEdist}{\magvectsub{r}{SE}}{\scin[1.5]{11}}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\EMdist}
+% \begin{macro}{\MEdist}
+% Earth-Moon distance (Moon-Earth distance)
+% \begin{macrocode}
+\newphysicsconstant{EMdist}{\magvectsub{r}{EM}}{\scin[4]{8}}{\m}[\m][\m]
+\newphysicsconstant{MEdist}{\magvectsub{r}{ME}}{\scin[4]{8}}{\m}[\m][\m]
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lightyear}
+% \begin{macro}{\Lightyear}
+% \begin{macro}{\cyear}
+% \begin{macro}{\cyr}
+% \begin{macro}{\yyear}
+% \begin{macro}{\yr}
+% \begin{macro}{\parsec}
+% light year, year, and parsec
+% \begin{macrocode}
+\newcommand{\lightyear}{\ensuremath{\mathrm{ly}}}
+\newcommand{\Lightyear}{\ensuremath{\mathrm{LY}}}
+\newcommand{\cyear}{\ensuremath{c\usk\mathrm{year}}}
+\newcommand{\cyr}{\ensuremath{c\usk\mathrm{yr}}}
+\newcommand{\yyear}{\ensuremath{\mathrm{year}}}
+\newcommand{\yr}{\ensuremath{\mathrm{yr}}}
+\newcommand{\parsec}{\ensuremath{\mathrm{pc}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\LSun}
+% Sun's luminosity
+% \begin{macrocode}
+\newphysicsconstant{LSun}{\ensuremath{\ssub{L}{Sun}}}{\scin[4]{26}}
+ {\m\squared\usk\kg\usk\s\rpcubed}[\watt][\joule\per\s]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\TSun}
+% Sun's effective temperature
+% \begin{macrocode}
+\newphysicsconstant{TSun}{\ensuremath{\ssub{T}{Sun}}}{5800}{\K}[\K][\K]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\MagSun}
+% Sun's absolute magnitude
+% \begin{macrocode}
+\newphysicsconstant{MagSun}{\ensuremath{\ssub{M}{Sun}}}{+4.83}{}[][]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magSun}
+% Sun's apparent magnitude
+% \begin{macrocode}
+\newphysicsconstant{magSun}{\ensuremath{\ssub{m}{Sun}}}{-26.74}{}[][]
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Lstar}
+% \begin{macro}{\Lsolar}
+% stellar and solar luminosity
+% \begin{macrocode}
+\newcommand{\Lstar}[1][\(\star\)]{\ensuremath{\ssub{L}{#1}}}
+\newcommand{\Lsolar}{\ensuremath{\Lstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Tstar}
+% \begin{macro}{\Tsolar}
+% stellar and solar temperature
+% \begin{macrocode}
+\newcommand{\Tstar}[1][\(\star\)]{\ensuremath{\ssub{T}{#1}}}
+\newcommand{\Tsolar}{\ensuremath{\Tstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Rstar}
+% \begin{macro}{\Rsolar}
+% stellar and solar radius
+% \begin{macrocode}
+\newcommand{\Rstar}[1][\(\star\)]{\ensuremath{\ssub{R}{#1}}}
+\newcommand{\Rsolar}{\ensuremath{\Rstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Mstar}
+% \begin{macro}{\Msolar}
+% stellar and solar mass
+% \begin{macrocode}
+\newcommand{\Mstar}[1][\(\star\)]{\ensuremath{\ssub{M}{#1}}}
+\newcommand{\Msolar}{\ensuremath{\Mstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Fstar}
+% \begin{macro}{\fstar}
+% \begin{macro}{\FSun}
+% \begin{macro}{\fSun}
+% \begin{macro}{\Fsolar}
+% \begin{macro}{\fsolar}
+% stellar and solar fluxes
+% \begin{macrocode}
+\newcommand{\Fstar}[1][\(\star\)]{\ensuremath{\ssub{F}{#1}}}
+\newcommand{\fstar}[1][\(\star\)]{\ensuremath{\ssub{f}{#1}}}
+\newcommand{\FSun}{\ensuremath{\Fstar[Sun]}}
+\newcommand{\fSun}{\ensuremath{\fstar[Sun]}}
+\newcommand{\Fsolar}{\ensuremath{\Fstar[\(\odot\)]}}
+\newcommand{\fsolar}{\ensuremath{\fstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Magstar}
+% \begin{macro}{\magstar}
+% \begin{macro}{\Magsolar}
+% \begin{macro}{\magsolar}
+% stellar and solar magnitudes
+% \begin{macrocode}
+\newcommand{\Magstar}[1][\(\star\)]{\ensuremath{\ssub{M}{#1}}}
+\newcommand{\magstar}[1][\(\star\)]{\ensuremath{\ssub{m}{#1}}}
+\newcommand{\Magsolar}{\ensuremath{\Magstar[\(\odot\)]}}
+\newcommand{\magsolar}{\ensuremath{\magstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Dstar}
+% \begin{macro}{\dstar}
+% \begin{macro}{\Dsolar}
+% \begin{macro}{\dsolar}
+% stellar and solar distance
+% \begin{macrocode}
+\newcommand{\Dstar}[1][\(\star\)]{\ensuremath{\ssub{D}{#1}}}
+\newcommand{\dstar}[1][\(\star\)]{\ensuremath{\ssub{d}{#1}}}
+\newcommand{\Dsolar}{\ensuremath{\Dstar[\(\odot\)]}}
+\newcommand{\dsolar}{\ensuremath{\dstar[\(\odot\)]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\onehalf}
+% \begin{macro}{\onethird}
+% \begin{macro}{\onefourth}
+% \begin{macro}{\onefifth}
+% \begin{macro}{\onesixth}
+% \begin{macro}{\oneseventh}
+% \begin{macro}{\oneeighth}
+% \begin{macro}{\oneninth}
+% \begin{macro}{\onetenth}
+% \begin{macro}{\twothirds}
+% \begin{macro}{\twofifths}
+% \begin{macro}{\twosevenths}
+% \begin{macro}{\twoninths}
+% \begin{macro}{\threehalves}
+% \begin{macro}{\threefourths}
+% \begin{macro}{\threefifths}
+% \begin{macro}{\threesevenths}
+% \begin{macro}{\threeeighths}
+% \begin{macro}{\threetenths}
+% \begin{macro}{\fourthirds}
+% frequently used fractions
+% \begin{macrocode}
+\newcommand{\onehalf}{\ensuremath{\frac{1}{2}}\xspace}
+\newcommand{\onethird}{\ensuremath{\frac{1}{3}}\xspace}
+\newcommand{\onefourth}{\ensuremath{\frac{1}{4}}\xspace}
+\newcommand{\onefifth}{\ensuremath{\frac{1}{5}}\xspace}
+\newcommand{\onesixth}{\ensuremath{\frac{1}{6}}\xspace}
+\newcommand{\oneseventh}{\ensuremath{\frac{1}{7}}\xspace}
+\newcommand{\oneeighth}{\ensuremath{\frac{1}{8}}\xspace}
+\newcommand{\oneninth}{\ensuremath{\frac{1}{9}}\xspace}
+\newcommand{\onetenth}{\ensuremath{\frac{1}{10}}\xspace}
+\newcommand{\twothirds}{\ensuremath{\frac{2}{3}}\xspace}
+\newcommand{\twofifths}{\ensuremath{\frac{2}{5}}\xspace}
+\newcommand{\twosevenths}{\ensuremath{\frac{2}{7}}\xspace}
+\newcommand{\twoninths}{\ensuremath{\frac{2}{9}}\xspace}
+\newcommand{\threehalves}{\ensuremath{\frac{3}{2}}\xspace}
+\newcommand{\threefourths}{\ensuremath{\frac{3}{4}}\xspace}
+\newcommand{\threefifths}{\ensuremath{\frac{3}{5}}\xspace}
+\newcommand{\threesevenths}{\ensuremath{\frac{3}{7}}\xspace}
+\newcommand{\threeeighths}{\ensuremath{\frac{3}{8}}\xspace}
+\newcommand{\threetenths}{\ensuremath{\frac{3}{10}}\xspace}
+\newcommand{\fourthirds}{\ensuremath{\frac{4}{3}}\xspace}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dx}
+% variable of integration
+% \begin{macrocode}
+\newcommand{\dx}[1]{\ensuremath{\,\mathrm{d}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\evalfromto}
+% \begin{macrocode}
+\newcommand{\evalfromto}[3]{\ensuremath{\Bigg.{#1}\Bigg\rvert_{#2}^{#3}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\evalat}
+% \begin{macrocode}
+\newcommand{\evalat}[2]{\ensuremath{\Bigg.{#1}\Bigg\rvert_{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\evaluatedat}
+% \begin{macrocode}
+\newcommand{\evaluatedat}[1]{\ensuremath{\Bigg.\Bigg\rvert_{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\integral}
+% \begin{macro}{\Integral}
+% \begin{macrocode}
+\newcommandx{\integral}[4][1,2,usedefault]{\ensuremath{
+ \int_{\ifthenelse{\equal{#1}{}}{}{#4=#1}}^{\ifthenelse{\equal{#2}{}}{}{#4=#2}}}
+ {#3}\dx{#4}}
+\newcommandx{\Integral}[4][1,2,usedefault]{\ensuremath{
+ \bigint_{\ifthenelse{\equal{#1}{}}{}{#4=#1}}^{\ifthenelse{\equal{#2}{}}{}
+ {#4=#2}}}{#3}\dx{#4}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\opensurfintegral}
+% \begin{macro}{\opensurfIntegral}
+% \begin{macrocode}
+\newcommand{\opensurfintegral}[2]{\ensuremath{
+ \int\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{n}}\dx{A}}}
+\newcommand{\opensurfIntegral}[2]{\ensuremath{
+ \bigint\nolimits_{\mskip -25.00mu\displaystyle\mathbf{#1}}
+ \vectdotvect{\vect{#2}}{\dirvect{n}}
+ \dx{A}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\closedsurfintegral}
+% \begin{macro}{\closedsurfIntegral}
+% \begin{macrocode}
+\newcommand{\closedsurfintegral}[2]{\ensuremath{
+ \oint\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{n}}\dx{A}}}
+\newcommand{\closedsurfIntegral}[2]{\ensuremath{
+ \bigoint\nolimits_{\mskip -25.00mu\displaystyle\mathbf{#1}}\;\;
+ \vectdotvect{\vect{#2}}{\dirvect{n}}\dx{A}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\openlineintegral}
+% \begin{macro}{\openlineIntegral}
+% \begin{macrocode}
+\newcommand{\openlineintegral}[2]{\ensuremath{
+ \int\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{t}}
+ \dx{\ell}}}
+\newcommand{\openlineIntegral}[2]{\ensuremath{
+ \bigint\nolimits_{\mskip -25.00mu\displaystyle\mathbf{#1}}
+ \vectdotvect{\vect{#2}}{\dirvect{t}}\dx{\ell}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\closedlineintegral}
+% \begin{macro}{\closedlineIntegral}
+% \begin{macrocode}
+\newcommand{\closedlineintegral}[2]{\ensuremath{
+ \oint\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{t}}\dx{\ell}}}
+\newcommand{\closedlineIntegral}[2]{\ensuremath{
+ \bigoint\nolimits_{\mskip -25.00mu\displaystyle\mathbf {#1}}\;\;
+ \vectdotvect{\vect{#2}}{\dirvect{t}}\dx{\ell}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dbydt}
+% \begin{macro}{\DbyDt}
+% \begin{macrocode}
+\newcommandx{\dbydt}[1][1]{\ensuremath{\frac{\mathrm{d}{#1}}{\mathrm{d}t}}}
+\newcommandx{\DbyDt}[1][1]{\ensuremath{\frac{\Delta{#1}}{\Delta t}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ddbydt}
+% \begin{macro}{\DDbyDt}
+% \begin{macrocode}
+\newcommandx{\ddbydt}[1][1]{\ensuremath{\frac{\mathrm{d}^{2}{#1}}{\mathrm{d}t^{2}}}}
+\newcommandx{\DDbyDt}[1][1]{\ensuremath{\frac{\Delta^{2}{#1}}{\Delta t^{2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pbypt}
+% \begin{macrocode}
+\newcommandx{\pbypt}[1][1]{\ensuremath{\frac{\partial{#1}}{\partial t}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ppbypt}
+% \begin{macrocode}
+\newcommandx{\ppbypt}[1][1]{\ensuremath{\frac{\partial^{2}{#1}}{\partial t^{2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dbyd}
+% \begin{macro}{\DbyD}
+% \begin{macrocode}
+\newcommand{\dbyd}[2]{\ensuremath{\frac{\mathrm{d}{#1}}{\mathrm{d}{#2}}}}
+\newcommand{\DbyD}[2]{\ensuremath{\frac{\Delta{#1}}{\Delta{#2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ddbyd}
+% \begin{macro}{\DDbyD}
+% \begin{macrocode}
+\newcommand{\ddbyd}[2]{\ensuremath{\frac{\mathrm{d}^{2}{#1}}{\mathrm{d}{#2}^{2}}}}
+\newcommand{\DDbyD}[2]{\ensuremath{\frac{\Delta^{2}{#1}}{\Delta{#2}^{2}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pbyp}
+% \begin{macrocode}
+\newcommand{\pbyp}[2]{\ensuremath{\frac{\partial{#1}}{\partial{#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ppbyp}
+% \begin{macrocode}
+\newcommand{\ppbyp}[2]{\ensuremath{\frac{\partial^{2}{#1}}{\partial{#2}^{2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\seriesfofx}
+% \begin{macro}{\seriesexpx}
+% \begin{macro}{\seriessinx}
+% \begin{macro}{\seriescosx}
+% \begin{macro}{\seriestanx}
+% \begin{macro}{\seriesatox}
+% \begin{macro}{\serieslnoneplusx}
+% \begin{macro}{\binomialseries}
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\divergence}
+% \begin{macro}{\curl}
+% user must specify |\vect{}| around the argument to get arrows
+% \begin{macrocode}
+\newcommand{\divergence}[1]{\ensuremath{\vectdotvect{\nabla}{#1}}}
+\newcommand{\curl}[1]{\ensuremath{\nabla\times{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\diracdelta}
+% \begin{macrocode}
+\newcommand{\diracdelta}[1]{\ensuremath{\boldsymbol{\delta}\quant{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\asin}
+% \begin{macrocode}
+\DeclareMathOperator{\asin}{\sin^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acos}
+% \begin{macrocode}
+\DeclareMathOperator{\acos}{\cos^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\atan}
+% \begin{macrocode}
+\DeclareMathOperator{\atan}{\tan^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\asec}
+% \begin{macrocode}
+\DeclareMathOperator{\asec}{\sec^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acsc}
+% \begin{macrocode}
+\DeclareMathOperator{\acsc}{\csc^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acot}
+% \begin{macrocode}
+\DeclareMathOperator{\acot}{\cot^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sech}
+% \begin{macrocode}
+\DeclareMathOperator{\sech}{sech}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\csch}
+% \begin{macrocode}
+\DeclareMathOperator{\csch}{csch}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\asinh}
+% \begin{macrocode}
+\DeclareMathOperator{\asinh}{\sinh^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acosh}
+% \begin{macrocode}
+\DeclareMathOperator{\acosh}{\cosh^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\atanh}
+% \begin{macrocode}
+\DeclareMathOperator{\atanh}{\tanh^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\asech}
+% \begin{macrocode}
+\DeclareMathOperator{\asech}{\sech^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acsch}
+% \begin{macrocode}
+\DeclareMathOperator{\acsch}{\csch^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acoth}
+% \begin{macrocode}
+\DeclareMathOperator{\acoth}{\coth^{-1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sgn}
+% \begin{macrocode}
+\DeclareMathOperator{\sgn}{sgn}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dex}
+% \begin{macrocode}
+\DeclareMathOperator{\dex}{dex}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\eV}
+% \begin{macro}{\ev}
+% \begin{macrocode}
+\newcommand{\eV}{\electronvolt}
+\newcommand{\ev}{\electronvolt}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\emf}
+% \begin{macrocode}
+\newcommand{\emf}{\ensuremath{\mathrm{emf}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\logb}
+% \begin{macrocode}
+\newcommand{\logb}[1][\relax]{\ensuremath{\log_{_{#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cB}
+% \begin{macrocode}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\cB}{\ensuremath{c\mskip -5.00mu B}}}
+ {\newcommand{\cB}{\ensuremath{\textsf{c}\mskip -3.00mu\mathrm{B}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newpi}
+% \begin{macrocode}
+\newcommand{\newpi}{\ensuremath{\pi\mskip -7.8mu\pi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scripty}
+% \begin{macrocode}
+\newcommand{\scripty}[1]{\ensuremath{\mathcalligra{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\flux}
+% \begin{macrocode}
+\newcommandx{\flux}[1][1]{\ensuremath{\ssub{\Phi}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\abs}
+% \begin{macrocode}
+\newcommand{\abs}[1]{\ensuremath{\left\lvert{#1}\right\rvert}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\magof}
+% \begin{macrocode}
+\newcommand{\magof}[1]{\ensuremath{\left\lVert{#1}\right\rVert}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\dimsof}
+% \begin{macrocode}
+\newcommand{\dimsof}[1]{\ensuremath{\left[{#1}\right]}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\unitsof}
+% \begin{macrocode}
+\newcommand{\unitsof}[1]{\ensuremath{\left[{#1}\right]_{_{u}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\quant}
+% \begin{macro}{\bquant}
+% \begin{macrocode}
+\newcommand{\quant}[1]{\ensuremath{\left({#1}\right)}}
+\newcommand{\bquant}[1]{\ensuremath{\left[{#1}\right]}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\changein}
+% \begin{macro}{\Changein}
+% \begin{macrocode}
+\newcommand{\changein}[1]{\ensuremath{\delta{#1}}}
+\newcommand{\Changein}[1]{\ensuremath{\Delta{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\scin}
+% \begin{macro}{\ee}
+% \begin{macro}{\EE}
+% \begin{macrocode}
+\newcommandx{\scin}[3][1,3=\!\!,usedefault]{\ensuremath{
+ \ifthenelse{\equal{#1}{}}
+ {\unit{\msup{10}{#2}}{#3}}
+ {\unit{\msup{{#1}\times 10}{#2}}{#3}}}}
+\newcommand{\ee}[2]{\texttt{{#1}e{#2}}}
+\newcommand{\EE}[2]{\texttt{{#1}E{#2}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\dms}
+% \begin{macro}{\hms}
+% \begin{macro}{\clockreading}
+% \begin{macrocode}
+\newcommand{\dms}[3]{\ensuremath{\indegrees{#1}\inarcminutes{#2}\inarcseconds{#3}}}
+\newcommand{\hms}[3]{\ensuremath{{#1}^{\hour}{#2}^{\mathrm{m}}{#3}^{\s}}}
+\newcommand{\clockreading}{\hms}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\latitude}
+% \begin{macro}{\latitudeN}
+% \begin{macro}{\latitudeS}
+% \begin{macro}{\longitude}
+% \begin{macro}{\longitudeE}
+% \begin{macro}{\longitudeW}
+% \begin{macrocode}
+\newcommand{\latitude}[1]{\ensuremath{\unit{#1}{\degree}}}
+\newcommand{\latitudeN}[1]{\ensuremath{\unit{#1}{\degree\; N}}}
+\newcommand{\latitudeS}[1]{\ensuremath{\unit{#1}{\degree\; S}}}
+\newcommand{\longitude}[1]{\ensuremath{\unit{#1}{\degree}}}
+\newcommand{\longitudeE}[1]{\ensuremath{\unit{#1}{\degree\; E}}}
+\newcommand{\longitudeW}[1]{\ensuremath{\unit{#1}{\degree\; W}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ssub}
+% I have never liked \LaTeX's default subscript positioning, so I have this
+% command instead. There may be a better way of doing this.
+% \begin{macrocode}
+\newcommand{\ssub}[2]{\ensuremath{{#1}_{_{_{\mbox{\tiny{#2}}}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ssup}
+% I have never liked \LaTeX's default superscript positioning, so I have this
+% command instead. There may be a better way of doing this.
+% \begin{macrocode}
+\newcommand{\ssup}[2]{\ensuremath{{#1}^{^{^{\mbox{\tiny{#2}}}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ssud}
+% \begin{macrocode}
+\newcommand{\ssud}[3]{\ensuremath{{#1}^{^{^{\mbox{\tiny{#2}}}}}_{_{_{\mbox{\tiny{#3}}}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\msub}
+% I have never liked \LaTeX's default subscript positioning, so I have this
+% command instead. There may be a better way of doing this.
+% \begin{macrocode}
+\newcommand{\msub}[2]{\ensuremath{#1^{^{\scriptstyle{{}}}}_{_{_{\scriptstyle{#2}}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\msup}
+% I have never liked \LaTeX's default superscript positioning, so I have this
+% command instead. There may be a better way of doing this.
+% \begin{macrocode}
+\newcommand{\msup}[2]{\ensuremath{#1^{^{\scriptstyle{#2}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\msud}
+% \begin{macrocode}
+\newcommand{\msud}[3]{\ensuremath{#1^{^{\scriptstyle{#2}}}_{_{_{\scriptstyle{#3}}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\levicivita}
+% \begin{macrocode}
+\newcommand{\levicivita}[1]{\ensuremath{\msub{\varepsilon}{#1}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xaxis}
+% \begin{macro}{\yaxis}
+% \begin{macro}{\zaxis}
+% \begin{macro}{\naxis}
+% Coordinate axes.
+% \begin{macrocode}
+\newcommand{\xaxis}{\ensuremath{x\mbox{-axis }}}
+\newcommand{\yaxis}{\ensuremath{y\mbox{-axis }}}
+\newcommand{\zaxis}{\ensuremath{z\mbox{-axis }}}
+\newcommand{\naxis}[1]{\ensuremath{{#1}\mbox{-axis}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\xyplane}
+% \begin{macro}{\yzplane}
+% \begin{macro}{\zxplane}
+% \begin{macro}{\yxplane}
+% \begin{macro}{\zyplane}
+% \begin{macro}{\xzplane}
+% All permutations of planes formed by cartesian axes.
+% \begin{macrocode}
+\newcommand{\xyplane}{\ensuremath{xy\mbox{-plane }}}
+\newcommand{\yzplane}{\ensuremath{yz\mbox{-plane }}}
+\newcommand{\zxplane}{\ensuremath{zx\mbox{-plane }}}
+\newcommand{\yxplane}{\ensuremath{yx\mbox{-plane }}}
+\newcommand{\zyplane}{\ensuremath{zy\mbox{-plane }}}
+\newcommand{\xzplane}{\ensuremath{xz\mbox{-plane }}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cuberoot}
+% \begin{macro}{\fourthroot}
+% \begin{macro}{\fifthroot}
+% \begin{macro}{\fsqrt}
+% \begin{macro}{\fcuberoot}
+% \begin{macro}{\ffourthroot}
+% \begin{macro}{\ffifthroot}
+% Frequently used roots. Prepend |f| for fractional exponents.
+% \begin{macrocode}
+\newcommand{\cuberoot}[1]{\ensuremath{\sqrt[3]{#1}}}
+\newcommand{\fourthroot}[1]{\ensuremath{\sqrt[4]{#1}}}
+\newcommand{\fifthroot}[1]{\ensuremath{\sqrt[5]{#1}}}
+\newcommand{\fsqrt}[1]{\ensuremath{\msup{#1}{\onehalf}}}
+\newcommand{\fcuberoot}[1]{\ensuremath{\msup{#1}{\onethird}}}
+\newcommand{\ffourthroot}[1]{\ensuremath{\msup{#1}{\onefourth}}}
+\newcommand{\ffifthroot}[1]{\ensuremath{\msup{#1}{\onefifth}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\relgamma}
+% \begin{macro}{\frelgamma}
+% \begin{macrocode}
+\newcommand{\relgamma}[1]{\ensuremath{
+ \frac{1}{\sqrt{1-\msup{\quant{\frac{#1}{c}}}{2}}}}}
+\newcommand{\frelgamma}[1]{\ensuremath{
+ \msup{\quant{1-\frac{\msup{{#1}}{2}}{\msup{c}{2}}}}{-\onehalf}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\oosqrtomxs}
+% \begin{macrocode}
+\newcommand{\oosqrtomxs}[1]{\ensuremath{\frac{1}{\sqrt{1-\msup{#1}{2}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\oosqrtomx}
+% \begin{macrocode}
+\newcommand{\oosqrtomx}[1]{\ensuremath{\frac{1}{\sqrt{1-{#1}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ooomx}
+% \begin{macrocode}
+\newcommand{\ooomx}[1]{\ensuremath{\frac{1}{1-{#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ooopx}
+% \begin{macrocode}
+\newcommand{\ooopx}[1]{\ensuremath{\frac{1}{1+{#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\isequals}
+% \begin{macrocode}
+\newcommand{\isequals}{\wordoperator{?}{=}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\wordoperator}
+% \begin{macrocode}
+\newcommand{\wordoperator}[2]{\ensuremath{%
+ \mathrel{\vcenter{\offinterlineskip
+ \halign{\hfil\tiny\upshape##\hfil\cr\noalign{\vskip-.5ex}
+ {#1}\cr\noalign{\vskip.5ex}{#2}\cr}}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\definedas}
+% \begin{macro}{\associated}
+% \begin{macro}{\adjustedby}
+% \begin{macro}{\earlierthan}
+% \begin{macro}{\laterthan}
+% \begin{macro}{\forevery}
+% \begin{macrocode}
+\newcommand{\definedas}{\wordoperator{defined}{as}\xspace}
+\newcommand{\associated}{\wordoperator{associated}{with}\xspace}
+\newcommand{\adjustedby}{\wordoperator{adjusted}{by}\xspace}
+\newcommand{\earlierthan}{\wordoperator{earlier}{than}\xspace}
+\newcommand{\laterthan}{\wordoperator{later}{than}\xspace}
+\newcommand{\forevery}{\wordoperator{for}{every}\xspace}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\pwordoperator}
+% \begin{macrocode}
+\newcommand{\pwordoperator}[2]{\ensuremath{\left(%
+ \mathrel{\vcenter{\offinterlineskip
+ \halign{\hfil\tiny\upshape##\hfil\cr\noalign{\vskip-.5ex}
+ {#1}\cr\noalign{\vskip.5ex}{#2}\cr}}}\right)}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pdefinedas}
+% \begin{macro}{\passociated}
+% \begin{macro}{\padjustedby}
+% \begin{macro}{\pearlierthan}
+% \begin{macro}{\platerthan}
+% \begin{macro}{\pforevery}
+% \begin{macrocode}
+\newcommand{\pdefinedas}{\pwordoperator{defined}{as}\xspace}
+\newcommand{\passociated}{\pwordoperator{associated}{with}\xspace}
+\newcommand{\padjustedby}{\pwordoperator{adjusted}{by}\xspace}
+\newcommand{\pearlierthan}{\pwordoperator{earlier}{than}\xspace}
+\newcommand{\platerthan}{\pwordoperator{later}{than}\xspace}
+\newcommand{\pforevery}{\pwordoperator{for}{every}\xspace}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\defines}
+% \begin{macrocode}
+\newcommand{\defines}{\ensuremath{\stackrel{\text{\tiny{def}}}{=}}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\inframe}
+% \begin{macrocode}
+\newcommand{\inframe}[1][\relax]{\ensuremath{\xrightarrow[\tiny{\mathcal #1}]{}}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\associates}
+% \begin{macrocode}
+\newcommand{\associates}{\ensuremath{\xrightarrow{\text{\tiny{assoc}}}}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\becomes}
+% \begin{macrocode}
+\newcommand{\becomes}{\ensuremath{\xrightarrow{\text{\tiny{becomes}}}}\xspace}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\lrelatedto}
+% \begin{macro}{\rrelatedto}
+% \begin{macro}{\brelatedto}
+% \begin{macrocode}
+\newcommand{\rrelatedto}[1]{\ensuremath{\xLongrightarrow{\text{\tiny{#1}}}}}
+\newcommand{\lrelatedto}[1]{\ensuremath{\xLongleftarrow[\text{\tiny{#1}}]{}}}
+\newcommand{\brelatedto}[2]{\ensuremath{
+ \xLongleftrightarrow[\text{\tiny{#1}}]{\text{\tiny{#2}}}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\momprinciple}
+% \begin{macro}{\LHSmomprinciple}
+% \begin{macro}{\RHSmomprinciple}
+% \begin{macrocode}
+\newcommand{\momprinciple}{\ensuremath{
+ \vectsub{p}{sys,f}=\vectsub{p}{sys,i}+\Fnetsys\Delta t}}
+\newcommand{\LHSmomprinciple}{\ensuremath{
+ \vectsub{p}{sys,f}}}
+\newcommand{\RHSmomprinciple}{\ensuremath{
+ \vectsub{p}{sys,i}+\Fnetsys\Delta t}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\energyprinciple}
+% \begin{macro}{\LHSenergyprinciple}
+% \begin{macro}{\RHSenergyprinciple}
+% \begin{macrocode}
+\newcommand{\energyprinciple}{\ensuremath{\ssub{E}{sys,f}=\ssub{E}{sys,i}+
+ \ssub{W}{ext}+Q}}
+\newcommand{\LHSenergyprinciple}{\ensuremath{\ssub{E}{sys,f}}}
+\newcommand{\RHSenergyprinciple}{\ensuremath{\ssub{E}{sys,i}+\ssub{W}{ext}+Q}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\angularmomprinciple}
+% \begin{macro}{\LHSangularmomprinciple}
+% \begin{macro}{\RHSangularmomprinciple}
+% \begin{macrocode}
+\newcommand{\angularmomprinciple}{\ensuremath{\vectsub{L}{sys,A,f}=\vectsub{L}{sys,A,i}+
+ \Tnetsys\Delta t}}
+\newcommand{\LHSangularmomprinciple}{\ensuremath{\vectsub{L}{sys,A,f}}}
+\newcommand{\RHSangularmomprinciple}{\ensuremath{\vectsub{L}{sys,A,i}+\Tnetsys\Delta t}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\gravinteraction}
+% \begin{macrocode}
+\newcommand{\gravinteraction}{\ensuremath{
+ \bigGmathsymbol\frac{\msub{M}{1}\msub{M}{2}}{\msup{\magvectsub{r}{12}}{2}}
+ \quant{-\dirvectsub{r}{12}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\elecinteraction}
+% \begin{macrocode}
+\newcommand{\elecinteraction}{\ensuremath{
+ \oofpezmathsymbol\frac{\msub{Q}{1}\msub{Q}{2}}{\msup{\magvectsub{r}{12}}{2}}
+ \dirvectsub{r}{12}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Bfieldofparticle}
+% \begin{macrocode}
+\newcommand{\Bfieldofparticle}{\ensuremath{
+ \mzofpmathsymbol\frac{Q\magvect{v}}{\msup{\magvect{r}}{2}}\dirvect{v}\times\dirvect{r}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Efieldofparticle}
+% \begin{macrocode}
+\newcommand{\Efieldofparticle}{\ensuremath{
+ \oofpezmathsymbol\frac{Q}{\msup{\magvect{r}}{2}}\dirvect{r}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Esys}
+% \begin{macrocode}
+\newcommand{\Esys}{\ssub{E}{sys}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Us}
+% \begin{macrocode}
+\newcommandx{\Us}[1][1]{\ssub{\ssub{U}{s}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ug}
+% \begin{macrocode}
+\newcommandx{\Ug}[1][1]{\ssub{\ssub{U}{g}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ue}
+% \begin{macrocode}
+\newcommandx{\Ue}[1][1]{\ssub{\ssub{U}{e}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ktrans}
+% \begin{macrocode}
+\newcommandx{\Ktrans}[1][1]{\ssub{\ssub{K}{trans}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Krot}
+% \begin{macrocode}
+\newcommandx{\Krot}[1][1]{\ssub{\ssub{K}{rot}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Eparticle}
+% \begin{macrocode}
+\newcommandx{\Eparticle}[1][1]{\ssub{\ssub{E}{particle}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Einternal}
+% \begin{macrocode}
+\newcommandx{\Einternal}[1][1]{\ssub{\ssub{E}{internal}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Erest}
+% \begin{macrocode}
+\newcommandx{\Erest}[1][1]{\ssub{\ssub{E}{rest}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Echem}
+% \begin{macrocode}
+\newcommandx{\Echem}[1][1]{\ssub{\ssub{E}{chem}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Etherm}
+% \begin{macrocode}
+\newcommandx{\Etherm}[1][1]{\ssub{\ssub{E}{therm}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Evib}
+% \begin{macrocode}
+\newcommandx{\Evib}[1][1]{\ssub{\ssub{E}{vib}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ephoton}
+% \begin{macrocode}
+\newcommandx{\Ephoton}[1][1]{\ssub{\ssub{E}{photon}}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEsys}
+% \begin{macrocode}
+\newcommand{\DEsys}{\Changein\Esys}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DUs}
+% \begin{macrocode}
+\newcommand{\DUs}{\Changein\Us}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DUg}
+% \begin{macrocode}
+\newcommand{\DUg}{\Changein\Ug}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DUe}
+% \begin{macrocode}
+\newcommand{\DUe}{\Changein\Ue}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DKtrans}
+% \begin{macrocode}
+\newcommand{\DKtrans}{\Changein\Ktrans}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DKrot}
+% \begin{macrocode}
+\newcommand{\DKrot}{\Changein\Krot}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEparticle}
+% \begin{macrocode}
+\newcommand{\DEparticle}{\Changein\Eparticle}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEinternal}
+% \begin{macrocode}
+\newcommand{\DEinternal}{\Changein\Einternal}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DErest}
+% \begin{macrocode}
+\newcommand{\DErest}{\Changein\Erest}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEchem}
+% \begin{macrocode}
+\newcommand{\DEchem}{\Changein\Echem}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEtherm}
+% \begin{macrocode}
+\newcommand{\DEtherm}{\Changein\Etherm}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEvib}
+% \begin{macrocode}
+\newcommand{\DEvib}{\Changein\Evib}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DEphoton}
+% \begin{macrocode}
+\newcommand{\DEphoton}{\Changein\Ephoton}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Usfinal}
+% \begin{macrocode}
+\newcommand{\Usfinal}{\ssub{\left(\onehalf\ks \msup{s}{2}\right)}{f}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Usinitial}
+% \begin{macrocode}
+\newcommand{\Usinitial}{\ssub{\left(\onehalf\ks \msup{s}{2}\right)}{i}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ugfinal}
+% \begin{macrocode}
+\newcommand{\Ugfinal}{\ssub{\left(-G\frac{\msub{M}{1}\msub{M}{2}}
+ {\magvectsub{r}{12}}\right)}{f}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Uginitial}
+% \begin{macrocode}
+\newcommand{\Uginitial}{\ssub{\left(-G\frac{\msub{M}{1}\msub{M}{2}}
+ {\magvectsub{r}{12}}\right)}{i}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Uefinal}
+% \begin{macrocode}
+\newcommand{\Uefinal}{\ssub{\left(\oofpezmathsymbol\frac{\ssub{Q}{1}\ssub{Q}{2}}
+ {\magvectsub{r}{12}}\right)}{f}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Ueinitial}
+% \begin{macrocode}
+\newcommand{\Ueinitial}{\ssub{\left(\oofpezmathsymbol\frac{\ssub{Q}{1}\ssub{Q}{2}}
+ {\magvectsub{r}{12}}\right)}{i}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ks}
+% \begin{macrocode}
+\newcommand{\ks}{\ssub{k}{s}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Fnet}
+% \begin{macro}{\Fnetext}
+% \begin{macro}{\Fnetsys}
+% \begin{macro}{\Fsub}
+% \begin{macrocode}
+\newcommand{\Fnet}{\ensuremath{\vectsub{F}{net}}}
+\newcommand{\Fnetext}{\ensuremath{\vectsub{F}{net,ext}}}
+\newcommand{\Fnetsys}{\ensuremath{\vectsub{F}{net,sys}}}
+\newcommand{\Fsub}[1]{\ensuremath{\vectsub{F}{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Tnet}
+% \begin{macro}{\Tnetext}
+% \begin{macro}{\Tnetsys}
+% \begin{macro}{\Tsub}
+% \begin{macrocode}
+\newcommand{\Tnet}{\ensuremath{\vectsub{T}{net}}}
+\newcommand{\Tnetext}{\ensuremath{\vectsub{T}{net,ext}}}
+\newcommand{\Tnetsys}{\ensuremath{\vectsub{T}{net,sys}}}
+\newcommand{\Tsub}[1]{\ensuremath{\vectsub{T}{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\vpythonline}
+% \begin{macrocode}
+\newcommand{\vpythonline}{\lstinline[language=Python,numbers=left,numberstyle=\tiny,
+ upquote=true,breaklines]}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{vpythonblock}
+% \begin{macrocode}
+\lstnewenvironment{vpythonblock}{\lstvpython}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\vpythonfile}
+% \begin{macrocode}
+\newcommand{\vpythonfile}{\lstinputlisting[language=Python,numbers=left,
+ numberstyle=\tiny,upquote=true,breaklines]}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\emptyanswer}
+% \begin{macrocode}
+\newcommandx{\emptyanswer}[2][1=0.80,2=0.1,usedefault]
+ {\begin{minipage}{#1\textwidth}\hfill\vspace{#2\textheight}\end{minipage}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{activityanswer}
+% \begin{macrocode}
+\newenvironmentx{activityanswer}[5][1=white,2=black,3=black,4=0.90,5=0.10,usedefault]{%
+ \def\skipper{#5}%
+ \def\response@fbox{\fcolorbox{#2}{#1}}%
+ \begin{center}%
+ \begin{lrbox}{\@tempboxa}%
+ \begin{minipage}[c][#5\textheight][c]{#4\textwidth}\color{#3}%
+ \vspace{#5\textheight}}{%
+ \vspace{\skipper\textheight}%
+ \end{minipage}%
+ \end{lrbox}%
+ \response@fbox{\usebox{\@tempboxa}}%
+ \end{center}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{adjactivityanswer}
+% \begin{macrocode}
+\newenvironmentx{adjactivityanswer}[5][1=white,2=black,3=black,4=0.90,5=0.00,
+ usedefault]{%
+ \def\skipper{#5}%
+ \def\response@fbox{\fcolorbox{#2}{#1}}%
+ \begin{center}%
+ \begin{lrbox}{\@tempboxa}%
+ \begin{minipage}[c]{#4\textwidth}\color{#3}%
+ \vspace{#5\textheight}}{%
+ \vspace{\skipper\textheight}%
+ \end{minipage}%
+ \end{lrbox}%
+ \response@fbox{\usebox{\@tempboxa}}%
+ \end{center}%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\emptybox}
+% \begin{macrocode}
+\newcommandx{\emptybox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.10,usedefault]
+ {\begin{center}
+ \fcolorbox{#3}{#2}{%
+ \begin{minipage}[c][#6\textheight][c]{#5\textwidth}\color{#4}%
+ {#1}%
+ \end{minipage}}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adjemptybox}
+% \begin{macrocode}
+\newcommandx{\adjemptybox}[7][1=\hfill,2=white,3=black,4=black,5=0.90,6=,7=0.0,usedefault]
+ {\begin{center}
+ \fcolorbox{#3}{#2}{%
+ \begin{minipage}[c]{#5\textwidth}\color{#4}%
+ \vspace{#7\textheight}%
+ {#1}%
+ \vspace{#7\textheight}%
+ \end{minipage}}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\answerbox}
+% \begin{macrocode}
+\newcommandx{\answerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.1,usedefault]
+ {\ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\emptybox[#1][#2][#3][#4][#5][#6]}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\adjanswerbox}
+% \begin{macrocode}
+\newcommandx{\adjanswerbox}[7][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.1,7=0.0,
+ usedefault]
+ {\ifthenelse{\equal{#1}{}}%
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\adjemptybox[#1][#2][#3][#4][#5][#6][#7]}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\smallanswerbox}
+% box that takes up ten percent of text height
+% \begin{macrocode}
+\newcommandx{\smallanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.10,
+ usedefault]
+ {\ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\emptybox[#1][#2][#3][#4][#5][#6]}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\mediumanswerbox}
+% box that takes up twenty percent of text height
+% \begin{macrocode}
+\newcommandx{\mediumanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.20,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\largeanswerbox}
+% box that takes up twenty-five percent of text height
+% \begin{macrocode}
+\newcommandx{\largeanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.25,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\largeranswerbox}
+% box that takes up thirty-three percent of text height
+% \begin{macrocode}
+\newcommandx{\largeranswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.33,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hugeanswerbox}
+% box that takes up fifty percent of text height
+% \begin{macrocode}
+\newcommandx{\hugeanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.50,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hugeranswerbox}
+% box that takes up seventy-five percent of text height
+% \begin{macrocode}
+\newcommandx{\hugeranswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.75,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fullpageanswerbox}
+% box that takes up one hundred percent of text height
+% \begin{macrocode}
+\newcommandx{\fullpageanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=1.00,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\emptybox[#1][#2][#3][#4][#5][#6]}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{miinstructornote}
+% \begin{macrocode}
+\mdfdefinestyle{miinstructornotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={INSTRUCTOR NOTE},
+ frametitlebackgroundcolor=cyan!60, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=cyan!25,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{miinstructornote}{%
+ \begin{mdframed}[style=miinstructornotestyle]
+ \begin{adjactivityanswer}[cyan!25][cyan!25][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{mistudentnote}
+% \begin{macrocode}
+\mdfdefinestyle{mistudentnotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={STUDENT NOTE},
+ frametitlebackgroundcolor=cyan!60, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=cyan!25,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{mistudentnote}{%
+ \begin{mdframed}[style=mistudentnotestyle]
+ \begin{adjactivityanswer}[cyan!25][cyan!25][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{miderivation}
+% This definition requires the mdframed package.
+% \begin{macrocode}
+\mdfdefinestyle{miderivationstyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=0pt, rightmargin=0pt, linewidth=1, roundcorner=10,
+ frametitle={DERIVATION},
+ frametitlebackgroundcolor=orange!60, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=orange!25,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{miderivation}{%
+ \begin{mdframed}[style=miderivationstyle]
+ \setcounter{equation}{0}
+ \begin{align}
+ \BODY
+ \end{align}
+ \end{mdframed}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{bwinstructornote}
+% \begin{macrocode}
+\mdfdefinestyle{bwinstructornotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={INSTRUCTOR NOTE},
+ frametitlebackgroundcolor=gray!50, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=gray!20,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{bwinstructornote}{%
+ \begin{mdframed}[style=bwinstructornotestyle]
+ \begin{adjactivityanswer}[gray!20][gray!20][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{bwstudentnote}
+% \begin{macrocode}
+\mdfdefinestyle{bwstudentnotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={STUDENT NOTE},
+ frametitlebackgroundcolor=gray!50, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=gray!20,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{bwstudentnote}{%
+ \begin{mdframed}[style=bwstudentnotestyle]
+ \begin{adjactivityanswer}[gray!20][gray!20][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{bwderivation}
+% This definition requires the mdframed package.
+% \begin{macrocode}
+\mdfdefinestyle{bwderivationstyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=0pt, rightmargin=0pt, linewidth=1, roundcorner=10,
+ frametitle={DERIVATION},
+ frametitlebackgroundcolor=gray!50, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=gray!20,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{bwderivation}{%
+ \begin{mdframed}[style=bwderivationstyle]
+ \setcounter{equation}{0}
+ \begin{align}
+ \BODY
+ \end{align}
+ \end{mdframed}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\checkpoint}
+% \begin{macrocode}
+\newcommand{\checkpoint}{%
+ \vspace{1cm}\begin{center}|--------- CHECKPOINT ---------|\end{center}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\image}
+% \begin{macrocode}
+\newcommand{\image}[2]{%
+ \begin{figure}[h!]
+ \begin{center}%
+ \includegraphics[scale=1]{#1}%
+ \caption{#2}%
+ \label{#1}%
+ \end{center}%
+ \end{figure}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\sneakyone}
+% \begin{macrocode}
+\newcommand{\sneakyone}[1]{\ensuremath{\cancelto{1}{\frac{#1}{#1}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\chkphysicsquantity}
+% undocumented diagnostic command
+% \begin{macrocode}
+\newcommand{\chkphysicsquantity}[1]{%
+ \cs{#1}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\vecto}
+% new |\vect| that allows for subscripts
+% \begin{macrocode}
+\newcommandx{\vecto}[2][2,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#2}{}}%
+ {\vec{\mathrm #1}}%
+ {\ssub{\vec{\mathrm #1}}{#2}}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\compvecto}
+% new |\compvect| that allows for subscripts
+% \begin{macrocode}
+\newcommandx{\compvecto}[3][2,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#2}{}}%
+ {\ssub{\mathrm #1}{\(#3\)}}%
+ {\ssub{\mathrm #1}{#2,\(#3\)}}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompsvecto}
+% new |\scompsvect| that allows for subscripts
+% \begin{macrocode}
+\newcommandx{\scompsvecto}[2][2,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#2}{}}%
+ {\lv\compvecto{#1}{x},\compvecto{#1}{y},\compvecto{#1}{z}\rv}%
+ {\lv\compvecto{#1}[#2]{x},\compvecto{#1}[#2]{y},\compvecto{#1}[#2]{z}\rv}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\compposo}
+% new |\comppos| that allows for subscripts
+% \begin{macrocode}
+\newcommandx{\compposo}[2][1,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#1}{}}%
+ {#2}%
+ {\ssub{#2}{#1}}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\scompsposo}
+% new |\scompspos| that allows for subscripts
+% \begin{macrocode}
+\newcommandx{\scompsposo}[1][1,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#1}{}}%
+ {\lv\compposo{x},\compposo{y},\compposo{z}\rv}%
+ {\lv\compposo[#1]{x},\compposo[#1]{y},\compposo[#1]{z}\rv}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \newpage
+% \section{Acknowledgements}
+% I thank Marcel Heldoorn, Joseph Wright, Scott Pakin, Aaron Titus, Ruth Chabay,
+% and Bruce Sherwood. Special thanks to Martin Scharrer for his \texttt
+% {sty2dtx.pl} utility, which saved me days of typing. Special thanks also to
+% Herbert Schulz for his custom \texttt{dtx} engine for \texttt{TeXShop}. Very
+% special thanks to Ulrich Diez for providing the mechanism that defines scalar
+% and vector quantities.
+%
+% \iffalse
+%</package>
+% \fi
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex/mandi/mandi.ins b/Master/texmf-dist/source/latex/mandi/mandi.ins
new file mode 100644
index 00000000000..1d4ed942283
--- /dev/null
+++ b/Master/texmf-dist/source/latex/mandi/mandi.ins
@@ -0,0 +1,83 @@
+%%
+%% This is file `mandi.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mandi.dtx (with options: `install')
+%%
+%% Copyright (C) 2011,2012 by Paul J. Heafner <heafnerj@gmail.com>
+%% ---------------------------------------------------------------------------
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Paul J. Heafner.
+%%
+%% This work consists of the files mandi.dtx
+%%
+%% and includes the derived files README
+%% mandi.ins
+%% mandi.sty
+%% mandi.pdf and
+%% vdemo.py.
+%% ---------------------------------------------------------------------------
+%%
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\usedir{tex/latex/mandi}
+\preamble
+
+Copyright (C) 2011,2012 by Paul J. Heafner <heafnerj@gmail.com>
+---------------------------------------------------------------------------
+This work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3 of this license or (at
+your option) any later version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Paul J. Heafner.
+
+This work consists of the files mandi.dtx
+
+and includes the derived files README
+ mandi.ins
+ mandi.sty
+ mandi.pdf and
+ vdemo.py.
+---------------------------------------------------------------------------
+
+\endpreamble
+
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}}
+\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}}}
+\generate{\usepreamble\empty\usepostamble\empty
+ \file{vdemo.py}{\from{\jobname.dtx}{vdemo}}}
+\generate{\usepreamble\empty\usepostamble\empty
+ \file{README.txt}{\from{\jobname.dtx}{readme}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* mandi.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file mandi.dtx *}
+\Msg{* through (pdf)LaTeX. *}
+\Msg{* *}
+\Msg{*************************************************************}
+\endbatchfile
+\endinput
+%%
+%% End of file `mandi.ins'.
diff --git a/Master/texmf-dist/tex/latex/mandi/mandi.sty b/Master/texmf-dist/tex/latex/mandi/mandi.sty
new file mode 100644
index 00000000000..acaf0bf1399
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/mandi/mandi.sty
@@ -0,0 +1,1371 @@
+%%
+%% This is file `mandi.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% mandi.dtx (with options: `package')
+%%
+%% Copyright (C) 2011,2012 by Paul J. Heafner <heafnerj@gmail.com>
+%% ---------------------------------------------------------------------------
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Paul J. Heafner.
+%%
+%% This work consists of the files mandi.dtx
+%%
+%% and includes the derived files README
+%% mandi.ins
+%% mandi.sty
+%% mandi.pdf and
+%% vdemo.py.
+%% ---------------------------------------------------------------------------
+%%
+\ProvidesPackage{mandi}[2012/12/31 2.0.0 Macros for intro physics and astronomy]
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\RequirePackage[intlimits]{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{bigints}
+\RequirePackage{cancel}
+\RequirePackage[leftbars,color]{changebar}
+\RequirePackage[dvipsnames]{xcolor}
+\RequirePackage{environ}
+\RequirePackage{etoolbox}
+\RequirePackage{extarrows}
+\RequirePackage{filehook}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{graphicx}
+\RequirePackage{epstopdf}
+\RequirePackage{textcomp}
+\RequirePackage{letltxmacro}
+\RequirePackage{listings}
+\RequirePackage[framemethod=TikZ]{mdframed}
+\RequirePackage[amssymb,cdot,derivedinbase,derived,thickqspace]{SIunits}
+\RequirePackage{suffix}
+\RequirePackage{xargs}
+\RequirePackage{xparse}
+\RequirePackage{xspace}
+\RequirePackage{ifthen}
+\RequirePackage{calligra}
+\DeclareMathAlphabet{\mathcalligra}{T1}{calligra}{m}{n}
+\DeclareFontShape{T1}{calligra}{m}{n}{<->s*[2.2]callig15}{}
+\DeclareGraphicsRule{.tif}{png}{.png}{`convert #1 `basename #1 .tif`.png}
+\DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it}
+\usetikzlibrary{shadows}
+\definecolor{vpythoncolor}{rgb}{0.95,0.95,0.95}
+\newcommand{\lstvpython}{\lstset{language=Python,numbers=left,numberstyle=\tiny,
+ backgroundcolor=\color{vpythoncolor},upquote=true,breaklines}}
+\newboolean{@optitalicvectors}
+\newboolean{@optdoubleabsbars}
+\newboolean{@optbaseunits}
+\newboolean{@optdrvdunits}
+\setboolean{@optitalicvectors}{false}
+\setboolean{@optdoubleabsbars}{false}
+\setboolean{@optbaseunits}{false}
+\setboolean{@optdrvdunits}{false}
+\DeclareOption{italicvectors}{\setboolean{@optitalicvectors}{true}}
+\DeclareOption{doubleabsbars}{\setboolean{@optdoubleabsbars}{true}}
+\DeclareOption{baseunits}{\setboolean{@optbaseunits}{true}}
+\DeclareOption{drvdunits}{\setboolean{@optdrvdunits}{true}}
+\ProcessOptions\relax
+\AtBeginOfPackageFile*{SIunits}{%
+\csundef{power}
+ \csundef{square}
+ \newcommand*{\square}[1]{\ensuremath{\mathrm{#1}^{2}}}
+ \renewcommand*{\squared}{\ensuremath{^{\mathrm{2}}}}
+ \renewcommand*{\cubic}[1]{\ensuremath{\mathrm{#1}^{3}}}
+ \renewcommand*{\cubed}{\ensuremath{^{\mathrm{3}}}}
+\renewcommand*{\fourth}[1]{\ensuremath{\mathrm{#1}^{4}}}
+\renewcommand*{\reciprocal}[1]{\ensuremath{\mathrm{#1}^{\SIminus1}}}
+\renewcommand*{\rp}{\ensuremath{^{\mathrm{\SIminus1}}}}
+\renewcommand*{\rpsquare}[1]{\ensuremath{\mathrm{#1}^{\SIminus2}}}
+\renewcommand*{\rpsquared}{\ensuremath{^{\mathrm{\SIminus2}}}}
+\renewcommand*{\rpcubic}[1]{\ensuremath{\mathrm{#1}^{\SIminus3}}}
+\renewcommand*{\rpcubed}{\ensuremath{^{\mathrm{\SIminus3}}}}
+\renewcommand*{\rpfourth}[1]{\ensuremath{\mathrm{#1}^{\SIminus4}}}
+\typeout{mandi: SIunits conflicts fixed, but don't use \protect\square\space.}
+}%
+\newcommand\mi@exchangeargs[2]{#2#1}%
+\newcommand\mi@name{}%
+\long\def\mi@name#1#{\romannumeral0\mi@innername{#1}}%
+\newcommand\mi@innername[2]{%
+ \expandafter\mi@exchangeargs\expandafter{\csname#2\endcsname}{#1}}%
+\begingroup
+\@firstofone{%
+ \endgroup
+ \newcommand\mi@forkifnull[3]{%
+ \romannumeral\iffalse{\fi\expandafter\@secondoftwo\expandafter
+ {\expandafter{\string#1}\expandafter\@secondoftwo\string}%
+ \expandafter\@firstoftwo\expandafter{\iffalse}\fi0 #3}{0 #2}}}%
+\newcommand\selectbaseunit[3]{#1}
+\newcommand\selectdrvdunit[3]{#2}
+\newcommand\selecttradunit[3]{#3}
+\newcommand\selectunit{}
+\newcommand\perpusebaseunit{\let\selectunit=\selectbaseunit}
+\newcommand\perpusedrvdunit{\let\selectunit=\selectdrvdunit}
+\newcommand\perpusetradunit{\let\selectunit=\selecttradunit}
+\newcommand\hereusebaseunit[1]{%
+ \begingroup\perpusebaseunit#1\endgroup}%
+\newcommand\hereusedrvdunit[1]{%
+ \begingroup\perpusedrvdunit#1\endgroup}%
+\newcommand\hereusetradunit[1]{%
+ \begingroup\perpusetradunit#1\endgroup}%
+\newenvironment{usebaseunit}{\perpusebaseunit}{}%
+\newenvironment{usedrvdunit}{\perpusedrvdunit}{}%
+\newenvironment{usetradunit}{\perpusetradunit}{}%
+\newcommand*\newphysicsquantity{\definephysicsquantity{\newcommand}}
+\newcommand*\redefinephysicsquantity{\definephysicsquantity{\renewcommand}}
+\newcommandx\definephysicsquantity[5][4=,5=]{%
+ \innerdefinewhatsoeverquantityfork{#3}{#4}{#5}{#1}{#2}{}{[1]}{##1}}%
+\newcommand*\newphysicsconstant{\definephysicsconstant{\newcommand}}
+\newcommand*\redefinephysicsconstant{\definephysicsconstant{\renewcommand}}
+\newcommandx\definephysicsconstant[7][6=,7=]{%
+ \innerdefinewhatsoeverquantityfork{#5}{#6}{#7}{#1}{#2}{#3}{}{#4}}%
+\newcommand\innerdefinewhatsoeverquantityfork[3]{%
+ \expandafter\innerdefinewhatsoeverquantity\romannumeral0%
+ \mi@forkifnull{#3}{\mi@forkifnull{#2}{{#1}}{{#2}}{#1}}%
+ {\mi@forkifnull{#2}{{#1}}{{#2}}{#3}}{#1}}%
+\newcommand\innerdefinewhatsoeverquantity[8]{%
+ \mi@name#4{#5}#7{\ensuremath{\unit{#8}{\selectunit{#3}{#1}{#2}}}}%
+ \mi@name#4{#5baseunit}#7{\ensuremath{\unit{#8}{#3}}}%
+ \mi@name#4{#5drvdunit}#7{\ensuremath{\unit{#8}{#1}}}%
+ \mi@name#4{#5tradunit}#7{\ensuremath{\unit{#8}{#2}}}%
+ \mi@name#4{#5onlyunit}{\ensuremath{\selectunit{#3}{#1}{#2}}}%
+ \mi@name#4{#5onlybaseunit}{\ensuremath{#3}}%
+ \mi@name#4{#5onlydrvdunit}{\ensuremath{#1}}%
+ \mi@name#4{#5onlytradunit}{\ensuremath{#2}}%
+ \mi@name#4{#5value}#7{\ensuremath{#8}}%
+ \mi@forkifnull{#7}{%
+ \ifx#4\renewcommand\mi@name\let{#5mathsymbol}=\relax\fi
+ \mi@name\newcommand{#5mathsymbol}{\ensuremath{#6}}}{}}%
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\typeout{mandi: You'll get italic vector kernels.}}
+ {\typeout{mandi: You'll get Roman vector kernels.}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\typeout{mandi: You'll get double absolute value bars.}}
+ {\typeout{mandi: You'll get single absolute value bars.}}
+\ifthenelse{\boolean{@optbaseunits}}
+ {\perpusebaseunit %
+ \typeout{mandi: You'll get base units.}}
+ {\ifthenelse{\boolean{@optdrvdunits}}
+ {\perpusedrvdunit %
+ \typeout{mandi: You'll get derived units.}}
+ {\perpusetradunit %
+ \typeout{mandi: You'll get traditional units.}}}
+\def\resetMathstrut@{%
+ \setbox\z@\hbox{%
+ \mathchardef\@tempa\mathcode`\[\relax
+ \def\@tempb##1"##2##3{\the\textfont"##3\char"}%
+ \expandafter\@tempb\meaning\@tempa \relax
+ }%
+ \ht\Mathstrutbox@\ht\z@ \dp\Mathstrutbox@\dp\z@}
+\begingroup
+ \catcode`(\active \xdef({\left\string(}
+ \catcode`)\active \xdef){\right\string)}
+\endgroup
+\mathcode`(="8000 \mathcode`)="8000
+\typeout{mandi: parentheses made adjustable in math mode.}
+\let\oldr@@t\r@@t
+\def\r@@t#1#2{%
+\setbox0=\hbox{\(\oldr@@t#1{#2\,}\)}\dimen0=\ht0
+\advance\dimen0-0.2\ht0
+\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
+{\box0\lower0.4pt\box2}}
+\LetLtxMacro{\oldsqrt}{\sqrt}
+\renewcommand*{\sqrt}[2][\relax]{\oldsqrt[#1]{#2}}
+\typeout{mandi: square root symbol fixed.}
+\newcommand{\m}{\metre}
+\newcommand{\kg}{\kilogram}
+\newcommand{\s}{\second}
+\newcommand{\A}{\ampere}
+\newcommand{\K}{\kelvin}
+\newcommand{\mol}{\mole}
+\newcommand{\cd}{\candela}
+\newphysicsquantity{displacement}{\m}[\m][\m]
+\newphysicsquantity{mass}{\kg}[\kg][\kg]
+\newphysicsquantity{duration}{\s}[\s][\s]
+\newphysicsquantity{current}{\A}[\A][\A]
+\newphysicsquantity{temperature}{\K}[\K][\K]
+\newphysicsquantity{amount}{\mol}[\mol][\mol]
+\newphysicsquantity{luminous}{\cd}[\cd][\cd]
+\newphysicsquantity{planeangle}{\m\usk\reciprocal\m}[\radian][\radian]
+\newphysicsquantity{solidangle}{\m\squared\usk\rpsquare\m}[\steradian][\steradian]
+\newcommand{\indegrees}[1]{\ensuremath{\unit{#1}{\degree}}}
+\newcommand{\inarcminutes}[1]{\ensuremath{\unit{#1}{\arcminute}}}
+\newcommand{\inarcseconds}[1]{\ensuremath{\unit{#1}{\arcsecond}}}
+\newcommand{\ineV}[1]{\ensuremath{\unit{#1}{\electronvolt}}}
+\newcommand{\inAU}[1]{\ensuremath{\unit{#1}{AU}}}
+\newcommand{\velocityc}[1]{\ensuremath{#1c}}
+\newphysicsquantity{velocity}{\m\usk\reciprocal\s}[\m\usk\reciprocal\s][\m\per\s]
+\newphysicsquantity{acceleration}{\m\usk\s\rpsquared}[\newton\per\kg][\m\per\s\squared]
+\newcommand{\gamman}[1]{\ensuremath{#1}}
+\newphysicsquantity{momentum}{\m\usk\kg\usk\reciprocal\s}[\newton\usk\s][\kg\usk\m\per\s]
+\newphysicsquantity{impulse}{\m\usk\kg\usk\reciprocal\s}[\newton\usk\s][\kg\usk\m\per\s]
+\newphysicsquantity{force}{\m\usk\kg\usk\s\rpsquared}[\newton][\newton]
+\newphysicsquantity{springstiffness}{\kg\usk\s\rpsquared}[\newton\per\m][\newton\per\m]
+\newphysicsquantity{springstretch}{\m}
+\newphysicsquantity{area}{\m\squared}
+\newphysicsquantity{volume}{\cubic\m}
+\newphysicsquantity{linearmassdensity}{\reciprocal\m\usk\kg}[\kg\per\m][\kg\per\m]
+\newphysicsquantity{areamassdensity}{\m\rpsquared\usk\kg}[\kg\per\m\squared]
+[\kg\per\m\squared]
+\newphysicsquantity{volumemassdensity}{\m\rpcubed\usk\kg}[\kg\per\m\cubed]
+[\kg\per\m\cubed]
+\newphysicsquantity{youngsmodulus}{\reciprocal\m\usk\kg\usk\s\rpsquared}
+[\newton\per\m\squared][\pascal]
+\newphysicsquantity{work}{\m\squared\usk\kilogram\usk\s\rpsquared}[\joule]
+[\newton\usk\m]
+\newphysicsquantity{energy}{\m\squared\usk\kilogram\usk\s\rpsquared}[\joule]
+[\newton\usk\m]
+\newphysicsquantity{power}{\m\squared\usk\kg\usk\s\rpcubed}[\watt][\joule\per\s]
+\newphysicsquantity{angularvelocity}{\radian\usk\reciprocal\s}[\radian\per\s]
+[\radian\per\s]
+\newphysicsquantity{angularacceleration}{\radian\usk\s\rpsquared}[\radian\per\s\squared]
+[\radian\per\s\squared]
+\newphysicsquantity{angularmomentum}{\m\squared\usk\kg\usk\reciprocal\s}[\joule\usk\s]
+[\kg\usk\m\squared\per\s]
+\newphysicsquantity{momentofinertia}{\m\squared\usk\kg}[\joule\usk\s\squared]
+[\kg\usk\m\squared]
+\newphysicsquantity{torque}{\m\squared\usk\kg\usk\s\rpsquared}[\joule\per\radian]
+[\newton\usk\m]
+\newphysicsquantity{entropy}{\m\squared\usk\kilogram\usk\s\rpsquared\usk\reciprocal\K}
+[\joule\per\K][\joule\per\K]
+\newphysicsquantity{wavelength}{\m}[\m][\m]
+\newphysicsquantity{wavenumber}{\reciprocal\m}[\per\m][\per\m]
+\newphysicsquantity{frequency}{\reciprocal\s}[\hertz][\hertz]
+\newphysicsquantity{angularfrequency}{\radian\usk\reciprocal\s}[\radian\per\s]
+[\radian\per\s]
+\newphysicsquantity{charge}{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsquantity{permittivity}{\m\rpcubed\usk\reciprocal\kg\usk\s^{4}\usk\A\squared}
+[\farad\per\m][\coulomb\squared\per\newton\usk\m\squared]
+\newphysicsquantity{permeability}{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}
+[\henry\per\m][\tesla\usk\m\per\A]
+\newphysicsquantity{electricfield}{\m\usk\kg\usk\s\rpcubed\usk\reciprocal\A}[\volt\per\m]
+[\newton\per\coulomb]
+\newphysicsquantity{electricdipolemom}{\m\usk\s\usk\A}[\coulomb\usk\m][\coulomb\usk\m]
+\newphysicsquantity{magneticfield}{\kg\usk\s\rpsquared\usk\reciprocal\A}[\tesla]
+[\newton\per\coulomb\usk(\m\per\s)]
+\newphysicsquantity{cmagneticfield}{\m\usk\kg\usk\s\rpcubed\usk\reciprocal\A}[\volt\per\m]
+[\newton\per\coulomb]
+\newcommand{\lv}{\ensuremath{\left\langle}}
+\newcommand{\rv}{\ensuremath{\right\rangle}}
+\newcommand{\symvect}{\mivector}
+\newcommand{\ncompsvect}{\mivector}
+\ExplSyntaxOn
+\NewDocumentCommand{\magvectncomps}{ m O{} }
+ {%
+ \sum_of_squares:nn { #1 }{ #2 }
+ }%
+
+\cs_new:Npn \sum_of_squares:nn #1 #2
+ {%
+ \tl_if_empty:nTF { #2 }
+ {%
+ \clist_set:Nn \l_tmpa_clist { #1 }
+ \ensuremath{%
+ \sqrt{(\clist_use:Nnnn \l_tmpa_clist { )^2+( } { )^2+( } { )^2+( } )^2 }
+ }%
+ }%
+ {%
+ \clist_set:Nn \l_tmpa_clist { #1 }
+ \ensuremath{%
+ \sqrt{(\clist_use:Nnnn \l_tmpa_clist {\;{ #2 })^2+(} {\;{ #2 })^2+(}
+ {\;{ #2 })^2+(} \;{ #2 })^2}
+ }%
+ }%
+ }%
+\ExplSyntaxOff
+\newcommand{\zerovect}{\vect{0}}
+\newcommand{\ncompszerovect}{\mivector{0,0,0}}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\vect}[1]{\ensuremath{\vec{#1}}}}
+ {\newcommand{\vect}[1]{\ensuremath{\vec{\mathrm{#1}}}}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magvect}[1]{\ensuremath{\magof{\vect{#1}}}}}
+ {\newcommand{\magvect}[1]{\ensuremath{\abs{\vect{#1}}}}}
+\newcommand{\dmagvect}[1]{\ensuremath{\dx{\magvect{#1}}}}
+\newcommand{\Dmagvect}[1]{\ensuremath{\Delta\!\magvect{#1}}}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\dirvect}[1]{\ensuremath{\widehat{{#1}}}}}
+ {\newcommand{\dirvect}[1]{\ensuremath{\widehat{\mathrm{#1}}}}}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\compvect}[2]{\ensuremath{\ssub{#1}{\(#2\)}}}}
+ {\newcommand{\compvect}[2]{\ensuremath{\ssub{\mathrm{#1}}{\(#2\)}}}}
+\newcommand{\scompsvect}[1]{\ensuremath{\lv
+ \compvect{#1}{x},
+ \compvect{#1}{y},
+ \compvect{#1}{z}\rv}}
+\newcommand{\magvectscomps}[1]{\ensuremath{\sqrt{
+ \msup{\compvect{#1}{x}}{2}+
+ \msup{\compvect{#1}{y}}{2}+
+ \msup{\compvect{#1}{z}}{2}}}}
+\newcommand{\dvect}[1]{\ensuremath{\mathrm{d}\vect{#1}}}
+\newcommand{\Dvect}[1]{\ensuremath{\Delta\vect{#1}}}
+\newcommand{\dirdvect}[1]{\ensuremath{\widehat{\dvect{#1}}}}
+\newcommand{\dirDvect}[1]{\ensuremath{\widehat{\Dvect{#1}}}}
+\newcommand{\ddirvect}[1]{\ensuremath{\mathrm{d}\dirvect{E}}}
+\newcommand{\Ddirvect}[1]{\ensuremath{\Delta\dirvect{E}}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magdvect}[1]{\ensuremath{\magof{\dvect{#1}}}}
+ \newcommand{\magDvect}[1]{\ensuremath{\magof{\Dvect{#1}}}}}
+ {\newcommand{\magdvect}[1]{\ensuremath{\abs{\dvect{#1}}}}
+ \newcommand{\magDvect}[1]{\ensuremath{\abs{\Dvect{#1}}}}}
+\newcommand{\compdvect}[2]{\ensuremath{\mathrm{d}\compvect{#1}{#2}}}
+\newcommand{\compDvect}[2]{\ensuremath{\Delta\compvect{#1}{#2}}}
+\newcommand{\scompsdvect}[1]{\ensuremath{\lv
+ \compdvect{#1}{x},
+ \compdvect{#1}{y},
+ \compdvect{#1}{z}\rv}}
+\newcommand{\scompsDvect}[1]{\ensuremath{\lv
+ \compDvect{#1}{x},
+ \compDvect{#1}{y},
+ \compDvect{#1}{z}\rv}}
+\newcommand{\dervect}[2]{\ensuremath{\frac{\dvect{#1}}{\mathrm{d}{#2}}}}
+\newcommand{\Dervect}[2]{\ensuremath{\frac{\Dvect{#1}}{\Delta{#2}}}}
+\newcommand{\compdervect}[3]{\ensuremath{\dbyd{\compvect{#1}{#3}}{#2}}}
+\newcommand{\compDervect}[3]{\ensuremath{\DbyD{\compvect{#1}{#3}}{#2}}}
+\newcommand{\scompsdervect}[2]{\ensuremath{\lv
+ \compdervect{#1}{#2}{x},
+ \compdervect{#1}{#2}{y},
+ \compdervect{#1}{#2}{z}\rv}}
+\newcommand{\scompsDervect}[2]{\ensuremath{\lv
+ \compDervect{#1}{#2}{x},
+ \compDervect{#1}{#2}{y},
+ \compDervect{#1}{#2}{z}\rv}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magdervect}[2]{\ensuremath{\magof{\dervect{#1}{#2}}}}
+ \newcommand{\magDervect}[2]{\ensuremath{\magof{\Dervect{#1}{#2}}}}}
+ {\newcommand{\magdervect}[2]{\ensuremath{\abs{\dervect{#1}{#2}}}}
+ \newcommand{\magDervect}[2]{\ensuremath{\abs{\Dervect{#1}{#2}}}}}
+\newcommand{\dermagvect}[2]{\ensuremath{\dbyd{\magvect{#1}}{#2}}}
+\newcommand{\Dermagvect}[2]{\ensuremath{\DbyD{\magvect{#1}}{#2}}}
+\newcommand{\scompspos}{\mivector{x,y,z}}
+\newcommand{\comppos}[1]{\ensuremath{{#1}}}
+\newcommand{\scompsdpos}{\mivector{\mathrm{d}x,\mathrm{d}y,\mathrm{d}z}}
+\newcommand{\scompsDpos}{\mivector{\Delta x,\Delta y,\Delta z}}
+\newcommand{\compdpos}[1]{\ensuremath{\mathrm{d}{#1}}}
+\newcommand{\compDpos}[1]{\ensuremath{\Delta{#1}}}
+\newcommand{\scompsderpos}[1]{\ensuremath{\lv
+ \frac{\mathrm{d}x}{\mathrm{d}{#1}},\frac{\mathrm{d}y}{\mathrm{d}{#1}},
+ \frac{\mathrm{d}z}{\mathrm{d}{#1}}\rv}}
+\newcommand{\scompsDerpos}[1]{\ensuremath{\lv
+ \frac{\Delta x}{\Delta{#1}},\frac{\Delta y}{\Delta{#1}},
+ \frac{\Delta z}{\Delta{#1}}\rv}}
+\newcommand{\compderpos}[2]{\ensuremath{\frac{\mathrm{d}{#1}}{\mathrm{d}{#2}}}}
+\newcommand{\compDerpos}[2]{\ensuremath{\frac{\Delta{#1}}{\Delta{#2}}}}
+\newcommand{\vectsub}[2]{\ensuremath{\ssub{\vect{#1}}{#2}}}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\compvectsub}[3]{\ensuremath{\ssub{#1}{#2,\(#3\)}}}}
+ {\newcommand{\compvectsub}[3]{\ensuremath{\ssub{\mathrm{#1}}{#2,\(#3\)}}}}
+\newcommand{\scompsvectsub}[2]{\ensuremath{\lv
+ \compvectsub{#1}{#2}{x},
+ \compvectsub{#1}{#2}{y},
+ \compvectsub{#1}{#2}{z}\rv}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magvectsub}[2]{\ensuremath{\magof{\vectsub{#1}{#2}}}}}
+ {\newcommand{\magvectsub}[2]{\ensuremath{\abs{\vectsub{#1}{#2}}}}}
+\newcommand{\magvectsubscomps}[2]{\ensuremath{\sqrt{
+ \msup{\compvectsub{#1}{#2}{x}}{2}+
+ \msup{\compvectsub{#1}{#2}{y}}{2}+
+ \msup{\compvectsub{#1}{#2}{z}}{2}}}}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\dirvectsub}[2]{\ensuremath{\ssub{\widehat{#1}}{#2}}}}
+ {\newcommand{\dirvectsub}[2]{\ensuremath{\ssub{\widehat{\mathrm{#1}}}{#2}}}}
+\newcommand{\dvectsub}[2]{\ensuremath{\mathrm{d}\vectsub{#1}{#2}}}
+\newcommand{\Dvectsub}[2]{\ensuremath{\Delta\vectsub{#1}{#2}}}
+\newcommand{\compdvectsub}[3]{\ensuremath{\mathrm{d}\compvectsub{#1}{#2}{#3}}}
+\newcommand{\compDvectsub}[3]{\ensuremath{\Delta\compvectsub{#1}{#2}{#3}}}
+\newcommand{\scompsdvectsub}[2]{\ensuremath{\lv
+ \compdvectsub{#1}{#2}{x},
+ \compdvectsub{#1}{#2}{y},
+ \compdvectsub{#1}{#2}{z}\rv}}
+\newcommand{\scompsDvectsub}[2]{\ensuremath{\lv
+ \compDvectsub{#1}{#2}{x},
+ \compDvectsub{#1}{#2}{y},
+ \compDvectsub{#1}{#2}{z},\rv}}
+\newcommand{\dermagvectsub}[3]{\ensuremath{\dbyd{\magvectsub{#1}{#2}}{#3}}}
+\newcommand{\Dermagvectsub}[3]{\ensuremath{\DbyD{\magvectsub{#1}{#2}}{#3}}}
+\newcommand{\dervectsub}[3]{\ensuremath{\dbyd{\vectsub{#1}{#2}}{#3}}}
+\newcommand{\Dervectsub}[3]{\ensuremath{\DbyD{\vectsub{#1}{#2}}{#3}}}
+\ifthenelse{\boolean{@optdoubleabsbars}}
+ {\newcommand{\magdervectsub}[3]{\ensuremath{\magof{\dervectsub{#1}{#2}{#3}}}}
+ \newcommand{\magDervectsub}[3]{\ensuremath{\magof{\Dervectsub{#1}{#2}{#3}}}}}
+ {\newcommand{\magdervectsub}[3]{\ensuremath{\abs{\dervectsub{#1}{#2}{#3}}}}
+ \newcommand{\magDervectsub}[3]{\ensuremath{\abs{\Dervectsub{#1}{#2}{#3}}}}}
+\newcommand{\compdervectsub}[4]{\ensuremath{\dbyd{\compvectsub{#1}{#2}{#4}}{#3}}}
+\newcommand{\compDervectsub}[4]{\ensuremath{\DbyD{\compvectsub{#1}{#2}{#4}}{#3}}}
+\newcommand{\scompsdervectsub}[3]{\ensuremath{\lv
+ \compdervectsub{#1}{#2}{#3}{x},
+ \compdervectsub{#1}{#2}{#3}{y},
+ \compdervectsub{#1}{#2}{#3}{z}\rv}}
+\newcommand{\scompsDervectsub}[3]{\ensuremath{\lv
+ \compDervectsub{#1}{#2}{#3}{x},
+ \compDervectsub{#1}{#2}{#3}{y},
+ \compDervectsub{#1}{#2}{#3}{z}\rv}}
+\newcommand{\comppossub}[2]{\ensuremath{\ssub{#2}{#1}}}
+\newcommand{\scompspossub}[1]{\ensuremath{\lv
+ \comppossub{#1}{x},
+ \comppossub{#1}{y},
+ \comppossub{#1}{z}\rv}}
+\newcommand{\compdpossub}[2]{\ensuremath{\mathrm{d}\comppossub{#1}{#2}}}
+\newcommand{\compDpossub}[2]{\ensuremath{\Delta\comppossub{#1}{#2}}}
+\newcommand{\scompsdpossub}[1]{\ensuremath{\lv
+ \compdpossub{#1}{x},
+ \compdpossub{#1}{y},
+ \compdpossub{#1}{z}\rv}}
+\newcommand{\scompsDpossub}[1]{\ensuremath{\lv
+ \compDpossub{#1}{x},
+ \compDpossub{#1}{y},
+ \compDpossub{#1}{z}\rv}}
+\newcommand{\compderpossub}[3]{\ensuremath{\dbyd{\comppossub{#1}{#3}}{#2}}}
+\newcommand{\compDerpossub}[3]{\ensuremath{\DbyD{\comppossub{#1}{#3}}{#2}}}
+\newcommand{\scompsderpossub}[2]{\ensuremath{\lv
+ \compderpossub{#1}{#2}{x},
+ \compderpossub{#1}{#2}{y},
+ \compderpossub{#1}{#2}{z}\rv}}
+\newcommand{\scompsDerpossub}[2]{\ensuremath{\lv
+ \compDerpossub{#1}{#2}{x},
+ \compDerpossub{#1}{#2}{y},
+ \compDerpossub{#1}{#2}{z}\rv}}
+\newcommand{\relpos}[1]{\ensuremath{\vectsub{r}{#1}}}
+\newcommand{\relvel}[1]{\ensuremath{\vectsub{v}{#1}}}
+\newcommand{\relmom}[1]{\ensuremath{\vectsub{p}{#1}}}
+\newcommand{\relfor}[1]{\ensuremath{\vectsub{F}{#1}}}
+\newcommand{\vectdotvect}[2]{\ensuremath{{#1}\bullet{#2}}}
+\newcommand{\vectdotsvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsvect{#2}}}
+\newcommand{\vectdotevect}[2]{\ensuremath{
+ \compvect{#1}{x}\compvect{#2}{x}+
+ \compvect{#1}{y}\compvect{#2}{y}+
+ \compvect{#1}{z}\compvect{#2}{z}}}
+\newcommand{\vectdotspos}[1]{\ensuremath{\scompsvect{#1}\bullet\scompspos}}
+\newcommand{\vectdotepos}[1]{\ensuremath{
+ \compvect{#1}{x}\comppos{x}+
+ \compvect{#1}{y}\comppos{y}+
+ \compvect{#1}{z}\comppos{z}}}
+\newcommand{\vectdotsdvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsdvect{#2}}}
+\newcommand{\vectdotsDvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsDvect{#2}}}
+\newcommand{\vectdotedvect}[2]{\ensuremath{
+ \compvect{#1}{x}\compdvect{#2}{x}+
+ \compvect{#1}{y}\compdvect{#2}{y}+
+ \compvect{#1}{z}\compdvect{#2}{z}}}
+\newcommand{\vectdoteDvect}[2]{\ensuremath{
+ \compvect{#1}{x}\compDvect{#2}{x}+
+ \compvect{#1}{y}\compDvect{#2}{y}+
+ \compvect{#1}{z}\compDvect{#2}{z}}}
+\newcommand{\vectdotsdpos}[1]{\ensuremath{\scompsvect{#1}\bullet\scompsdpos}}
+\newcommand{\vectdotsDpos}[1]{\ensuremath{\scompsvect{#1}\bullet\scompsDpos}}
+\newcommand{\vectdotedpos}[1]{\ensuremath{
+ \compvect{#1}{x}\compdpos{x}+
+ \compvect{#1}{y}\compdpos{y}+
+ \compvect{#1}{z}\compdpos{z}}}
+\newcommand{\vectdoteDpos}[1]{\ensuremath{
+ \compvect{#1}{x}\compDpos{x}+
+ \compvect{#1}{y}\compDpos{y}+
+ \compvect{#1}{z}\compDpos{z}}}
+\newcommand{\vectsubdotsvectsub}[4]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsvectsub{#3}{#4}}}
+\newcommand{\vectsubdotevectsub}[4]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compvectsub{#3}{#4}{x}+
+ \compvectsub{#1}{#2}{y}\compvectsub{#3}{#4}{y}+
+ \compvectsub{#1}{#2}{z}\compvectsub{#3}{#4}{z}}}
+\newcommand{\vectsubdotsdvectsub}[4]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsdvectsub{#3}{#4}}}
+\newcommand{\vectsubdotsDvectsub}[4]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsDvectsub{#3}{#4}}}
+\newcommand{\vectsubdotedvectsub}[4]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compdvectsub{#3}{#4}{x}+
+ \compvectsub{#1}{#2}{y}\compdvectsub{#3}{#4}{y}+
+ \compvectsub{#1}{#2}{z}\compdvectsub{#3}{#4}{z}}}
+\newcommand{\vectsubdoteDvectsub}[4]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compDvectsub{#3}{#4}{x}+
+ \compvectsub{#1}{#2}{y}\compDvectsub{#3}{#4}{y}+
+ \compvectsub{#1}{#2}{z}\compDvectsub{#3}{#4}{z}}}
+\newcommand{\vectsubdotsdvect}[3]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsdvect{#3}}}
+\newcommand{\vectsubdotsDvect}[3]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsDvect{#3}}}
+\newcommand{\vectsubdotedvect}[3]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compdvect{#3}{x}+
+ \compvectsub{#1}{#2}{y}\compdvect{#3}{y}+
+ \compvectsub{#1}{#2}{z}\compdvect{#3}{z}}}
+\newcommand{\vectsubdoteDvect}[3]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compDvect{#3}{x}+
+ \compvectsub{#1}{#2}{y}\compDvect{#3}{y}+
+ \compvectsub{#1}{#2}{z}\compDvect{#3}{z}}}
+\newcommand{\vectsubdotsdpos}[2]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsdpos}}
+\newcommand{\vectsubdotsDpos}[2]{\ensuremath{
+ \scompsvectsub{#1}{#2}\bullet\scompsDpos}}
+\newcommand{\vectsubdotedpos}[2]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compdpos{x}+
+ \compvectsub{#1}{#2}{y}\compdpos{y}+
+ \compvectsub{#1}{#2}{z}\compdpos{z}}}
+\newcommand{\vectsubdoteDpos}[2]{\ensuremath{
+ \compvectsub{#1}{#2}{x}\compDpos{x}+
+ \compvectsub{#1}{#2}{y}\compDpos{y}+
+ \compvectsub{#1}{#2}{z}\compDpos{z}}}
+\newcommand{\dervectdotsvect}[3]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompsvect{#3}}}
+\newcommand{\Dervectdotsvect}[3]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompsvect{#3}}}
+\newcommand{\dervectdotevect}[3]{\ensuremath{
+ \compdervect{#1}{#2}{x}\compvect{#3}{x}+
+ \compdervect{#1}{#2}{y}\compvect{#3}{y}+
+ \compdervect{#1}{#2}{z}\compvect{#3}{z}}}
+\newcommand{\Dervectdotevect}[3]{\ensuremath{
+ \compDervect{#1}{#2}{x}\compvect{#3}{x}+
+ \compDervect{#1}{#2}{y}\compvect{#3}{y}+
+ \compDervect{#1}{#2}{z}\compvect{#3}{z}}}
+\newcommand{\vectdotsdervect}[3]{\ensuremath{
+ \scompsvect{#1}\bullet\scompsdervect{#2}{#3}}}
+\newcommand{\vectdotsDervect}[3]{\ensuremath{
+ \scompsvect{#1}\bullet\scompsDervect{#2}{#3}}}
+\newcommand{\vectdotedervect}[3]{\ensuremath{
+ \compvect{#1}{x}\compdervect{#2}{#3}{x}+
+ \compvect{#1}{y}\compdervect{#2}{#3}{y}+
+ \compvect{#1}{z}\compdervect{#2}{#3}{z}}}
+\newcommand{\vectdoteDervect}[3]{\ensuremath{
+ \compvect{#1}{x}\compDervect{#2}{#3}{x}+
+ \compvect{#1}{y}\compDervect{#2}{#3}{y}+
+ \compvect{#1}{z}\compDervect{#2}{#3}{z}}}
+\newcommand{\dervectdotspos}[2]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompspos}}
+\newcommand{\Dervectdotspos}[2]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompspos}}
+\newcommand{\dervectdotepos}[2]{\ensuremath{
+ \compdervect{#1}{#2}{x}\comppos{x}+
+ \compdervect{#1}{#2}{y}\comppos{y}+
+ \compdervect{#1}{#2}{z}\comppos{z}}}
+\newcommand{\Dervectdotepos}[2]{\ensuremath{
+ \compDervect{#1}{#2}{x}\comppos{x}+
+ \compDervect{#1}{#2}{y}\comppos{y}+
+ \compDervect{#1}{#2}{z}\comppos{z}}}
+\newcommand{\dervectdotsdvect}[3]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompsdvect{#3}}}
+\newcommand{\DervectdotsDvect}[3]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompsDvect{#3}}}
+\newcommand{\dervectdotedvect}[3]{\ensuremath{
+ \compdervect{#1}{#2}{x}\compdvect{#3}{x}+
+ \compdervect{#1}{#2}{y}\compdvect{#3}{y}+
+ \compdervect{#1}{#2}{z}\compdvect{#3}{z}}}
+\newcommand{\DervectdoteDvect}[3]{\ensuremath{
+ \compDervect{#1}{#2}{x}\compDvect{#3}{x}+
+ \compDervect{#1}{#2}{y}\compDvect{#3}{y}+
+ \compDervect{#1}{#2}{z}\compDvect{#3}{z}}}
+\newcommand{\dervectdotsdpos}[2]{\ensuremath{
+ \scompsdervect{#1}{#2}\bullet\scompsdpos}}
+\newcommand{\DervectdotsDpos}[2]{\ensuremath{
+ \scompsDervect{#1}{#2}\bullet\scompsDpos}}
+\newcommand{\dervectdotedpos}[2]{\ensuremath{
+ \compdervect{#1}{#2}{x}\compdpos{x}+
+ \compdervect{#1}{#2}{y}\compdpos{y}+
+ \compdervect{#1}{#2}{z}\compdpos{z}}}
+\newcommand{\DervectdoteDpos}[2]{\ensuremath{
+ \compDervect{#1}{#2}{x}\compDpos{x}+
+ \compDervect{#1}{#2}{y}\compDpos{y}+
+ \compDervect{#1}{#2}{z}\compDpos{z}}}
+\newcommand{\ezero}{\ensuremath{\msub{\mathbf{e}}{0}}}
+\newcommand{\eone}{\ensuremath{\msub{\mathbf{e}}{1}}}
+\newcommand{\etwo}{\ensuremath{\msub{\mathbf{e}}{2}}}
+\newcommand{\ethree}{\ensuremath{\msub{\mathbf{e}}{3}}}
+\newcommand{\efour}{\ensuremath{\msub{\mathbf{e}}{4}}}
+\newcommand{\ek}[1]{\ensuremath{\msub{\mathbf{e}}{#1}}}
+\newcommand{\e}{\ek}
+\newcommand{\uezero}{\ensuremath{\msub{\widehat{\mathbf{e}}}{0}}}
+\newcommand{\ueone}{\ensuremath{\msub{\widehat{\mathbf{e}}}{1}}}
+\newcommand{\uetwo}{\ensuremath{\msub{\widehat{\mathbf{e}}}{2}}}
+\newcommand{\uethree}{\ensuremath{\msub{\widehat{\mathbf{e}}}{3}}}
+\newcommand{\uefour}{\ensuremath{\msub{\widehat{\mathbf{e}}}{4}}}
+\newcommand{\uek}[1]{\ensuremath{\msub{\widehat{\mathbf{e}}}{#1}}}
+\newcommand{\ue}{\uek}
+\newcommand{\ezerozero}{\ek{00}}
+\newcommand{\eoneone}{\ek{11}}
+\newcommand{\eonetwo}{\ek{12}}
+\newcommand{\eonethree}{\ek{13}}
+\newcommand{\eonefour}{\ek{14}}
+\newcommand{\etwoone}{\ek{21}}
+\newcommand{\etwotwo}{\ek{22}}
+\newcommand{\etwothree}{\ek{23}}
+\newcommand{\etwofour}{\ek{24}}
+\newcommand{\ethreeone}{\ek{31}}
+\newcommand{\ethreetwo}{\ek{32}}
+\newcommand{\ethreethree}{\ek{33}}
+\newcommand{\ethreefour}{\ek{34}}
+\newcommand{\efourone}{\ek{41}}
+\newcommand{\efourtwo}{\ek{42}}
+\newcommand{\efourthree}{\ek{43}}
+\newcommand{\efourfour}{\ek{44}}
+\newcommand{\euzero}{\ensuremath{\msup{\mathbf{e}}{0}}}
+\newcommand{\euone}{\ensuremath{\msup{\mathbf{e}}{1}}}
+\newcommand{\eutwo}{\ensuremath{\msup{\mathbf{e}}{2}}}
+\newcommand{\euthree}{\ensuremath{\msup{\mathbf{e}}{3}}}
+\newcommand{\eufour}{\ensuremath{\msup{\mathbf{e}}{4}}}
+\newcommand{\euk}[1]{\ensuremath{\msup{\mathbf{e}}{#1}}}
+\newcommand{\eu}{\euk}
+\newcommand{\euzerozero}{\euk{00}}
+\newcommand{\euoneone}{\euk{11}}
+\newcommand{\euonetwo}{\euk{12}}
+\newcommand{\euonethree}{\euk{13}}
+\newcommand{\euonefour}{\euk{14}}
+\newcommand{\eutwoone}{\euk{21}}
+\newcommand{\eutwotwo}{\euk{22}}
+\newcommand{\eutwothree}{\euk{23}}
+\newcommand{\eutwofour}{\euk{24}}
+\newcommand{\euthreeone}{\euk{31}}
+\newcommand{\euthreetwo}{\euk{32}}
+\newcommand{\euthreethree}{\euk{33}}
+\newcommand{\euthreefour}{\euk{34}}
+\newcommand{\eufourone}{\euk{41}}
+\newcommand{\eufourtwo}{\euk{42}}
+\newcommand{\eufourthree}{\euk{43}}
+\newcommand{\eufourfour}{\euk{44}}
+\newcommand{\gzero}{\ensuremath{\msub{\mathbf{\gamma}}{0}}}
+\newcommand{\gone}{\ensuremath{\msub{\mathbf{\gamma}}{1}}}
+\newcommand{\gtwo}{\ensuremath{\msub{\mathbf{\gamma}}{2}}}
+\newcommand{\gthree}{\ensuremath{\msub{\mathbf{\gamma}}{3}}}
+\newcommand{\gfour}{\ensuremath{\msub{\mathbf{\gamma}}{4}}}
+\newcommand{\gk}[1]{\ensuremath{\msub{\mathbf{\gamma}}{#1}}}
+\newcommand{\g}{\gk}
+\newcommand{\gzerozero}{\gk{00}}
+\newcommand{\goneone}{\gk{11}}
+\newcommand{\gonetwo}{\gk{12}}
+\newcommand{\gonethree}{\gk{13}}
+\newcommand{\gonefour}{\gk{14}}
+\newcommand{\gtwoone}{\gk{21}}
+\newcommand{\gtwotwo}{\gk{22}}
+\newcommand{\gtwothree}{\gk{23}}
+\newcommand{\gtwofour}{\gk{24}}
+\newcommand{\gthreeone}{\gk{31}}
+\newcommand{\gthreetwo}{\gk{32}}
+\newcommand{\gthreethree}{\gk{33}}
+\newcommand{\gthreefour}{\gk{34}}
+\newcommand{\gfourone}{\gk{41}}
+\newcommand{\gfourtwo}{\gk{42}}
+\newcommand{\gfourthree}{\gk{43}}
+\newcommand{\gfourfour}{\gk{44}}
+\newcommand{\guzero}{\ensuremath{\msup{\mathbf{\gamma}}{0}}}
+\newcommand{\guone}{\ensuremath{\msup{\mathbf{\gamma}}{1}}}
+\newcommand{\gutwo}{\ensuremath{\msup{\mathbf{\gamma}}{2}}}
+\newcommand{\guthree}{\ensuremath{\msup{\mathbf{\gamma}}{3}}}
+\newcommand{\gufour}{\ensuremath{\msup{\mathbf{\gamma}}{4}}}
+\newcommand{\guk}[1]{\ensuremath{\msup{\mathbf{\gamma}}{#1}}}
+\newcommand{\gu}{\guk}
+\newcommand{\guzerozero}{\guk{00}}
+\newcommand{\guoneone}{\guk{11}}
+\newcommand{\guonetwo}{\guk{12}}
+\newcommand{\guonethree}{\guk{13}}
+\newcommand{\guonefour}{\guk{14}}
+\newcommand{\gutwoone}{\guk{21}}
+\newcommand{\gutwotwo}{\guk{22}}
+\newcommand{\gutwothree}{\guk{23}}
+\newcommand{\gutwofour}{\guk{24}}
+\newcommand{\guthreeone}{\guk{31}}
+\newcommand{\guthreetwo}{\guk{32}}
+\newcommand{\guthreethree}{\guk{33}}
+\newcommand{\guthreefour}{\guk{34}}
+\newcommand{\gufourone}{\guk{41}}
+\newcommand{\gufourtwo}{\guk{42}}
+\newcommand{\gufourthree}{\guk{43}}
+\newcommand{\gufourfour}{\guk{44}}
+\ExplSyntaxOn
+\NewDocumentCommand{\mivector}{ O{,} m o }%
+ {%
+ \mi_vector:nn { #1 } { #2 }
+ \IfValueT{#3}{\;{#3}}
+ }%
+\seq_new:N \l__mi_list_seq
+\cs_new_protected:Npn \mi_vector:nn #1 #2
+{%
+ \ensuremath{%
+ \seq_set_split:Nnn \l__mi_list_seq { , } { #2 }
+ \int_compare:nF { \seq_count:N \l__mi_list_seq = 1 } { \left\langle }
+ \seq_use:Nnnn \l__mi_list_seq { #1 } { #1 } { #1 }
+ \int_compare:nF { \seq_count:N \l__mi_list_seq = 1 } { \right\rangle }
+ }%
+}%
+\ExplSyntaxOff
+\ExplSyntaxOn
+\seq_new:N \l__vector_arg_seq
+\cs_new_protected:Npn \vector_main:nnnn #1 #2 #3 #4
+ {%
+ \seq_set_split:Nnn \l__vector_arg_seq { #3 } { #4 }
+ \begin{#1matrix}
+ \seq_use:Nnnn \l__vector_arg_seq { #2 } { #2 } { #2 }
+ \end{#1matrix}
+ }%
+\NewDocumentCommand{\rowvector}{ O{,} m }
+ {%
+ \ensuremath{
+ \vector_main:nnnn { p } { \,\, } { #1 } { #2 }
+ }%
+ }%
+\NewDocumentCommand{\colvector}{ O{,} m }
+ {%
+ \ensuremath{
+ \vector_main:nnnn { p } { \\ } { #1 } { #2 }
+ }%
+ }%
+\ExplSyntaxOff
+\newcommandx{\scompscvect}[2][1,usedefault]{%
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \colvector{\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+ {%
+ \colvector{\msub{#2}{0},\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+}%
+\newcommandx{\scompsrvect}[2][1,usedefault]{%
+ \ifthenelse{\equal{#1}{}}%
+ {%
+ \rowvector[,]{\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+ {%
+ \rowvector[,]{\msub{#2}{0},\msub{#2}{1},\msub{#2}{2},\msub{#2}{3}}%
+ }%
+}%
+\newphysicsconstant{oofpez}{\ensuremath{\frac{1}{\phantom{_o}4\pi\ssub{\epsilon}{o}}}}
+{\scin[9]{9}}{\ensuremath{\m\cubed\usk\kg\usk\s^{-4}\usk\A\rpsquared}}[\m\per\farad]
+[\newton\usk\m\squared\per\coulomb\squared]
+\newphysicsconstant{oofpezcs}{\ensuremath{\frac{1}{\phantom{_o}4\pi\ssub{\epsilon}{o}
+c^2\phantom{_o}}}}{\scin{-7}}{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}[\tesla\usk\m
+\squared][\newton\usk\s\squared\per\coulomb\squared]
+\newphysicsconstant{epsz}{\ensuremath{\ssub{\epsilon}{o}}}{\scin[9]{-12}}
+{\m\rpcubed\usk\reciprocal\kg\usk\s^{4}\usk\A\squared}[\farad\per\m]
+[\coulomb\squared\per\newton\usk\m\squared]
+\newphysicsconstant{mzofp}{\ensuremath{\frac{\phantom{_oo}\ssub{\mu}{o}\phantom{_o}}
+{4\pi}}}{\scin{-7}}{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}[\henry\per\m]
+[\tesla\usk\m\per\A]
+\newphysicsconstant{muz}{\ensuremath{\ssub{\mu}{o}}}{\scin[4\pi]{-7}}
+{\m\usk\kg\usk\s\rpsquared\usk\A\rpsquared}[\henry\per\m][\tesla\usk\m\per\A]
+\newphysicsconstant{kboltz}{\ensuremath{\ssub{k}{B}}}{\scin[1.38]{-23}}
+{\kg\usk\m\squared\usk\rpsquare\s\usk\reciprocal\K}[\joule\per\K][\joule\per\K]
+\newcommand{\kboltznev}{\ensuremath{\scin[8.62]{-5}{\eV\per\K}}}
+\newphysicsconstant{stefan}{\ensuremath{\sigma}}{\scin[5.67]{-8}}{\kg\usk\s\rpcubed\usk
+\K^{-4}}[\watt\per\m\squared\usk\K^4][\watt\per\m\squared\usk\K^4]
+\newphysicsconstant{planck}{\ensuremath{h}}{\scin[6.62]{-34}}
+{\m\squared\usk\kg\usk\reciprocal\s}[\joule\usk\s][\kg\usk\m\squared\per\s]
+\newcommand{\plancknev}{\ensuremath{\scin[4.136]{-15}{\eV\usk\s}}}
+\newphysicsconstant{planckbar}{\ensuremath{\hbar}}{\scin[1.05]{-34}}
+{\m\squared\usk\kg\usk\reciprocal\s}[\joule\usk\s][\kg\usk\m\squared\per\s]
+\newcommand{\planckbarnev}{\ensuremath{\scin[4.136]{-15}{\eV\usk\s}}}
+\newphysicsconstant{Navogadro}{\ensuremath{\ssub{N}{A}}}{\scin[6.022]{23}}{\reciprocal
+\mol}[\reciprocal\mol][\reciprocal\mol]
+\newphysicsconstant{bigG}{\ensuremath{G}}{\scin[6.67]{-11}}
+{\m\cubed\usk\reciprocal\kg\usk\s\rpsquared}[\joule\usk\m\per\kg\squared]
+[\newton\usk\m\squared\per\kg\squared]
+\newphysicsconstant{littleg}{\ensuremath{g}}{9.80}{\m\usk\s\rpsquared}[\newton\per\kg]
+[\m\per\s\squared]
+\newphysicsconstant{clight}{\ensuremath{c}}{\scin[3.00]{8}}{\m\usk\reciprocal\s}
+[\m\usk\reciprocal\s][\m\per\s]
+\newcommand{\clightnfn}{\ensuremath{\unit{1}{ft\per\nano\s}}}
+\newphysicsconstant{Ratom}{\ensuremath{\ssub{r}{atom}}}{\scin{-10}}{\m}[\m][\m]
+\newphysicsconstant{Mproton}{\ensuremath{\ssub{m}{proton}}}{\scin[1.673]{-27}}{\kg}
+[\kg][\kg]
+\newphysicsconstant{Mneutron}{\ensuremath{\ssub{m}{neutron}}}{\scin[1.675]{-27}}
+{\kg}[\kg][\kg]
+\newphysicsconstant{Mhydrogen}{\ensuremath{\ssub{m}{hydrogen}}}{\scin[1.673]{-27}}
+{\kg}[\kg][\kg]
+\newphysicsconstant{Melectron}{\ensuremath{\ssub{m}{electron}}}{\scin[9.109]{-31}}
+{\kg}[\kg][\kg]
+\newphysicsconstant{echarge}{\ensuremath{e}}{\scin[1.602]{-19}}{\A\usk\s}[\coulomb]
+[\coulomb]
+\newphysicsconstant{Qelectron}{\ensuremath{\ssub{Q}{electron}}}{-\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsconstant{qelectron}{\ensuremath{\ssub{q}{electron}}}{-\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsconstant{Qproton}{\ensuremath{\ssub{Q}{proton}}}{+\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsconstant{qproton}{\ensuremath{\ssub{q}{proton}}}{+\echargevalue}
+{\A\usk\s}[\coulomb][\coulomb]
+\newphysicsconstant{MEarth}{\ensuremath{\ssub{M}{Earth}}}{\scin[6]{24}}{\kg}[\kg][\kg]
+\newphysicsconstant{MMoon}{\ensuremath{\ssub{M}{Moon}}}{\scin[7]{22}}{\kg}[\kg][\kg]
+\newphysicsconstant{MSun}{\ensuremath{\ssub{M}{Sun}}}{\scin[2]{30}}{\kg}[\kg][\kg]
+\newphysicsconstant{REarth}{\ensuremath{\ssub{R}{Earth}}}{\scin[6.4]{6}}{\m}[\m][\m]
+\newphysicsconstant{RMoon}{\ensuremath{\ssub{R}{Moon}}}{\scin[1.75]{6}}{\m}[\m][\m]
+\newphysicsconstant{RSun}{\ensuremath{\ssub{R}{Sun}}}{\scin[7]{8}}{\m}[\m][\m]
+\newphysicsconstant{ESdist}{\magvectsub{r}{ES}}{\scin[1.5]{11}}{\m}[\m][\m]
+\newphysicsconstant{SEdist}{\magvectsub{r}{SE}}{\scin[1.5]{11}}{\m}[\m][\m]
+\newphysicsconstant{EMdist}{\magvectsub{r}{EM}}{\scin[4]{8}}{\m}[\m][\m]
+\newphysicsconstant{MEdist}{\magvectsub{r}{ME}}{\scin[4]{8}}{\m}[\m][\m]
+\newcommand{\lightyear}{\ensuremath{\mathrm{ly}}}
+\newcommand{\Lightyear}{\ensuremath{\mathrm{LY}}}
+\newcommand{\cyear}{\ensuremath{c\usk\mathrm{year}}}
+\newcommand{\cyr}{\ensuremath{c\usk\mathrm{yr}}}
+\newcommand{\yyear}{\ensuremath{\mathrm{year}}}
+\newcommand{\yr}{\ensuremath{\mathrm{yr}}}
+\newcommand{\parsec}{\ensuremath{\mathrm{pc}}}
+\newphysicsconstant{LSun}{\ensuremath{\ssub{L}{Sun}}}{\scin[4]{26}}
+ {\m\squared\usk\kg\usk\s\rpcubed}[\watt][\joule\per\s]
+\newphysicsconstant{TSun}{\ensuremath{\ssub{T}{Sun}}}{5800}{\K}[\K][\K]
+\newphysicsconstant{MagSun}{\ensuremath{\ssub{M}{Sun}}}{+4.83}{}[][]
+\newphysicsconstant{magSun}{\ensuremath{\ssub{m}{Sun}}}{-26.74}{}[][]
+\newcommand{\Lstar}[1][\(\star\)]{\ensuremath{\ssub{L}{#1}}}
+\newcommand{\Lsolar}{\ensuremath{\Lstar[\(\odot\)]}}
+\newcommand{\Tstar}[1][\(\star\)]{\ensuremath{\ssub{T}{#1}}}
+\newcommand{\Tsolar}{\ensuremath{\Tstar[\(\odot\)]}}
+\newcommand{\Rstar}[1][\(\star\)]{\ensuremath{\ssub{R}{#1}}}
+\newcommand{\Rsolar}{\ensuremath{\Rstar[\(\odot\)]}}
+\newcommand{\Mstar}[1][\(\star\)]{\ensuremath{\ssub{M}{#1}}}
+\newcommand{\Msolar}{\ensuremath{\Mstar[\(\odot\)]}}
+\newcommand{\Fstar}[1][\(\star\)]{\ensuremath{\ssub{F}{#1}}}
+\newcommand{\fstar}[1][\(\star\)]{\ensuremath{\ssub{f}{#1}}}
+\newcommand{\FSun}{\ensuremath{\Fstar[Sun]}}
+\newcommand{\fSun}{\ensuremath{\fstar[Sun]}}
+\newcommand{\Fsolar}{\ensuremath{\Fstar[\(\odot\)]}}
+\newcommand{\fsolar}{\ensuremath{\fstar[\(\odot\)]}}
+\newcommand{\Magstar}[1][\(\star\)]{\ensuremath{\ssub{M}{#1}}}
+\newcommand{\magstar}[1][\(\star\)]{\ensuremath{\ssub{m}{#1}}}
+\newcommand{\Magsolar}{\ensuremath{\Magstar[\(\odot\)]}}
+\newcommand{\magsolar}{\ensuremath{\magstar[\(\odot\)]}}
+\newcommand{\Dstar}[1][\(\star\)]{\ensuremath{\ssub{D}{#1}}}
+\newcommand{\dstar}[1][\(\star\)]{\ensuremath{\ssub{d}{#1}}}
+\newcommand{\Dsolar}{\ensuremath{\Dstar[\(\odot\)]}}
+\newcommand{\dsolar}{\ensuremath{\dstar[\(\odot\)]}}
+\newcommand{\onehalf}{\ensuremath{\frac{1}{2}}\xspace}
+\newcommand{\onethird}{\ensuremath{\frac{1}{3}}\xspace}
+\newcommand{\onefourth}{\ensuremath{\frac{1}{4}}\xspace}
+\newcommand{\onefifth}{\ensuremath{\frac{1}{5}}\xspace}
+\newcommand{\onesixth}{\ensuremath{\frac{1}{6}}\xspace}
+\newcommand{\oneseventh}{\ensuremath{\frac{1}{7}}\xspace}
+\newcommand{\oneeighth}{\ensuremath{\frac{1}{8}}\xspace}
+\newcommand{\oneninth}{\ensuremath{\frac{1}{9}}\xspace}
+\newcommand{\onetenth}{\ensuremath{\frac{1}{10}}\xspace}
+\newcommand{\twothirds}{\ensuremath{\frac{2}{3}}\xspace}
+\newcommand{\twofifths}{\ensuremath{\frac{2}{5}}\xspace}
+\newcommand{\twosevenths}{\ensuremath{\frac{2}{7}}\xspace}
+\newcommand{\twoninths}{\ensuremath{\frac{2}{9}}\xspace}
+\newcommand{\threehalves}{\ensuremath{\frac{3}{2}}\xspace}
+\newcommand{\threefourths}{\ensuremath{\frac{3}{4}}\xspace}
+\newcommand{\threefifths}{\ensuremath{\frac{3}{5}}\xspace}
+\newcommand{\threesevenths}{\ensuremath{\frac{3}{7}}\xspace}
+\newcommand{\threeeighths}{\ensuremath{\frac{3}{8}}\xspace}
+\newcommand{\threetenths}{\ensuremath{\frac{3}{10}}\xspace}
+\newcommand{\fourthirds}{\ensuremath{\frac{4}{3}}\xspace}
+\newcommand{\dx}[1]{\ensuremath{\,\mathrm{d}{#1}}}
+\newcommand{\evalfromto}[3]{\ensuremath{\Bigg.{#1}\Bigg\rvert_{#2}^{#3}}}
+\newcommand{\evalat}[2]{\ensuremath{\Bigg.{#1}\Bigg\rvert_{#2}}}
+\newcommand{\evaluatedat}[1]{\ensuremath{\Bigg.\Bigg\rvert_{#1}}}
+\newcommandx{\integral}[4][1,2,usedefault]{\ensuremath{
+ \int_{\ifthenelse{\equal{#1}{}}{}{#4=#1}}^{\ifthenelse{\equal{#2}{}}{}{#4=#2}}}
+ {#3}\dx{#4}}
+\newcommandx{\Integral}[4][1,2,usedefault]{\ensuremath{
+ \bigint_{\ifthenelse{\equal{#1}{}}{}{#4=#1}}^{\ifthenelse{\equal{#2}{}}{}
+ {#4=#2}}}{#3}\dx{#4}}
+\newcommand{\opensurfintegral}[2]{\ensuremath{
+ \int\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{n}}\dx{A}}}
+\newcommand{\opensurfIntegral}[2]{\ensuremath{
+ \bigint\nolimits_{\mskip -25.00mu\displaystyle\mathbf{#1}}
+ \vectdotvect{\vect{#2}}{\dirvect{n}}
+ \dx{A}}}
+\newcommand{\closedsurfintegral}[2]{\ensuremath{
+ \oint\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{n}}\dx{A}}}
+\newcommand{\closedsurfIntegral}[2]{\ensuremath{
+ \bigoint\nolimits_{\mskip -25.00mu\displaystyle\mathbf{#1}}\;\;
+ \vectdotvect{\vect{#2}}{\dirvect{n}}\dx{A}}}
+\newcommand{\openlineintegral}[2]{\ensuremath{
+ \int\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{t}}
+ \dx{\ell}}}
+\newcommand{\openlineIntegral}[2]{\ensuremath{
+ \bigint\nolimits_{\mskip -25.00mu\displaystyle\mathbf{#1}}
+ \vectdotvect{\vect{#2}}{\dirvect{t}}\dx{\ell}}}
+\newcommand{\closedlineintegral}[2]{\ensuremath{
+ \oint\nolimits_{#1}\vectdotvect{\vect{#2}}{\dirvect{t}}\dx{\ell}}}
+\newcommand{\closedlineIntegral}[2]{\ensuremath{
+ \bigoint\nolimits_{\mskip -25.00mu\displaystyle\mathbf {#1}}\;\;
+ \vectdotvect{\vect{#2}}{\dirvect{t}}\dx{\ell}}}
+\newcommandx{\dbydt}[1][1]{\ensuremath{\frac{\mathrm{d}{#1}}{\mathrm{d}t}}}
+\newcommandx{\DbyDt}[1][1]{\ensuremath{\frac{\Delta{#1}}{\Delta t}}}
+\newcommandx{\ddbydt}[1][1]{\ensuremath{\frac{\mathrm{d}^{2}{#1}}{\mathrm{d}t^{2}}}}
+\newcommandx{\DDbyDt}[1][1]{\ensuremath{\frac{\Delta^{2}{#1}}{\Delta t^{2}}}}
+\newcommandx{\pbypt}[1][1]{\ensuremath{\frac{\partial{#1}}{\partial t}}}
+\newcommandx{\ppbypt}[1][1]{\ensuremath{\frac{\partial^{2}{#1}}{\partial t^{2}}}}
+\newcommand{\dbyd}[2]{\ensuremath{\frac{\mathrm{d}{#1}}{\mathrm{d}{#2}}}}
+\newcommand{\DbyD}[2]{\ensuremath{\frac{\Delta{#1}}{\Delta{#2}}}}
+\newcommand{\ddbyd}[2]{\ensuremath{\frac{\mathrm{d}^{2}{#1}}{\mathrm{d}{#2}^{2}}}}
+\newcommand{\DDbyD}[2]{\ensuremath{\frac{\Delta^{2}{#1}}{\Delta{#2}^{2}}}}
+\newcommand{\pbyp}[2]{\ensuremath{\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}
+\newcommand{\divergence}[1]{\ensuremath{\vectdotvect{\nabla}{#1}}}
+\newcommand{\curl}[1]{\ensuremath{\nabla\times{#1}}}
+\newcommand{\diracdelta}[1]{\ensuremath{\boldsymbol{\delta}\quant{#1}}}
+\DeclareMathOperator{\asin}{\sin^{-1}}
+\DeclareMathOperator{\acos}{\cos^{-1}}
+\DeclareMathOperator{\atan}{\tan^{-1}}
+\DeclareMathOperator{\asec}{\sec^{-1}}
+\DeclareMathOperator{\acsc}{\csc^{-1}}
+\DeclareMathOperator{\acot}{\cot^{-1}}
+\DeclareMathOperator{\sech}{sech}
+\DeclareMathOperator{\csch}{csch}
+\DeclareMathOperator{\asinh}{\sinh^{-1}}
+\DeclareMathOperator{\acosh}{\cosh^{-1}}
+\DeclareMathOperator{\atanh}{\tanh^{-1}}
+\DeclareMathOperator{\asech}{\sech^{-1}}
+\DeclareMathOperator{\acsch}{\csch^{-1}}
+\DeclareMathOperator{\acoth}{\coth^{-1}}
+\DeclareMathOperator{\sgn}{sgn}
+\DeclareMathOperator{\dex}{dex}
+\newcommand{\eV}{\electronvolt}
+\newcommand{\ev}{\electronvolt}
+\newcommand{\emf}{\ensuremath{\mathrm{emf}}}
+\newcommand{\logb}[1][\relax]{\ensuremath{\log_{_{#1}}}}
+\ifthenelse{\boolean{@optitalicvectors}}
+ {\newcommand{\cB}{\ensuremath{c\mskip -5.00mu B}}}
+ {\newcommand{\cB}{\ensuremath{\textsf{c}\mskip -3.00mu\mathrm{B}}}}
+\newcommand{\newpi}{\ensuremath{\pi\mskip -7.8mu\pi}}
+\newcommand{\scripty}[1]{\ensuremath{\mathcalligra{#1}}}
+\newcommandx{\flux}[1][1]{\ensuremath{\ssub{\Phi}{#1}}}
+\newcommand{\abs}[1]{\ensuremath{\left\lvert{#1}\right\rvert}}
+\newcommand{\magof}[1]{\ensuremath{\left\lVert{#1}\right\rVert}}
+\newcommand{\dimsof}[1]{\ensuremath{\left[{#1}\right]}}
+\newcommand{\unitsof}[1]{\ensuremath{\left[{#1}\right]_{_{u}}}}
+\newcommand{\quant}[1]{\ensuremath{\left({#1}\right)}}
+\newcommand{\bquant}[1]{\ensuremath{\left[{#1}\right]}}
+\newcommand{\changein}[1]{\ensuremath{\delta{#1}}}
+\newcommand{\Changein}[1]{\ensuremath{\Delta{#1}}}
+\newcommandx{\scin}[3][1,3=\!\!,usedefault]{\ensuremath{
+ \ifthenelse{\equal{#1}{}}
+ {\unit{\msup{10}{#2}}{#3}}
+ {\unit{\msup{{#1}\times 10}{#2}}{#3}}}}
+\newcommand{\ee}[2]{\texttt{{#1}e{#2}}}
+\newcommand{\EE}[2]{\texttt{{#1}E{#2}}}
+\newcommand{\dms}[3]{\ensuremath{\indegrees{#1}\inarcminutes{#2}\inarcseconds{#3}}}
+\newcommand{\hms}[3]{\ensuremath{{#1}^{\hour}{#2}^{\mathrm{m}}{#3}^{\s}}}
+\newcommand{\clockreading}{\hms}
+\newcommand{\latitude}[1]{\ensuremath{\unit{#1}{\degree}}}
+\newcommand{\latitudeN}[1]{\ensuremath{\unit{#1}{\degree\; N}}}
+\newcommand{\latitudeS}[1]{\ensuremath{\unit{#1}{\degree\; S}}}
+\newcommand{\longitude}[1]{\ensuremath{\unit{#1}{\degree}}}
+\newcommand{\longitudeE}[1]{\ensuremath{\unit{#1}{\degree\; E}}}
+\newcommand{\longitudeW}[1]{\ensuremath{\unit{#1}{\degree\; W}}}
+\newcommand{\ssub}[2]{\ensuremath{{#1}_{_{_{\mbox{\tiny{#2}}}}}}}
+\newcommand{\ssup}[2]{\ensuremath{{#1}^{^{^{\mbox{\tiny{#2}}}}}}}
+\newcommand{\ssud}[3]{\ensuremath{{#1}^{^{^{\mbox{\tiny{#2}}}}}_{_{_{\mbox{\tiny{#3}}}}}}}
+\newcommand{\msub}[2]{\ensuremath{#1^{^{\scriptstyle{{}}}}_{_{_{\scriptstyle{#2}}}}}}
+\newcommand{\msup}[2]{\ensuremath{#1^{^{\scriptstyle{#2}}}}}
+\newcommand{\msud}[3]{\ensuremath{#1^{^{\scriptstyle{#2}}}_{_{_{\scriptstyle{#3}}}}}}
+\newcommand{\levicivita}[1]{\ensuremath{\msub{\varepsilon}{#1}}}
+\newcommand{\xaxis}{\ensuremath{x\mbox{-axis }}}
+\newcommand{\yaxis}{\ensuremath{y\mbox{-axis }}}
+\newcommand{\zaxis}{\ensuremath{z\mbox{-axis }}}
+\newcommand{\naxis}[1]{\ensuremath{{#1}\mbox{-axis}}}
+\newcommand{\xyplane}{\ensuremath{xy\mbox{-plane }}}
+\newcommand{\yzplane}{\ensuremath{yz\mbox{-plane }}}
+\newcommand{\zxplane}{\ensuremath{zx\mbox{-plane }}}
+\newcommand{\yxplane}{\ensuremath{yx\mbox{-plane }}}
+\newcommand{\zyplane}{\ensuremath{zy\mbox{-plane }}}
+\newcommand{\xzplane}{\ensuremath{xz\mbox{-plane }}}
+\newcommand{\cuberoot}[1]{\ensuremath{\sqrt[3]{#1}}}
+\newcommand{\fourthroot}[1]{\ensuremath{\sqrt[4]{#1}}}
+\newcommand{\fifthroot}[1]{\ensuremath{\sqrt[5]{#1}}}
+\newcommand{\fsqrt}[1]{\ensuremath{\msup{#1}{\onehalf}}}
+\newcommand{\fcuberoot}[1]{\ensuremath{\msup{#1}{\onethird}}}
+\newcommand{\ffourthroot}[1]{\ensuremath{\msup{#1}{\onefourth}}}
+\newcommand{\ffifthroot}[1]{\ensuremath{\msup{#1}{\onefifth}}}
+\newcommand{\relgamma}[1]{\ensuremath{
+ \frac{1}{\sqrt{1-\msup{\quant{\frac{#1}{c}}}{2}}}}}
+\newcommand{\frelgamma}[1]{\ensuremath{
+ \msup{\quant{1-\frac{\msup{{#1}}{2}}{\msup{c}{2}}}}{-\onehalf}}}
+\newcommand{\oosqrtomxs}[1]{\ensuremath{\frac{1}{\sqrt{1-\msup{#1}{2}}}}}
+\newcommand{\oosqrtomx}[1]{\ensuremath{\frac{1}{\sqrt{1-{#1}}}}}
+\newcommand{\ooomx}[1]{\ensuremath{\frac{1}{1-{#1}}}}
+\newcommand{\ooopx}[1]{\ensuremath{\frac{1}{1+{#1}}}}
+\newcommand{\isequals}{\wordoperator{?}{=}\xspace}
+\newcommand{\wordoperator}[2]{\ensuremath{%
+ \mathrel{\vcenter{\offinterlineskip
+ \halign{\hfil\tiny\upshape##\hfil\cr\noalign{\vskip-.5ex}
+ {#1}\cr\noalign{\vskip.5ex}{#2}\cr}}}}}
+\newcommand{\definedas}{\wordoperator{defined}{as}\xspace}
+\newcommand{\associated}{\wordoperator{associated}{with}\xspace}
+\newcommand{\adjustedby}{\wordoperator{adjusted}{by}\xspace}
+\newcommand{\earlierthan}{\wordoperator{earlier}{than}\xspace}
+\newcommand{\laterthan}{\wordoperator{later}{than}\xspace}
+\newcommand{\forevery}{\wordoperator{for}{every}\xspace}
+\newcommand{\pwordoperator}[2]{\ensuremath{\left(%
+ \mathrel{\vcenter{\offinterlineskip
+ \halign{\hfil\tiny\upshape##\hfil\cr\noalign{\vskip-.5ex}
+ {#1}\cr\noalign{\vskip.5ex}{#2}\cr}}}\right)}}%
+\newcommand{\pdefinedas}{\pwordoperator{defined}{as}\xspace}
+\newcommand{\passociated}{\pwordoperator{associated}{with}\xspace}
+\newcommand{\padjustedby}{\pwordoperator{adjusted}{by}\xspace}
+\newcommand{\pearlierthan}{\pwordoperator{earlier}{than}\xspace}
+\newcommand{\platerthan}{\pwordoperator{later}{than}\xspace}
+\newcommand{\pforevery}{\pwordoperator{for}{every}\xspace}
+\newcommand{\defines}{\ensuremath{\stackrel{\text{\tiny{def}}}{=}}\xspace}
+\newcommand{\inframe}[1][\relax]{\ensuremath{\xrightarrow[\tiny{\mathcal #1}]{}}\xspace}
+\newcommand{\associates}{\ensuremath{\xrightarrow{\text{\tiny{assoc}}}}\xspace}
+\newcommand{\becomes}{\ensuremath{\xrightarrow{\text{\tiny{becomes}}}}\xspace}
+\newcommand{\rrelatedto}[1]{\ensuremath{\xLongrightarrow{\text{\tiny{#1}}}}}
+\newcommand{\lrelatedto}[1]{\ensuremath{\xLongleftarrow[\text{\tiny{#1}}]{}}}
+\newcommand{\brelatedto}[2]{\ensuremath{
+ \xLongleftrightarrow[\text{\tiny{#1}}]{\text{\tiny{#2}}}}}
+\newcommand{\momprinciple}{\ensuremath{
+ \vectsub{p}{sys,f}=\vectsub{p}{sys,i}+\Fnetsys\Delta t}}
+\newcommand{\LHSmomprinciple}{\ensuremath{
+ \vectsub{p}{sys,f}}}
+\newcommand{\RHSmomprinciple}{\ensuremath{
+ \vectsub{p}{sys,i}+\Fnetsys\Delta t}}
+\newcommand{\energyprinciple}{\ensuremath{\ssub{E}{sys,f}=\ssub{E}{sys,i}+
+ \ssub{W}{ext}+Q}}
+\newcommand{\LHSenergyprinciple}{\ensuremath{\ssub{E}{sys,f}}}
+\newcommand{\RHSenergyprinciple}{\ensuremath{\ssub{E}{sys,i}+\ssub{W}{ext}+Q}}
+\newcommand{\angularmomprinciple}{\ensuremath{\vectsub{L}{sys,A,f}=\vectsub{L}{sys,A,i}+
+ \Tnetsys\Delta t}}
+\newcommand{\LHSangularmomprinciple}{\ensuremath{\vectsub{L}{sys,A,f}}}
+\newcommand{\RHSangularmomprinciple}{\ensuremath{\vectsub{L}{sys,A,i}+\Tnetsys\Delta t}}
+\newcommand{\gravinteraction}{\ensuremath{
+ \bigGmathsymbol\frac{\msub{M}{1}\msub{M}{2}}{\msup{\magvectsub{r}{12}}{2}}
+ \quant{-\dirvectsub{r}{12}}}}
+\newcommand{\elecinteraction}{\ensuremath{
+ \oofpezmathsymbol\frac{\msub{Q}{1}\msub{Q}{2}}{\msup{\magvectsub{r}{12}}{2}}
+ \dirvectsub{r}{12}}}
+\newcommand{\Bfieldofparticle}{\ensuremath{
+ \mzofpmathsymbol\frac{Q\magvect{v}}{\msup{\magvect{r}}{2}}\dirvect{v}\times\dirvect{r}}}
+\newcommand{\Efieldofparticle}{\ensuremath{
+ \oofpezmathsymbol\frac{Q}{\msup{\magvect{r}}{2}}\dirvect{r}}}
+\newcommand{\Esys}{\ssub{E}{sys}}
+\newcommandx{\Us}[1][1]{\ssub{\ssub{U}{s}}{#1}}
+\newcommandx{\Ug}[1][1]{\ssub{\ssub{U}{g}}{#1}}
+\newcommandx{\Ue}[1][1]{\ssub{\ssub{U}{e}}{#1}}
+\newcommandx{\Ktrans}[1][1]{\ssub{\ssub{K}{trans}}{#1}}
+\newcommandx{\Krot}[1][1]{\ssub{\ssub{K}{rot}}{#1}}
+\newcommandx{\Eparticle}[1][1]{\ssub{\ssub{E}{particle}}{#1}}
+\newcommandx{\Einternal}[1][1]{\ssub{\ssub{E}{internal}}{#1}}
+\newcommandx{\Erest}[1][1]{\ssub{\ssub{E}{rest}}{#1}}
+\newcommandx{\Echem}[1][1]{\ssub{\ssub{E}{chem}}{#1}}
+\newcommandx{\Etherm}[1][1]{\ssub{\ssub{E}{therm}}{#1}}
+\newcommandx{\Evib}[1][1]{\ssub{\ssub{E}{vib}}{#1}}
+\newcommandx{\Ephoton}[1][1]{\ssub{\ssub{E}{photon}}{#1}}
+\newcommand{\DEsys}{\Changein\Esys}
+\newcommand{\DUs}{\Changein\Us}
+\newcommand{\DUg}{\Changein\Ug}
+\newcommand{\DUe}{\Changein\Ue}
+\newcommand{\DKtrans}{\Changein\Ktrans}
+\newcommand{\DKrot}{\Changein\Krot}
+\newcommand{\DEparticle}{\Changein\Eparticle}
+\newcommand{\DEinternal}{\Changein\Einternal}
+\newcommand{\DErest}{\Changein\Erest}
+\newcommand{\DEchem}{\Changein\Echem}
+\newcommand{\DEtherm}{\Changein\Etherm}
+\newcommand{\DEvib}{\Changein\Evib}
+\newcommand{\DEphoton}{\Changein\Ephoton}
+\newcommand{\Usfinal}{\ssub{\left(\onehalf\ks \msup{s}{2}\right)}{f}}
+\newcommand{\Usinitial}{\ssub{\left(\onehalf\ks \msup{s}{2}\right)}{i}}
+\newcommand{\Ugfinal}{\ssub{\left(-G\frac{\msub{M}{1}\msub{M}{2}}
+ {\magvectsub{r}{12}}\right)}{f}}
+\newcommand{\Uginitial}{\ssub{\left(-G\frac{\msub{M}{1}\msub{M}{2}}
+ {\magvectsub{r}{12}}\right)}{i}}
+\newcommand{\Uefinal}{\ssub{\left(\oofpezmathsymbol\frac{\ssub{Q}{1}\ssub{Q}{2}}
+ {\magvectsub{r}{12}}\right)}{f}}
+\newcommand{\Ueinitial}{\ssub{\left(\oofpezmathsymbol\frac{\ssub{Q}{1}\ssub{Q}{2}}
+ {\magvectsub{r}{12}}\right)}{i}}
+\newcommand{\ks}{\ssub{k}{s}}
+\newcommand{\Fnet}{\ensuremath{\vectsub{F}{net}}}
+\newcommand{\Fnetext}{\ensuremath{\vectsub{F}{net,ext}}}
+\newcommand{\Fnetsys}{\ensuremath{\vectsub{F}{net,sys}}}
+\newcommand{\Fsub}[1]{\ensuremath{\vectsub{F}{#1}}}
+\newcommand{\Tnet}{\ensuremath{\vectsub{T}{net}}}
+\newcommand{\Tnetext}{\ensuremath{\vectsub{T}{net,ext}}}
+\newcommand{\Tnetsys}{\ensuremath{\vectsub{T}{net,sys}}}
+\newcommand{\Tsub}[1]{\ensuremath{\vectsub{T}{#1}}}
+\newcommand{\vpythonline}{\lstinline[language=Python,numbers=left,numberstyle=\tiny,
+ upquote=true,breaklines]}
+\lstnewenvironment{vpythonblock}{\lstvpython}{}
+\newcommand{\vpythonfile}{\lstinputlisting[language=Python,numbers=left,
+ numberstyle=\tiny,upquote=true,breaklines]}
+\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,5=0.10,usedefault]{%
+ \def\skipper{#5}%
+ \def\response@fbox{\fcolorbox{#2}{#1}}%
+ \begin{center}%
+ \begin{lrbox}{\@tempboxa}%
+ \begin{minipage}[c][#5\textheight][c]{#4\textwidth}\color{#3}%
+ \vspace{#5\textheight}}{%
+ \vspace{\skipper\textheight}%
+ \end{minipage}%
+ \end{lrbox}%
+ \response@fbox{\usebox{\@tempboxa}}%
+ \end{center}%
+}%
+\newenvironmentx{adjactivityanswer}[5][1=white,2=black,3=black,4=0.90,5=0.00,
+ usedefault]{%
+ \def\skipper{#5}%
+ \def\response@fbox{\fcolorbox{#2}{#1}}%
+ \begin{center}%
+ \begin{lrbox}{\@tempboxa}%
+ \begin{minipage}[c]{#4\textwidth}\color{#3}%
+ \vspace{#5\textheight}}{%
+ \vspace{\skipper\textheight}%
+ \end{minipage}%
+ \end{lrbox}%
+ \response@fbox{\usebox{\@tempboxa}}%
+ \end{center}%
+}%
+\newcommandx{\emptybox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.10,usedefault]
+ {\begin{center}
+ \fcolorbox{#3}{#2}{%
+ \begin{minipage}[c][#6\textheight][c]{#5\textwidth}\color{#4}%
+ {#1}%
+ \end{minipage}}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+\newcommandx{\adjemptybox}[7][1=\hfill,2=white,3=black,4=black,5=0.90,6=,7=0.0,usedefault]
+ {\begin{center}
+ \fcolorbox{#3}{#2}{%
+ \begin{minipage}[c]{#5\textwidth}\color{#4}%
+ \vspace{#7\textheight}%
+ {#1}%
+ \vspace{#7\textheight}%
+ \end{minipage}}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+\newcommandx{\answerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.1,usedefault]
+ {\ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\emptybox[#1][#2][#3][#4][#5][#6]}}%
+\newcommandx{\adjanswerbox}[7][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.1,7=0.0,
+ usedefault]
+ {\ifthenelse{\equal{#1}{}}%
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\adjemptybox[#1][#2][#3][#4][#5][#6][#7]}}%
+\newcommandx{\smallanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.10,
+ usedefault]
+ {\ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\emptybox[#1][#2][#3][#4][#5][#6]}}%
+\newcommandx{\mediumanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.20,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+\newcommandx{\largeanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.25,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+\newcommandx{\largeranswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.33,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+\newcommandx{\hugeanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.50,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+\newcommandx{\hugeranswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=0.75,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]%
+ }%
+ \vspace{\baselineskip}%
+ \end{center}%
+ }%
+ {\emptybox[#1][#2][#3][#4][#5][#6]
+ }%
+}%
+\newcommandx{\fullpageanswerbox}[6][1=\hfill,2=white,3=black,4=black,5=0.90,6=1.00,
+ usedefault]{%
+ \ifthenelse{\equal{#1}{}}
+ {\begin{center}%
+ \fcolorbox{#3}{#2}{%
+ \emptyanswer[#5][#6]}%
+ \vspace{\baselineskip}%
+ \end{center}}%
+ {\emptybox[#1][#2][#3][#4][#5][#6]}}%
+\mdfdefinestyle{miinstructornotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={INSTRUCTOR NOTE},
+ frametitlebackgroundcolor=cyan!60, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=cyan!25,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{miinstructornote}{%
+ \begin{mdframed}[style=miinstructornotestyle]
+ \begin{adjactivityanswer}[cyan!25][cyan!25][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+\mdfdefinestyle{mistudentnotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={STUDENT NOTE},
+ frametitlebackgroundcolor=cyan!60, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=cyan!25,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{mistudentnote}{%
+ \begin{mdframed}[style=mistudentnotestyle]
+ \begin{adjactivityanswer}[cyan!25][cyan!25][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+\mdfdefinestyle{miderivationstyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=0pt, rightmargin=0pt, linewidth=1, roundcorner=10,
+ frametitle={DERIVATION},
+ frametitlebackgroundcolor=orange!60, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=orange!25,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{miderivation}{%
+ \begin{mdframed}[style=miderivationstyle]
+ \setcounter{equation}{0}
+ \begin{align}
+ \BODY
+ \end{align}
+ \end{mdframed}
+}%
+\mdfdefinestyle{bwinstructornotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={INSTRUCTOR NOTE},
+ frametitlebackgroundcolor=gray!50, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=gray!20,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{bwinstructornote}{%
+ \begin{mdframed}[style=bwinstructornotestyle]
+ \begin{adjactivityanswer}[gray!20][gray!20][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+\mdfdefinestyle{bwstudentnotestyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=40pt, rightmargin=40pt, linewidth=1, roundcorner=10,
+ frametitle={STUDENT NOTE},
+ frametitlebackgroundcolor=gray!50, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=gray!20,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{bwstudentnote}{%
+ \begin{mdframed}[style=bwstudentnotestyle]
+ \begin{adjactivityanswer}[gray!20][gray!20][black]
+ \BODY
+ \end{adjactivityanswer}
+ \end{mdframed}
+}%
+\mdfdefinestyle{bwderivationstyle}{%
+ hidealllines=false, skipbelow=\baselineskip, skipabove=\baselineskip,
+ leftmargin=0pt, rightmargin=0pt, linewidth=1, roundcorner=10,
+ frametitle={DERIVATION},
+ frametitlebackgroundcolor=gray!50, frametitlerule=true, frametitlerulewidth=1,
+ backgroundcolor=gray!20,
+ linecolor=black, fontcolor=black, shadow=true}
+\NewEnviron{bwderivation}{%
+ \begin{mdframed}[style=bwderivationstyle]
+ \setcounter{equation}{0}
+ \begin{align}
+ \BODY
+ \end{align}
+ \end{mdframed}
+}
+\newcommand{\checkpoint}{%
+ \vspace{1cm}\begin{center}|--------- CHECKPOINT ---------|\end{center}}%
+\newcommand{\image}[2]{%
+ \begin{figure}[h!]
+ \begin{center}%
+ \includegraphics[scale=1]{#1}%
+ \caption{#2}%
+ \label{#1}%
+ \end{center}%
+ \end{figure}}
+\newcommand{\sneakyone}[1]{\ensuremath{\cancelto{1}{\frac{#1}{#1}}}}
+\newcommand{\chkphysicsquantity}[1]{%
+ \cs{#1}
+}%
+\newcommandx{\vecto}[2][2,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#2}{}}%
+ {\vec{\mathrm #1}}%
+ {\ssub{\vec{\mathrm #1}}{#2}}}}%
+\newcommandx{\compvecto}[3][2,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#2}{}}%
+ {\ssub{\mathrm #1}{\(#3\)}}%
+ {\ssub{\mathrm #1}{#2,\(#3\)}}}}%
+\newcommandx{\scompsvecto}[2][2,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#2}{}}%
+ {\lv\compvecto{#1}{x},\compvecto{#1}{y},\compvecto{#1}{z}\rv}%
+ {\lv\compvecto{#1}[#2]{x},\compvecto{#1}[#2]{y},\compvecto{#1}[#2]{z}\rv}}}%
+\newcommandx{\compposo}[2][1,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#1}{}}%
+ {#2}%
+ {\ssub{#2}{#1}}}}%
+\newcommandx{\scompsposo}[1][1,usedefault]{\ensuremath{%
+ \ifthenelse{\equal{#1}{}}%
+ {\lv\compposo{x},\compposo{y},\compposo{z}\rv}%
+ {\lv\compposo[#1]{x},\compposo[#1]{y},\compposo[#1]{z}\rv}}}%
+\endinput
+%%
+%% End of file `mandi.sty'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index e6a4793c736..3a99ad9ac21 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -264,7 +264,7 @@ my @TLP_working = qw(
lxfonts ly1
m-tx macqassign macros2e mafr magaz magyar mailing mailmerge
makebarcode makebox makecell makecirc makecmds makedtx makeglos makeplot
- manuscript margbib
+ mandi manuscript margbib
marginfix marginnote marvosym
match_parens math-e mathabx mathabx-type1 mathalfa mathastext
mathcomp mathdesign mathdots mathexam
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index e826cc94e23..f78c97a9de3 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -449,6 +449,7 @@ depend makecirc
depend makecmds
depend makedtx
depend makeglos
+depend mandi
depend manfnt
depend manuscript
depend marginfix
diff --git a/Master/tlpkg/tlpsrc/mandi.tlpsrc b/Master/tlpkg/tlpsrc/mandi.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/mandi.tlpsrc