%%
%% This is file `mandi.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% mandi.dtx  (with options: `package')
%% 
%% Copyright (C) 2016 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
%%                                 README
%%                                 mandi.pdf
%% 
%% and includes the derived files  mandi.ins
%%                                 mandi.sty and
%%                                 vdemo.py.
%% ---------------------------------------------------------------------------
%% 
\ProvidesPackage{mandi}[2016/03/15 2.5.1 Macros for physics and astronomy]
\NeedsTeXFormat{LaTeX2e}[1999/12/01]

\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{array}
\RequirePackage{cancel}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage{environ}
\RequirePackage{esint}
\RequirePackage[g]{esvect}
\RequirePackage{etoolbox}
\RequirePackage{filehook}
\RequirePackage{extarrows}
\RequirePackage[T1]{fontenc}
\RequirePackage{graphicx}
\RequirePackage{epstopdf}
\RequirePackage{textcomp}
\RequirePackage{letltxmacro}
\RequirePackage{listings}
\RequirePackage{mathtools}
\RequirePackage[framemethod=TikZ]{mdframed}
\RequirePackage{stackengine}
\RequirePackage{suffix}
\RequirePackage{xargs}
\RequirePackage{xparse}
\RequirePackage{xspace}
\RequirePackage{ifthen}
\RequirePackage{calligra}
\RequirePackage{hyperref}
\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{vbgcolor}{rgb}{1,1,1}           % background for code listings
\definecolor{vshadowcolor}{rgb}{0.5,0.5,0.5} % shadow for code listings
\lstdefinestyle{vpython}{%                   % style for code listings
  language=Python,%                          % select language
  morekeywords={__future__,division,append,  % VPython/GlowScript specific keywords
  arange,arrow,astuple,axis,background,black,blue,cyan,green,%
  magenta,orange,red,white,yellow,border,box,color,comp,%
  cone,convex,cross,curve,cylinder,degrees,diff_angle,dot,ellipsoid,extrusion,faces,%
  font,frame,graphs,headlength,height,headwidth,helix,index,interval,label,length,%
  line,linecolor,mag,mag2,make_trail,material,norm,normal,objects,opacity,points,pos,%
  print,print_function,proj,pyramid,radians,radius,rate,retain,ring,rotate,scene,%
  shaftwidth,shape,sign,size,space,sphere,text,trail_object,trail_type,True,twist,up,%
  vector,visual,width,offset,yoffset,GlowScript,VPython,trail_color,trail_radius,%
  pps,clear,False,CoffeeScript,graph,gdisplay,canvas,pause,vec,clone,compound,%
  vertex,triangle,quad,attach_trail,attach_arrow,textures,bumpmaps,print_options,%
  get_library,read_local_file},%
  captionpos=b,%                       % position caption
  frame=shadowbox,%                    % shadowbox around listing
  rulesepcolor=\color{vshadowcolor},%  % shadow color
  basicstyle=\footnotesize,%           % basic font for code listings
  commentstyle=\bfseries\color{red},   % font for comments
  keywordstyle=\bfseries\color{blue},% % font for keywords
  showstringspaces=true,%              % show spaces in strings
  stringstyle=\bfseries\color{green},% % color for strings
  numbers=left,%                       % where to put line numbers
  numberstyle=\tiny,%                  % set to 'none' for no line numbers
  xleftmargin=20pt,%                   % extra left margin
  backgroundcolor=\color{vbgcolor},%   % some people find this annoying
  upquote=true,%                       % how to typeset quotes
  breaklines=true}%                    % break long lines
\definecolor{formcolor}{gray}{0.90}    % color for form background
\newcolumntype{C}[1]{>{\centering}m{#1}}
\newboolean{@optromanvectors}
\newboolean{@optboldvectors}
\newboolean{@optsingleabsbars}
\newboolean{@optbaseunits}
\newboolean{@optdrvdunits}
\newboolean{@optapproxconsts}
\newboolean{@optuseradians}
\setboolean{@optromanvectors}{false}   % this is where you set the default option
\setboolean{@optboldvectors}{false}    % this is where you set the default option
\setboolean{@optsingleabsbars}{false}  % this is where you set the default option
\setboolean{@optbaseunits}{false}      % this is where you set the default option
\setboolean{@optdrvdunits}{false}      % this is where you set the default option
\setboolean{@optapproxconsts}{false}   % this is where you set the default option
\setboolean{@optuseradians}{false}     % this is where you set the default option
\DeclareOption{romanvectors}{\setboolean{@optromanvectors}{true}}
\DeclareOption{boldvectors}{\setboolean{@optboldvectors}{true}}
\DeclareOption{singleabsbars}{\setboolean{@optsingleabsbars}{true}}
\DeclareOption{baseunits}{\setboolean{@optbaseunits}{true}}
\DeclareOption{drvdunits}{\setboolean{@optdrvdunits}{true}}
\DeclareOption{approxconsts}{\setboolean{@optapproxconsts}{true}}
\DeclareOption{useradians}{\setboolean{@optuseradians}{true}}
\ProcessOptions\relax
\newcommand*{\mandiversion}{2.5.0}
\typeout{mandi: You're using mandi version \mandiversion.}
\@ifpackageloaded{amssymb}{%
  \csundef{square}
  \typeout{mandi: Package amssymb detected. Its \protect\square\space
  has been redefined.}
}{%
  \typeout{mandi: Package amssymb not detected.}
}%
\newcommand*{\per}{\ensuremath{/}}
\newcommand*{\usk}{\ensuremath{\cdot}}
\newcommand*{\unit}[2]{\ensuremath{{#1}\,{#2}}}
\newcommand*{\ampere}{\ensuremath{\mathrm{A}}}
\newcommand*{\arcminute}{\ensuremath{'}}
\newcommand*{\arcsecond}{\ensuremath{''}}
\newcommand*{\atomicmassunit}{\ensuremath{\mathrm{u}}}
\newcommand*{\candela}{\ensuremath{\mathrm{cd}}}
\newcommand*{\coulomb}{\ensuremath{\mathrm{C}}}
\newcommand*{\degree}{\ensuremath{^{\circ}}}
\newcommand*{\electronvolt}{\ensuremath{\mathrm{eV}}}
\newcommand*{\eV}{\electronvolt}
\newcommand*{\farad}{\ensuremath{\mathrm{F}}}
\newcommand*{\henry}{\ensuremath{\mathrm{H}}}
\newcommand*{\hertz}{\ensuremath{\mathrm{Hz}}}
\newcommand*{\hour}{\ensuremath{\mathrm{h}}}
\newcommand*{\joule}{\ensuremath{\mathrm{J}}}
\newcommand*{\kelvin}{\ensuremath{\mathrm{K}}}
\newcommand*{\kilogram}{\ensuremath{\mathrm{kg}}}
\newcommand*{\metre}{\ensuremath{\mathrm{m}}}
\newcommand*{\minute}{\ensuremath{\mathrm{min}}}
\newcommand*{\mole}{\ensuremath{\mathrm{mol}}}
\newcommand*{\newton}{\ensuremath{\mathrm{N}}}
\newcommand*{\ohm}{\ensuremath{\Omega}}
\newcommand*{\pascal}{\ensuremath{\mathrm{Pa}}}
\newcommand*{\radian}{\ensuremath{\mathrm{rad}}}
\newcommand*{\second}{\ensuremath{\mathrm{s}}}
\newcommand*{\siemens}{\ensuremath{\mathrm{S}}}
\newcommand*{\steradian}{\ensuremath{\mathrm{sr}}}
\newcommand*{\tesla}{\ensuremath{\mathrm{T}}}
\newcommand*{\volt}{\ensuremath{\mathrm{V}}}
\newcommand*{\watt}{\ensuremath{\mathrm{W}}}
\newcommand*{\weber}{\ensuremath{\mathrm{Wb}}}
\newcommand*{\C}{\coulomb}
\newcommand*{\F}{\farad}
\newcommand*{\J}{\joule}
\newcommand*{\N}{\newton}
\newcommand*{\Pa}{\pascal}
\newcommand*{\rad}{\radian}
\newcommand*{\sr}{\steradian}
\newcommand*{\T}{\tesla}
\newcommand*{\V}{\volt}
\newcommand*{\W}{\watt}
\newcommand*{\Wb}{\weber}
\newcommand*{\square}[1]{\ensuremath{{#1}^2}}               % prefix   2
\newcommand*{\cubic}[1]{\ensuremath{{#1}^3}}                % prefix   3
\newcommand*{\quartic}[1]{\ensuremath{{#1}^4}}              % prefix   4
\newcommand*{\reciprocal}[1]{\ensuremath{{#1}^{-1}}}        % prefix  -1
\newcommand*{\reciprocalsquare}[1]{\ensuremath{{#1}^{-2}}}  % prefix  -2
\newcommand*{\reciprocalcubic}[1]{\ensuremath{{#1}^{-3}}}   % prefix  -3
\newcommand*{\reciprocalquartic}[1]{\ensuremath{{#1}^{-4}}} % prefix  -4
\newcommand*{\squared}{\ensuremath{^2}}                     % postfix  2
\newcommand*{\cubed}{\ensuremath{^3}}                       % postfix  3
\newcommand*{\quarted}{\ensuremath{^4}}                     % postfix  4
\newcommand*{\reciprocaled}{\ensuremath{^{-1}}}             % postfix -1
\newcommand*{\reciprocalsquared}{\ensuremath{^{-2}}}        % postfix -2
\newcommand*{\reciprocalcubed}{\ensuremath{^{-3}}}          % postfix -3
\newcommand*{\reciprocalquarted}{\ensuremath{^{-4}}}        % postfix -4
\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{\unit{#8}{\selectunit{#3}{#1}{#2}}}%
  \mi@name#4{#5baseunit}#7{\unit{#8}{#3}}%
  \mi@name#4{#5drvdunit}#7{\unit{#8}{#1}}%
  \mi@name#4{#5tradunit}#7{\unit{#8}{#2}}%
  \mi@name#4{#5onlyunit}{\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{@optboldvectors}}
  {\typeout{mandi: You'll get bold vectors.}}
  {\ifthenelse{\boolean{@optromanvectors}}
   {\typeout{mandi: You'll get Roman vectors.}}
   {\typeout{mandi: You'll get italic vectors.}}}
\ifthenelse{\boolean{@optsingleabsbars}}
  {\typeout{mandi: You'll get single absolute value bars.}}
  {\typeout{mandi: You'll get double 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.}}}
\ifthenelse{\boolean{@optapproxconsts}}
  {\typeout{mandi: You'll get approximate constants.}}
  {\typeout{mandi: You'll get precise constants.}}
\ifthenelse{\boolean{@optuseradians}}
  {\typeout{mandi: You'll get radians in ang mom, ang impulse, and torque.}}
  {\typeout{mandi: You won't get radians in ang mom, ang impulse, and torque.}}
\ifthenelse{\boolean{@optapproxconsts}}
  {\newcommand*{\mi@p}[2]{#1}} % approximate value
  {\newcommand*{\mi@p}[2]{#2}} % precise value
\newcommand*{\m}{\metre}
\newcommand*{\kg}{\kilogram}
\newcommand*{\s}{\second}
\newcommand*{\A}{\ampere}
\newcommand*{\K}{\kelvin}
\newcommand*{\mol}{\mole}
\newcommand*{\cd}{\candela}
\newcommand*{\dimdisplacement}{\ensuremath{\mathrm{L}}}
\newcommand*{\dimmass}{\ensuremath{\mathrm{M}}}
\newcommand*{\dimduration}{\ensuremath{\mathrm{T}}}
\newcommand*{\dimcurrent}{\ensuremath{\mathrm{I}}}
\newcommand*{\dimtemperature}{\ensuremath{\mathrm{\Theta}}}
\newcommand*{\dimamount}{\ensuremath{\mathrm{N}}}
\newcommand*{\dimluminous}{\ensuremath{\mathrm{J}}}
\newcommand*{\indegrees}[1]{\unit{#1}{\degree}}
\newcommand*{\inFarenheit}[1]{\unit{#1}{\degree\mathrm{F}}}
\newcommand*{\inCelsius}[1]{\unit{#1}{\degree\mathrm{C}}}
\newcommand*{\inarcminutes}[1]{\unit{#1}{\arcminute}}
\newcommand*{\inarcseconds}[1]{\unit{#1}{\arcsecond}}
\newcommand*{\ineV}[1]{\unit{#1}{\electronvolt}}
\newcommand*{\ineVocs}[1]{\unit{#1}{\mathrm{eV}\per c^2}}
\newcommand*{\ineVoc}[1]{\unit{#1}{\mathrm{eV}\per c}}
\newcommand*{\inMeV}[1]{\unit{#1}{\mathrm{MeV}}}
\newcommand*{\inMeVocs}[1]{\unit{#1}{\mathrm{MeV}\per c^2}}
\newcommand*{\inMeVoc}[1]{\unit{#1}{\mathrm{MeV}\per c}}
\newcommand*{\inGeV}[1]{\unit{#1}{\mathrm{GeV}}}
\newcommand*{\inGeVocs}[1]{\unit{#1}{\mathrm{GeV}\per c^2}}
\newcommand*{\inGeVoc}[1]{\unit{#1}{\mathrm{GeV}\per c}}
\newcommand*{\inamu}[1]{\unit{#1}{\mathrm{u}}}
\newcommand*{\ingram}[1]{\unit{#1}{\mathrm{g}}}
\newcommand*{\ingrampercubiccm}[1]{\unit{#1}{\mathrm{g}\per\cubic\mathrm{cm}}}
\newcommand*{\inAU}[1]{\unit{#1}{\mathrm{AU}}}
\newcommand*{\inly}[1]{\unit{#1}{\mathrm{ly}}}
\newcommand*{\incyr}[1]{\unit{#1}{c\usk\mathrm{year}}}
\newcommand*{\inpc}[1]{\unit{#1}{\mathrm{pc}}}
\newcommand*{\insolarL}[1]{\unit{#1}{\Lsolar}}
\newcommand*{\insolarT}[1]{\unit{#1}{\Tsolar}}
\newcommand*{\insolarR}[1]{\unit{#1}{\Rsolar}}
\newcommand*{\insolarM}[1]{\unit{#1}{\Msolar}}
\newcommand*{\insolarF}[1]{\unit{#1}{\Fsolar}}
\newcommand*{\insolarf}[1]{\unit{#1}{\fsolar}}
\newcommand*{\insolarMag}[1]{\unit{#1}{\Magsolar}}
\newcommand*{\insolarmag}[1]{\unit{#1}{\magsolar}}
\newcommand*{\insolarD}[1]{\unit{#1}{\Dsolar}}
\newcommand*{\insolard}[1]{\unit{#1}{\dsolar}}
\newcommand*{\velocityc}[1]{\ensuremath{#1c}}
\newcommand*{\lorentz}[1]{\ensuremath{#1}}
\newcommand*{\speed}{\velocity}
\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}%
  [\rad]%
  []
\newphysicsquantity{solidangle}%
  {\m\squared\usk\reciprocalsquare\m}%
  [\sr]%
  []
\newphysicsquantity{velocity}%
  {\m\usk\reciprocal\s}%
  [\m\usk\reciprocal\s]%
  [\m\per\s]
\newphysicsquantity{acceleration}%
  {\m\usk\s\reciprocalsquared}%
  [\N\per\kg]%
  [\m\per\s\squared]
\newphysicsquantity{gravitationalfield}%
  {\m\usk\s\reciprocalsquared}%
  [\N\per\kg]%
  [\N\per\kg]
\newphysicsquantity{gravitationalpotential}%
  {\square\m\usk\reciprocalsquare\s}%
  [\J\per\kg]%
  [\J\per\kg]
\newphysicsquantity{momentum}%
  {\m\usk\kg\usk\reciprocal\s}%
  [\N\usk\s]%
  [\kg\usk\m\per\s]
\newphysicsquantity{impulse}%
  {\m\usk\kg\usk\reciprocal\s}%
  [\N\usk\s]%
  [\N\usk\s]
\newphysicsquantity{force}%
  {\m\usk\kg\usk\s\reciprocalsquared}%
  [\N]%
  [\N]
\newphysicsquantity{springstiffness}%
  {\kg\usk\s\reciprocalsquared}%
  [\N\per\m]%
  [\N\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\reciprocalsquared\usk\kg}%
  [\kg\per\m\squared]%
  [\kg\per\m\squared]
\newphysicsquantity{volumemassdensity}%
  {\m\reciprocalcubed\usk\kg}%
  [\kg\per\m\cubed]%
  [\kg\per\m\cubed]
\newphysicsquantity{youngsmodulus}%
  {\reciprocal\m\usk\kg\usk\s\reciprocalsquared}%
  [\N\per\m\squared]%
  [\Pa]
\newphysicsquantity{stress}%
  {\reciprocal\m\usk\kg\usk\s\reciprocalsquared}%
  [\N\per\m\squared]%
  [\Pa]
\newphysicsquantity{pressure}%
  {\reciprocal\m\usk\kg\usk\s\reciprocalsquared}%
  [\N\per\m\squared]%
  [\Pa]
\newphysicsquantity{strain}%
  {}%
  []%
  []
\newphysicsquantity{work}%
  {\m\squared\usk\kg\usk\s\reciprocalsquared}%
  [\N\usk\m]%
  [\J]
\newphysicsquantity{energy}%
  {\m\squared\usk\kg\usk\s\reciprocalsquared}%
  [\N\usk\m]%
  [\J]
\newphysicsquantity{power}%
  {\m\squared\usk\kg\usk\s\reciprocalcubed}%
  [\J\per\s]%
  [\W]
\newphysicsquantity{specificheatcapacity}%
  {\J\per\K\usk\kg}%
  [\J\per\K\usk\kg]%
  [\J\per\K\usk\kg]
\newphysicsquantity{angularvelocity}%
  {\rad\usk\reciprocal\s}%
  [\rad\per\s]%
  [\rad\per\s]
\newphysicsquantity{angularacceleration}%
  {\rad\usk\s\reciprocalsquared}%
  [\rad\per\s\squared]%
  [\rad\per\s\squared]
\newphysicsquantity{momentofinertia}%
  {\m\squared\usk\kg}%
  [\m\usk\kg\squared]%
  [\J\usk\s\squared]
\ifthenelse{\boolean{@optuseradians}}
  {%
  \newphysicsquantity{angularmomentum}%
    {\m\squared\usk\kg\usk\reciprocal\s\usk\reciprocal\rad}%
    [\N\usk\m\usk\s\per\rad]%
    [\m\squared\usk\kg\usk\reciprocal\s\usk\reciprocal\rad]
  \newphysicsquantity{angularimpulse}%
    {\m\squared\usk\kg\usk\reciprocal\s\usk\reciprocal\rad}%
    [\N\usk\m\usk\s\per\rad]%
    [\J\usk\s\per\rad]
  \newphysicsquantity{torque}%
    {\m\squared\usk\kg\usk\s\reciprocalsquared\usk\reciprocal\rad}%
    [\N\usk\m\per\rad]%
    [\J\per\rad]
  }%
  {%
  \newphysicsquantity{angularmomentum}%
    {\m\squared\usk\kg\usk\reciprocal\s}%
    [\N\usk\m\usk\s]%
    [\m\squared\usk\kg\usk\reciprocal\s]
  \newphysicsquantity{angularimpulse}%
    {\m\squared\usk\kg\usk\reciprocal\s}%
    [\N\usk\m\usk\s]%
    [\J\usk\s]
  \newphysicsquantity{torque}%
    {\m\squared\usk\kg\usk\s\reciprocalsquared}%
    [\N\usk\m]%
    [\J]
  }%
\newphysicsquantity{entropy}%
  {\m\squared\usk\kg\usk\s\reciprocalsquared\usk\reciprocal\K}%
  [\J\per\K]%
  [\J\per\K]
\newphysicsquantity{wavelength}%
  {\m}%
  [\m]%
  [\m]
\newphysicsquantity{wavenumber}%
  {\reciprocal\m}%
  [\per\m]%
  [\per\m]
\newphysicsquantity{frequency}%
  {\reciprocal\s}%
  [\hertz]%
  [\hertz]
\newphysicsquantity{angularfrequency}%
  {\rad\usk\reciprocal\s}%
  [\rad\per\s]%
  [\rad\per\s]
\newphysicsquantity{charge}%
  {\A\usk\s}%
  [\C]%
  [\C]
\newphysicsquantity{permittivity}%
  {\m\reciprocalcubed\usk\reciprocal\kg\usk\s\reciprocalquarted\usk\A\squared}%
  [\F\per\m]%
  [\C\squared\per\N\usk\m\squared]
\newphysicsquantity{permeability}%
  {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}%
  [\henry\per\m]%
  [\T\usk\m\per\A]
\newphysicsquantity{electricfield}%
  {\m\usk\kg\usk\s\reciprocalcubed\usk\reciprocal\A}%
  [\V\per\m]%
  [\N\per\C]
\newphysicsquantity{electricdipolemoment}%
  {\m\usk\s\usk\A}%
  [\C\usk\m]%
  [\C\usk\m]
\newphysicsquantity{electricflux}%
  {\m\cubed\usk\kg\usk\s\reciprocalcubed\usk\reciprocal\A}%
  [\V\usk\m]%
  [\N\usk\m\squared\per\C]
\newphysicsquantity{magneticfield}%
  {\kg\usk\s\reciprocalsquared\usk\reciprocal\A}%
  [\T]%
  [\N\per\C\usk(\m\per\s)] % also \Wb\per\m\squared
\newphysicsquantity{magneticflux}%
  {\m\squared\usk\kg\usk\s\reciprocalsquared\usk\reciprocal\A}%
  [\volt\usk\s]%
  [\T\usk\m\squared] % also \Wb and \J\per\A
\newphysicsquantity{cmagneticfield}%
  {\m\usk\kg\usk\s\reciprocalcubed\usk\reciprocal\A}%
  [\V\per\m]%
  [\N\per\C]
\newphysicsquantity{linearchargedensity}%
  {\reciprocal\m\usk\s\usk\A}%
  [\C\per\m]%
  [\C\per\m]
\newphysicsquantity{areachargedensity}%
  {\reciprocalsquare\m\usk\s\usk\A}%
  [\C\per\square\m]%
  [\C\per\square\m]
\newphysicsquantity{volumechargedensity}%
  {\reciprocalcubic\m\usk\s\usk\A}%
  [\C\per\cubic\m]%
  [\C\per\cubic\m]
\newphysicsquantity{mobility}%
 {\m\squared\usk\kg\usk\s\reciprocalquarted\usk\reciprocal\A}%
 [\m\squared\per\volt\usk\s]%
 [(\m\per\s)\per(\N\per\C)]
\newphysicsquantity{numberdensity}%
  {\reciprocalcubic\m}%
  [\per\cubic\m]%
  [\per\cubic\m]
\newphysicsquantity{polarizability}%
  {\reciprocal\kg\usk\s\quarted\usk\square\A}%
  [\C\usk\square\m\per\V]%
  [\C\usk\m\per(\N\per\C)]
\newphysicsquantity{electricpotential}%
  {\square\m\usk\kg\usk\reciprocalcubic\s\usk\reciprocal\A}%
  [\J\per\C]%
  [\V]
\newphysicsquantity{emf}%
  {\square\m\usk\kg\usk\reciprocalcubic\s\usk\reciprocal\A}%
  [\J\per\C]%
  [\V]
\newphysicsquantity{dielectricconstant}%
  {}%
  []%
  []
\newphysicsquantity{indexofrefraction}%
  {}%
  []%
  []
\newphysicsquantity{relativepermittivity}%
  {}%
  []%
  []
\newphysicsquantity{relativepermeability}
  {}%
  []%
  []
\newphysicsquantity{energydensity}%
  {\m\reciprocaled\usk\kg\usk\reciprocalsquare\s}%
  [\J\per\cubic\m]%
  [\J\per\cubic\m]
\newphysicsquantity{energyflux}%
  {\kg\usk\s\reciprocalcubed}%
  [\W\per\m\squared]%
  [\W\per\m\squared]
\newphysicsquantity{electroncurrent}%
  {\reciprocal\s}%
  [\ensuremath{\mathrm{e}}\per\s]%
  [\ensuremath{\mathrm{e}}\per\s]
\newphysicsquantity{conventionalcurrent}%
  {\A}%
  [\C\per\s]%
  [\A]
\newphysicsquantity{magneticdipolemoment}%
  {\square\m\usk\A}%
  [\J\per\T]%
  [\A\usk\square\m]
\newphysicsquantity{currentdensity}%
  {\reciprocalsquare\m\usk\A}%
  [\C\usk\s\per\square\m]%
  [\A\per\square\m]
\newphysicsquantity{capacitance}%
  {\reciprocalsquare\m\usk\reciprocal\kg\usk\quartic\s\usk\square\A}%
  [\F]%
  [\C\per\V] % also \C\squared\per\N\usk\m, \s\per\ohm
\newphysicsquantity{inductance}%
  {\square\m\usk\kg\usk\reciprocalsquare\s\usk\reciprocalsquare\A}%
  [\henry]%
  [\volt\usk\s\per\A] % also \square\m\usk\kg\per\C\squared, \Wb\per\A
\newphysicsquantity{conductivity}%
  {\reciprocalcubic\m\usk\reciprocal\kg\usk\cubic\s\usk\square\A}%
  [\siemens\per\m]%
  [(\A\per\square\m)\per(\V\per\m)]
\newphysicsquantity{resistivity}%
  {\cubic\m\usk\kg\usk\reciprocalcubic\s\usk\reciprocalsquare\A}%
  [\ohm\usk\m]%
  [(\V\per\m)\per(\A\per\square\m)]
\newphysicsquantity{resistance}%
  {\square\m\usk\kg\usk\reciprocalcubic\s\usk\reciprocalsquare\A}%
  [\V\per\A]%
  [\ohm]
\newphysicsquantity{conductance}%
  {\reciprocalsquare\m\usk\reciprocal\kg\usk\cubic\s\usk\square\A}%
  [\A\per\V]%
  [\siemens]
\newphysicsquantity{magneticcharge}%
  {\m\usk\A}%
  [\m\usk\A]%
  [\m\usk\A]
\newcommand*{\lv}{\ensuremath{\left\langle}}
\newcommand*{\rv}{\ensuremath{\right\rangle}}
\ExplSyntaxOn % Written in LaTeX3
\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{\left(\clist_use:Nnnn \l_tmpa_clist { \right)^2+\left( } { \right)^2+
          \left( } { \right)^2+\left( } \right)^2 }
        }%
      }%
      {%
        \clist_set:Nn \l_tmpa_clist { #1 }
        \ensuremath{%
          \sqrt{\left(\clist_use:Nnnn \l_tmpa_clist {\;{ #2 }\right)^2+\left(} {\;
          { #2 }\right)^2+\left(} {\;{ #2 }\right)^2+\left(} \;{ #2 }\right)^2}
        }%
      }%
  }%
\ExplSyntaxOff
\newcommand*{\zerovect}{\vect{0}}
\newcommand*{\ncompszerovect}{\mivector{0,0,0}}
\ifthenelse{\boolean{@optboldvectors}}
  {\newcommand*{\vect}[1]{\ensuremath{\boldsymbol{#1}}}}
  {\ifthenelse{\boolean{@optromanvectors}}
   {\newcommand*{\vect}[1]{\ensuremath{\vv{\mathrm{#1}}}}}
   {\newcommand*{\vect}[1]{\ensuremath{\vv{#1}}}}}
\ifthenelse{\boolean{@optsingleabsbars}}
  {\newcommand*{\magvect}[1]{\ensuremath{\absof{\vect{#1}}}}}
  {\newcommand*{\magvect}[1]{\ensuremath{\magof{\vect{#1}}}}}
\newcommand*{\magsquaredvect}[1]{\ensuremath{\magvect{#1}\squared}}
\newcommand*{\magnvect}[2]{\ensuremath{\magvect{#1}^{#2}}}
\newcommand*{\dmagvect}[1]{\ensuremath{\dx{\magvect{#1}}}}
\newcommand*{\Dmagvect}[1]{\ensuremath{\Delta\!\magvect{#1}}}
\ifthenelse{\boolean{@optboldvectors}}
  {\newcommand*{\dirvect}[1]{\ensuremath{\widehat{\boldsymbol{#1}}}}}
  {\ifthenelse{\boolean{@optromanvectors}}
   {\newcommand*{\dirvect}[1]{\ensuremath{\widehat{\mathrm{#1}}}}}
   {\newcommand*{\dirvect}[1]{\ensuremath{\widehat{#1}}}}}
\newcommand*{\direction}{\dirvect}
\newcommand*{\componentalong}[2]{\ensuremath{\mathrm{comp}_{#1}{#2}}}
\newcommand*{\expcomponentalong}[2]{\ensuremath{\frac{\vectdotvect{#2}{#1}}
{\magof{#1}}}}
\newcommand*{\ucomponentalong}[2]{\ensuremath{\vectdotvect{#2}{#1}}}
\newcommand*{\projectiononto}[2]{\ensuremath{\mathrm{proj}_{#1}{#2}}}
\newcommand*{\expprojectiononto}[2]{\ensuremath{%
  \inparens{\frac{\vectdotvect{#2}{#1}}{\magof{#1}}}\frac{#1}{\magof{#1}}}}
\newcommand*{\uprojectiononto}[2]{\ensuremath{%
  \inparens{\vectdotvect{#2}{#1}}#1}}
\ifthenelse{\boolean{@optromanvectors}}
  {\newcommand*{\compvect}[2]{\ensuremath{\ssub{\mathrm{#1}}{\(#2\)}}}}
  {\newcommand*{\compvect}[2]{\ensuremath{\ssub{#1}{\(#2\)}}}}
\newcommand*{\scompsvect}[1]{\ensuremath{\lv%
  \compvect{#1}{x},%
  \compvect{#1}{y},%
  \compvect{#1}{z}\rv}}
\newcommand*{\scompsdirvect}[1]{\ensuremath{\lv%
  \compvect{\widehat{#1}}{x},%
  \compvect{\widehat{#1}}{y},%
  \compvect{\widehat{#1}}{z}\rv}}
\ifthenelse{\boolean{@optromanvectors}}
  {\newcommand*{\compdirvect}[2]{\ensuremath{%
    \ssub{\widehat{\mathrm{#1}}}{\(#2\)}}}}
  {\newcommand*{\compdirvect}[2]{\ensuremath{%
    \ssub{\widehat{#1}}{\(#2\)}}}}
\newcommand*{\magvectscomps}[1]{\ensuremath{\sqrt{%
  \compvect{#1}{x}\squared +%
  \compvect{#1}{y}\squared +%
  \compvect{#1}{z}\squared}}}
\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{#1}}}
\newcommand*{\ddirection}{\ddirvect}
\newcommand*{\Ddirvect}[1]{\ensuremath{\Delta\dirvect{#1}}}
\newcommand*{\Ddirection}{\Ddirvect}
\ifthenelse{\boolean{@optsingleabsbars}}
  {\newcommand*{\magdvect}[1]{\ensuremath{\absof{\dvect{#1}}}}
   \newcommand*{\magDvect}[1]{\ensuremath{\absof{\Dvect{#1}}}}}
  {\newcommand*{\magdvect}[1]{\ensuremath{\magof{\dvect{#1}}}}
   \newcommand*{\magDvect}[1]{\ensuremath{\magof{\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}{#2}}{#3}}}
\newcommand*{\compDervect}[3]{\ensuremath{\DbyD{\compvect{#1}{#2}}{#3}}}
\newcommand*{\scompsdervect}[2]{\ensuremath{\lv%
  \compdervect{#1}{x}{#2},%
  \compdervect{#1}{y}{#2},%
  \compdervect{#1}{z}{#2}\rv}}
\newcommand*{\scompsDervect}[2]{\ensuremath{\lv%
  \compDervect{#1}{x}{#2},%
  \compDervect{#1}{y}{#2},%
  \compDervect{#1}{z}{#2}\rv}}
\ifthenelse{\boolean{@optsingleabsbars}}
  {\newcommand*{\magdervect}[2]{\ensuremath{\absof{\dervect{#1}{#2}}}}
   \newcommand*{\magDervect}[2]{\ensuremath{\absof{\Dervect{#1}{#2}}}}}
  {\newcommand*{\magdervect}[2]{\ensuremath{\magof{\dervect{#1}{#2}}}}
   \newcommand*{\magDervect}[2]{\ensuremath{\magof{\Dervect{#1}{#2}}}}}
\newcommand*{\dermagvect}[2]{\ensuremath{\dbyd{\magvect{#1}}{#2}}}
\newcommand*{\Dermagvect}[2]{\ensuremath{\DbyD{\magvect{#1}}{#2}}}
\newcommand*{\derdirvect}[2]{\ensuremath{\dbyd{\dirvect{#1}}{#2}}}
\newcommand*{\derdirection}{\derdirvect}
\newcommand*{\Derdirvect}[2]{\ensuremath{\DbyD{\dirvect{#1}}{#2}}}
\newcommand*{\Derdirection}{\Derdirvect}
\ifthenelse{\boolean{@optboldvectors}}
  {\newcommand*{\vectsub}[2]{\ensuremath{\boldsymbol{#1}_{\text{\tiny{}#2}}}}}
  {\ifthenelse{\boolean{@optromanvectors}}
   {\newcommand*{\vectsub}[2]{\ensuremath{\vv{\mathrm{#1}}_{\text{\tiny{#2}}}}}}
   {\newcommand*{\vectsub}[2]{\ensuremath{\vv{#1}_{\text{\tiny{#2}}}}}}}
\ifthenelse{\boolean{@optromanvectors}}
  {\newcommand*{\compvectsub}[3]{\ensuremath{\ssub{\mathrm{#1}}{#2,\(#3\)}}}}
  {\newcommand*{\compvectsub}[3]{\ensuremath{\ssub{#1}{#2,\(#3\)}}}}
\newcommand*{\scompsvectsub}[2]{\ensuremath{\lv%
  \compvectsub{#1}{#2}{x},%
  \compvectsub{#1}{#2}{y},%
  \compvectsub{#1}{#2}{z}\rv}}
\ifthenelse{\boolean{@optsingleabsbars}}
  {\newcommand*{\magvectsub}[2]{\ensuremath{\absof{\vectsub{#1}{#2}}}}}
  {\newcommand*{\magvectsub}[2]{\ensuremath{\magof{\vectsub{#1}{#2}}}}}
\newcommand*{\magsquaredvectsub}[2]{\ensuremath{\magvectsub{#1}{#2}\squared}}
\newcommand*{\magnvectsub}[3]{\ensuremath{\magvectsub{#1}{#2}^{#3}}}
\newcommand*{\magvectsubscomps}[2]{\ensuremath{\sqrt{%
    \compvectsub{#1}{#2}{x}\squared +%
    \compvectsub{#1}{#2}{y}\squared +%
    \compvectsub{#1}{#2}{z}\squared}}}
\ifthenelse{\boolean{@optromanvectors}}
  {\newcommand*{\dirvectsub}[2]{\ensuremath{\ssub{\widehat{\mathrm{#1}}}{#2}}}}
  {\newcommand*{\dirvectsub}[2]{\ensuremath{\ssub{\widehat{#1}}{#2}}}}
\newcommand*{\directionsub}{\dirvectsub}
\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{@optsingleabsbars}}
  {\newcommand*{\magdervectsub}[3]{\ensuremath{\absof{\dervectsub{#1}{#2}{#3}}}}
   \newcommand*{\magDervectsub}[3]{\ensuremath{\absof{\Dervectsub{#1}{#2}{#3}}}}}
  {\newcommand*{\magdervectsub}[3]{\ensuremath{\magof{\dervectsub{#1}{#2}{#3}}}}
   \newcommand*{\magDervectsub}[3]{\ensuremath{\magof{\Dervectsub{#1}{#2}{#3}}}}}
\newcommand*{\compdervectsub}[4]{\ensuremath{\dbyd{\compvectsub{#1}{#2}{#3}}{#4}}}
\newcommand*{\compDervectsub}[4]{\ensuremath{\DbyD{\compvectsub{#1}{#2}{#3}}{#4}}}
\newcommand*{\scompsdervectsub}[3]{\ensuremath{\lv%
  \compdervectsub{#1}{#2}{x}{#3},%
  \compdervectsub{#1}{#2}{y}{#3},%
  \compdervectsub{#1}{#2}{z}{#3}\rv}}
\newcommand*{\scompsDervectsub}[3]{\ensuremath{\lv%
  \compDervectsub{#1}{#2}{x}{#3},%
  \compDervectsub{#1}{#2}{y}{#3},%
  \compDervectsub{#1}{#2}{z}{#3}\rv}}
\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*{\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*{\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*{\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}{x}{#2}\compvect{#3}{x}+%
  \compdervect{#1}{y}{#2}\compvect{#3}{y}+%
  \compdervect{#1}{z}{#2}\compvect{#3}{z}}}
\newcommand*{\Dervectdotevect}[3]{\ensuremath{%
  \compDervect{#1}{x}{#2}\compvect{#3}{x}+%
  \compDervect{#1}{y}{#2}\compvect{#3}{y}+%
  \compDervect{#1}{z}{#2}\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}{x}{#3}+%
  \compvect{#1}{y}\compdervect{#2}{y}{#3}+%
  \compvect{#1}{z}\compdervect{#2}{z}{#3}}}
\newcommand*{\vectdoteDervect}[3]{\ensuremath{%
  \compvect{#1}{x}\compDervect{#2}{x}{#3}+%
  \compvect{#1}{y}\compDervect{#2}{y}{#3}+%
  \compvect{#1}{z}\compDervect{#2}{z}{#3}}}
\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}{x}{#2}\compdvect{#3}{x}+%
  \compdervect{#1}{y}{#2}\compdvect{#3}{y}+%
  \compdervect{#1}{z}{#2}\compdvect{#3}{z}}}
\newcommand*{\DervectdoteDvect}[3]{\ensuremath{%
  \compDervect{#1}{x}{#2}\compDvect{#3}{x}+%
  \compDervect{#1}{y}{#2}\compDvect{#3}{y}+%
  \compDervect{#1}{z}{#2}\compDvect{#3}{z}}}
\newcommand*{\vectcrossvect}[2]{\ensuremath{%
  {#1}\boldsymbol{\times}{#2}}}
\newcommand*{\ltriplecross}[3]{\ensuremath{%
  \inparens{{#1}\boldsymbol{\times}{#2}}\boldsymbol{\times}{#3}}}
\newcommand*{\rtriplecross}[3]{\ensuremath{{#1}\boldsymbol{\times}%
  \inparens{{#2}\boldsymbol{\times}{#3}}}}
\newcommand*{\ltriplescalar}[3]{\ensuremath{%
  {#1}\boldsymbol{\times}{#2}\bullet{#3}}}
\newcommand*{\rtriplescalar}[3]{\ensuremath{%
  {#1}\bullet{#2}\boldsymbol{\times}{#3}}}
\newcommand*{\ezero}{\ensuremath{\boldsymbol{e}_0}}
\newcommand*{\eone}{\ensuremath{\boldsymbol{e}_1}}
\newcommand*{\etwo}{\ensuremath{\boldsymbol{e}_2}}
\newcommand*{\ethree}{\ensuremath{\boldsymbol{e}_3}}
\newcommand*{\efour}{\ensuremath{\boldsymbol{e}_4}}
\newcommand*{\ek}[1]{\ensuremath{\boldsymbol{e}_{#1}}}
\newcommand*{\e}{\ek}
\newcommand*{\uezero}{\ensuremath{\widehat{\boldsymbol{e}}_0}}
\newcommand*{\ueone}{\ensuremath{\widehat{\boldsymbol{e}}_1}}
\newcommand*{\uetwo}{\ensuremath{\widehat{\boldsymbol{e}}_2}}
\newcommand*{\uethree}{\ensuremath{\widehat{\boldsymbol{e}}_3}}
\newcommand*{\uefour}{\ensuremath{\widehat{\boldsymbol{e}}_4}}
\newcommand*{\uek}[1]{\ensuremath{\widehat{\boldsymbol{e}}_{#1}}}
\newcommand*{\ue}{\uek}
\newcommand*{\ezerozero}{\ek{00}}
\newcommand*{\ezeroone}{\ek{01}}
\newcommand*{\ezerotwo}{\ek{02}}
\newcommand*{\ezerothree}{\ek{03}}
\newcommand*{\ezerofour}{\ek{04}}
\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{\boldsymbol{e}^0}}
\newcommand*{\euone}{\ensuremath{\boldsymbol{e}^1}}
\newcommand*{\eutwo}{\ensuremath{\boldsymbol{e}^2}}
\newcommand*{\euthree}{\ensuremath{\boldsymbol{e}^3}}
\newcommand*{\eufour}{\ensuremath{\boldsymbol{e}^4}}
\newcommand*{\euk}[1]{\ensuremath{\boldsymbol{e}^{#1}}}
\newcommand*{\eu}{\euk}
\newcommand*{\ueuzero}{\ensuremath{\widehat{\boldsymbol{e}}^0}}
\newcommand*{\ueuone}{\ensuremath{\widehat{\boldsymbol{e}}^1}}
\newcommand*{\ueutwo}{\ensuremath{\widehat{\boldsymbol{e}}^2}}
\newcommand*{\ueuthree}{\ensuremath{\widehat{\boldsymbol{e}}^3}}
\newcommand*{\ueufour}{\ensuremath{\widehat{\boldsymbol{e}}^4}}
\newcommand*{\ueuk}[1]{\ensuremath{\widehat{\boldsymbol{e}}^{#1}}}
\newcommand*{\ueu}{\ueuk}
\newcommand*{\euzerozero}{\euk{00}}
\newcommand*{\euzeroone}{\euk{01}}
\newcommand*{\euzerotwo}{\euk{02}}
\newcommand*{\euzerothree}{\euk{03}}
\newcommand*{\euzerofour}{\euk{04}}
\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{\boldsymbol{\gamma}_0}}
\newcommand*{\gone}{\ensuremath{\boldsymbol{\gamma}_1}}
\newcommand*{\gtwo}{\ensuremath{\boldsymbol{\gamma}_2}}
\newcommand*{\gthree}{\ensuremath{\boldsymbol{\gamma}_3}}
\newcommand*{\gfour}{\ensuremath{\boldsymbol{\gamma}_4}}
\newcommand*{\gk}[1]{\ensuremath{\boldsymbol{\gamma}_{#1}}}
\newcommand*{\g}{\gk}
\newcommand*{\gzerozero}{\gk{00}}
\newcommand*{\gzeroone}{\gk{01}}
\newcommand*{\gzerotwo}{\gk{02}}
\newcommand*{\gzerothree}{\gk{03}}
\newcommand*{\gzerofour}{\gk{04}}
\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{\boldsymbol{\gamma}^0}}
\newcommand*{\guone}{\ensuremath{\boldsymbol{\gamma}^1}}
\newcommand*{\gutwo}{\ensuremath{\boldsymbol{\gamma}^2}}
\newcommand*{\guthree}{\ensuremath{\boldsymbol{\gamma}^3}}
\newcommand*{\gufour}{\ensuremath{\boldsymbol{\gamma}^4}}
\newcommand*{\guk}[1]{\ensuremath{\boldsymbol{\gamma}^{#1}}}
\newcommand*{\gu}{\guk}
\newcommand*{\guzerozero}{\guk{00}}
\newcommand*{\guzeroone}{\guk{01}}
\newcommand*{\guzerotwo}{\guk{02}}
\newcommand*{\guzerothree}{\guk{03}}
\newcommand*{\guzerofour}{\guk{04}}
\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 % Vectors formated as in M\&I, written in LaTeX3
\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 % Column and row vectors, written in LaTeX3
\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{\scompsCvect}[2][1,usedefault]{%
  \ifthenelse{\equal{#1}{}}%
  {%
    \colvector{\msup{#2}{1},\msup{#2}{2},\msup{#2}{3}}%
  }%
  {%
    \colvector{\msup{#2}{0},\msup{#2}{1},\msup{#2}{2},\msup{#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}}%
  }%
}%
\newcommandx{\scompsRvect}[2][1,usedefault]{%
  \ifthenelse{\equal{#1}{}}%
  {%
    \rowvector[,]{\msup{#2}{1},\msup{#2}{2},\msup{#2}{3}}%
  }%
  {%
    \rowvector[,]{\msup{#2}{0},\msup{#2}{1},\msup{#2}{2},\msup{#2}{3}}%
  }%
}%
\newcommand*{\bra}[1]{\ensuremath{\left\langle{#1}\right\lvert}}
\newcommand*{\ket}[1]{\ensuremath{\left\lvert{#1}\right\rangle}}
\newcommand*{\bracket}[2]{\ensuremath{\left\langle{#1}\!\!\right.%
  \left\lvert{#2}\right\rangle}}
\newphysicsconstant{oofpez}%
  {\ensuremath{\frac{1}{\phantom{_o}4\pi\epsilon_0}}}%
  {\mi@p{9}{8.9876}\timestento{9}}%
  {\m\cubed\usk\kg\usk\reciprocalquartic\s\usk\A\reciprocalsquared}%
  [\m\per\farad]%
  [\newton\usk\m\squared\per\coulomb\squared]
\newphysicsconstant{oofpezcs}%
  {\ensuremath{\frac{1}{\phantom{_o}4\pi\epsilon_0 c^2\phantom{_o}}}}%
  {\tento{-7}}%
  {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}%
  [\T\usk\m\squared]%
  [\N\usk\s\squared\per\C\squared]
\newphysicsconstant{vacuumpermittivity}%
  {\ensuremath{\epsilon_0}}%
  {\mi@p{9.0}{8.8542}\timestento{-12}}%
  {\m\reciprocalcubed\usk\reciprocal\kg\usk\s\quarted\usk\A\squared}%
  [\F\per\m]%
  [\C\squared\per\N\usk\m\squared]
\newphysicsconstant{mzofp}%
  {\ensuremath{\frac{\phantom{_oo}\mu_0\phantom{_o}}{4\pi}}}%
  {\tento{-7}}%
  {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}%
  [\henry\per\m]%
  [\tesla\usk\m\per\A]
\newphysicsconstant{vacuumpermeability}%
  {\ensuremath{\mu_0}}%
  {4\pi\timestento{-7}}%
  {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}%
  [\henry\per\m]%
  [\T\usk\m\per\A]
\newphysicsconstant{boltzmann}%
  {\ensuremath{k_B}}%
  {\mi@p{1.4}{1.3806}\timestento{-23}}%
  {\m\squared\usk\kg\usk\reciprocalsquare\s\usk\reciprocal\K}%
  [\joule\per\K]%
  [\J\per\K]
\newphysicsconstant{boltzmannineV}%
  {\ensuremath{k_B}}%
  {\mi@p{8.6}{8.6173}\timestento{-5}}%
  {\eV\usk\reciprocal\K}%
  [\eV\per\K]%
  [\eV\per\K]
\newphysicsconstant{stefanboltzmann}%
  {\ensuremath{\sigma}}%
  {\mi@p{5.7}{5.6704}\timestento{-8}}%
  {\kg\usk\s\reciprocalcubed\usk\K\reciprocalquarted}%
  [\W\per\m\squared\usk\K^4]%
  [\W\per\m\squared\usk\K\quarted]
\newphysicsconstant{planck}%
  {\ensuremath{h}}%
  {\mi@p{6.6}{6.6261}\timestento{-34}}%
  {\m\squared\usk\kg\usk\reciprocal\s}%
  [\J\usk\s]%
  [\J\usk\s]
\newphysicsconstant{planckineV}%
  {\ensuremath{h}}%
  {\mi@p{4.1}{4.1357}\timestento{-15}}%
  {\eV\usk\s}%
  [\eV\usk\s]%
  [\eV\usk\s]
\newphysicsconstant{planckbar}%
  {\ensuremath{\hslash}}%
  {\mi@p{1.1}{1.0546}\timestento{-34}}%
  {\m\squared\usk\kg\usk\reciprocal\s}%
  [\J\usk\s]%
  [\J\usk\s]
\newphysicsconstant{planckbarineV}%
  {\ensuremath{\hslash}}%
  {\mi@p{6.6}{6.5821}\timestento{-16}}%
  {\eV\usk\s}%
  [\eV\usk\s]%
  [\eV\usk\s]
\newphysicsconstant{planckc}%
  {\ensuremath{hc}}%
  {\mi@p{2.0}{1.9864}\timestento{-25}}%
  {\m\cubed\usk\kg\usk\reciprocalsquare\s}%
  [\J\usk\m]%
  [\J\usk\m]
\newphysicsconstant{planckcineV}%
  {\ensuremath{hc}}%
  {\mi@p{2.0}{1.9864}\timestento{-25}}%
  {\eV\usk\text{n}\m}%
  [\eV\usk\text{n}\m]%
  [\eV\usk\text{n}\m]
\newphysicsconstant{rydberg}%
  {\ensuremath{\msub{R}{\infty}}}%
  {\mi@p{1.1}{1.0974}\timestento{7}}%
  {\reciprocal\m}%
  [\reciprocal\m]%
  [\reciprocal\m]
\newphysicsconstant{bohrradius}%
  {\ensuremath{a_0}}%
  {\mi@p{5.3}{5.2918}\timestento{-11}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{finestructure}%
  {\ensuremath{\alpha}}%
  {\mi@p{\frac{1}{137}}{7.2974\timestento{-3}}}%
  {}%
  []%
  []
\newphysicsconstant{avogadro}%
  {\ensuremath{N_A}}%
  {\mi@p{6.0}{6.0221}\timestento{23}}%
  {\reciprocal\mol}%
  [\reciprocal\mol]%
  [\reciprocal\mol]
\newphysicsconstant{universalgrav}%
  {\ensuremath{G}}%
  {\mi@p{6.7}{6.6738}\timestento{-11}}%
  {\m\cubed\usk\reciprocal\kg\usk\s\reciprocalsquared}%
  [\J\usk\m\per\kg\squared]%
  [\N\usk\m\squared\per\kg\squared]
\newphysicsconstant{surfacegravfield}%
  {\ensuremath{g}}%
  {\mi@p{9.8}{9.80}}%
  {\m\usk\s\reciprocalsquared}%
  [\N\per\kg]%
  [\N\per\kg]
\newphysicsconstant{clight}%
  {\ensuremath{c}}%
  {\mi@p{3}{2.9979}\timestento{8}}%
  {\m\usk\reciprocal\s}%
  [\m\per\s]%
  [\m\per\s]
\newphysicsconstant{clightinfeet}%
  {\ensuremath{c}}%
  {\mi@p{1}{0.9836}}%
  {\text{ft}\usk\reciprocal{\text{n}\s}}%
  [\text{ft}\per\text{n}\s]%
  [\text{ft}\per\mathrm{n}\s]
\newphysicsconstant{Ratom}%
  {\ensuremath{r_{\text{atom}}}}%
  {\tento{-10}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{Mproton}%
  {\ensuremath{m_p}}%
  {\mi@p{1.7}{1.6726}\timestento{-27}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{Mneutron}%
  {\ensuremath{m_n}}%
  {\mi@p{1.7}{1.6749}\timestento{-27}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{Mhydrogen}%
  {\ensuremath{m_H}}%
  {\mi@p{1.7}{1.6737}\timestento{-27}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{Melectron}%
  {\ensuremath{m_e}}%
  {\mi@p{9.1}{9.1094}\timestento{-31}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{echarge}%
  {\ensuremath{e}}%
  {\mi@p{1.6}{1.6022}\timestento{-19}}%
  {\A\usk\s}%
  [\C]%
  [\C]
\newphysicsconstant{Qelectron}%
  {\ensuremath{Q_e}}%
  {-\echargevalue}%
  {\A\usk\s}%
  [\C]%
  [\C]
\newphysicsconstant{qelectron}%
  {\ensuremath{q_e}}%
  {-\echargevalue}%
  {\A\usk\s}%
  [\C]%
  [\C]
\newphysicsconstant{Qproton}%
  {\ensuremath{Q_p}}%
  {+\echargevalue}%
  {\A\usk\s}%
  [\C]%
  [\C]
\newphysicsconstant{qproton}%
  {\ensuremath{q_p}}%
  {+\echargevalue}%
  {\A\usk\s}%
  [\C]%
  [\C]
\newphysicsconstant{MEarth}%
  {\ensuremath{M_{\text{Earth}}}}%
  {\mi@p{6.0}{5.9736}\timestento{24}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{MMoon}%
  {\ensuremath{M_{\text{Moon}}}}%
  {\mi@p{7.3}{7.3459}\timestento{22}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{MSun}%
  {\ensuremath{M_{\text{Sun}}}}%
  {\mi@p{2.0}{1.9891}\timestento{30}}%
  {\kg}%
  [\kg]%
  [\kg]
\newphysicsconstant{REarth}%
  {\ensuremath{R_{\text{Earth}}}}%
  {\mi@p{6.4}{6.3675}\timestento{6}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{RMoon}%
  {\ensuremath{R_{\text{Moon}}}}%
  {\mi@p{1.7}{1.7375}\timestento{6}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{RSun}%
  {\ensuremath{R_{\text{Sun}}}}%
  {\mi@p{7.0}{6.9634}\timestento{8}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{ESdist}%
  {\magvectsub{r}{ES}}%
  {\mi@p{1.5}{1.4960}\timestento{11}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{SEdist}%
  {\magvectsub{r}{SE}}%
  {\mi@p{1.5}{1.4960}\timestento{11}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{EMdist}%
  {\magvectsub{r}{EM}}%
  {\mi@p{3.8}{3.8440}\timestento{8}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{MEdist}%
  {\magvectsub{r}{ME}}%
  {\mi@p{3.8}{3.8440}\timestento{8}}%
  {\m}%
  [\m]%
  [\m]
\newphysicsconstant{LSun}%
  {\ensuremath{L_{\text{Sun}}}}%
  {\mi@p{3.8}{3.8460}\timestento{26}}%
  {\m\squared\usk\kg\usk\s\reciprocalcubed}%
  [\W]
  [\J\per\s]
\newphysicsconstant{TSun}%
  {\ensuremath{T_{\text{Sun}}}}%
  {\mi@p{5800}{5778}}%
  {\K}%
  [\K]%
  [\K]
\newphysicsconstant{MagSun}%
  {\ensuremath{M_{\text{Sun}}}}%
  {+4.83}%
  {}%
  []%
  []
\newphysicsconstant{magSun}%
  {\ensuremath{m_{\text{Sun}}}}%
  {-26.74}%
  {}%
  []%
  []
\newcommand*{\coulombconstant}{\oofpez}
\newcommand*{\altcoulombconstant}{\oofpezcs}
\newcommand*{\biotsavartconstant}{\mzofp}
\newcommand*{\boltzmannconstant}{\boltzmann}
\newcommand*{\stefanboltzmannconstant}{\stefanboltzmann}
\newcommand*{\planckconstant}{\planck}
\newcommand*{\reducedplanckconstant}{\planckbar}
\newcommand*{\planckconstanttimesc}{\planckc}
\newcommand*{\rydbergconstant}{\rydberg}
\newcommand*{\finestructureconstant}{\finestructure}
\newcommand*{\avogadroconstant}{\avogadro}
\newcommand*{\universalgravitationalconstant}{\universalgrav}
\newcommand*{\earthssurfacegravitationalfield}{\surfacegravfield}
\newcommand*{\photonconstant}{\clight}
\newcommand*{\elementarycharge}{\echarge}
\newcommand*{\EarthSundistance}{\ESdist}
\newcommand*{\SunEarthdistance}{\SEdist}
\newcommand*{\EarthMoondistance}{\ESdist}
\newcommand*{\MoonEarthdistance}{\SEdist}
\newcommand*{\Lstar}[1][\(\star\)]{\ensuremath{L_{\text{#1}}}\xspace}
\newcommand*{\Lsolar}{\ensuremath{\Lstar[\(\odot\)]}\xspace}
\newcommand*{\Tstar}[1][\(\star\)]{\ensuremath{T_{\text{#1}}}\xspace}
\newcommand*{\Tsolar}{\ensuremath{\Tstar[\(\odot\)]}\xspace}
\newcommand*{\Rstar}[1][\(\star\)]{\ensuremath{R_{\text{#1}}}\xspace}
\newcommand*{\Rsolar}{\ensuremath{\Rstar[\(\odot\)]}\xspace}
\newcommand*{\Mstar}[1][\(\star\)]{\ensuremath{M_{\text{#1}}}\xspace}
\newcommand*{\Msolar}{\ensuremath{\Mstar[\(\odot\)]}\xspace}
\newcommand*{\Fstar}[1][\(\star\)]{\ensuremath{F_{\text{#1}}}\xspace}
\newcommand*{\fstar}[1][\(\star\)]{\ensuremath{f_{\text{#1}}}\xspace}
\newcommand*{\Fsolar}{\ensuremath{\Fstar[\(\odot\)]}\xspace}
\newcommand*{\fsolar}{\ensuremath{\fstar[\(\odot\)]}\xspace}
\newcommand*{\Magstar}[1][\(\star\)]{\ensuremath{M_{\text{#1}}}\xspace}
\newcommand*{\magstar}[1][\(\star\)]{\ensuremath{m_{\text{#1}}}\xspace}
\newcommand*{\Magsolar}{\ensuremath{\Magstar[\(\odot\)]}\xspace}
\newcommand*{\magsolar}{\ensuremath{\magstar[\(\odot\)]}\xspace}
\newcommand*{\Dstar}[1][\(\star\)]{\ensuremath{D_{\text{#1}}}\xspace}
\newcommand*{\dstar}[1][\(\star\)]{\ensuremath{d_{\text{#1}}}\xspace}
\newcommand*{\Dsolar}{\ensuremath{\Dstar[\(\odot\)]}\xspace}
\newcommand*{\dsolar}{\ensuremath{\dstar[\(\odot\)]}\xspace}
\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*{\twooneths}{\ensuremath{\frac{2}{1}}\xspace}
\newcommand*{\twohalves}{\ensuremath{\frac{2}{2}}\xspace}
\newcommand*{\twothirds}{\ensuremath{\frac{2}{3}}\xspace}
\newcommand*{\twofourths}{\ensuremath{\frac{2}{4}}\xspace}
\newcommand*{\twofifths}{\ensuremath{\frac{2}{5}}\xspace}
\newcommand*{\twosixths}{\ensuremath{\frac{2}{6}}\xspace}
\newcommand*{\twosevenths}{\ensuremath{\frac{2}{7}}\xspace}
\newcommand*{\twoeighths}{\ensuremath{\frac{2}{8}}\xspace}
\newcommand*{\twoninths}{\ensuremath{\frac{2}{9}}\xspace}
\newcommand*{\twotenths}{\ensuremath{\frac{2}{10}}\xspace}
\newcommand*{\threeoneths}{\ensuremath{\frac{3}{1}}\xspace}
\newcommand*{\threehalves}{\ensuremath{\frac{3}{2}}\xspace}
\newcommand*{\threethirds}{\ensuremath{\frac{3}{3}}\xspace}
\newcommand*{\threefourths}{\ensuremath{\frac{3}{4}}\xspace}
\newcommand*{\threefifths}{\ensuremath{\frac{3}{5}}\xspace}
\newcommand*{\threesixths}{\ensuremath{\frac{3}{6}}\xspace}
\newcommand*{\threesevenths}{\ensuremath{\frac{3}{7}}\xspace}
\newcommand*{\threeeighths}{\ensuremath{\frac{3}{8}}\xspace}
\newcommand*{\threeninths}{\ensuremath{\frac{3}{9}}\xspace}
\newcommand*{\threetenths}{\ensuremath{\frac{3}{10}}\xspace}
\newcommand*{\fouroneths}{\ensuremath{\frac{4}{1}}\xspace}
\newcommand*{\fourhalves}{\ensuremath{\frac{4}{2}}\xspace}
\newcommand*{\fourthirds}{\ensuremath{\frac{4}{3}}\xspace}
\newcommand*{\fourfourths}{\ensuremath{\frac{4}{4}}\xspace}
\newcommand*{\fourfifths}{\ensuremath{\frac{4}{5}}\xspace}
\newcommand*{\foursixths}{\ensuremath{\frac{4}{6}}\xspace}
\newcommand*{\foursevenths}{\ensuremath{\frac{4}{7}}\xspace}
\newcommand*{\foureighths}{\ensuremath{\frac{4}{8}}\xspace}
\newcommand*{\fourninths}{\ensuremath{\frac{4}{9}}\xspace}
\newcommand*{\fourtenths}{\ensuremath{\frac{4}{10}}\xspace}
\newcommand*{\sumoverall}[1]{\ensuremath{\displaystyle
  \sum_{\substack{\text{\tiny{all }}\text{\tiny{{#1}}}}}}}
\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}}
\newcommand*{\opensurfaceintegral}[2]{\ensuremath{%
  \iint\nolimits_{#1}\vectdotvect{#2}{\dirvect{n}}\dx{A}}}
\newcommand*{\closedsurfaceintegral}[2]{\ensuremath{%
  \varoiint\nolimits_{#1}\vectdotvect{#2}{\dirvect{n}}\dx{A}}}
\newcommand*{\openlineintegral}[2]{\ensuremath{%
  \int\nolimits_{#1}\vectdotvect{#2}{\dirvect{t}}\dx{\ell}}}
\newcommand*{\closedlineintegral}[2]{\ensuremath{%
  \oint\nolimits_{#1}\vectdotvect{#2}{\dirvect{t}}\dx{\ell}}}
\newcommand*{\volumeintegral}[2]{\ensuremath{%
  \iiint\nolimits_{#1}{#2}\dx{V}}}
\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*{\gradient}{\ensuremath{\boldsymbol{\nabla}}}
\newcommand*{\divergence}{\ensuremath{\boldsymbol{\nabla}\bullet}}
\newcommand*{\curl}{\ensuremath{\boldsymbol{\nabla\times}}}
\newcommand{\taigrad}{\ensuremath{\nabla}}%
\newcommand{\taisvec}{\ensuremath{%
  \stackinset{c}{0.07ex}{c}{0.1ex}{\tiny$-$}{$\nabla$}}
}%
\newcommand{\taidivg}{\ensuremath{%
  \stackinset{c}{0.07ex}{c}{0.1ex}{$\cdot$}{$\nabla$}}
}%
\newcommand{\taicurl}{\ensuremath{%
  \stackinset{c}{0.04ex}{c}{0.32ex}{\tiny$\times$}{$\nabla$}}
}%
\newcommand*{\laplacian}{\ensuremath{\boldsymbol{\nabla}^2}}
\newcommand*{\dalembertian}{\ensuremath{\boldsymbol{\Box}}}
\newcommand*{\diracdelta}[1]{\ensuremath{\delta}(#1)}
\newcommand*{\orderof}[1]{\ensuremath{\mathcal{O}(#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*{\logb}[1][\relax]{\ensuremath{\log_{#1}}}
\ifthenelse{\boolean{@optboldvectors}}
  {\newcommand*{\cB}{\ensuremath{\boldsymbol{c\mskip -3.00mu B}}}}
  {\ifthenelse{\boolean{@optromanvectors}}
   {\newcommand*{\cB}{\ensuremath{\textsf{c}\mskip -3.00mu\mathrm{B}}}}
   {\newcommand*{\cB}{\ensuremath{c\mskip -3.00mu B}}}}
\newcommand*{\newpi}{\ensuremath{\pi\mskip -7.8mu\pi}}
\newcommand*{\scripty}[1]{\ensuremath{\mathcalligra{#1}}}
\newcommand*{\Lagr}{\ensuremath{\mathcal{L}}}
\newcommandx{\flux}[1][1]{\ensuremath{\ssub{\Phi}{#1}}}
\newcommand*{\absof}[1]{\ensuremath{%
  \left\lvert{\ifblank{#1}{\:\cdot\:}{#1}}\right\rvert}}
\newcommand*{\inparens}[1]{\ensuremath{%
  \left({\ifblank{#1}{\:\cdot\:}{#1}}\right)}}
\newcommand*{\magof}[1]{\ensuremath{%
  \left\lVert{\ifblank{#1}{\:\cdot\:}{#1}}\right\rVert}}
\newcommand*{\dimsof}[1]{\ensuremath{%
  \left[{\ifblank{#1}{\:\cdot\:}{#1}}\right]}}
\newcommand*{\unitsof}[1]{\ensuremath{%
  \left[{\ifblank{#1}{\:\cdot\:}{#1}}\right]_u}}
\newcommand*{\changein}[1]{\ensuremath{\delta{#1}}}
\newcommand*{\Changein}[1]{\ensuremath{\Delta{#1}}}
\newcommandx{\scin}[3][1,3=\!\!,usedefault]{\ensuremath{%
  \ifthenelse{\equal{#1}{}}
    {\unit{10^{#2}}{#3}}
    {\unit{{#1}\times 10^{#2}}{#3}}}}
\newcommandx{\timestento}[2][2=\!\!,usedefault]{\ensuremath{%
  \ifthenelse{\equal{#2}{}}
    {\unit{\;\times\;10^{#1}}{}}
    {\unit{\;\times\;10^{#1}}{#2}}}}
\newcommand*{\xtento}{\timestento}
\newcommandx{\tento}[2][2=\!\!,usedefault]{\ensuremath{%
  \ifthenelse{\equal{#2}{}}
    {\unit{10^{#1}}{}}
    {\unit{10^{#1}}{#2}}}}
\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]{\unit{#1}{\degree}}
\newcommand*{\latitudeN}[1]{\unit{#1}{\degree\;\mathrm{N}}}
\newcommand*{\latitudeS}[1]{\unit{#1}{\degree\;\mathrm{S}}}
\newcommand*{\longitude}[1]{\unit{#1}{\degree}}
\newcommand*{\longitudeE}[1]{\unit{#1}{\degree\;\mathrm{E}}}
\newcommand*{\longitudeW}[1]{\unit{#1}{\degree\;\mathrm{W}}}
\newcommand*{\ssub}[2]{\ensuremath{#1_{\text{#2}}}}
\newcommand*{\ssup}[2]{\ensuremath{#1^{\text{#2}}}}
\newcommand*{\ssud}[3]{\ensuremath{#1^{\text{#2}}_{\text{#3}}}}
\newcommand*{\msub}[2]{\ensuremath{#1_{#2}}}
\newcommand*{\msup}[2]{\ensuremath{#1^{#2}}}
\newcommand*{\msud}[3]{\ensuremath{#1^{#2}_{#3}}}
\newcommand*{\levicivita}[1]{\ensuremath{%
  \varepsilon_{\scriptscriptstyle{#1}}}}
\newcommand*{\kronecker}[1]{\ensuremath{%
  \delta_{\scriptscriptstyle{#1}}}}
\newcommand*{\xaxis}{\ensuremath{x\text{-axis}}\xspace}
\newcommand*{\yaxis}{\ensuremath{y\text{-axis}}\xspace}
\newcommand*{\zaxis}{\ensuremath{z\text{-axis}}\xspace}
\newcommand*{\naxis}[1]{\ensuremath{{#1}\text{-axis}}\xspace}
\newcommand*{\axis}{\ensuremath{\text{-axis}}\xspace}
\newcommand*{\xyplane}{\ensuremath{xy\text{-plane}}\xspace}
\newcommand*{\yzplane}{\ensuremath{yz\text{-plane}}\xspace}
\newcommand*{\zxplane}{\ensuremath{zx\text{-plane}}\xspace}
\newcommand*{\yxplane}{\ensuremath{yx\text{-plane}}\xspace}
\newcommand*{\zyplane}{\ensuremath{zy\text{-plane}}\xspace}
\newcommand*{\xzplane}{\ensuremath{xz\text{-plane}}\xspace}
\newcommand*{\plane}{\ensuremath{\text{-plane}}\xspace}
\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{{#1}^\onehalf}}
\newcommand*{\fcuberoot}[1]{\ensuremath{{#1}^\onethird}}
\newcommand*{\ffourthroot}[1]{\ensuremath{{#1}^\onefourth}}
\newcommand*{\ffifthroot}[1]{\ensuremath{{#1}^\onefifth}}
\newcommand*{\relgamma}[1]{\ensuremath{%
  \frac{1}{\sqrt{1-\inparens{\frac{#1}{c}}\squared}}}}
\newcommand*{\frelgamma}[1]{\ensuremath{%
  \inparens{1-\frac{{#1}\squared}{c\squared}}^{-\onehalf}}}
\newcommand*{\oosqrtomxs}[1]{\ensuremath{\frac{1}{\sqrt{1-{#1}\squared}}}}
\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[\text\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*{\momentumprinciple}{\ensuremath{%
  \vectsub{p}{sys,final}=\vectsub{p}{sys,initial}+\Fnetsys\Delta t}}
\newcommand*{\LHSmomentumprinciple}{\ensuremath{\vectsub{p}{sys,final}}}
\newcommand*{\RHSmomentumprinciple}{\ensuremath{%
  \vectsub{p}{sys,initial}+\Fnetsys\Delta t}}
\newcommand*{\momentumprinciplediff}{\ensuremath{%
  \Dvectsub{p}{sys}=\Fnetsys\Delta t}}
\newcommand*{\energyprinciple}{\ensuremath{%
  \ssub{E}{sys,final}=\ssub{E}{sys,initial}+W+Q}}
\newcommand*{\LHSenergyprinciple}{\ensuremath{\ssub{E}{sys,final}}}
\newcommand*{\RHSenergyprinciple}{\ensuremath{\ssub{E}{sys,initial}+W+Q}}
\newcommand*{\energyprinciplediff}{\ensuremath{\Delta\ssub{E}{sys}=W+Q}}
\newcommand*{\angularmomentumprinciple}{\ensuremath{%
  \vectsub{L}{\(A\),sys,final}=\vectsub{L}{\(A\),sys,initial}+\Tsub{net}\Delta t}}
\newcommand*{\LHSangularmomentumprinciple}{\ensuremath{%
  \vectsub{L}{\(A\),sys,final}}}
\newcommand*{\RHSangularmomentumprinciple}{\ensuremath{%
  \vectsub{L}{\(A\),sys,initial}+\Tsub{net}\Delta t}}
\newcommand*{\angularmomentumprinciplediff}{\ensuremath{%
  \Dvectsub{L}{\(A\),sys}=\Tsub{net}\Delta t}}
\newcommand*{\gravitationalinteraction}{\ensuremath{%
  \universalgravmathsymbol\frac{\msub{M}{1}\msub{M}{2}}{%
  \magvectsub{r}{12}\squared}(-\dirvectsub{r}{12})}}
\newcommand*{\electricinteraction}{\ensuremath{%
  \oofpezmathsymbol\frac{\msub{Q}{1}\msub{Q}{2}}{\magvectsub{r}{12}\squared}
  \dirvectsub{r}{12}}}
\newcommand*{\springinteraction}{\ensuremath{\ks\magvect{s}(-\dirvect{s})}}
\newcommand*{\Bfieldofparticle}{\ensuremath{%
  \mzofpmathsymbol\frac{Q\magvect{v}}{\magvect{r}\squared}\dirvect{v}\times
  \dirvect{r}}}
\newcommand*{\Efieldofparticle}{\ensuremath{%
  \oofpezmathsymbol\frac{Q}{\magvect{r}\squared}\dirvect{r}}}
\newcommandx{\Esys}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{E}{sys}}{\ssub{E}{sys,#1}}}
\newcommandx{\Us}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{U}{\(s\)}}{\ssub{U}{\(s\),#1}}}
\newcommandx{\Ug}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{U}{\(g\)}}{\ssub{U}{\(g\),#1}}}
\newcommandx{\Ue}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{U}{\(e\)}}{\ssub{U}{\(e\),#1}}}
\newcommandx{\Ktrans}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{K}{trans}}
  {\ssub{K}{trans,#1}}}
\newcommandx{\Krot}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{K}{rot}}{\ssub{K}{rot,#1}}}
\newcommandx{\Kvib}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{K}{vib}}{\ssub{K}{vib,#1}}}
\newcommandx{\Eparticle}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{E}{particle}}
  {\ssub{E}{particle,#1}}}
\newcommandx{\Einternal}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{E}{internal}}
  {\ssub{E}{internal,#1}}}
\newcommandx{\Erest}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{E}{rest}}{\ssub{E}
  {rest,#1}}}
\newcommandx{\Echem}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{E}{chem}}{\ssub{E}
  {chem,#1}}}
\newcommandx{\Etherm}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{E}{therm}}
  {\ssub{E}{therm,#1}}}
\newcommandx{\Evib}[1][1]{\ifthenelse{%
  \equal{#1}{}}{\ssub{E}{vib}}{\ssub{E}{vib,#1}}}
\newcommandx{\Ephoton}[1][1]{\ifthenelse{\equal{#1}{}}{\ssub{E}{photon}}
  {\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*{\DKvib}{\Changein\Kvib}
\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*{\springpotentialenergy}{\onehalf\ks\magsquaredvect{s}}
\newcommand*{\finalspringpotentialenergy}
  {\ssub{\left(\springpotentialenergy\right)}{\!\!final}}
\newcommand*{\initialspringpotentialenergy}
  {\ssub{\left(\springpotentialenergy\right)}{\!\!initial}}
\newcommand*{\gravitationalpotentialenergy}{\ensuremath{%
  -G\frac{\msub{M}{1}\msub{M}{2}}{\magvectsub{r}{12}}}}
\newcommand*{\finalgravitationalpotentialenergy}
  {\ssub{\left(\gravitationalpotentialenergy\right)}{\!\!final}}
\newcommand*{\initialgravitationalpotentialenergy}
  {\ssub{\left(\gravitationalpotentialenergy\right)}{\!\!initial}}
\newcommand*{\electricpotentialenergy}{\ensuremath{%
  \oofpezmathsymbol\frac{\ssub{Q}{1}\ssub{Q}{2}}{\magvectsub{r}{12}}}}
\newcommand*{\finalelectricpotentialenergy}
  {\ssub{\left(\electricpotentialenergy\right)}{\!\!final}}
\newcommand*{\initialelectricpotentialenergy}
  {\ssub{\left(\electricpotentialenergy\right)}{\!\!initial}}
\newcommand*{\ks}{\msub{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*{\Ltotal}{\ensuremath{\vectsub{L}{\(A\),total}}}
\newcommand*{\Lsys}{\ensuremath{\vectsub{L}{\(A\),sys}}}
\newcommand*{\Lsub}[1]{\ensuremath{\vectsub{L}{\(A\),{#1}}}}
\newcommand*{\Tnet}{\ensuremath{\vectsub{\tau}{\(A\),net}}}
\newcommand*{\Tnetext}{\ensuremath{\vectsub{\tau}{\(A\),net,ext}}}
\newcommand*{\Tnetsys}{\ensuremath{\vectsub{\tau}{\(A\),net,sys}}}
\newcommand*{\Tsub}[1]{\ensuremath{\vectsub{\tau}{\(A\),#1}}}
\newcommand*{\LHSmaxwelliint}[1][\partial V]{\ensuremath{%
  \closedsurfaceintegral{#1}{\vect{E}}}}
\newcommand*{\RHSmaxwelliint}{\ensuremath{\frac{\ssub{Q}{\(e\),net}}%
  {\vacuumpermittivitymathsymbol}}}
\newcommand*{\RHSmaxwelliinta}[1][V]{\ensuremath{%
  \frac{1}{\vacuumpermittivitymathsymbol}\volumeintegral{#1}{\msub{\rho}{e}}}}
\newcommand*{\RHSmaxwelliintfree}{\ensuremath{0}}
\newcommand*{\maxwelliint}[1][\partial V]{\ensuremath{%
  \LHSmaxwelliint[#1]=\RHSmaxwelliint}}
\newcommandx*{\maxwelliinta}[2][1={\partial V},2={V},usedefault]{\ensuremath{%
  \LHSmaxwelliint[#1]=\RHSmaxwelliinta[#2]}}
\newcommand*{\maxwelliintfree}[1][\partial V]{\ensuremath{%
  \LHSmaxwelliint[#1]=\RHSmaxwelliintfree}}
\newcommand*{\LHSmaxwelliiint}[1][\partial V]{\ensuremath{%
  \closedsurfaceintegral{#1}{\vect{B}}}}
\newcommand*{\RHSmaxwelliiint}{\ensuremath{0}}
\newcommand*{\RHSmaxwelliiintm}{\ensuremath{%
  \vacuumpermeabilitymathsymbol\ssub{Q}{\(m\),net}}}
\newcommand*{\RHSmaxwelliiintma}[1][V]{\ensuremath{%
  \vacuumpermeabilitymathsymbol\volumeintegral{#1}{\msub{\rho}{m}}}}
\newcommand*{\RHSmaxwelliiintfree}{\ensuremath{0}}
\newcommand*{\maxwelliiint}[1][\partial V]{\ensuremath{%
  \LHSmaxwelliiint[#1]=\RHSmaxwelliiint}}
\newcommand*{\maxwelliiintm}[1][\partial V]{\ensuremath{%
  \LHSmaxwelliiint[#1]=\RHSmaxwelliiintm}}
\newcommandx*{\maxwelliiintma}[2][1={\partial V},2={V},usedefault]{\ensuremath{%
  \LHSmaxwelliiint[#1]=\RHSmaxwelliiintma[#2]}}
\newcommand*{\maxwelliiintfree}[1][\partial V]{\ensuremath{%
  \LHSmaxwelliiint[#1]=\RHSmaxwelliiintfree}}
\newcommand*{\LHSmaxwelliiiint}[1][\partial\Omega]{\ensuremath{%
  \closedlineintegral{#1}{\vect{E}}}}
\newcommand*{\RHSmaxwelliiiint}[1][\Omega]{\ensuremath{%
  -\dbydt\opensurfaceintegral{#1}{\vect{B}}}}
\newcommand*{\RHSmaxwelliiiintm}[1][\Omega]{\ensuremath{%
  -\dbydt\opensurfaceintegral{#1}{\vect{B}}%
  -\vacuumpermeabilitymathsymbol\ssub{I}{\(m\),net}}}
\newcommand*{\RHSmaxwelliiiintma}[1][\Omega]{\ensuremath{%
  -\dbydt\opensurfaceintegral{#1}{\vect{B}}%
  -\vacuumpermeabilitymathsymbol\opensurfaceintegral{#1}{\vectsub{J}{\(m\)}}}}
\newcommand*{\RHSmaxwelliiiintfree}{\RHSmaxwelliiiint}
\newcommandx*{\maxwelliiiint}[2][1={\partial\Omega},2={\Omega},usedefault]%
  {\ensuremath{\LHSmaxwelliiiint[#1]=\RHSmaxwelliiiint[#2]}}
\newcommandx*{\maxwelliiiintm}[2][1={\partial\Omega},2={\Omega},usedefault]%
  {\ensuremath{\LHSmaxwelliiiint[#1]=\RHSmaxwelliiiintm[#2]}}
\newcommandx*{\maxwelliiiintma}[2][1={\partial\Omega},2={\Omega},usedefault]%
  {\ensuremath{\LHSmaxwelliiiint[#1]=\RHSmaxwelliiiintma[#2]}}
\newcommand*{\maxwelliiiintfree}{\maxwelliiiint}
\newcommand*{\LHSmaxwellivint}[1][\partial\Omega]{\ensuremath{%
  \closedlineintegral{#1}{\vect{B}}}}
\newcommand*{\RHSmaxwellivint}[1][\Omega]{\ensuremath{%
  \vacuumpermeabilitymathsymbol\vacuumpermittivitymathsymbol%
  \dbydt\opensurfaceintegral{#1}{\vect{E}}+%
  \vacuumpermeabilitymathsymbol\ssub{I}{\(e\),net}}}
\newcommand*{\RHSmaxwellivinta}[1][\Omega]{\ensuremath{%
  \vacuumpermeabilitymathsymbol\vacuumpermittivitymathsymbol%
  \dbydt\opensurfaceintegral{#1}{\vect{E}}+%
  \vacuumpermeabilitymathsymbol\opensurfaceintegral{#1}{\vectsub{J}{\(e\)}}}}
\newcommand*{\RHSmaxwellivintfree}[1][\Omega]{\ensuremath{%
  \vacuumpermeabilitymathsymbol\vacuumpermittivitymathsymbol%
  \dbydt\opensurfaceintegral{#1}{\vect{E}}}}
\newcommandx*{\maxwellivint}[2][1={\partial\Omega},2={\Omega},usedefault]%
  {\ensuremath{\LHSmaxwellivint[#1]=\RHSmaxwellivint[#2]}}
\newcommandx*{\maxwellivinta}[2][1={\partial\Omega},2={\Omega},usedefault]%
  {\ensuremath{\LHSmaxwellivint[#1]=\RHSmaxwellivinta[#2]}}
\newcommandx*{\maxwellivintfree}[2][1={\partial\Omega},2={\Omega},usedefault]%
  {\ensuremath{\LHSmaxwellivint[#1]=\RHSmaxwellivintfree[#2]}}
\newcommand*{\LHSmaxwellidif}{\ensuremath{\divergence{\vect{E}}}}
\newcommand*{\RHSmaxwellidif}{\ensuremath{\frac{\msub{\rho}{e}}
  {\vacuumpermittivitymathsymbol}}}
\newcommand*{\RHSmaxwellidiffree}{\ensuremath{0}}
\newcommand*{\maxwellidif}{\ensuremath{\LHSmaxwellidif=\RHSmaxwellidif}}
\newcommand*{\maxwellidiffree}{\ensuremath{\LHSmaxwellidif=\RHSmaxwellidiffree}}
\newcommand*{\LHSmaxwelliidif}{\ensuremath{\divergence{\vect{B}}}}
\newcommand*{\RHSmaxwelliidif}{\ensuremath{0}}
\newcommand*{\RHSmaxwelliidifm}{\ensuremath{\vacuumpermeabilitymathsymbol%
  \msub{\rho}{m}}}
\newcommand*{\RHSmaxwelliidiffree}{\ensuremath{0}}
\newcommand*{\maxwelliidif}{\ensuremath{\LHSmaxwelliidif=\RHSmaxwelliidif}}
\newcommand*{\maxwelliidifm}{\ensuremath{\LHSmaxwelliidif=\RHSmaxwelliidifm}}
\newcommand*{\maxwelliidiffree}{\ensuremath{\LHSmaxwelliidif=\RHSmaxwelliidiffree}}
\newcommand*{\LHSmaxwelliiidif}{\ensuremath{\curl{\vect{E}}}}
\newcommand*{\RHSmaxwelliiidif}{\ensuremath{-\pbypt[\vect{B}]}}
\newcommand*{\RHSmaxwelliiidifm}{\ensuremath{-\pbypt[\vect{B}]-%
  \vacuumpermeabilitymathsymbol\vectsub{J}{\(m\)}}}
\newcommand*{\RHSmaxwelliiidiffree}{\RHSmaxwelliiidif}
\newcommand*{\maxwelliiidif}{\ensuremath{\LHSmaxwelliiidif=\RHSmaxwelliiidif}}
\newcommand*{\maxwelliiidifm}{\ensuremath{\LHSmaxwelliiidif=\RHSmaxwelliiidifm}}
\newcommand*{\maxwelliiidiffree}{\ensuremath{\LHSmaxwelliiidif=\RHSmaxwelliiidif}}
\newcommand*{\LHSmaxwellivdif}{\ensuremath{\curl{\vect{B}}}}
\newcommand*{\RHSmaxwellivdif}{\ensuremath{\vacuumpermeabilitymathsymbol%
  \vacuumpermittivitymathsymbol\pbypt[\vect{E}]+%
  \vacuumpermeabilitymathsymbol\vectsub{J}{\(e\)}}}
\newcommand*{\RHSmaxwellivdiffree}{\ensuremath{\vacuumpermeabilitymathsymbol
  \vacuumpermittivitymathsymbol\pbypt[\vect{E}]}}
\newcommand*{\maxwellivdif}{\ensuremath{\LHSmaxwellivdif=\RHSmaxwellivdif}}
\newcommand*{\maxwellivdiffree}{\ensuremath{\LHSmaxwellivdif=\RHSmaxwellivdiffree}}
\newcommand*{\RHSlorentzforce}{\ensuremath{\msub{q}{e}\left(\vect{E}+%
  \vectcrossvect{\vect{v}}{\vect{B}}\right)}}
\newcommand*{\RHSlorentzforcem}{\ensuremath{\RHSlorentzforce+\msub{q}{m}\left(%
  \vect{B}-\vectcrossvect{\vect{v}}{\frac{\vect{E}}{c^2}}\right)}}
\newcommandx{\eulerlagrange}[1][1={q_i},usedefault]{\ensuremath{%
  \pbyp{\mathcal{L}}{#1}-\dbydt\inparens{\pbyp{\mathcal{L}}{\dot{#1}}} = 0}}
\newcommandx{\Eulerlagrange}[1][1={q_i},usedefault]{\ensuremath{%
  \DbyD{\mathcal{L}}{#1}-\DbyDt\inparens{\DbyD{\mathcal{L}}{\dot{#1}}} = 0}}
\newcommand*{\vpythonline}{\lstinline[style=vpython]}
\lstnewenvironment{vpythonblock}[1][]{\lstset{style=vpython,caption={#1}}}{}
\newcommand*{\vpythonfile}[1][]{\newpage\lstinputlisting[style=vpython,caption={#1}]}
\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{\smallanswerform}[4][1=q1,2=Response,3=0.10,4=0.90,usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\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{\mediumanswerform}[4][1=q1,2=Response,3=0.20,4=0.90,usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\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{\largeanswerform}[4][1=q1,2=Response,3=0.25,4=0.90,usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\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{\largeranswerform}[4][1=q1,2=Response,3=0.33,4=0.90,%
  usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\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{\hugeanswerform}[4][1=q1,2=Response,3=0.50,4=0.90,usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\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{\hugeranswerform}[4][1=q1,2=Response,3=0.75,4=0.90,usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\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]}%
}%
\newcommandx{\fullpageanswerform}[4][1=q1,2=Response,3=1.00,4=0.90,usedefault]{%
  \vspace{\baselineskip}%
    \begin{Form}
      \begin{center}%
        \TextField[value={#2},%
        name=#1,%
        width=#4\linewidth,%
        height=#3\textheight,%
        backgroundcolor=formcolor,%
        multiline=true,%
        charsize=10pt,%
        bordercolor=black]{}%
      \end{center}%
    \end{Form}%
  \vspace{\baselineskip}%
}%
\mdfdefinestyle{miinstructornotestyle}{%
    hidealllines=false,skipbelow=\baselineskip,skipabove=\baselineskip,
    leftmargin=40pt,rightmargin=40pt,linewidth=1,roundcorner=10,
    nobreak=true,
    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,
    nobreak=true,
    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,
    nobreak=true,
    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}
}%
\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,
    nobreak=true,
    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,
    nobreak=true,
    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,
    nobreak=true,
    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}
}%
\NewEnviron{bwderivation*}{%
  \begin{mdframed}[style=bwderivationstyle]
  \setcounter{equation}{0}
    \begin{align*}
      \BODY
    \end{align*}
  \end{mdframed}
}%
\NewEnviron{mysolution}{%
  \setcounter{equation}{0}
  \begin{align}
    \BODY
  \end{align}
}%
\NewEnviron{mysolution*}{%
  \setcounter{equation}{0}
  \begin{align*}
    \BODY
  \end{align*}
}%
\newcommand*{\checkpoint}{%
  \vspace{1cm}\begin{center}%
    \colorbox{yellow!80}{|--------- 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}{#1}}}
\newcommand*{\chkquantity}[1]{%
  \begin{center}
    \begin{tabular}{C{4.5cm} C{4cm} C{4cm} C{4cm}}
      name    & baseunit & drvdunit & tradunit \tabularnewline
      \cs{#1} & \csname #1onlybaseunit\endcsname & \csname #1onlydrvdunit\endcsname &
        \csname #1onlytradunit\endcsname
    \end{tabular}
  \end{center}
}%
\newcommand*{\qed}{\ensuremath{\text{ Q.E.D.}}}
\newcommand*{\chkconstant}[1]{%
  \begin{center}
    \begin{tabular}{C{4cm} C{2cm} C{3cm} C{3cm} C{3cm} C{3cm}}
      name    & symbol & value & baseunit & drvdunit & tradunit \tabularnewline
      \cs{#1} & \csname #1mathsymbol\endcsname & \csname #1value\endcsname &
        \csname #1onlybaseunit\endcsname & \csname #1onlydrvdunit\endcsname &
        \csname #1onlytradunit\endcsname
    \end{tabular}
  \end{center}
}%
\endinput
%%
%% End of file `mandi.sty'.
