From 285f2e662f6dc37d227660aeb7624cac13004686 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 22 Aug 2021 03:00:40 +0000 Subject: CTAN sync 202108220300 --- macros/latex/contrib/mandi/README | 10 - macros/latex/contrib/mandi/README.md | 10 + macros/latex/contrib/mandi/mandi.dtx | 14146 ++++------------------ macros/latex/contrib/mandi/mandi.ins | 80 +- macros/latex/contrib/mandi/mandi.pdf | Bin 1343851 -> 468489 bytes macros/latex/contrib/mandi/mandiexp.dtx | 787 ++ macros/latex/contrib/mandi/mandistudent.dtx | 1789 +++ macros/latex/contrib/siunitx/CHANGELOG.md | 11 +- macros/latex/contrib/siunitx/siunitx-code.pdf | Bin 1510786 -> 1511547 bytes macros/latex/contrib/siunitx/siunitx-number.dtx | 137 +- macros/latex/contrib/siunitx/siunitx-unit.dtx | 2 +- macros/latex/contrib/siunitx/siunitx.dtx | 2 +- macros/latex/contrib/siunitx/siunitx.pdf | Bin 636202 -> 636196 bytes 13 files changed, 5153 insertions(+), 11821 deletions(-) delete mode 100644 macros/latex/contrib/mandi/README create mode 100644 macros/latex/contrib/mandi/README.md create mode 100644 macros/latex/contrib/mandi/mandiexp.dtx create mode 100644 macros/latex/contrib/mandi/mandistudent.dtx (limited to 'macros/latex') diff --git a/macros/latex/contrib/mandi/README b/macros/latex/contrib/mandi/README deleted file mode 100644 index cc3680da78..0000000000 --- a/macros/latex/contrib/mandi/README +++ /dev/null @@ -1,10 +0,0 @@ -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. This package -does not do computations. It only provides commands for typesetting. - -Run mandi.ins through pdfLaTeX to generate files mandi.sty and vdemo.py. Run -mandi.dtx through pdfLaTeX to generate mandi.pdf (documentation). I assume a -TeX Live 2011 or later distribution is installed. - diff --git a/macros/latex/contrib/mandi/README.md b/macros/latex/contrib/mandi/README.md new file mode 100644 index 0000000000..66a938f5de --- /dev/null +++ b/macros/latex/contrib/mandi/README.md @@ -0,0 +1,10 @@ +mandi provides commands for introductory physics. To install, open a command +line and type the following, repeating 2-4 until there are no warnings: + + 1. lualatex mandi.ins (can also use latex) + 2. lualatex mandi.dtx (lualatex is required) + 3. makeindex -s gind.ist -o mandi.ind mandi.idx + 4. makeindex -s gglo.ist -o mandi.gls mandi.glo + +Move the *.sty files into a directory searched by TeX. +The vdemo.py file is not needed. diff --git a/macros/latex/contrib/mandi/mandi.dtx b/macros/latex/contrib/mandi/mandi.dtx index 7c2653c695..cff62807a8 100644 --- a/macros/latex/contrib/mandi/mandi.dtx +++ b/macros/latex/contrib/mandi/mandi.dtx @@ -1,11 +1,11 @@ % \iffalse meta-comment -% !TEX TS-program = dtxmk +% !TEX program = lualatexmk % -% Copyright (C) 2018 by Paul J. Heafner +% Copyright (C) 2021 by Paul J. Heafner % --------------------------------------------------------------------------- % 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 +% 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. @@ -15,12 +15,16 @@ % The Current Maintainer of this work is Paul J. Heafner. % % This work consists of the files mandi.dtx +% mandistudent.dtx +% mandiexp.dtx % mandi.ins % mandi.pdf -% README +% README.md % % and includes the derived files mandi.sty -% vdemo.py. +% mandistudent.sty +% mandiexp.sty +% vdemo.py % --------------------------------------------------------------------------- % % \fi @@ -31,38 +35,6 @@ \iffalse % % -%<*package> -%%\ProvidesPackage{mandi}[2019/01/12 2.7.5 Macros for physics and astronomy] -\NeedsTeXFormat{LaTeX2e}[1999/12/01] -% -% -%<*vdemo> -# -from vpython import * - -G = 6.7e-11 - -# create objects -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 = G * 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) -% -% %<*internal> \fi \def\nameofplainTeX{plain} @@ -81,63 +53,96 @@ while 1: % %<*driver> \ProvidesFile{mandi.dtx} -% -% -%<*driver> \documentclass[10pt]{ltxdoc} -\setlength{\marginparwidth}{0.50in} % placement of todonotes -\usepackage{\jobname} % load mandi -\usepackage{parskip} % no indents/space btwn paras -\usepackage[textwidth=1.0cm]{todonotes} % allow for todonotes -\usepackage[left=0.75in,right=1.00in]{geometry} % main documentation -\usepackage{array,rotating,microtype} % accessory packages -\usepackage[listings,documentation]{tcolorbox} % workhorse package -\usepackage{anyfontsize} -\usepackage{float} -\usepackage{changepage} %%%%%%%%%% -\usepackage{nameref} -\hypersetup{colorlinks, linktoc=all} -\tcbset{index german settings} -\tcbset{color hyperlink=blue} -\tcbset{doc head command={interior style={fill,left color=red!15!white}}} -\tcbset{color command=red} -\tcbset{doc head environment={interior style={fill,left color=red!15!white}}} -\tcbset{color environment=red} -\tcbset{lefthand ratio=0.70} -\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}}}} -\DisableCrossrefs % index descriptions only -\PageIndex % index contains page numbers -\CodelineNumbered % number source lines -\RecordChanges % record changes -\begin{document} % main document - \DocInput{\jobname.dtx} - \newgeometry{left=1.00in,right=1.00in,top=1.00in,bottom=1.00in} - \PrintIndex - \restoregeometry -\end{document} % end main document +\PassOptionsToPackage{listings,documentation}{tcolorbox} % prevent option clash +\usepackage{\jobname} % load mandi.sty +\usepackage{mandistudent} % load mandistudent.sty +\usepackage{mandiexp} % load mandiexp.sty +\usepackage{mwe} % provides test images +\usepackage[left = 1.00in,% % + right = 1.00in,% % + marginparwidth = 0.70in]{geometry} % main documentation +\usepackage[listings,documentation]{tcolorbox} % workhorse package +\tcbset{% % tcolorbox options + index german settings,% + index colorize = false,% + lefthand ratio = 0.50,% + color hyperlink = blue,% + color command = purple,% + color environment = purple!65!black,% + doc left = 0.5in,% + doc marginnote = {colframe = blue!50!white,colback = blue!5!white},% + doc head command = {interior style = {fill,left color = blue!15!white}},% + doc head environment = {interior style = {fill,left color = blue!15!white}},% + doc head key = {interior style = {fill,left color = blue!15!white}},% + docexample/.style = {% + colback = gray!10!white,sidebyside,lefthand ratio = 0.5,center},% + listing style = vpython,% +}% +% Redefine tcolorbox's \tcbdocnew and \tcbdocupdated defaults. +\renewcommand*{\tcbdocnew}[1] + {\textcolor{green!50!black}{\sffamily\bfseries N} #1} +\renewcommand*{\tcbdocupdated}[1] + {\textcolor{blue!75!black}{\sffamily\bfseries U} #1} +\hypersetup{colorlinks=true} % colored links; no borders + +% See https://tex.stackexchange.com/q/156383/218142 +\newcommand*{\pkg}[1]{\textsf{#1}} % typeset package names +\newcommand*{\mandi}{\textsf{mandi}} % typeset mandi +\newcommand*{\mandistudent}{\textsf{mandistudent}} % typeset mandistudent +\newcommand*{\mandiexp}{\textsf{mandiexp}} % typeset mandiexp +\newcommand*{\GlowScript}{\texttt{GlowScript}} % typeset GlowScript +\newcommand*{\GlowScriptorg}{\texttt{GlowScript.org}} % typeset GlowScript.org +\newcommand*{\VPython}{\texttt{VPython}} % typeset VPython +\newcommand*{\VPythonorg}{\texttt{VPython.org}} % typeset VPython.org +\newcommand*{\gsurl}{glowscript.org} % GlowScript URL +\newcommand*{\vpurl}{vpython.org} % VPython URL +\newcommand*{\lualatex}{Lua\LaTeX} % typeset LuaLaTeX + +% A customized internal hyperref tool to mimic that in tcolorbox. +% In fact, I borrowed it from tcolorbox. +\NewDocumentCommand{\setplace}{ s m }{% + \IfBooleanTF {#1}% + {\phantomsection}% + {}% + \label{#2}% +}% +\NewDocumentCommand{\linktoplace}{ m m }{% + \hyperref[#1]{\texttt{#2}% + \ifnum\getpagerefnumber{#1}=\thepage\relax% + \else% + %\textsuperscript{\ding{213}\,{P.}\,\pageref*{#1}}% + % Changed with tcolorbox 4.51 + \textsuperscript{{\fontfamily{pzd}\fontencoding{U}\fontseries{m}\fontshape{n}\selectfont\char213} + \,{P.}\,\pageref*{#1}}% + \fi% + }% +}% + +% We need a new command for in-line listings to prevent overfull boxes. +% Anything in |...| will be in small plain text. +% Previously used !...! but that conflicts with colors. +\lstMakeShortInline[basicstyle=\normalfont\ttfamily\small]| + +\DisableCrossrefs % index descriptions only +\PageIndex % index refers to page numbers +\CodelineNumbered % number source lines +\RecordChanges % record changes +\begin{document} % main document + \DocInput{\jobname.dtx} % + \setcounter{CodelineNo}{0} % reset line numbers if desired + \DocInput{\jobname student.dtx} % + \setcounter{CodelineNo}{0} % reset line numbers if desired + \DocInput{\jobname exp.dtx} % + \PrintIndex % +\end{document} % end main document % % \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}{\emph{baseunits}} -% \newcommand*{\drvdunits}{\emph{drvdunits}} -% \newcommand*{\altnunits}{\emph{altnunits}} -% -% \IndexPrologue{\section{Index}Page numbers refer to page where the -% corresponding entry is described. Not every command defined in the -% package is indexed. There may be commands similar to indexed commands -% described in relevant parts of the documentation.} +% \IndexPrologue{\section{Index}Page numbers refer to page where the +% corresponding entry is documented and/or referenced.} % -% \CheckSum{6558} +% \CheckSum{2171} % % \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 @@ -155,739 +160,190 @@ while 1: % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % -% \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}})} -% ^^A \date{Version \fileversion~dated \filedate} -% \date{Version \mandiversion} +% \title{The \href{https://ctan.org/pkg/mandi}{\mandi} Bundle} +% \author{^^A +% Paul J. Heafner\thanks{^^A +% Email: \href{mailto:heafnerj@gmail.com?subject=[Heafner]\%20mandi} +% {heafnerj@gmail.com}^^A +% }^^A +% }^^A +% \date{\today} % % \newgeometry{left=1.0in,right=1.0in,top=4.0in} -% \pagenumbering{gobble} -% \hypersetup{pageanchor=false} -% \begin{titlepage} % \maketitle -% \end{titlepage} -% \hypersetup{pageanchor=true} -% \pagenumbering{arabic} +% \thispagestyle{empty} +% \centerline{\mandi\ version \mandiversion} +% \centerline{\mandistudent\ version \mandistudentversion} +% \centerline{\mandiexp\ version \mandiexpversion} +% ^^A\centerline{\textbf{PLEASE DO NOT DISTRIBUTE THIS BUILD.}} % \restoregeometry % -% ^^A \centerline{\textbf{PLEASE DO NOT DISTRIBUTE THIS VERSION.}} -% -% \newgeometry{left=1.0in,right=1.0in,top=1.0in,bottom=1.0in} +% \newgeometry{left=1.0in,right=1.0in,top=0.5in,bottom=1.0in} % \tableofcontents % \newpage % \phantomsection +% \addcontentsline{toc}{section}{Acknowledgements} +% \section*{Acknowledgements} +% To all of the students who have learned \LaTeX\ in my introductory +% physics courses over the years, I say a heartfelt thank you. You +% have contributed directly to the state of this software and to its +% use in introductory physics courses and to innovating how physics +% is taught. +% +% I also acknowledge the \LaTeX\ developers who inhabit the +% \href{https://tex.stackexchange.com/}{\TeX\ StackExchange} site. +% Entering a new culture is daunting for anyone, especially for +% newcomers. The \LaTeX\ development culture is no exception. We all +% share a passion for creating beautiful documents and I have learned +% much over the past year that improved my ability to do just that. +% There are too many of you to list individually, and I would surely +% accidentally omit some were I to try. Collectively, I thank you all +% for your patience and advice. +% \newpage +% \phantomsection % \addcontentsline{toc}{section}{Change History} % \PrintChanges % \newpage % \phantomsection -% \addcontentsline{toc}{section}{Program Listings} -% \lstlistoflistings -% \newpage +% \addcontentsline{toc}{section}{List of \texttt{GlowScript} Programs} +% \listofglowscriptprograms +% \phantomsection +% \addcontentsline{toc}{section}{List of \texttt{VPython} Programs} +% \listofvpythonprograms +% \phantomsection +% \addcontentsline{toc}{section}{List of Figures} +% \listoffigures % \restoregeometry % -%\changes{v2.4.0}{2014/12/16}{Made option names consistent with default behavior.} -%\changes{v2.4.0}{2014/12/16}{Added option for boldface vector kernels.} -%\changes{v2.4.0}{2014/12/16}{Added option for approximate values of constants.} -%\changes{v2.4.0}{2014/12/16}{Added magnetic charge.} -%\changes{v2.4.0}{2014/12/16}{\cs{vpythonfile} now uses a uniform style.} -%\changes{v2.4.0}{2014/12/16}{Added table of all predefined quantities with units.} -%\changes{v2.4.0}{2014/12/16}{Added table of all predefined constants -% with their symbols and units.} -%\changes{v2.4.0}{2014/12/16}{Added Maxwell's equations in both integral -% and differential forms, both with and without magnetic monopoles.} -%\changes{v2.4.0}{2014/12/16}{Added Lorentz force, with and -% without magnetic monopoles.} -%\changes{v2.4.0}{2014/12/16}{\cs{vpythonline} now uses a uniform style.} -%\changes{v2.4.0}{2014/12/16}{\texttt{vpythonblock} now uses a uniform style.} -%\changes{v2.4.0}{2014/12/17}{Now coexists with the \pkgname{commath} package.} -%\changes{v2.4.0}{2014/12/19}{Removed compatibility check for the \pkgname{physymb} -% package.} -%\changes{v2.4.1}{2015/02/11}{\texttt{vpythonblock} now accepts an optional caption.} -%\changes{v2.4.1}{2015/02/11}{\cs{vpythonfile} now accepts an optional caption.} -%\changes{v2.4.1}{2015/02/14}{Commands that use \pkgname{mdframed} -% will not break over pages.} -%\changes{v2.4.1}{2015/02/20}{Added \cs{scompsCvect} for superscripted -% components.} -%\changes{v2.4.1}{2015/02/20}{Added \cs{scompsRvect} for superscripted -% components.} -%\changes{v2.4.1}{2015/01/23}{Added more VPython keywords.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{smallanswerform}.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{mediumanswerform}.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{largeanswerform}.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{largeranswerform}.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{hugeanswerform}.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{hugeranswerform}.} -%\changes{v2.4.2}{2015/06/08}{Added \cs{fullpageanswerform}.} -%\changes{v2.5.0}{2016/01/26}{Added explicit mention of VPython and GlowScript.} -%\changes{v2.5.0}{2016/01/26}{Added GlowScript keywords.} -%\changes{v2.5.0}{2016/01/26}{Added example showing how to handle long -% lines and suppressing numbers on broken lines.} -%\changes{v2.5.0}{2016/01/26}{\cs{vpythonfile} now begins listings on a new page.} -%\changes{v2.5.0}{2015/09/13}{Removed autosized parentheses in math mode.} -%\changes{v2.5.0}{2015/09/13}{Removed compatibility check for the \pkgname{commath} -% package.} -%\changes{v2.5.0}{2015/09/13}{Renamed \cs{abs} to \cs{absof}.} -%\changes{v2.5.0}{2015/09/13}{\cs{absof} now shows a placeholder for a -% blank argument.} -%\changes{v2.5.0}{2015/09/13}{\cs{magof} now shows a placeholder for a -% blank argument.} -%\changes{v2.5.0}{2015/09/13}{\cs{dimsof} now shows a placeholder for a -% blank argument.} -%\changes{v2.5.0}{2015/09/13}{\cs{unitsof} now shows a placeholder for a -% blank argument.} -%\changes{v2.5.0}{2015/09/13}{Added \cs{inparens} for grouping with -% parentheses.} -%\changes{v2.5.0}{2015/09/13}{Changed behavior of \cs{sneakyone}.} -%\changes{v2.5.0}{2015/10/08}{Added \cs{eulerlagrange} command to -% typeset the Euler-Lagrange equation.} -%\changes{v2.5.0}{2015/10/08}{Added \cs{Lagr} to get symbol for -% Lagrangian.} -%\changes{v2.5.0}{2015/10/08}{Added color to \cs{checkpoint}.} -%\changes{v2.5.0}{2015/10/08}{Added \cs{qed} symbol.} -%\changes{v2.5.0}{2015/10/09}{Added \cs{ueuzero} and friends.} -%\changes{v2.5.0}{2015/10/09}{Added commands for Dirac notation.} -%\changes{v2.5.0}{2015/10/09}{Documented precise and approximate -% constant values.} -%\changes{v2.5.0}{2015/10/14}{\cs{miderivation} now prints line numbers.} -%\changes{v2.5.0}{2015/10/14}{Added \cs{miderivation*} to suppress line -% numbers.} -%\changes{v2.5.0}{2015/10/14}{\cs{bwderivation} now shows line numbers.} -%\changes{v2.5.0}{2015/10/14}{Added \cs{bwderivation*} to suppress line -% numbers.} -%\changes{v2.5.0}{2015/10/14}{\cs{mysolution} now prints line numbers.} -%\changes{v2.5.0}{2015/10/14}{Added \cs{mysolution*} to suppress line numbers.} -%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's gradient symbol.} -%\changes{v2.5.0}{2015/10/16}{Added \cs{taisvec} to get Tai's symbolic vector.} -%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's divergence symbol.} -%\changes{v2.5.0}{2015/10/16}{Added \cs{taigrad} to get Tai's curl symbol.} -%\changes{v2.5.0}{2015/10/20}{Added \cs{scompsdirvect}.} -%\changes{v2.5.0}{2015/10/20}{Added \cs{compdirvect}.} -%\changes{v2.5.0}{2015/11/29}{Added \cs{componentalong}.} -%\changes{v2.5.0}{2015/11/29}{Added \cs{expcomponentalong}.} -%\changes{v2.5.0}{2015/11/29}{Added \cs{ucomponentalong}.} -%\changes{v2.5.0}{2015/11/29}{Added \cs{projectiononto}.} -%\changes{v2.5.0}{2015/11/29}{Added \cs{expprojectiononto}.} -%\changes{v2.5.0}{2015/11/29}{Added \cs{uprojectiononto}.} -%\changes{v2.5.0}{2015/11/29}{Fixed parentheses bug in \cs{magvectncomps}.} -%\changes{v2.5.0}{2015/12/27}{Added option for radians in certain angular -% quantities.} -%\changes{v2.5.1}{2016/03/13}{Fixed errors in build for uploading to CTAN.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormomentum}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectordisplacement}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorvelocityc}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorvelocity}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectoracceleration}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorgravitationalfield}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorimpulse}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorforce}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularvelocity}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularacceleration}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularmomentum}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorangularimpulse}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectortorque}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorwavenumber}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorelectricfield}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorelectricdipolemoment}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormagneticfield}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectormagneticdipolemoment}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorcurrentdensity}.} -%\changes{v2.6.0}{2016/04/30}{Added \cs{vectorcmagneticfield}.} -%\changes{v2.6.0}{2016/05/02}{Created a student guide.} -%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.} -%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.} -%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.} -%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.} -%\changes{v2.6.0}{2016/05/02}{Changed placeholder to underscore.} -%\changes{v2.6.0}{2016/05/02}{Added \cs{problem} environment.} -%\changes{v2.6.0}{2016/05/02}{Added \cs{reason}.} -%\changes{v2.6.0}{2016/05/03}{Added \cs{energyflux}.} -%\changes{v2.6.0}{2016/05/03}{Added \cs{momentumflux}.} -%\changes{v2.6.0}{2016/05/03}{Added \cs{poyntingvector}.} -%\changes{v2.6.0}{2016/05/03}{Added many new commands that format expressions -% with placeholders for numerical quantities.} -%\changes{v2.6.0}{2016/05/10}{Replaced \cs{evalfromto} with \cs{evaluatedfromto}.} -%\changes{v2.6.0}{2016/05/10}{Replaced \cs{evalat} with new \cs{evaluatedat}.} -%\changes{v2.6.0}{2016/05/10}{Removed deprecated commands.} -%\changes{v2.6.0}{2016/05/11}{Added \cs{direction}.} -%\changes{v2.6.0}{2016/05/11}{Added \cs{vectordirection}.} -%\changes{v2.6.0}{2016/05/11}{Added \cs{vectorenergyflux}.} -%\changes{v2.6.0}{2016/05/11}{Added \cs{vectormomentumflux}.} -%\changes{v2.6.0}{2016/05/12}{Added \cs{glowscriptline}.} -%\changes{v2.6.0}{2016/05/12}{Added \texttt{glowscriptblock}.} -%\changes{v2.6.0}{2016/05/12}{Added \cs{glowscriptfile}.} -%\changes{v2.6.0}{2016/05/16}{Extensive revisions to documentation.} -%\changes{v2.6.0}{2016/05/18}{Option \opt{singleabsbars} renamed to -% \opt{singlemagbars}.} -%\changes{v2.6.0}{2016/05/20}{Documented \cs{chkquantity}.} -%\changes{v2.6.0}{2016/05/20}{Documented \cs{chkconstant}.} -%\changes{v2.6.0}{2016/05/20}{Documented \cs{mandiversion}.} -%\changes{v2.6.0}{2016/05/23}{Loads the \pkgname{tensor} package for future use.} -%\changes{v2.6.1}{2016/06/30}{Fixed \cs{mandiversion} so it displays correctly -% in math mode.} -%\changes{v2.6.1}{2016/06/30}{Fixed errors in Student Quick Guide documentation.} -%\changes{v2.6.2}{2016/07/31}{Made minor changes to the documentation.} -%\changes{v2.6.3}{2016/09/02}{Added \cs{mistandard} for standards.} -%\changes{v2.6.3}{2016/09/02}{Added \cs{bwstandard} for standards.} -%\changes{v2.6.3}{2016/09/07}{Added \cs{infeetpersecond}.} -%\changes{v2.6.3}{2016/09/08}{Added scaling options to \cs{image}.} -%\changes{v2.6.3}{2016/09/08}{Tweaked \cs{image} to work in documentation.} -%\changes{v2.6.3}{2016/09/08}{Added \cs{infeet}.} -%\changes{v2.6.3}{2016/09/08}{Added \cs{infeetpersecondsquared}.} -%\changes{v2.6.3}{2016/09/11}{Loads the \pkgname{float} package for \cs{image}.} -%\changes{v2.7.0}{2016/12/16}{Changed \cs{vectdotvect} to use \cs{cdot}.} -%\changes{v2.7.0}{2016/12/16}{Added \cs{vectDotvect} to use \cs{bullet}.} -%\changes{v2.7.0}{2017/02/02}{Made numerous internal changes to eliminate warnings.} -%\changes{v2.7.0}{2017/02/02}{Added blank output lines around mandi messages -% during compilation.} -%\changes{v2.7.0}{2017/02/02}{Changed first line of VPython programs to match -% Jupyter Notebook syntax.} -%\changes{v2.7.0}{2017/02/02}{Changed \cs{reason} to use minipage.} -%\changes{v2.7.0}{2017/02/02}{Added fourth argument to \cs{image} for a label.} -%\changes{v2.7.0}{2017/03/17}{Added \cs{dslashx} for inexact differentials.} -%\changes{v2.7.0}{2017/04/13}{Added \cs{factorvect}.} -%\changes{v2.7.0}{2017/04/13}{Added \cs{circulation}.} -%\changes{v2.7.0}{2017/09/01}{Added better looking parallel symbol.} -%\changes{v2.7.0}{2017/09/01}{Added an alias for the perpendicular symbol.} -%\changes{v2.7.0}{2018/01/11}{Added instructions for Overleaf users.} -%\changes{v2.7.2}{2018/03/14}{Changed \emph{tradunits} to \opt{altnunits}.} -%\changes{v2.7.2}{2018/03/16}{Documented the \cs{redefinephysicsquantity} command.} -%\changes{v2.7.2}{2018/03/16}{Documented the \cs{redefinephysicsconstant} command.} -%\changes{v2.7.2}{2018/03/18}{Changed \cs{lorentz} to \cs{lorentzfactor}.} -%\changes{v2.7.2}{2018/03/19}{Made \opt{drvdunits} the default.} -%\changes{v2.7.2}{2018/03/19}{Adjusted units of some predefined quantities and -% constants.} -%\changes{v2.7.2}{2018/03/20}{Added expanded instructions for Overleaf users.} -%\changes{v2.7.3}{2018/04/06}{Reformatted source code to allow for better -% documentation of changes.} -%\changes{v2.7.3}{2018/11/10}{Added \cs{emptyunit}. Thanks to Dr. Brian Lane -% for suggesting this implementation.} -%\changes{v2.7.3}{2018/11/11}{Added \cs{anglebetween}.} -%\changes{v2.7.3}{2018/11/13}{Made variable in series expansions a parameter -% with \(x\) as the default.} -%\changes{v2.7.3}{2018/12/27}{Modified \cs{vpythonfile} and \cs{vpythonblock} to -% include both captions and labels.} -%\changes{v2.7.4}{2019/01/12}{Revised Overleaf instructions to reflect new version.} -%\changes{v.2.7.5}{2019/01/12}{Revised documentation for Overleaf yet again.} +% \changes{v3.0.0}{2021-08-21}{\mandi\ initial release} +% \changes{v3.0.0}{2021-08-21}{\mandistudent\ initial release} +% \changes{v3.0.0}{2021-08-21}{\mandiexp\ initial release} % % \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{https://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. -% -% There are other underlying philosophies and goals embedded within \mandi, -% all of which are summarized here. These philosophies are -% \begin{itemize} -% \item to employ a \emph{type what you think} model for remembering commands, -% \item to relieve the user of having to explicitly worry about typesetting SI -% units, -% \item to enforce certain concepts that are too frequently merged, such as the -% distinction between a vector quantity and its magnitude (e.g.\ we often use -% the same name for both), -% \item to enforce consistent terminology in the naming of quantities, with names -% that are both meaningful to introductory students and accurate -% (e.g.\ \emph{duration} vs.\ \emph{time}), and -% \item to enforce consistent notation, especially for vector quantities. -% \end{itemize} -% -% I hope that using \mandi\ will cause users to form good habits that -% 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. -% -% The latest useable version is always found on the \mandi\ home page at -% \url{https://tensortime.sticksandshadows.com/mandi} and note that the version there -% may not yet have been pushed to \href{https://ctan.org}{CTAN}. -% -% \newpage -% \section{Loading the Package}\label{LoadingthePackage} -% To load \mandi\ with its default options, simply put the line |\usepackage{mandi}| -% in your document's preamble. To use the package's available options, put the line -% |\usepackage|\textbf{[}\opt{options}\textbf{]}|{mandi}| in your document's -% preamble. There are eight available options, all of which are described below. -% -% \begin{itemize} -% \item \opt{boldvectors} gives bold letters for the kernels of vector names. -% No arrows are used above the kernel. -% \item \opt{romanvectors} gives Roman letters for the kernels of vectors names. -% An arrow appears over the kernel. -% \end{itemize} -% -% If neither \opt{boldvectors} nor \opt{romanvectors} is specified (the -% default), vectors are displayed with italic letters for the kernels of vector -% names and an arrow appears over the kernel. -% -% \begin{itemize} -% \item \opt{singlemagbars} gives single bars in symbols for vector magnitudes -% instead of the default double bars. Double bars may be more familiar to -% students from their calculus courses. -% \item \opt{approxconsts} gives approximate values of constants to one or two -% significant figures, depending on how they appear in \mi, instead of the -% default precise values. -% \item \opt{useradians} gives radians in the units of angular momentum, -% angular impulse, and torque. The default is to not use radians in the units -% of these quantities. -% \item \opt{baseunits} causes all units to be displayed in \baseunits\ form, with -% SI base units. No solidi (slashes) are used. Positive and negative exponents -% are used to denote powers of various base units. -% \item \opt{drvdunits} causes all units to be displayed, when possible, in -% \drvdunits\ form, with SI derived units. Students may already be familiar with -% many of these derived units. -% \item \opt{altnunits} causes all units to be displayed in \altnunits\ form, -% which is intended to allow for custom units when desired. This is sometimes -% helpful for enhancing conceptual understanding in some situations. -% \end{itemize} -% -% If neither \opt{baseunits} nor \opt{altnunits} is specified, units are -% displayed in \drvdunits\ form, which is typically the way they would usually -% appear in textbooks. Units in this form may hide the underlying physical -% meaning or indeed may do precisely the opposite and enhance conceptual -% understanding. In this document, the default is to use -% \ifthenelse{\boolean{@optbaseunits}} -% {base} -% {\ifthenelse{\boolean{@optaltnunits}} -% {alternate} -% {derived}} -% units. As you will see later, there are ways to override these options either -% temporarily or permanently. -% -% \mandi\ coexists with the \pkgname{siunitx} package. While there is some -% functional overlap between the two packages, \mandi\ is completely independent of -% \pkgname{siunitx}. The two are designed for different purposes and probably also -% for different audiences, but can be used together if desired. \mandi\ coexists with -% the \pkgname{commath} package. There is no longer a conflict because \mandi's -% |\abs| command has been renamed to \refCom{absof}. \mandi\ no longer checks for the -% presence of the \pkgname{physymb} package. That package now incorporates \mandi\ -% dependencies, and the two are completely compatible as far as I know. -% -%\mandi\ loads the \pkgname{tensor} for likely future use. See that package's -% documentation for its commands and how to use them. There are no known conflicts -% between \mandi\ and \pkgname{tensor}. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mandiversion}{} -Gives the current package version number and build date. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\mandiversion -\end{dispExample*} -%\iffalse -% -%\fi % -% \newpage -% \section{Overleaf Users} -% \href{https://www.overleaf.com}{Overleaf.com} is an online \LaTeX\ environment -% with widespread use. It uses a full \TeX/\LaTeX\ installation but may not always -% have the latest version of every package installed (for stability reasons). -% Sometimes packages are updated more frequently than the large distributions are -% updated. If you want to always be sure you're using the latest version of \mandi\ -% make sure the files \pkgname{mandi.sty} and \pkgname{mandi.pdf} are in your -% Overleaf project folder. The package can now be used in your documents. -% -% If you are a student, here are detailed instructions on how to use \mandi\ -% in your Overleaf project. -% \begin{enumerate} -% \item Direct your browser to -% \href{https://tensortime.sticksandshadows.com/mandi} -% {https://tensortime.sticksandshadows.com/mandi} and fetch the file named -% \texttt{overleaf-template.zip}. Download it and open the zip file into a -% temporary folder on your computer. -% \item Go to the \href{https://www.overleaf.com}{Overleaf.com} website and -% create a free account and then sign into that account. -% \item Upon signing in, you should see a list of your current projects. Look -% for the New Project button on the left and click on it. Click on Blank Project. -% You will be asked to name your new project. Choose this name very carefully -% because it will also be the name of the compiled PDF file generated by compiling -% the project's main file. -% \item Once named, your new project will be created and you will be taken to its -% new folder. You will see a file named \texttt{main.tex}. For now, just leave it -% alone. -% \item Click the user interface element resembling an upward arrow attached to -% a tray (a popup labeled \texttt{Upload} appears when you hover over it) to open -% the file upload dialog. Select all the files (there should be six) in the -% temporary overleaf-template folder you previously created. Upload them -% into your project's folder. You can now delete the \texttt{main.tex} file. -% \item Click on the word \texttt{Menu} in the upper left corner of the window, -% then scroll down and look for the Main document setting. Make sure -% \texttt{NnnnnnnnCCPxx.tex} is selected as the project's main file. -% \item From now on, to start a new project, begin by copying this master -% project template and creating a new name for the new project. This way, -% you will build a neatly organized collection of logically named projects -% and the original Master Template will never have to be modified (but see -% next step) and every project will have \mandi\ available for use. -% \item If \mandi\ is updated by the developer, all you need to do is make -% sure the new \texttt{mandi.sty} and \texttt{mandi.pdf} files, and perhaps -% a few others if the developer has modified them, are uploaded to your project -% folders. -% \item You can now delete the \texttt{overleaf-template.zip} file and the -% temporary folder you created on your computer. -% \end{enumerate} +% The \mandi \footnote{The bundle name can be pronounced either with two +% syllables, to rhyme with \emph{candy}, or with three syllables, as +% \emph{M and I}.} bundle consists of three packages: \mandi, \mandistudent, +% and \mandiexp. Package \linktoplace{sec:mandipkg}{mandi} provides the +% core functionality, namely correctly typesetting physical quantities +% and constants with their correct SI units as either scalars or vectors, +% depending on which is appropriate. Package +% \linktoplace{sec:mandistudentpkg}{mandistudent} provides other typesetting +% capability appropriate for written problem solutions. Finally, package +% \linktoplace{sec:mandiexppkg}{mandiexp} provides commands for typesetting +% expressions from \emph{Matter \& Interactions}\footnote{See +% \href{https://www.wiley.com/en-us/Matter+and+Interactions%2C+4th+Edition-p-9781118875865} +% {\emph{Matter \& Interactions}} and +% \url{https://matterandinteractions.org/} for details.} +% +% \mandi\ has been completely rewritten from the ground up. It had gotten too +% large and clumsy to use and maintain. It (unknowingly) used deprecated +% packages. It had too many arcane ``features'' that were never used. It +% did not support Unicode. It was not compatible with modern engines, like +% \lualatex. It did not have a key-value interface. Options could not be +% changed on the fly within a document. In short, it was a mess. I hope +% this rewrite addresses all of the bad things and forms a better code base +% for maintenance, useability, and future improvements. +% +% So many changes have been made that I think the best approach for former, +% as well as new, users is to treat this as a brand new experience. I think +% the most important thing to keep in mind is that I assume users, +% expecially new users, will have a relatively recent TeX distribution +% (like TeX Live) that includes a recently updated \LaTeX\ kernel. If users +% report that this is a major problem, I can provide some degree of +% backwards compatibility. % % \newpage -% \section{Student Quick Guide} -% Use \refCom{vect} to put an arrow over a symbol to make it the symbol for a vector. -% Typing |\vect{p}| gives \vect{p}. -% -% Use \refCom{vectsub} if the symbol needs a subscript. Typing |\vectsub{p}{ball}| -% gives \vectsub{p}{ball}. -% -% Use \refCom{magvect} or \refCom{magvectsub} to get the symbol for a vector's -% magnitude. Typing |\magvect{p}| gives \magvect{p}. Typing |\magvectsub{p}{ball}| -% gives \magvectsub{p}{ball}. -% -% Use \refCom{dirvect} or \refCom{dirvectsub} to get the symbol for a vector's -% direction. Typing |\dirvect{p}| or |\dirvectsub{p}{ball}| gives \dirvect{p} or -% \dirvectsub{p}{ball}. -% -% Use \refCom{compvect} to write the symbol for one of a vector's coordinate -% components. Typing |\compvect{v}{z}| gives \compvect{v}{z}. -% -% Use a \hyperlink{target2}{physical quantity's} name followed by a numerical value -% in curly braces to typeset that numerical value and an appropriate -% \hyperlink{target1}{SI unit}. -% Using \refCom{velocity} by typing |\velocity{2.5}| gives -% \velocity{2.5}. Use \refCom{newphysicsquantity} to define any new quantity -% you need. -% -% Many \hyperlink{target3}{physical constants} are defined in \mandi\ and are -% well documented in the corresponding section. -% -% Use \refCom{mivector} to write the coordinate representation of a vector. -% Typing |\mivector{3,2,-4}| gives \mivector{3,2,-4}. Typing |\mivector{a,b,c}| -% gives \mivector{a,b,c}. -% -% Use \refCom{direction} to write the coordinate representation of a unit vector, -% which some authors call a direction. Typing |\direction{1,0,0}| gives -% \direction{1,0,0}. Directions have no units. -% -% To specify a vector quantity in terms of its coordinate components, you have two -% options. One way is to type the vector quantity's name as above, but use -% \refCom{mivector} to specify a list of three components separated by commas in -% curly braces as in |\velocity{\mivector{3,2,-4}}| to get -% \velocity{\mivector{3,2,-4}}. Another way is to prefix |\vector| to the quantity's -% name (with no leading backslash) and specify a list of three components separated -% by commas in curly braces as in |\vectorvelocity{3,2,-4}| to get -% \vectorvelocity{3,2,-4}. The output is the same either way. -% -% Use \refCom{timestento} or \refCom{xtento} to get scientific notation. -% Typing either |2.54\timestento{-4}| or |2.54\xtento{-4}| gives 2.54\timestento{-4}. -% -% Use \refCom{inparens} to surround quantities with nicely formatted parentheses. -% Typing |\inparens{x^2 + 4}| gives \inparens{x^2 + 4}. -% -% Use \refCom{define} to create a variable that can be used in an intermediate -% step in a solution. This is discussed \hyperlink{target5}{later in this section}. -% -% To typeset a matrix in parentheses, use the \cs{pmatrix} environment by putting -% the rows, between |\begin{pmatrix}| and |\end{pmatrix}|. Each row, except the -% last, must end with |\\|. Within each row, separate the columns with |&|. Note -% that \cs{pmatrix} typesets the matrix in parentheses. Use \cs{bmatrix} to typeset -% it in square brackets and \cs{vmatrix} to typeset it in single vertical bars -% to indicate a determinant. Use \cs{Vmatrix} to typeset it in double vertical -% bars. -% -%\iffalse -%<*example> -%\fi - \begin{dispExample*}{sidebyside,colframe=white,colback=white, lefthand ratio=0.70} - A second rank tensor represented as a matrix. - \[\begin{pmatrix} - \hphantom{-}T_{00} & T_{01} & -T_{02} \\ - -T_{10} & T_{11} & -T_{12} \\ - \hphantom{-}T_{20} & T_{21} & \hphantom{-}T_{22} - \end{pmatrix}\] - Alternate notation for a matrix. - \[\begin{bmatrix} - \hphantom{-}T_{00} & T_{01} & -T_{02} \\ - -T_{10} & T_{11} & -T_{12} \\ - \hphantom{-}T_{20} & T_{21} & \hphantom{-}T_{22} - \end{bmatrix}\] - The determinant of a matrix. - \[\begin{vmatrix} - \hphantom{-}T_{00} & T_{01} & -T_{02} \\ - -T_{10} & T_{11} & -T_{12} \\ - \hphantom{-}T_{20} & T_{21} & \hphantom{-}T_{22} - \end{vmatrix}\] - Alternate notation for the determinant of a matrix. - \[\begin{Vmatrix} - \hphantom{-}T_{00} & T_{01} & -T_{02} \\ - -T_{10} & T_{11} & -T_{12} \\ - \hphantom{-}T_{20} & T_{21} & \hphantom{-}T_{22} - \end{Vmatrix}\] - \end{dispExample*} -%\iffalse -% -%\fi -% -% Encapsulate an entire problem solution in a \refEnv{problem} environment by -% putting it between |\begin{problem}| and |\end{problem}|. -% -% Show the steps in a calculation in a \refEnv{mysolution} environment by putting -% them between |\begin{mysolution}| and |\end{mysolution}|. -% -% Use \cs{href} from the \pkgname{hyperref} package to link to URLs. -% |\href{http://glowscript.org}{GlowScript}| gives -% \href{http://glowscript.org}{GlowScript}. You can link to a specific -% \href{http://goo.gl/wPMqjp}{GlowScript program} when necessary. Links are -% active. +% \section{Student/Instructor Quick Guide} % -% Use \refCom{image} to insert diagrams. The diagram should be a PDF file. You -% \emph{must} remember to specify a meaningful caption for the diagram. You must -% also provide a unique label for the image so you can easily refer back to it -% elsewhere in your document. -% -% There are two main design goals behind this package. The first is to typeset -% numerical values of scalar and vector physical quantities and their SI units. The -% idea is to simply type a command corresponding to the quantity's name, specifying -% as an argument a single scalar value or the numerical components of a traditional -% Cartesian 3-vector, and let \mandi\ take care of the units. Every physical quantity -% you are likely to encounter in an introductory course is probably already defined, -% but there's a facility for defining new quantities if you need to. -% -% The second main design goal provides a similar approach to typesetting the most -% frequently used symbolic expressions in introductory physics. If you want to save -% time in writing out the expression for the electric field of a particle, just use +% Use \refCom{vec} to typeset the symbol for a vector. Use \refCom{magnitude} +% to typeset the symbol for a vector's magnitude. Use \refCom{dirvec} to +% typeset the symbol for a vector's direction. Use \refCom{changein} to +% typeset the symbol for the change in a vector or scalar. Use +% \refCom{zerovec} to typeset the zero vector. Use \refCom{timestento} to +% typeset scientific notation. % %\iffalse %<*example> %\fi -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Efieldofparticle +\begin{dispExample*}{lefthand ratio=0.80} + \( \vec{p} \) or \( \vec*{p} \) \\ + \( \vec{p}_{\symup{final}} \) or \( \vec*{p}_{\symup{final}} \) \\ + \( \magnitude{\vec{p}} \) or \( \magnitude*{\vec{p}_{\symup{final}}} \) \\ + \( \dirvec{p} \) or \( \dirvec*{p} \) \\ + \( \changein \vec{p} \) or \( \changein t \) \\ + \( \zerovec \) or \( \zerovec* \) \\ + \( 6.02\timestento{-19} \) \end{dispExample*} %\iffalse % %\fi % -% which, as you can see, takes fewer keystrokes and it's easier to remember. Correct -% vector notation is automatically enforced, leading students to get used to seeing -% it and, hopefully, using it in their own calculations. Yes, this is a bit of an -% agenda on my part, but my experience has been that students don't recognize or -% appreciate the utility of vector notation and thus their physical reasoning may -% suffer as a result. So by using \mandi\ they use simple commands that mirror what -% they're thinking, or what they're supposed to be thinking (yes, another agenda), -% and in the process see the correct typeset output. -% -% There is another persistent problem with introductory physics textbooks, and that -% is that many authors do not use consistent notation. Many authors define the -% notation for a vector's magnitude to be either \magvect{a} or \absof{\vect{a}} in -% an early chapter, but then completely ignore that notation and simply use \(a\) -% later in the book. I have never understood the (lack of) logic behind this practice -% and find it more than annoying. Textbooks authors should know better, and should -% set a better example for introductory students. I propose that using \mandi\ -% would eliminate all last vestiges of all excuses for not setting this one good -% example for introductory students. -% -% If you are a student, using this package will very likely begin with using a -% pre-made document template supplied by your instructor. There will likely be a -% lot about the document that you won't understand at first. Look for a line that -% says |\begin{document}| and a corresponding line that says |\end{document}| You -% will add content between these two lines. Most of your content will be within the -% \refEnv{problem} environment. Each use of this environment is intended to -% encapsulate one complete written solution to one physics problem. In this way, -% you can build a library of problem solutions for your own convenience. -% -% Since students are this package's primary audience, nearly all of the commands -% have been defined with students in mind. Writing a problem solution in \LaTeX\ -% can be tedious to the beginner and some of the commands have been designed to -% minimize the tedium. For example, if you want to calculate something using an -% equation, you typically must write the equation, substitute numerical quantities -% with units if necessary, do the actual calculation, and then state the final -% result.Sometimes it is necessary to show intermediate steps in a calculation. -% \mandi\ can help with this. -% -% Here is a set of commands that typeset standard equations with placeholders where -% numerical quantities must be eventually inserted. Note that all of these commands -% end with the word |places| as a reminder that they generate placeholders. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{genericinteractionplaces} -{\marg{const}\marg{thing1}\marg{thing2}\marg{dist}\marg{direction}} -Command for generic expression for an inverse square interaction. The five -required arguments are, from left to right, a constant of proportionality, a -physical property of object 1, a physical property of object 2, the objects' -mutual separation, and a vector direction. In practice, these should all be -provided in numerical form. Note that negative signs must be placed manually. -\end{docCommand} -\begin{dispExample} -\genericinteractionplaces{}{}{}{}{} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{genericfieldofparticleplaces} -{\marg{const}\marg{thing}\marg{dist}\marg{direction}} -Command for generic expression for an inverse square field. The four required -arguments are, from left to right, a constant of proportionality, a physical -property, relative distance to field point, and a vector direction. In practice, -these should all be provided in numerical form. Note that negative signs must be -placed manually. -\end{docCommand} -\begin{dispExample} -\genericfieldofparticleplaces{}{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% Use a \linktoplace{ssec:physquants}{physical quantity's} name to typeset +% a magnitude and that quantity's units. If the quantity is a vector, you +% can add |vector| either to the beginning or the end of the quantity's +% name. For example, if you want momentum, use \refCom{momentum} and +% its variants. % %\iffalse %<*example> %\fi -\begin{docCommand}{genericpotentialenergyplaces} -{\marg{const}\marg{thing1}\marg{thing2}\marg{dist}} -Command for generic expression for an inverse square energy. The four required -arguments are, from left to right, a constant of proportionality, a physical -property of object 1, a physical property of object 2, and the objects' mutual -separation. In practice, these should all be provided in numerical form. Note that -negative signs must be placed manually. -\end{docCommand} \begin{dispExample} -\genericpotentialenergyplaces{}{}{}{} + \( \momentum{7.071} \) \\ + \( \vectormomentum{3,-4,5} \) \\ + \( \momentumvector{3,-4,5} \) \end{dispExample} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gravitationalinteractionplaces} -{\marg{mass1}\marg{mass2}\marg{distance}\marg{direction}} -Command for gravitational interaction. The four required arguments are, from -left to right, the first object's mass, the second object's mass, the objects' -mutual separation, and a vector direction. In practice, these should all be -provided in numerical form. Note that negative signs must be placed manually. -\end{docCommand} -\begin{dispExample} -\gravitationalinteractionplaces{}{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% Use a \linktoplace{ssec:physconsts}{physical constant's} name +% to typeset its numerical value and units. Append |mathsymbol| +% to the constant's name to get its mathematical symbol. For +% example, if you want to typeset the vacuum permittivity, use +% \refCom{vacuumpermittivity} and its variant. % %\iffalse %<*example> %\fi -\begin{docCommand}{gfieldofparticleplaces} -{\marg{mass}\marg{distance}\marg{direction}} -Command for gravitational field of a particle. The three required arguments are, -from left to right, the object's mass, the distance from the source to the field -point, and a vector direction. In practice, these should all be provided in -numerical form. Note that negative signs must be placed manually. -\end{docCommand} -\begin{dispExample} -\gfieldofparticleplaces{}{}{} -\end{dispExample} +\begin{dispExample*}{lefthand ratio=0.70} + \( \vacuumpermittivitymathsymbol = \vacuumpermittivity \) +\end{dispExample*} %\iffalse % %\fi % +% Use \refCom{mivector} to typeset symbolic vectors with components. +% Use the aliases \refCom{direction} to typeset a direction or unit +% vector. %\iffalse %<*example> %\fi -\begin{docCommand}{gravitationalpotentialenergyplaces} -{\marg{mass1}\marg{mass2}\marg{distance}} -Command for gravitational potential energy. The three required arguments are, -from left to right, the first object's mass, the second object's mass, and -the object's mutual distance. In practice, these should all be provided in -numerical form. Note the inclusion of the leading negative sign. -\end{docCommand} -\begin{dispExample} -\gravitationalpotentialenergyplaces{}{}{} -\end{dispExample} +\begin{dispExample*}{sidebyside=false} + \( \mivector{\slot,\slot,\slot} \) or \( \mivector{p_x,p_y,p_z} \) \\ + \( \direction{\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}}} \) or +\end{dispExample*} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{springinteractionplaces} -{\marg{stiffness}\marg{stretch}\marg{direction}} -Command for a spring interaction. The three required arguments are, from left -to right, the spring stiffness, the spring's stretch, and a vector direction. -In practice, these should all be provided in numerical form. Note that negative -signs must be placed manually or absorbed into the displacement vector. -\end{docCommand} -\begin{dispExample} -\springinteractionplaces{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% Use \refEnv{physicsproblem} and \refEnv{parts} and \refCom{problempart} +% for problems. For step-by-step mathematical solutions use +% \refEnv{physicssolution}. Use \refEnv{glowscriptblock} to typeset +% \href{https://\gsurl}{\GlowScript} programs. Use \refCom{vpythonfile} to +% typeset \href{https://\vpurl}{VPython} program files. % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{springpotentialenergyplaces} -{\marg{stiffness}\marg{stretch}} -Command for spring potential energy. The two required arguments are, from left -to right, the spring stiffness and the spring stretch. In practice, these should -be provided in numerical form. -\end{docCommand} -\begin{dispExample} -\springpotentialenergyplaces{}{} -\end{dispExample} -%\iffalse -% -%\fi +% \newpage +% \section{The \mandi\ Package}\setplace{sec:mandipkg} % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{genericelectricdipoleonaxisplaces} -{\marg{const}\marg{charge}\marg{separation}\marg{dist}\marg{direction}} -Command for generic expression for dipole field on the dipole's axis. The five -required arguments are, from left to right, a constant of proportionality, a charge, -a dipole separation, the distance to the field point, and a vector direction. In -practice, these should all be provided in numerical form. -\end{docCommand} -\begin{dispExample} -\genericelectricdipoleonaxisplaces{}{}{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% Load \mandi\ as you would any package in your preamble. % %\iffalse %<*example> %\fi -\begin{docCommand}{genericelectricdipoleplaces} -{\marg{const}\marg{charge}\marg{separation}\marg{dist}\marg{direction}} -Command for generic expression for dipole field. The five required arguments are, -from left to right, a constant of proportionality, a charge, a dipole separation, -the distance to the field point, and a vector direction. In practice, these should -all be provided in numerical form. -\end{docCommand} -\begin{dispExample} -\genericelectricdipoleplaces{}{}{}{}{} -\end{dispExample} +\begin{dispListing*}{sidebyside=false,listing only} + \usepackage[options]{mandi} +\end{dispListing*} %\iffalse % %\fi @@ -895,8022 +351,814 @@ all be provided in numerical form. %\iffalse %<*example> %\fi -\begin{docCommand}{electricinteractionplaces} -{\marg{charge1}\marg{charge2}\marg{distance}\marg{direction}} -Command for electric interaction. The four required arguments are, from left to -right, the first object's charge, the second object's charge, the objects' mutual -separation, and a vector direction. In practice, these should all be provided in -numerical form. +\begin{docCommand}{mandiversion}{} + Typesets the current version and build date. \end{docCommand} -\begin{dispExample} -\electricinteractionplaces{}{}{}{} -\end{dispExample} +\begin{dispExample*}{sidebyside=false} + The version is \mandiversion\ and is a stable build. +\end{dispExample*} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Efieldofparticleplaces} -{\marg{charge}\marg{distance}\marg{direction}} -Command for electric field of a particle. The three required argument are, from -left to right, the particle's charge, the distance form the source to the field -point, and a vector direction. In practice, these should all be provided in -numerical form. -\end{docCommand} -\begin{dispExample} -\Efieldofparticleplaces{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% \subsection{Package Options} % %\iffalse %<*example> %\fi -\begin{docCommand}{Bfieldofparticleplaces} -{\marg{charge}\marg{magvel}\marg{magr}\marg{vhat}\marg{rhat}} -Command for magnetic field of a particle. The five required arguments are, from -left to right, the particle's charge, the particle's velocity, the distance from -the source to the field point, the velocity's direction, and a direction vector -from the source to the field point. In practice, these should all be provided in -numerical form. -\end{docCommand} -\begin{dispExample} -\Bfieldofparticleplaces{}{}{}{}{} -\end{dispExample} +\begin{docKeys}[% + doc new = 2021-01-30,% + doc keypath = {},% + ]% + {% + {% + doc name = units,% + doc parameter = {=\meta{type of unit}},% + doc description = {initially unspecified, set to \docValue{alternate}},% + },% + {% + doc name = preciseconstants,% + doc parameter = {=\meta{boolean}},% + doc description = {initially unspecified, set to \docValue{false}},% + },% + }% + Now \mandi\ uses a key-value interface for options. + The \refKey{units} key can be set to \docValue{base}, \docValue{derived}, + or \docValue{alternate}. The \refKey{preciseconstants} key is always + either \docValue{true} or \docValue{false}. +\end{docKeys} %\iffalse % %\fi % +% \subsection{The \texttt{mandisetup} Command} +% %\iffalse %<*example> %\fi -\begin{docCommand}{electricpotentialenergyplaces} -{\marg{charge1}\marg{charge2}\marg{distance}} -Command for electric potential energy. The three required arguments are, from -left to right, the first object's charge, the second object's charge, and the -objects' mutual distance. In practice, these should all be provided in numerical -form. +\begin{docCommand}[doc new = 2021-02-17]{mandisetup}{\marg{options}} + Command to set package options on the fly after loadtime. This + can be done in the preamble or inside the + |\begin{document}...\end{document}| environment. \end{docCommand} -\begin{dispExample} -\electricpotentialenergyplaces{}{}{} -\end{dispExample} +\begin{dispListing*}{sidebyside=false,listing only} + \mandisetup{units=base} +\end{dispListing*} +\begin{dispListing*}{sidebyside=false,listing only} + \mandisetup{preciseconstants} +\end{dispListing*} +\begin{dispListing*}{sidebyside=false,listing only} + \mandisetup{preciseconstants=false} +\end{dispListing*} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricdipoleonaxisplaces} -{\marg{charge}\marg{separation}\marg{dist}\marg{direction}} -Command for dipole electric field on the dipole's axis. The four required arguments -are, from left to right, a charge, a dipole separation, the distance to the field -point, and a vector direction. In practice, these should all be provided in numerical -form. -\end{docCommand} -\begin{dispExample} -\electricdipoleonaxisplaces{}{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% \subsection{\lualatex\ is Required} % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricdipoleonbisectorplaces} -{\marg{charge}\marg{separation}\marg{dist}\marg{direction}} -Command for dipole electric field. The four required arguments are, from left -to right, a charge, a dipole separation, the distance to the field point, and -a vector direction. In practice, these should all be provided in numerical form. -\end{docCommand} -\begin{dispExample} -\electricdipoleonbisectorplaces{}{}{}{} -\end{dispExample} -%\iffalse -% -%\fi +% In order to make use of better fonts and Unicode features, \mandi\ now +% requires the \lualatex\ engine for processing documents. It will not +% work with other engines. % -% The underlying strategy is to \emph{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. +% \newpage +% \subsection{Physical Quantities} +% \subsubsection{Typesetting Physical Quantities}\setplace{ssec:physquants} % -% \hypertarget{target5}{So} now how to you go about getting numerical values (with -% units) into the placeholders? Use the \refCom{define} command to define a variable -% containing a desired quantity, and then pass that variable to the above commands -% and that quantity will appear in the corresponding placeholder. +% Typesetting physical quantities and constants using semantically appropriate +% names, along with the correct +% \href{https://en.wikipedia.org/wiki/International_System_of_Units}{SI units}, +% is the core function of \mandi. Take momentum as the prototypical physical +% quantity in an introductory physics course. % %\iffalse %<*example> %\fi -\begin{docCommand}{define}{\marg{variablename}\marg{quantity}} -Defines a variable, actually a new command, named \cs{variablename} and sets its -value to \cs{quantity}. \textbf{Note that digits are not permitted in command names -in \LaTeX.} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\define{\massone}{\mass{25}} +\begin{docCommands} + {% + {% + doc name = momentum,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = momentumvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectormomentum,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% + Command for momentum and its vector variants. The default units will depend + on the options passed to \mandi\ at load time. Alternate units are the + default. Other units can be forced as demonstrated. The vector variants can + take more than three components. Note the other variants for the quantity's + value and units. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.60} + \( \momentum{5} \) \\ + \( \momentumvalue{5} \) \\ + \( \momentumbaseunits{5} \) \\ + \( \momentumderivedunits{5} \) \\ + \( \momentumalternateunits{5} \) \\ + \( \momentumvector{2,3,4} \) \\ + \( \vectormomentum{2,3,4} \) \\ + \( \momentum{\mivector{2,3,4}} \) \\ + \( \momentumonlybaseunits \) \\ + \( \momentumonlyderivedunits \) \\ + \( \momentumonlyalternateunits \) \\ + \( \momentumvectorvalue{2,3,4} \) \\ + \( \vectormomentumvalue{2,3,4} \) \\ + \( \momentumvectorbaseunits{2,3,4} \) \\ + \( \vectormomentumbaseunits{2,3,4} \) \\ + \( \momentumvectorderivedunits{2,3,4} \) \\ + \( \vectormomentumderivedunits{2,3,4} \) \\ + \( \momentumvectoralternateunits{2,3,4} \) \\ + \( \vectormomentumalternateunits{2,3,4} \) \\ + \( \momentumvectoronlybaseunits \) \\ + \( \vectormomentumonlybaseunits \) \\ + \( \momentumvectoronlyderivedunits \) \\ + \( \vectormomentumonlyderivedunits \) \\ + \( \momentumvectoronlyalternateunits \) \\ + \( \vectormomentumonlyalternateunits \) \end{dispExample*} %\iffalse % %\fi % -% Suppose you want to calculate the gravitational force on one object due to -% another. You need two masses, and their mutual distance, and a direction. You -% can say, for example, |\define{\massone}{\mass{5}| to create a variable |\massone| -% containing a mass of \mass{5}. Note that you don't have to worry about units -% because the \refCom{mass} command handles that for you. Similarly, you can go on -% and say |\define{\masstwo}{\mass{12}| and |\define{\myr}{\displacement{5}| and -% |\define{\mydir}{\mivector{0,-1,0}|. Now just call the -% \refCom{gravitationalinteractionplaces} command with these arguments (in the -% correct order of course) and \LaTeX\ will do the rest when you compile your -% document. The entire process would look like this: +% Commands that include the name of a physical quantity typeset units, so +% they shouldn't be used for algebraic or symbolic values of components. +% For example, one shouldn't use |\vectormomentum{mv_x,mv_y,mv_z}| but +% instead the generic |\mivector{mv_x,mv_y,mv_z}| instead. +% +% \subsubsection{Checking Physical Quantities} % %\iffalse %<*example> %\fi -\begin{dispExample} -\define{\massone}{\mass{5}} -\define{\masstwo}{\mass{12}} -\define{\myr}{\displacement{5}} -\define{\mydir}{\mivector{0,-1,0}} -\gravitationalinteractionplaces{\massone}{\masstwo}{\myr}{\mydir} = -\vectorforce{0,-1.60\xtento{-10},0} -\end{dispExample} +\begin{docCommand}[doc new = 2021-02-16]{checkquantity}{\marg{name}} + Command to check and typeset the command, base units, + derived units, and alternate units of a defined physical + quantity. +\end{docCommand} %\iffalse % %\fi % -% Of course you must calculate the final numerical result yourself because \mandi\ -% doesn't (yet) do calculations. One very important restriction on variable names is -% that \LaTeX\ doesn't allow digits in command or variable names and thus that -% restriction applies here too. +% \subsubsection{Predefined Physical Quantities} % -% This barely scratches the surface in describing \mandi\ so continue reading this -% document to see everything it can do. You will learn new commands as you need -% them in your work. To start with, you should at least read the section on -% \hyperlink{target1}{SI units} and the section on -% \hyperlink{target2}{physical quantities}. -% -% \newpage -% \section{Features and Commands} -% \hypertarget{target1}{\subsection{SI Base Units and Dimensions}} -% This is not a tutorial on SI units and the user is assumed -% to be familiar with SI rules and usage. Begin by defining shortcuts for the units -% for the seven SI base quantities: -% \emph{spatial displacement} (what others call \emph{length}), \emph{mass}, -% \emph{temporal displacement} (what others call \emph{time}, but we will call -% it \emph{duration} in most cases), \emph{electric current}, \emph -% {thermodynamic temperature}, \emph{amount}, and \emph{luminous intensity}. -% These shortcuts are used internally and need not explicitly be invoked by the -% user. +% Every other defined physical quantity can be treated similarly. Just replace +% |momentum| with the quantity's name. Obviously, the variants that begin with +% |\vector| will not be defined for scalar quantities. Here are all the +% physical quantities, with all their units, defined in \mandi. Rememeber that +% units are not present with symbolic (algebraic) quantities, so do not use +% the |\vector| variants of these commands for symbolic components. +% Use \refCom{mivector} instead. % %\iffalse %<*example> %\fi -\begin{docCommand}{m}{} - Command for \href{https://en.wikipedia.org/wiki/metre}{metre}, the SI unit of - spatial displacement (length). +\begin{docCommands} + {% + {% + doc name = acceleration,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = accelerationvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectoracceleration,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{acceleration} +\begin{docCommand}{amount}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{kg}{} - Command for \href{https://en.wikipedia.org/wiki/kilogram}{kilogram}, the SI unit - of mass. +\checkquantity{amount} +\begin{docCommands} + {% + {% + doc name = angularacceleration,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = angularaccelerationvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorangularacceleration,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{angularacceleration} +\begin{docCommand}{angularfrequency}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{s}{} - Command for \href{https://en.wikipedia.org/wiki/second}{second}, the SI unit - of temporal displacement (duration). +\checkquantity{angularfrequency} +\begin{docCommands} + {% + {% + doc name = angularimpulse,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = angularimpulsevector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorangularimpulse,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{angularimpulse} +\begin{docCommands} + {% + {% + doc name = angularmomentum,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = angularmomentumvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorangularmomentum,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{angularmomentum} +\begin{docCommands} + {% + {% + doc name = angularvelocity,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = angularvelocityvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorangularvelocity,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{angularvelocity} +\begin{docCommand}{area}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{A}{} - Command for \href{https://en.wikipedia.org/wiki/ampere}{ampere}, the SI unit - of electric current. +\checkquantity{area} +\begin{docCommand}{areachargedensity}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{K}{} - Command for \href{https://en.wikipedia.org/wiki/kelvin}{kelvin}, the SI unit - of thermodynamic temperature. +\checkquantity{areachargedensity} +\begin{docCommand}{areamassdensity}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mol}{} - Command for \href{https://en.wikipedia.org/wiki/mole}{mole}, the SI unit of - amount. +\checkquantity{areamassdensity} +\begin{docCommand}{capacitance}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{cd}{} - Command for \href{https://en.wikipedia.org/wiki/candela}{candela}, the SI - unit of luminous intensity. +\checkquantity{capacitance} +\begin{docCommand}{charge}{\marg{magnitude}} \end{docCommand} -%\iffalse -% -%\fi -% -% If \mandi\ was loaded 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. -% -% Certain combinations of the SI base units have nicknames and each such -% combination and nickname constitutes a \emph{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. 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 \emph{name} -% of the unit is \emph{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. -% -% \subsection{SI Dimensions} -% For each SI unit, there is at least one corresponding dimension. Every physical -% quantity is some multiplicative product of each of the seven basic SI dimensions -% raised to a power. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimddisplacement}{} -Command for the symbol for the dimension of displacement. +\checkquantity{charge} +\begin{docCommands} + {% + {% + doc name = cmagneticfield,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = cmagneticfieldvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorcmagneticfield,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{cmagneticfield} +\begin{docCommand}{conductance}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -displacement has dimension of \dimdisplacement -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimmass}{} -Command for the symbol for the dimension of mass. +\checkquantity{conductance} +\begin{docCommand}{conductivity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -mass has dimension of \dimmass -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimduration}{} -Command for the symbol for the dimension of duration. +\checkquantity{conductivity} +\begin{docCommand}{conventionalcurrent}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -duration has dimension of \dimduration -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimcurrent}{} -Command for the symbol for the dimension of current. -\end{docCommand} -\begin{dispExample*}{sidebyside} -current has dimension of \dimcurrent -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimtemperature}{} -Command for the symbol for the dimension of temperature. -\end{docCommand} -\begin{dispExample*}{sidebyside} -temperature has dimension of \dimtemperature -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimamount}{} -Command for the symbol for the dimension of amount. -\end{docCommand} -\begin{dispExample*}{sidebyside} -amount has dimension of \dimamount -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimluminous}{} -Command for the symbol for the dimension of luminous intensity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -luminous has dimension of \dimluminous -\end{dispExample*} -%\iffalse -% -%\fi -% -% \hypertarget{target2}{\subsection{Defining Physical Quantities}} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{newphysicsquantity} -{\marg{newname}\marg{\baseunits}\oarg{\drvdunits}\oarg{\altnunits}} -Defines a new physical quantity and its associated commands. -\end{docCommand} -%\iffalse -% -%\fi -% -% Using this command causes several things to happen. -% \begin{itemize} -% \item A command \colDef{\cs{newname}}\marg{magnitude}, where \colDef{newname} -% is the first argument of \colDef{\cs{newphysicsquantity}}, is created that -% takes one mandatory argument, a numerical magnitude. Subsequent use of your -% defined scalar quantity can be invoked by typing \colDef{\cs{newname}} -% \marg{magnitude} and the units will be typeset according to the options -% given when \mandi\ was loaded. Note that if the \drvdunits\ and \altnunits\ -% forms are not specified, they will be populated with the \baseunits\ form. -% \item A command \colDef{\cs{newnamebaseunit}}\marg{magnitude} is created that -% expresses the quantity and its units in \baseunits\ form. -% \item A command \colDef{\cs{newnamedrvdunit}}\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 \colDef{\cs{newnamealtnunit}}\marg{magnitude} is created that -% expresses the quantity and its units in \altnunits\ form. This command is -% created whether or not the first optional argument is provided. -% \item A command \colDef{\cs{newnameonlybaseunit}}\marg{magnitude} is created -% that expresses \textbf{only} the quantity's units in \baseunits\ form. -% \item A command \colDef{\cs{newnameonlydrvdunit}}\marg{magnitude} is created -% that expresses \textbf{only} the quantity's units in \drvdunits\ form. -% \item A command \colDef{\cs{newnameonlyaltnunit}}\marg{magnitude} is created -% that expresses \textbf{only} the quantity's units in \altnunits\ form. -% \item A command \colDef{\cs{newnamevalue}}\marg{magnitude} is created that -% expresses \textbf{only} the quantity's numerical value. -% \end{itemize} -% -% As an example, consider momentum. The following commands are defined: -% -% \begin{quotation} -% \begin{tabular}{l l l} -% |\momentum{3}| &\momentum{3} & unit set by global options \\ -% |\momentumbaseunit{3}| &\momentumbaseunit{3} & quantity with base unit \\ -% |\momentumdrvdunit{3}| &\momentumdrvdunit{3} & quantity with derived unit \\ -% |\momentumaltnunit{3}| &\momentumaltnunit{3} & quantity with alternate unit \\ -% |\momentumvalue{3}| &\momentumvalue{3} & selects only numerical value \\ -% |\momentumonlybaseunit|&\momentumonlybaseunit & selects only base unit \\ -% |\momentumonlydrvdunit|&\momentumonlydrvdunit & selects only derived unit \\ -% |\momentumonlyaltnunit|&\momentumonlyaltnunit & selects only alternate unit -% \end{tabular} -% \end{quotation} -% -% Momentum is a vector quantity, so obviously this command really refers to the -% magnitude of a momentum vector. There is an interesting, and as far as I can -% tell unwritten, convention in physics that we use the same name for a vector -% and its magnitude with one exception, and that is for velocity, the magnitude -% of which we sometimes call speed. Conceptually, however, velocity and speed are -% different entities. Therefore, \mandi\ has different commands for them. Actually, -% the \refCom{speed} command is just an alias for \refCom{velocity} and should only -% be used for scalars and never for vectors. This convention means that the same -% name is used for vector quantities and the corresponding magnitudes. -% -% \subsubsection{Defining Vector Quantities} -% -% All physical quantities are defined as in the momentum example above regardless -% of whether the quantity is a scalar or a vector. To typeset a vector quantity -% in terms of its components in some coordinate system (usually an orthonormal -% cartesian system, either specify an argument consisting of a vector with components -% as a comma separated list in a \refCom{mivector} command or prepend the quantity -% name with |vector|. So specifying a momentum vector is as simple as -% -%\iffalse -%<*example> -%\fi -\begin{dispExample} -\momentum{\mivector{3,2,-1}} \\ -\vectormomentum{3,2,-1} -\end{dispExample} -%\iffalse -% -%\fi -% -% where the notation corresponds to that used in \mi. -% -% \subsubsection{First Semester Physics} -% The first semester of most introductory calculus-based physics courses focuses -% on mechanics, dynamics, and statistical mechanics. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{displacement}{\marg{magnitude or vector}} -Command for displacement. -\end{docCommand} -\begin{docCommand}{vectordisplacement}{\marg{commadelimitedlistofcomps}} -Command for vector displacement. +\checkquantity{conventionalcurrent} +\begin{docCommand}{current}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\displacement{5} \\ -\displacement{\mivector{3,2,-1}} \\ -\vectordisplacement{1,2,3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mass}{\marg{magnitude}} -Command for mass. +\checkquantity{current} +\begin{docCommands} + {% + {% + doc name = currentdensity,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = currentdensityvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorcurrentdensity,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{currentdensity} +\begin{docCommand}{dielectricconstant}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\mass{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi +\checkquantity{dielectricconstant} +\begin{docCommands} + {% + {% + doc new = 2021-02-24,% + doc name = direction,% + doc parameter = \marg{magnitude},% + },% + {% + doc name = directionvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectordirection,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{direction} +\begin{docCommands} + {% + {% + doc name = displacement,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = displacementvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectordisplacement,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{displacement} \begin{docCommand}{duration}{\marg{magnitude}} -Command for duration. \end{docCommand} -\begin{dispExample*}{sidebyside} -\duration{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{current}{\marg{magnitude}} -Command for current. +\checkquantity{duration} +\begin{docCommands} + {% + {% + doc name = electricdipolemoment,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = electricdipolemomentvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + { doc name = vectorelectricdipolemoment,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{electricdipolemoment} +\begin{docCommands} + {% + {% + doc name = electricfield,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = electricfieldvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorelectricfield,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{electricfield} +\begin{docCommand}{electricflux}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\current{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{temperature}{\marg{magnitude}} -Command for temperature. +\checkquantity{electricflux} +\begin{docCommand}{electricpotential}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\temperature{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{amount}{\marg{magnitude}} -Command for amount. +\checkquantity{electricpotential} +\begin{docCommand}[doc new = 2021-05-01]{electricpotentialdifference}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\amount{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{luminous}{\marg{magnitude}} -Command for luminous intensity. +\checkquantity{electricpotentialdifference} +\begin{docCommand}{electroncurrent}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\luminous{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -% While we're at it, let's also go ahead and define a few non-SI units from -% astronomy, astrophysics, and old school physics. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{infeet}{\marg{magnitude}} -Command for magnitude of displacement in feet. This is still sometimes used -in engineering applications and is frequently seen in older physics textbooks. +\checkquantity{electroncurrent} +\begin{docCommand}{emf}{\marg{magnitude}} \end{docCommand} -\begin{docCommand}{infeetpersecond}{\marg{magnitude}} -Command for magnitude of velocity in feet per second. This is still sometimes used -in engineering applications and is frequently seen in older physics textbooks. +\checkquantity{emf} +\begin{docCommand}{energy}{\marg{magnitude}} \end{docCommand} -\begin{docCommand}{infeetpersecondsquared}{\marg{magnitude}} -Command for magnitude of acceleration in feet per second. This is still sometimes -used in engineering applications and is frequently seen in older physics textbooks. +\checkquantity{energy} +\begin{docCommand}[doc new = 2021-04-15]{energyinev}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\infeet{5} \\ -\infeetpersecond{5} \\ -\infeetpersecondsquared{32} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planeangle}{\marg{magnitude}} -Command for plane angle in radians. +\checkquantity{energyinev} +\begin{docCommand}[doc new = 2021-04-15]{energyinkev}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\planeangle{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{solidangle}{\marg{magnitude}} -Command for solidangle. +\checkquantity{energyinkev} +\begin{docCommand}[doc new = 2021-04-15]{energyinmev}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\solidangle{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{indegrees}{\marg{magnitude}} -Command for plane angle in degrees. +\checkquantity{energyinmev} +\begin{docCommand}{energydensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\indegrees{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inarcminutes}{\marg{magnitude}} -Command for plane angle in minutes of arc. +\checkquantity{energydensity} +\begin{docCommands} + {% + {% + doc name = energyflux,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = energyfluxvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorenergyflux,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{energyflux} +\begin{docCommand}{entropy}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\inarcminutes{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inarcseconds}{\marg{magnitude}} -Command for plane angle in seconds of arc. +\checkquantity{entropy} +\begin{docCommands} + {% + {% + doc name = force,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = forcevector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorforce,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{force} +\begin{docCommand}{frequency}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\inarcseconds{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inFarenheit}{\marg{magnitude}} -Command for temperature in degrees Farenheit. +\checkquantity{frequency} +\begin{docCommands} + {% + {% + doc name = gravitationalfield,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = gravitationalfieldvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorgravitationalfield,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{gravitationalfield} +\begin{docCommand}{gravitationalpotential}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\inFarenheit{68} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inCelsius}{\marg{magnitude}} -Command for temperature in degrees Celsius. +\checkquantity{gravitationalpotential} +\begin{docCommand}[doc new = 2021-05-01]{gravitationalpotentialdifference}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\inCelsius{20} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ineV}{\marg{magnitude}} -Command for energy in electron volts. +\checkquantity{gravitationalpotentialdifference} +\begin{docCommands} + {% + {% + doc name = impulse,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = impulsevector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorimpulse,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{impulse} +\begin{docCommand}{indexofrefraction}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\ineV{10.2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ineVocs}{\marg{magnitude}} -Command for mass in \(\mathrm{eV}\per c^2\). +\checkquantity{indexofrefraction} +\begin{docCommand}{inductance}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\ineVocs{1.1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ineVoc}{\marg{magnitude}} -Command for momentum in \(\mathrm{eV}\per c\). +\checkquantity{inductance} +\begin{docCommand}{linearchargedensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\ineVoc{3.6} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inMeV}{\marg{magnitude}} -Command for energy in millions of electron volts. +\checkquantity{linearchargedensity} +\begin{docCommand}{linearmassdensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside} -\inMeV{2.2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inMeVocs}{\marg{magnitude}} -Command for mass in \(\mathrm{MeV}\per c^2\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inMeVocs{0.511} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inMeVoc}{\marg{magnitude}} -Command for momentum in \(\mathrm{MeV}\per c\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inMeVoc{3.6} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inGeV}{\marg{magnitude}} -Command for energy in millions of electron volts. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inGeV{2.2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inGeVocs}{\marg{magnitude}} -Command for mass in \(\mathrm{GeV}\per c^2\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inGeVocs{0.511} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inGeVoc}{\marg{magnitude}} -Command for momentum in \(\mathrm{GeV}\per c\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inGeVoc{3.6} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inamu}{\marg{magnitude}} -Command for mass in atomic mass units. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inamu{4.002602} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inAU}{\marg{magnitude}} -Command for displacement in astronomical units. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inAU{5.2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inly}{\marg{magnitude}} -Command for displacement in light years. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inly{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{incyr}{\marg{magnitude}} -Command for displacement in light years written differently. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\incyr{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inpc}{\marg{magnitude}} -Command for displacement in parsecs. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inpc{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarL}{\marg{magnitude}} -Command for luminosity in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarL{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarT}{\marg{magnitude}} -Command for temperature in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarT{2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarR}{\marg{magnitude}} -Command for radius in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarR{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarM}{\marg{magnitude}} -Command for mass in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarM{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarF}{\marg{magnitude}} -Command for flux in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarF{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarf}{\marg{magnitude}} -Command for apparent flux in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarf{4.3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarMag}{\marg{magnitude}} -Command for absolute magnitude in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarMag{2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarmag}{\marg{magnitude}} -Command for apparent magnitude in solar multiples. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarmag{2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{insolarD}{\marg{magnitude}} -Command for distance in solar multiples. -\end{docCommand} -\begin{docCommand}{insolard}{\marg{magnitude}} -Identical to \refCom{insolarD} but uses \(d\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\insolarD{2} \\ -\insolard{2} -\end{dispExample*} -%\iffalse -% -%\fi -% -% 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. -% -% Now let us continue into first semester physics, defining quantities in the -% approximate order in which they appear in such a course. Use \refCom{timestento} -% or \refCom{xtento} to get scientific notation, with the mantissa immediately -% preceding the command and the power as the required argument. \refCom{timestento} -% has an optional second argument that specifies a unit, but that is not needed or -% used in the following examples. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{direction}{\marg{commadelimitedlistofcomps}} -Command for coordinate representation of a vector direction. Direction has no unit. -\end{docCommand} -\begin{docCommand}{vectordirection}{\marg{commadelimitedlistofcomps}} -This is an alias for \refCom{direction}. -\end{docCommand} -\begin{dispExample} -\direction{a,b,c} \\ -\direction{\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}}} \\ -\vectordirection{a,b,c} \\ -\vectordirection{\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}}} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{velocityc}{\marg{magnitude or vector}} -Command for velocity as a fraction of \(c\). -\end{docCommand} -\begin{docCommand}{vectorvelocityc}{\marg{commadelimitedlistofcomps}} -Command for vector velocity as a fraction of \(c\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\velocityc{0.9987} \\ -\velocityc{\mivector{0,0.9987,0}} \\ -\mivector{\velocityc{\frac{1}{\sqrt{3}}} \\ -\velocityc{\frac{1}{\sqrt{3}}} \\ -\velocityc{\frac{1}{\sqrt{3}}}} \\ -\vectorvelocityc{0,0.9987,0} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{velocity}{\marg{magnitude or vector}} -Command for velocity. -\end{docCommand} -\begin{docCommand}{vectorvelocity}{\marg{commadelimitedlistofcomps}} -Command for vector velocity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\velocity{2.34} \\ -\velocity{\mivector{3,2,-1}} \\ -\vectorvelocity{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{speed}{\marg{magnitude}} -Command for speed. Technically, velocity is defined as the quotient of -displacement and duration while speed is defined as the quotient of distance -traveled and duration. They have the same dimension and unit, but are -conceptually different so separate commands are provided. I've never seen speed -used as anything other than a scalar. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\velocity{8.25} -\end{dispExample*} -%\iffalse -% -%\fi -% - -%\iffalse -%<*example> -%\fi -\begin{docCommand}{lorentzfactor}{\marg{magnitude}} -Command for relativistic Lorentz factor. Obviously this command doesn't do -anything visually, but is included for thinking about calculations where this -quantity is needed. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\lorentzfactor{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{momentum}{\marg{magnitude or vector}} -Command for momentum. -\end{docCommand} -\begin{docCommand}{vectormomentum}{\marg{commadelimitedlistofcomps}} -Command for vector momentum. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\momentum{2.34} \\ -\momentum{\mivector{3,2,-1}} \\ -\vectormomentum{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{acceleration}{\marg{magnitude or vector}} -Command for acceleration. -\end{docCommand} -\begin{docCommand}{vectoracceleration}{\marg{commadelimitedlistofcomps}} -Command for vector acceleration. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\acceleration{2.34} \\ -\acceleration{\mivector{3,2,-1}} \\ -\vectoracceleration{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gravitationalfield}{\marg{commadelimitedlistofcomps}} -Command for gravitational field. -\end{docCommand} -\begin{docCommand}{vectorgravitationalfield}{\marg{magnitude or vector}} -Command for vector gravitational field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\gravitationalfield{2.34} \\ -\gravitationalfield{\mivector{3,2,-1}} \\ -\vectorgravitationalfield{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gravitationalpotential}{\marg{magnitude}} -Command for gravitational potential. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\gravitationalpotential{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{impulse}{\marg{magnitude or vector}} -Command for impulse. Impulse and change in momentum are conceptually different -and a case can be made for expressing the in different, but equivalent, units. -\end{docCommand} -\begin{docCommand}{vectorimpulse}{\marg{commadelimitedlistofcomps}} -Command for vector impulse. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\impulse{2.34} \\ -\impulse{\mivector{3,2,-1}} \\ -\vectorimpulse{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{force}{\marg{magnitude or vector}} -Command for force. -\end{docCommand} -\begin{docCommand}{vectorforce}{\marg{commadelimitedlistofcomps}} -Command for vector force. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\force{2.34} \\ -\force{\mivector{3,2,-1}} \\ -\vectorforce{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{springstiffness}{\marg{magnitude}} -Command for spring stiffness. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\springstiffness{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{springstretch}{\marg{magnitude}} -Command for spring stretch. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\springstretch{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{area}{\marg{magnitude}} -Command for area. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\area{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{volume}{\marg{magnitude}} -Command for volume. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\volume{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{linearmassdensity}{\marg{magnitude}} -Command for linear mass density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\linearmassdensity{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{areamassdensity}{\marg{magnitude}} -Command for area mass density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\areamassdensity{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{volumemassdensity}{\marg{magnitude}} -Command for volume mass density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\volumemassdensity{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{youngsmodulus}{\marg{magnitude}} -Command for Young's modulus. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\youngsmodulus{2.34\timestento{9}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{work}{\marg{magnitude}} -Command for work. Energy and work are conceptually different and a case can -be made for expressing them in different, but equivalent, units. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\work{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{energy}{\marg{magnitude}} -Command for energy. Work and energy are conceptually different and a case can -be made for expressing them in different, but equivalent, units. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\energy{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{power}{\marg{magnitude}} -Command for power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\power{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{specificheatcapacity}{\marg{magnitude}} -Command for specific heat capacity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\specificheatcapacity{4.18\xtento{3}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularvelocity}{\marg{magnitude or vector}} -Command for angular velocity. -\end{docCommand} -\begin{docCommand}{vectorangularvelocity}{\marg{commadelimitedlistofcomps}} -Command for vector angular velocity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\angularvelocity{2.34} \\ -\angularvelocity{\mivector{3,2,-1}} \\ -\vectorangularvelocity{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularacceleration}{\marg{magnitude or vector}} -Command for angular acceleration. -\end{docCommand} -\begin{docCommand}{vectorangularacceleration}{\marg{commadelimitedlistofcomps}} -Command for vector angular acceleration. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\angularacceleration{2.34} \\ -\angularacceleration{\mivector{3,2,-1}} \\ -\vectorangularacceleration{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularmomentum}{\marg{magnitude or vector}} -Command for angular momentum. Whether or not the units contain radians -is determined by whether the \opt{useradians} option was used when -\pkgname{mandi} was loaded. -\end{docCommand} -\begin{docCommand}{vectorangularmomentum}{\marg{commadelimitedlistofcomps}} -Command for vector angular momentum. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\angularmomentum{2.34} \\ -\angularmomentum{\mivector{3,2,-1}} \\ -\vectorangularmomentum{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularimpulse}{\marg{magnitude or vector}} -Command for angular impulse. Whether or not the units contain radians is -determined by whether the \opt{useradians} option was used when -\pkgname{mandi} was loaded. -\end{docCommand} -\begin{docCommand}{vectorangularimpulse}{\marg{commadelimitedlistofcomps}} -Command for vector angular impulse. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\angularimpulse{2.34} \\ -\angularimpulse{\mivector{3,2,-1}} \\ -\vectorangularimpulse{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{torque}{\marg{magnitude or vector}} -Command for torque. Whether or not the units contain radians is -determined by whether the \opt{useradians} option was used when -\pkgname{mandi} was loaded. -\end{docCommand} -\begin{docCommand}{vectortorque}{\marg{commadelimitedlistofcomps}} -Command for vector torque. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\torque{2.34} \\ -\torque{\mivector{3,2,-1}} \\ -\vectortorque{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{momentofinertia}{\marg{magnitude}} -Command for moment of inertia. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\momentofinertia{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{entropy}{\marg{magnitude}} -Command for entropy. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\entropy{2.34} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{wavelength}{\marg{magnitude}} -Command for wavelength. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\wavelength{4.00\timestento{-7}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{wavenumber}{\marg{magnitude or vector}} -Command for wavenumber. -\end{docCommand} -\begin{docCommand}{vectorwavenumber}{\marg{commadelimitedlistofcomps}} -Command for vector wavenumber. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\wavenumber{2.50\timestento{6}} \\ -\wavenumber{\mivector{3,2,-1}} \\ -\vectorwavenumber{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{frequency}{\marg{magnitude}} -Command for frequency. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\frequency{7.50\timestento{14}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularfrequency}{\marg{magnitude}} -Command for angularfrequency. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\angularfrequency{4.70\timestento{15}} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Second Semester Physics} -% The second semester of introductory physics focuses on electromagnetic theory, -% and there are many primary and secondary quantities. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{charge}{\marg{magnitude}} -Command for electric charge. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\charge{2\timestento{-9}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{permittivity}{\marg{magnitude}} -Command for permittivity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\permittivity{9\timestento{-12}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricfield}{\marg{magnitude or vector}} -Command for electric field. -\end{docCommand} -\begin{docCommand}{vectorelectricfield}{\marg{commadelimitedlistofcomps}} -Command for vector electric field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\electricfield{2\timestento{5}} \\ -\electricfield{\mivector{3,2,-1}} \\ -\vectorelectricfield{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricdipolemoment}{\marg{magnitude or vector}} -Command for electric dipole moment. -\end{docCommand} -\begin{docCommand}{vectorelectricdipolemoment}{\marg{commadelimitedlistofcomps}} -Command for vector electric dipole moment. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\electricdipolemoment{2\timestento{5}} \\ -\electricdipolemoment{\mivector{3,2,-1}} \\ -\vectorelectricdipolemoment{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{permeability}{\marg{magnitude}} -Command for permeability. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\permeability{4\pi\timestento{-7}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magneticfield}{\marg{magnitude or vector}} -Command for magnetic field (also called magnetic induction). -\end{docCommand} -\begin{docCommand}{vectormagneticfield}{\marg{commadelimitedlistofcomps}} -Command for vector magnetic field (also called magnetic induction). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magneticfield{1.25} \\ -\magneticfield{\mivector{3,2,-1}} \\ -\vectormagneticfield{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{cmagneticfield}{\marg{magnitude or vector}} -Command for product of \(c\) and magnetic field. This quantity is -convenient for symmetry. -\end{docCommand} -\begin{docCommand}{vectorcmagneticfield}{\marg{commadelimitedlistofcomps}} -Command for product of \(c\) and magnetic field as a vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\cmagneticfield{1.25} \\ -\cmagneticfield{\mivector{3,2,-1}} \\ -\vectorcmagneticfield{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{linearchargedensity}{\marg{magnitude}} -Command for linear charge density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\linearchargedensity{4.5\timestento{-3}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{areachargedensity}{\marg{magnitude}} -Command for area charge density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\areachargedensity{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{volumechargedensity}{\marg{magnitude}} -Command for volume charge density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\volumechargedensity{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mobility}{\marg{magnitude}} -Command for electron mobility. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\areachargedensity{4.5\timestento{-3}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{numberdensity}{\marg{magnitude}} -Command for electron number density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\numberdensity{2\timestento{18}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{polarizability}{\marg{magnitude}} -Command for polarizability. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\polarizability{1.96\timestento{-40}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricpotential}{\marg{magnitude}} -Command for electric potential. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\electricpotential{1.5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{emf}{\marg{magnitude}} -Command for emf. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\emf{1.5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dielectricconstant}{\marg{magnitude}} -Command for dielectric constant. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dielectricconstant{1.5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{indexofrefraction}{\marg{magnitude}} -Command for index of refraction. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\indexofrefraction{1.5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{relativepermittivity}{\marg{magnitude}} -Command for relative permittivity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\relativepermittivity{0.9} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{relativepermeability}{\marg{magnitude}} -Command for relative permeability. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\relativepermeability{0.9} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{poyntingvector}{\marg{commadelimitedlistofcomps}} -Command for Poynting vector. This is an alias for \refCom{vectorenergyflux}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\poyntingvector{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{energydensity}{\marg{magnitude}} -Command for energy density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\energydensity{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{energyflux}{\marg{magnitude or vector}} -Command for energy flux. -\end{docCommand} -\begin{docCommand}{vectorenergyflux}{\marg{commadelimitedlistofcomps}} -Command for vector energy flux. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\energyflux{4\timestento{26}} \\ -\energyflux{\mivector{3,2,-1}} \\ -\vectorenergyflux{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{momentumflux}{\marg{magnitude or vector}} -Command for momentum flux. -\end{docCommand} -\begin{docCommand}{vectormomentumflux}{\marg{commadelimitedlistofcomps}} -Command for vector momentum flux. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\momentumflux{4\timestento{26}} \\ -\momentumflux{\mivector{3,2,-1}} \\ -\vectormomentumflux{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electroncurrent}{\marg{magnitude}} -Command for electron current. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\electroncurrent{2\timestento{18}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{conventionalcurrent}{\marg{magnitude}} -Command for conventional current. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\conventionalcurrent{0.003} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magneticdipolemoment}{\marg{magnitude or vector}} -Command for magnetic dipole moment. -\end{docCommand} -\begin{docCommand}{vectormagneticdipolemoment}{\marg{commadelimitedlistofcomps}} -Command for vector magnetic dipole moment. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magneticdipolemoment{1.25} \\ -\magneticdipolemoment{\mivector{3,2,-1}} \\ -\vectormagneticdipolemoment{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{currentdensity}{\marg{magnitude or vector}} -Command for current density. -\end{docCommand} -\begin{docCommand}{vectorcurrentdensity}{\marg{commadelimitedlistofcomps}} -Command for vector current density. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\currentdensity{1.25} \\ -\currentdensity{\mivector{3,2,-1}} \\ -\vectorcurrentdensity{3,2,-1} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricflux}{\marg{magnitude}} -Command for electric flux. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\electricflux{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magneticflux}{\marg{magnitude}} -Command for magnetic flux. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magneticflux{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{capacitance}{\marg{magnitude}} -Command for capacitance. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\capacitance{1.00} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inductance}{\marg{magnitude}} -Command for inductance. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inductance{1.00} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{conductivity}{\marg{magnitude}} -Command for conductivity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\conductivity{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{resistivity}{\marg{magnitude}} -Command for resistivity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\resistivity{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{resistance}{\marg{magnitude}} -Command for resistance. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\resistance{1\timestento{6}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{conductance}{\marg{magnitude}} -Command for conductance. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\conductance{1\timestento{6}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magneticcharge}{\marg{magnitude}} -Command for magnetic charge, in case it actually exists. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magneticcharge{1.25} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Further Words on Units} -% 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|, -% |altnunit| to the quantity's name, and this will override the global options -% for that instance. -% -% A second way is to use the commands that change a quantity's unit on the fly. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hereusebaseunit}{\marg{magnitude}} -Command for using base units in place. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\hereusebaseunit{\momentum{3}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hereusedrvdunit}{\marg{magnitude}} -Command for using derived units in place. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\hereusedrvdunit{\momentum{3}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hereusealtnunit}{\marg{magnitude}} -Command for using alternate units in place. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\hereusealtnunit{\momentum{3}} -\end{dispExample*} -%\iffalse -% -%\fi -% -% A third way is to use the environments that change a quantity's unit -% for the duration of the environment. -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{usebaseunit}{} -Environment for using base units. -\end{docEnvironment} -\begin{dispExample*}{sidebyside} -\begin{usebaseunit} - \momentum{3} -\end{usebaseunit} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{usedrvdunit}{} -Environment for using derived units. -\end{docEnvironment} -\begin{dispExample*}{sidebyside} -\begin{usedrvdunit} - \momentum{3} -\end{usedrvdunit} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{usealtnunit}{} -Environment for using alternate units. -\end{docEnvironment} -\begin{dispExample*}{sidebyside} -\begin{usealtnunit} - \momentum{3} -\end{usealtnunit} -\end{dispExample*} -%\iffalse -% -%\fi -% -% A fourth way is to use the three global switches that perpetually change the -% default unit. \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.} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{perpusebaseunit}{} -Command for perpetually using base units. -\end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{perpusedrvdunit}{} -Command for perpetually using derived units. -\end{docCommand} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{perpusealtnunit}{} -Command for perpetually using alternate units. -\end{docCommand} -%\iffalse -% -%\fi -% -%\subsubsection{Using Alternate Units} -% In some cases it may be helpful to use unconventional, but pedagogically -% appropriate, units for certain physical quantities. As an example, consider -% force. It is normally expressed in newtons, but it can also be expressed in -% joules per meter. You can redefine a quantity's units on the fly with the -% \cs{redefinephysicsquantity} command. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{redefinephysicsquantity} -{\marg{newname}\marg{\baseunits}\oarg{\drvdunits}\oarg{\altnunits}} -Redefines an existing physical quantity, allowing for new alternate units. You can -also change the other units but it strongly discouraged. The new definition takes -effect immediately. -\end{docCommand} -%\iffalse -% -%\fi -% -%\subsubsection{All Predefined Quantities} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{chkquantity}{\marg{quantityname}} -Diagnostic command for all of the units for a defined physical quantity. See table -below. -\end{docCommand} -%\iffalse -% -%\fi -% -% Here are all the predefined quantities and their units. -%\begin{adjustwidth}{-0.5in}{-0.5in} -% -%\chkquantity{displacement} -%\chkquantity{mass} -%\chkquantity{duration} -%\chkquantity{current} -%\chkquantity{temperature} -%\chkquantity{amount} -%\chkquantity{luminous} -%\chkquantity{infeetpersecond} -%\chkquantity{infeet} -%\chkquantity{planeangle} -%\chkquantity{solidangle} -%\chkquantity{velocity} -%\chkquantity{acceleration} -%\chkquantity{gravitationalfield} -%\chkquantity{gravitationalpotential} -%\chkquantity{momentum} -%\chkquantity{impulse} -%\chkquantity{force} -%\chkquantity{springstiffness} -%\chkquantity{springstretch} -%\chkquantity{area} -%\chkquantity{volume} -%\chkquantity{linearmassdensity} -%\chkquantity{areamassdensity} -%\chkquantity{volumemassdensity} -%\chkquantity{youngsmodulus} -%\chkquantity{stress} -%\chkquantity{pressure} -%\chkquantity{strain} -%\chkquantity{work} -%\chkquantity{energy} -%\chkquantity{power} -%\chkquantity{specificheatcapacity} -%\chkquantity{angularvelocity} -%\chkquantity{angularacceleration} -%\chkquantity{momentofinertia} -%\chkquantity{angularmomentum} -%\chkquantity{angularimpulse} -%\chkquantity{torque} -%\chkquantity{entropy} -%\chkquantity{wavelength} -%\chkquantity{wavenumber} -%\chkquantity{frequency} -%\chkquantity{angularfrequency} -%\chkquantity{charge} -%\chkquantity{permittivity} -%\chkquantity{permeability} -%\chkquantity{linearchargedensity} -%\chkquantity{areachargedensity} -%\chkquantity{volumechargedensity} -%\chkquantity{electricfield} -%\chkquantity{electricdipolemoment} -%\chkquantity{electricflux} -%\chkquantity{magneticfield} -%\chkquantity{magneticflux} -%\chkquantity{cmagneticfield} -%\chkquantity{mobility} -%\chkquantity{numberdensity} -%\chkquantity{polarizability} -%\chkquantity{electricpotential} -%\chkquantity{emf} -%\chkquantity{dielectricconstant} -%\chkquantity{indexofrefraction} -%\chkquantity{relativepermittivity} -%\chkquantity{relativepermeability} -%\chkquantity{energydensity} -%\chkquantity{momentumflux} -%\chkquantity{energyflux} -%\chkquantity{electroncurrent} -%\chkquantity{conventionalcurrent} -%\chkquantity{magneticdipolemoment} -%\chkquantity{currentdensity} -%\chkquantity{capacitance} -%\chkquantity{inductance} -%\chkquantity{conductivity} -%\chkquantity{resistivity} -%\chkquantity{resistance} -%\chkquantity{conductance} -%\chkquantity{magneticcharge} -%\end{adjustwidth} -% -% \subsection{When to Write Radians}\label{WhentoWriteRadians} -% A word of clarification is in order for plane angles, solid angles, and other -% angular quantities. There is the perpetually confusing issue of when to explicitly -% write radians as a unit and when to omit it. The answer is that if the numerical -% value of a quantity explicitly depends on the angular unit, then the unit should -% be written. An example would be angular displacement; the numerical value obviously -% depends on the unit used. If the numerical value of a quantity does not explicitly -% depend on the angular unit, then the unit is omitted. An example would be the linear, -% or translational, velocity or a particle in circular motion. This quantity doesn't -% explicitly depends on the angular unit, so the angular unit is not written. -% -% Torque, angular impulse, and angular momentum present special a special problem -% in that it is sometimes pedagogically helpful to explicitly include angular units -% in their operational definitions. While this may not be in strict accordance -% with SI standards, loading \mandi\ with the \opt{useradians} option includes -% angular units in these quantities. See \nameref{LoadingthePackage} for details. -% -% \subsection{The Empty Unit} -% Sometimes, when discussing manipulation of units, it is helpful to have a generic -% symbol that does not correspond to any particular existing unit. The -% \cs{emptyunit} is provided for this purpose. It serves as a visual placeholder -% for any unit. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{emptyunit}{} -Command for a generic visual placeholder symbolizing any actual unit. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \frac{\emptyunit\squared}{\cubic\emptyunit} = \emptyunit^{-1} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -% \newpage -% \hypertarget{target3}{\subsection{Physical Constants}} -% \subsubsection{Defining Physical Constants} -% \mandi\ has many predefined physical constants. -% This section explains how to use them. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{newphysicsconstant} -{\marg{name}\marg{symbol}{\{\cs{mi@p\marg{approx}\marg{precise}}\}}\marg{\baseunits} -\\ -\oarg{\drvdunits}\oarg{\altnunits}% -}% - -Defines a new physical constant with a name, a symbol, approximate and -precise numerical values, required base units, optional derived units, -and optional alternate units. The \cs{mi@p} command is defined -internally and is not meant to be otherwise used. -\end{docCommand} -\begin{dispListing} -Here is how \planck (Planck's constant) is defined internally, showing -each part of the definition on a separate line. -\newphysicsconstant{planck} - {\ensuremath{h}} - {\mi@p{6.6}{6.626070040}\timestento{-34}} - {\m\squared\usk\kg\usk\reciprocal\s} - [\J\usk\s] - [\J\usk\s] -\end{dispListing} -%\iffalse -% -%\fi -% -% Using this command causes several things to happen. -% \begin{itemize} -% \item A command \cs{name} is created and contains the constant and -% units typeset according to the options given when \mandi\ was loaded. -% \item A command \cs{namemathsymbol} is created that expresses -% \textbf{only} the constant's mathematical symbol. -% \item A command \cs{namevalue} is created that expresses -% \textbf{only} the constant's approximate or precise numerical value. -% Note that both values must be present when the constant is defined. -% By default, precise values are always used but this can be changed -% when \mandi\ is loaded. Note how the values are specified in the -% definition of the constant. -% \item A command \cs{namebaseunit} is created that expresses -% the constant and its units in \baseunits\ form. -% \item A command \cs{namedrvdunit} is created that expresses -% the constant and its units in \drvdunits\ form. -% \item A command \cs{namealtnunit} is created that -% expresses the constant and its units in \altnunits\ form. -% \item A command \cs{nameonlybaseunit} is created that expresses -% \textbf{only} the constant's units in \baseunits\ form. -% \item A command \cs{nameonlydrvdunit} is created that -% expresses \textbf{only} the constant's units in \drvdunits\ form. -% \item A command \cs{nameonlyaltnunit} is created that -% expresses \textbf{only} the constant's units in \altnunits\ form. -% \end{itemize} -% None of these commands takes any arguments. -% -% -% There is a command similar to \refCom{redefinephysicsquantity} that allows for -% redefining physical constants. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{redefinephysicsconstant} -{\marg{name}\marg{symbol}{\{\cs{mi@p\marg{approx}\marg{precise}}\}}\marg{\baseunits} -\\ -\oarg{\drvdunits}\oarg{\altnunits}% -}% -Redefines an existing physical constant. -The new definition takes effect immediately. -\end{docCommand} -%\iffalse -% -%\fi -% -% \newpage -% \subsubsection{Predefined Physical Constants} -% -% In this section, precise values of constants are used. Approximate -% values are available as an option when the package is loaded. Precise values -% are sourced as accurately as possible, beginning with Wikipedia and following -% sources therein. I tried to use the most recent NIST or similarly authoritative -% values. In no case did I make up any values. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{oofpez}{} -Coulomb constant. -\end{docCommand} -\begin{dispExample} -\(\oofpezmathsymbol \approx \oofpez\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{oofpezcs}{} -Alternate form of Coulomb constant. -\end{docCommand} -\begin{dispExample} -\(\oofpezcsmathsymbol \approx \oofpezcs\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vacuumpermittivity}{} -Vacuum permittivity. -\end{docCommand} -\begin{dispExample} -\(\vacuumpermittivitymathsymbol \approx \vacuumpermittivity\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mzofp}{} -Biot-Savart constant. -\end{docCommand} -\begin{dispExample} -\(\mzofpmathsymbol \approx \mzofp\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vacuumpermeability}{} -Vacuum permeability. -\end{docCommand} -\begin{dispExample} -\(\vacuumpermeabilitymathsymbol \approx \vacuumpermeability\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{boltzmann}{} -Boltzmann constant. -\end{docCommand} -\begin{dispExample} -\(\boltzmannmathsymbol \approx \boltzmann\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{boltzmannineV}{} -Alternate form of Boltlzmann constant. -\end{docCommand} -\begin{dispExample} -\(\boltzmannineVmathsymbol \approx \boltzmannineV\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{stefan}{} -Stefan-Boltzmann constant. -\end{docCommand} -\begin{dispExample} -\(\stefanboltzmannmathsymbol \approx \stefanboltzmann\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planck}{} -Planck constant. -\end{docCommand} -\begin{dispExample} -\(\planckmathsymbol \approx \planck\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planckineV}{} -Alternate form of Planck constant. -\end{docCommand} -\begin{dispExample} -\(\planckmathsymbol \approx \planckineV\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planckbar}{} -Reduced Planck constant (Dirac constant). -\end{docCommand} -\begin{dispExample} -\(\planckbarmathsymbol \approx \planckbar\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planckbarineV}{} -Alternate form of reduced Planck constant (Dirac constant). -\end{docCommand} -\begin{dispExample} -\(\planckbarmathsymbol \approx \planckbarineV\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planckc}{} -Planck constant times light speed. -\end{docCommand} -\begin{dispExample} -\(\planckcmathsymbol \approx \planckc\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{planckcineV}{} -Alternate form of Planck constant times light speed. -\end{docCommand} -\begin{dispExample} -\(\planckcineVmathsymbol \approx \planckcineV\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{rydberg}{} -Rydberg constant. -\end{docCommand} -\begin{dispExample} -\(\rydbergmathsymbol \approx \rydberg\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{bohrradius}{} -Bohr radius. -\end{docCommand} -\begin{dispExample} -\(\bohrradiusmathsymbol \approx \bohrradius\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{finestructure}{} -Fine structure constant. -\end{docCommand} -\begin{dispExample} -\(\finestructuremathsymbol \approx \finestructure\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{avogadro}{} -Avogadro constant. -\end{docCommand} -\begin{dispExample} -\(\avogadromathsymbol \approx \avogadro\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{universalgrav}{} -Universal gravitational constant. -\end{docCommand} -\begin{dispExample} -\(\universalgravmathsymbol \approx \universalgrav\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{surfacegravfield}{} -Earth's surface gravitational field strength. -\end{docCommand} -\begin{dispExample} -\(\surfacegravfieldmathsymbol \approx \surfacegravfield\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{clight}{} -Magnitude of light's velocity (photon constant). -\end{docCommand} -\begin{dispExample} -\(\clightmathsymbol \approx \clight\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{clightinfeet}{} -Alternate of magnitude of light's velocity (photon constant). -\end{docCommand} -\begin{dispExample} -\(\clightinfeetmathsymbol \approx \clightinfeet\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Ratom}{} -Approximate atomic radius. -\end{docCommand} -\begin{dispExample} -\(\Ratommathsymbol \approx \Ratom\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Mproton}{} -Proton mass. -\end{docCommand} -\begin{dispExample} -\(\Mprotonmathsymbol \approx \Mproton\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Mneutron}{} -Neutron mass. -\end{docCommand} -\begin{dispExample} -\(\Mneutronmathsymbol \approx \Mneutron\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Mhydrogen}{} -Hydrogen atom mass. -\end{docCommand} -\begin{dispExample} -\(\Mhydrogenmathsymbol \approx \Mhydrogen\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Melectron}{} -Electron mass. -\end{docCommand} -\begin{dispExample} -\(\Melectronmathsymbol \approx \Melectron\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{echarge}{} -Elementary charge quantum. -\end{docCommand} -\begin{dispExample} -\(\echargemathsymbol \approx \echarge\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Qelectron}{} -Electron charge. -\end{docCommand} -\begin{docCommand}{qelectron}{} -Alias for \cs{Qelectron}. -\end{docCommand} -\begin{dispExample} -\(\Qelectronmathsymbol \approx \Qelectron\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Qproton}{} -Proton charge. -\end{docCommand} -\begin{docCommand}{qproton}{} -Alias for \cs{Qproton}. -\end{docCommand} -\begin{dispExample} -\(\Qprotonmathsymbol \approx \Qproton\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{MEarth}{} -Earth's mass. -\end{docCommand} -\begin{dispExample} -\(\MEarthmathsymbol \approx \MEarth\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{MMoon}{} -Moon's mass. -\end{docCommand} -\begin{dispExample} -\(\MMoonmathsymbol \approx \MMoon\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{MSun}{} -Sun's mass. -\end{docCommand} -\begin{dispExample} -\(\MSunmathsymbol \approx \MSun\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{REarth}{} -Earth's radius. -\end{docCommand} -\begin{dispExample} -\(\REarthmathsymbol \approx \REarth\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RMoon}{} -Moon's radius. -\end{docCommand} -\begin{dispExample} -\(\RMoonmathsymbol \approx \RMoon\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RSun}{} -Sun's radius. -\end{docCommand} -\begin{dispExample} -\(\RSunmathsymbol \approx \RSun\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ESdist}{} -Earth-Sun distance. -\end{docCommand} -\begin{docCommand}{SEdist}{} -Alias for \refCom{ESdist}. -\end{docCommand} -\begin{dispExample} -\(\ESdistmathsymbol \approx \SEdist\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{EMdist}{} -Earth-Moon distance. -\end{docCommand} -\begin{docCommand}{MEdist}{} -Alias for \refCom{EMdist}. -\end{docCommand} -\begin{dispExample} -\(\EMdistmathsymbol \approx \EMdist\) -\end{dispExample} -%\iffalse -% -%\fi -% -%\subsubsection{All Predefined Constants} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{chkconstant}{\marg{constantname}} -Diagnostic command for the symbol, value (either approximate or precise depending -on how the package was loaded), and units for a defined physical constant. See table -below. -\end{docCommand} -%\iffalse -% -%\fi -% -% Here are all the predefined constants and their units. -%\begin{adjustwidth}{}{} -% -%\chkconstant{oofpez} -%\chkconstant{oofpezcs} -%\chkconstant{vacuumpermittivity} -%\chkconstant{mzofp} -%\chkconstant{vacuumpermeability} -%\chkconstant{boltzmann} -%\chkconstant{boltzmannineV} -%\chkconstant{stefanboltzmann} -%\chkconstant{planck} -%\chkconstant{planckineV} -%\chkconstant{planckbar} -%\chkconstant{planckbarineV} -%\chkconstant{planckc} -%\chkconstant{planckcineV} -%\chkconstant{rydberg} -%\chkconstant{bohrradius} -%\chkconstant{finestructure} -%\chkconstant{avogadro} -%\chkconstant{universalgrav} -%\chkconstant{surfacegravfield} -%\chkconstant{clight} -%\chkconstant{clightinfeet} -%\chkconstant{Ratom} -%\chkconstant{Mproton} -%\chkconstant{Mneutron} -%\chkconstant{Mhydrogen} -%\chkconstant{Melectron} -%\chkconstant{echarge} -%\chkconstant{Qelectron} -%\chkconstant{qelectron} -%\chkconstant{Qproton} -%\chkconstant{qproton} -%\chkconstant{MEarth} -%\chkconstant{MMoon} -%\chkconstant{MSun} -%\chkconstant{REarth} -%\chkconstant{RMoon} -%\chkconstant{RSun} -%\chkconstant{ESdist} -%\chkconstant{EMdist} -%\chkconstant{LSun} -%\chkconstant{TSun} -%\chkconstant{MagSun} -%\chkconstant{magSun} -%\end{adjustwidth} -% -% \subsection{Astronomical Constants and Quantities} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LSun}{} -Sun's luminosity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\LSunmathsymbol \approx \LSun\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{TSun}{} -Sun's effective temperature. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\TSunmathsymbol \approx \TSun\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{MagSun}{} -Sun's absolute magnitude. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\MagSunmathsymbol \approx \MagSun\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magSun}{} -Sun's apparent magnitude. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\magSunmathsymbol \approx \magSun\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Lstar}{\oarg{object}} -Symbol for stellar luminosity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Lstar or \Lstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Lsolar}{} -Symbol for solar luminosity as a unit. Really just an alias for -|\Lstar[\(\odot\)]|. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Lsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Tstar}{\oarg{object}} -Symbol for stellar temperature. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Tstar or \Tstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Tsolar}{} -Symbol for solar temperature as a unit. Really just an alias for -|\Tstar[\(\odot\)]|. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Tsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Rstar}{\oarg{object}} -Symbol for stellar radius. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Rstar or \Rstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Rsolar}{} -Symbol for solar radius as a unit. Really just an alias for -|\Rstar[\(\odot\)]|. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Rsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Mstar}{\oarg{object}} -Symbol for stellar mass. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Mstar or \Mstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Msolar}{} -Symbol for solar mass as a unit. Really just an alias for -|\Mstar[\(\odot\)]|. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Msolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Fstar}{\oarg{object}} -Symbol for stellar flux. -\end{docCommand} -\begin{docCommand}{fstar}{} -Alias for \refCom{Fstar}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Fstar or \Fstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Fsolar}{} -Symbol for solar flux as a unit. Really just an alias for -|\Fstar[\(\odot\)]|. -\end{docCommand} -\begin{docCommand}{fsolar}{} -Alias for \refCom{fsolar}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Fsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Magstar}{\oarg{object}} -Symbol for stellar absolute magnitude. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Magstar or \Magstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Magsolar}{} -Symbol for solar absolute magnitude as a unit. Really just an alias for -|\Magstar[\(\odot\)]|. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Magsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magstar}{\oarg{object}} -Symbol for stellar apparent magnitude. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magstar or \magstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magsolar}{} -Symbol for solar apparent magnitude as a unit. Really just an alias for -|\magstar[\(\odot\)]|. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Dstar}{\oarg{object}} -Symbol for stellar distance. -\end{docCommand} -\begin{docCommand}{dstar}{} -Alias for \refCom{Dstar} that uses a lower case d. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Dstar or \Dstar[Sirius] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Dsolar}{} -Symbol for solar distance as a unit. Really just an alias for -|\Dstar[\(\odot\)]|. -\end{docCommand} -\begin{docCommand}{dsolar}{} -Alias for \refCom{Dsolar} that uses a lower case d. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Dsolar -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsection{Symbolic Expressions with Vectors} -% \subsubsection{Basic Vectors} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vect}{\marg{kernel}} -Symbol for a vector quantity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vect{p} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magvect}{\marg{kernel}} -Symbol for magnitude of a vector quantity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magvect{p} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magsquaredvect}{\marg{kernel}} -Symbol for squared magnitude of a vector quantity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magsquaredvect{p} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magnvect}{\marg{kernel}\marg{exponent}} -Symbol for magnitude of a vector quantity to arbitrary power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magnvect{r}{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dirvect}{\marg{kernel}} -Symbol for direction of a vector quantity. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dirvect{p} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{factorvect}{\marg{kernel}} -Symbol for a vector factored into its magnitude and direction. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\factorvect{E} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{componentalong}{\marg{alongvector}\marg{ofvector}} -Symbol for the component along a vector of another vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\componentalong{\vect{v}}{\vect{u}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{expcomponentalong}{\marg{alongvector}\marg{ofvector}} -Symbolic expression for the component along a vector of another vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\expcomponentalong{\vect{v}}{\vect{u}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ucomponentalong}{\marg{alongvector}\marg{ofvector}} -Symbolic expression with unit vectors for the component along a vector of -another vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ucomponentalong{\dirvect{v}}{\vect{u}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{projectiononto}{\marg{ontovector}\marg{ofvector}} -Symbol for the projection onto a vector of another vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\projectiononto{\vect{v}}{\vect{u}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{expprojectiononto}{\marg{alongvector}\marg{ofvector}} -Symbolic expression for the projection onto a vector of another vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\expprojectiononto{\vect{v}}{\vect{u}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{uprojectiononto}{\marg{alongvector}\marg{ofvector}} -Symbolic expression with unit vectors for the projection onto a vector of -another vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\uprojectiononto{\dirvect{v}}{\vect{u}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mivector} - {\oarg{printeddelimiter}\marg{commadelimitedlistofcomps}\oarg{unit}} -Generic workhorse command for vectors formatted as in \mi. Unless the first -optional argument is specified, a comma is used in the output. Commas are -always required in the mandatory argument. -\end{docCommand} -\begin{dispExample} -\begin{mysolution*} - \msub{u}{\mu} &= \mivector{\ezero,\eone,\etwo,\ethree} \\ - \msub{u}{\mu} &= \mivector[\quad]{\ezero,\eone,\etwo,\ethree} \\ - \vect{v} &= \mivector{1,3,5}[\velocityonlyaltnunit] \\ - \vect{E} &= \mivector{\oofpezmathsymbol \frac{Q}{x^2},0,0} \\ - \vect{E} &= \mivector[\quad]{\oofpezmathsymbol \frac{Q}{x^2},0,0} -\end{mysolution*} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magvectncomps}{\marg{listofcomps}\oarg{unit}} -Expression for a vector's magnitude with numerical components and an optional -unit. The first example is the preferred and recommended way to handle units when -they are needed. The second example requires explicitly picking out the desired -unit form. The third example demonstrates components of a unit vector. -\end{docCommand} -\begin{dispExample} -\magvectncomps{\velocity{3.12},\velocity{4.04},\velocity{6.73}} \\ -\magvectncomps{3.12,4.04,6.73}[\velocityonlyaltnunit] \\ -\magvectncomps{\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}},\frac{1}{\sqrt{3}}} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsvect}{\marg{kernel}} -Expression for a vector's symbolic components. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\scompsvect{E} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compvect}{\marg{kernel}\marg{component}} -Isolates one of a vector's symbolic components. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\compvect{E}{y} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsdirvect}{\marg{kernel}} -Expression for a direction's symbolic components. The hats are necessary to -denote a direction. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\scompsdirvect{r} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compdirvect}{\marg{kernel}\marg{component}} -Isolates one of a direction's symbolic components. The hat is necessary to -denote a direction. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\compdirvect{r}{z} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magvectscomps}{\marg{kernel}} -Expression for a vector's magnitude in terms of its symbolic components. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magvectscomps{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Differentials and Derivatives of Vectors} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dvect}{\marg{kernel}} -Symbol for the differential of a vector. -\end{docCommand} -\begin{docCommand}{Dvect}{\marg{kernel}} -Identical to \refCom{dvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -a change \dvect{E} in electric field \\ -a change \Dvect{E} in electric field -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dirdvect}{\marg{kernel}} -Symbol for the direction of a vector's differential. -\end{docCommand} -\begin{docCommand}{dirDvect}{\marg{kernel}} -Identical to \refCom{dirdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the direction \dirdvect{E} of the change \\ -the direction \dirDvect{E} of the change -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ddirvect}{\marg{kernel}} -Symbol for the differential of a vector's direction. -\end{docCommand} -\begin{docCommand}{Ddirvect}{\marg{kernel}} -Identical to \refCom{ddirvect} but uses \(\Delta\). -\end{docCommand} -\begin{docCommand}{ddirection}{\marg{kernel}} -Alias for \refCom{ddirvect}. -\end{docCommand} -\begin{docCommand}{Ddirection}{\marg{kernel}} -Alias for \refCom{Ddirvect}. -\end{docCommand} -\begin{dispExample} -the change \ddirvect{E} or \ddirection{E} in the direction of \vect{E} \\ -the change \Ddirvect{E} or \Ddirection{E} in the direction of \vect{E} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magdvect}{\marg{kernel}} -Symbol for the magnitude of a vector's differential. -\end{docCommand} -\begin{docCommand}{magDvect}{\marg{kernel}} -Identical to \refCom{magdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the magnitude \magdvect{E} of the change \\ -the magnitude \magDvect{E} of the change -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dmagvect}{\marg{kernel}} -Symbol for the differential of a vector's magnitude. -\end{docCommand} -\begin{docCommand}{Dmagvect}{\marg{kernel}} -Identical to \refCom{dmagvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the change \dmagvect{E} in the magnitude \\ -the change \Dmagvect{E} in the magnitude -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsdvect}{\marg{kernel}} -Symbolic components of a vector. -\end{docCommand} -\begin{docCommand}{scompsDvect}{\marg{kernel}} -Identical to \refCom{scompsdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the vector \scompsdvect{E} \\ -the vector \scompsDvect{E} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compdvect}{\marg{kernel}\marg{component}} -Isolates one symbolic component of a vector's differential. -\end{docCommand} -\begin{docCommand}{compDvect}{\marg{kernel}\marg{component}} -Identical to \refCom{compdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the \compdvect{E}{y} component of the change \\ -the \compDvect{E}{y} component of the change -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dervect}{\marg{kernel}\marg{indvar}} -Symbol for a vector's derivative with respect to an independent variable. -\end{docCommand} -\begin{docCommand}{Dervect}{\marg{kernel}\marg{indvar}} -Identical to \refCom{dervect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the derivative \dervect{E}{t} \\ -the derivative \Dervect{E}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dermagvect}{\marg{kernel}\marg{indvar}} -Symbol for the derivative of a vector's magnitude with respect to an -independent variable. -\end{docCommand} -\begin{docCommand}{Dermagvect}{\marg{kernel}\marg{indvar}} -Identical to \refCom{dermagvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the derivative \dermagvect{E}{t} \\ -the derivative \Dermagvect{E}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{derdirvect}{\marg{kernel}\marg{indvar}} -Symbol for the derivative of a vector's direction with respect to an -independent variable. -\end{docCommand} -\begin{docCommand}{derdirection}{\marg{kernel}\marg{indvar}} -Alias for \refCom{derdirvect}. -\end{docCommand} -\begin{docCommand}{Derdirvect}{\marg{kernel}\marg{indvar}} -Identical to \refCom{derdirvect} but uses \(\Delta\). -\end{docCommand} -\begin{docCommand}{Derdirection}{\marg{kernel}\marg{indvar}} -Alias for \refCom{Derdirvect}. -\end{docCommand} -\begin{dispExample} -the derivative \derdirvect{E}{t} or \derdirection{E}{t} \\ -the derivative \Derdirvect{E}{t} or \Derdirection{E}{t} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsdervect}{\marg{kernel}\marg{indvar}} -Symbolic components of a vector's derivative with respect to an independent -variable. -\end{docCommand} -\begin{docCommand}{scompsDervect}{\marg{kernel}\marg{indvar}} -Identical to \refCom{scompsdervect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the derivative \scompsdervect{E}{t} \\ -the derivative \scompsdervect{E}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compdervect}{\marg{kernel}\marg{component}\marg{indvar}} -Isolates one component of a vector's derivative with respect to an -independent variable. -\end{docCommand} -\begin{docCommand}{compDervect}{\marg{kernel}\marg{component}\marg{indvar}} -Identical to \refCom{compdervect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the derivative \compdervect{E}{y}{t} \\ -the derivative \compDervect{E}{y}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magdervect}{\marg{kernel}\marg{indvar}} -Symbol for the magnitude of a vector's derivative with respect to an -independent variable. -\end{docCommand} -\begin{docCommand}{magDervect}{\marg{kernel}\marg{indvar}} -Identical to \refCom{magdervect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -the derivative \magdervect{E}{t} \\ -the derivative \magDervect{E}{t} -\end{dispExample*} -%\iffalse -% -%\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. -% -% \subsubsection{Subscripted or Indexed Vectors} -% Now we have commands for vectors that carry subscripts or indices, usually -% to identify an object or something similar. Basically, \refCom{vect} becomes -% \refCom{vectsub}. 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. -% -% As a matter of convention, when the initial and final values of a quantity -% are referenced, they should be labeled with subscripts |i| and |f| respectively -% using the commands in this section and similarly named commands in other -% sections. If the quantity also refers to a particular entity (e.g.\ a ball), -% specify the |i| or |f| with a comma after the label -% (e.g.\ |\vectsub{r}{ball,f}|). -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsub}{\marg{kernel}\marg{sub}} -Symbol for a subscripted vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -the vector \vectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magvectsub}{\marg{kernel}\marg{sub}} -Symbol for a subscripted vector's magnitude. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magvectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magsquaredvectsub}{\marg{kernel}\marg{sub}} -Symbol for a subscripted vector's squared magnitude. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magsquaredvectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magnvectsub}{\marg{kernel}\marg{sub}\marg{exponent}} -Symbol for a subscripted vector's magnitude to an arbitrary power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magnvectsub{r}{dipole}{5} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dirvectsub}{\marg{kernel}\marg{sub}} -Symbol for a subscripted vector's direction. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dirvectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsvectsub}{\marg{kernel}\marg{sub}} -Symbolic components of a subscripted vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\scompsvectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compvectsub}{\marg{kernel}\marg{sub}\marg{component}} -Isolates one component of a subscripted vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\compvectsub{p}{ball}{z} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magvectsubscomps}{\marg{kernel}\marg{sub}} -Expression for a subscripted vector's magnitude in terms of symbolic -components. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magvectsubscomps{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dvectsub}{\marg{kernel}\marg{sub}} -Differential of a subscripted vector. -\end{docCommand} -\begin{docCommand}{Dvectsub}{\marg{kernel}\marg{sub}} -Identical to \refCom{dvectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dvectsub{p}{ball} \\ -\Dvectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsdvectsub}{\marg{kernel}\marg{sub}} -Symbolic components of a subscripted vector's differential. -\end{docCommand} -\begin{docCommand}{scompsDvectsub}{\marg{kernel}\marg{sub}} -Identical to \refCom{scompsdvectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\scompsdvectsub{p}{ball} \\ -\scompsDvectsub{p}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compdvectsub}{\marg{kernel}\marg{sub}\marg{component}} -Isolates one component of a subscripted vector's differential. -\end{docCommand} -\begin{docCommand}{compDvectsub}{\marg{kernel}\marg{sub}\marg{component}} -Identical to \refCom{compdvectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\compdvectsub{p}{ball}{y} \\ -\compDvectsub{p}{ball}{y} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dervectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Symbol for derivative of a subscripted vector with respect to an -independent variable. -\end{docCommand} -\begin{docCommand}{Dervectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Identical to \refCom{dervectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dervectsub{p}{ball}{t} \\ -\Dervectsub{p}{ball}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dermagvectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Symbol for the derivative of a subscripted vector's magnitude with respect -to an independent variable. -\end{docCommand} -\begin{docCommand}{Dermagvectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Identical to \refCom{dermagvectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dermagvectsub{E}{ball}{t} \\ -\Dermagvectsub{E}{ball}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsdervectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Symbolic components of a subscripted vector's derivative with respect to -an independent variable. -\end{docCommand} -\begin{docCommand}{scompsDervectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Identical to \refCom{scompsdervectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\scompsdervectsub{p}{ball}{t} \\ -\scompsDervectsub{p}{ball}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{compdervectsub}{\marg{kernel}\marg{sub}\marg{component} -\marg{indvar}} -Isolates one component of a subscripted vector's derivative with respect -to an independent variable. -\end{docCommand} -\begin{docCommand}{compDervectsub}{\marg{kernel}\marg{sub}\marg{component} -\marg{indvar}} -Identical to \refCom{compdervectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\compdervectsub{p}{ball}{y}{t} \\ -\compDervectsub{p}{ball}{y}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magdervectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Symbol for magnitude of a subscripted vector's derivative with respect -to an independent variable. -\end{docCommand} -\begin{docCommand}{magDervectsub}{\marg{kernel}\marg{sub}\marg{indvar}} -Identical to \refCom{magdervectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magdervectsub{p}{ball}{t} \\ -\magDervectsub{p}{ball}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Expressions Containing Dots} -% 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 -% \emph{dot product}. When you see |dots| you should think \emph{dot -% product in terms of symbolic components}. When you see |dote| you should -% think \emph{dot product expanded as a sum}. These, along with the previous -% naming conventions, handle many dot product expressions. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotvect}{\marg{kernel1}\marg{kernel2}} -Symbol for dot of two vectors as a single symbol. -\end{docCommand} -\begin{docCommand}{vectDotvect}{\marg{kernel1}\marg{kernel2}} -Same as \cs{vectdotvect} but uses \cs{bullet}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotvect{\vect{F}}{\vect{v}} \\ -\vectDotvect{\vect{F}}{\vect{v}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotsvect}{\marg{kernel1}\marg{kernel2}} -Symbol for dot of two vectors with symbolic components. -\end{docCommand} -\begin{docCommand}{vectDotsvect}{\marg{kernel1}\marg{kernel2}} -Same as \cs{vectdotsvect} but uses \cs{bullet}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotsvect{F}{v} \\ -\vectDotsvect{F}{v} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotevect}{\marg{kernel1}\marg{kernel2}} -Symbol for dot of two vectors as an expanded sum. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotevect{F}{v} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotsdvect}{\marg{kernel1}\marg{kernel2}} -Dot of a vector a vector's differential with symbolic components. -\end{docCommand} -\begin{docCommand}{vectdotsDvect}{\marg{kernel1}\marg{kernel2}} -Identical to \refCom{vectdotsdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotsdvect{F}{r} \\ -\vectdotsDvect{F}{r} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotedvect}{\marg{kernel1}\marg{kernel2}} -Dot of a vector a vector's differential as an expanded sum. -\end{docCommand} -\begin{docCommand}{vectdoteDvect}{\marg{kernel1}\marg{kernel2}} -Identical to \refCom{vectdotedvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotedvect{F}{r} \\ -\vectdoteDvect{F}{r} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsubdotsvectsub} -{\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}} -Dot of two subscripted vectors with symbolic components. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\vectsubdotsvectsub{F}{grav}{r}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsubdotevectsub} -{\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}} -Dot of two subscripted vectors as an expanded sum. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\vectsubdotevectsub{F}{grav}{r}{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsubdotsdvectsub} -{\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}} -Dot of a subscripted vector and a subscripted vector's differential with -symbolic components. -\end{docCommand} -\begin{docCommand}{vectsubdotsDvectsub} -{\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}} -Identical to \refCom{vectsubdotsdvectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\vectsubdotsdvectsub{A}{ball}{B}{car} \\ -\vectsubdotsDvectsub{A}{ball}{B}{car} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsubdotedvectsub} -{\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}} -Dot of a subscripted vector and a subscripted vector's differential -as an expanded sum. -\end{docCommand} -\begin{docCommand}{vectsubdoteDvectsub} -{\marg{kernel1}\marg{sub1}\marg{kernel2}\marg{sub2}} -Identical to \refCom{vectsubdotedvectsub} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\vectsubdotedvectsub{A}{ball}{B}{car} \\ -\vectsubdoteDvectsub{A}{ball}{B}{car} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsubdotsdvect}{\marg{kernel1}\marg{sub1}\marg{kernel2}} -Dot of a subscripted vector and a vector's differential with symbolic -components. -\end{docCommand} -\begin{docCommand}{vectsubdotsDvect}{\marg{kernel1}\marg{sub1}\marg{kernel2}} -Identical to \refCom{vectsubdotsdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\vectsubdotsdvect{A}{ball}{B} \\ -\vectsubdotsDvect{A}{ball}{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectsubdotedvect}{\marg{kernel1}\marg{sub1}\marg{kernel2}} -Dot of a subscripted vector and a vector's differential as an expanded sum. -\end{docCommand} -\begin{docCommand}{vectsubdoteDvect}{\marg{kernel1}\marg{sub1}\marg{kernel2}} -Identical to \refCom{vectsubdotedvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\vectsubdotedvect{A}{ball}{B} \\ -\vectsubdoteDvect{A}{ball}{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dervectdotsvect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Dot of a vector's derivative and a vector with symbolic components. -\end{docCommand} -\begin{docCommand}{Dervectdotsvect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Identical to \refCom{dervectdotsvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dervectdotsvect{A}{t}{B} \\ -\Dervectdotsvect{A}{t}{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dervectdotevect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Dot of a vector's derivative and a vector as an expanded sum. -\end{docCommand} -\begin{docCommand}{Dervectdotevect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Identical to \refCom{dervectdotevect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dervectdotevect{A}{t}{B} \\ -\Dervectdotevect{A}{t}{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotsdervect}{\marg{kernel1}\marg{kernel2}\marg{indvar}} -Dot of a vector and a vector's derivative with symbolic components. -\end{docCommand} -\begin{docCommand}{vectdotsDervect}{\marg{kernel1}\marg{kernel2}\marg{indvar}} -Identical to \refCom{vectdotsdervect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotsdervect{A}{B}{t} \\ -\vectdotsDervect{A}{B}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectdotedervect}{\marg{kernel1}\marg{kernel2}\marg{indvar}} -Dot of a vector and a vector's derivative as an expanded sum. -\end{docCommand} -\begin{docCommand}{vectdoteDervect}{\marg{kernel1}\marg{kernel2}\marg{indvar}} -Identical to \cs{vectdotedervect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectdotedervect{A}{B}{t} \\ -\vectdoteDervect{A}{B}{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dervectdotsdvect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Dot of a vector's derivative and a vector's differential with symbolic -components. -\end{docCommand} -\begin{docCommand}{DervectdotsDvect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Identical to \refCom{dervectdotsdvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\dervectdotsdvect{A}{t}{B} \\ -\DervectdotsDvect{A}{t}{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dervectdotedvect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Dot of a vector's derivative and a vector's differential as an expanded sum. -\end{docCommand} -\begin{docCommand}{DervectdoteDvect}{\marg{kernel1}\marg{indvar}\marg{kernel2}} -Identical to \refCom{dervectdotedvect} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dervectdotedvect{A}{t}{B} \\ -\DervectdoteDvect{A}{t}{B} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Expressions Containing Crosses} -% All of the naming conventions documented in earlier commands still apply. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{vectcrossvect}{\marg{kernel1}\marg{kernel2}} -Cross of two vectors. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vectcrossvect{\vect{r}}{\vect{p}} -\end{dispExample*} -%\iffalse -% -%\fi -% -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ltriplecross}{\marg{kernel1}\marg{kernel2}\marg{kernel3}} -Symbol for left associated triple cross product. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ltriplecross{\vect{A}}{\vect{B}}{\vect{C}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{rtriplecross}{\marg{kernel1}\marg{kernel2}\marg{kernel3}} -Symbol for right associated triple cross product. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\rtriplecross{\vect{A}}{\vect{B}}{\vect{C}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ltriplescalar}{\marg{kernel1}\marg{kernel2}\marg{kernel3}} -Symbol for left associated triple scalar product. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ltriplescalar{\vect{A}}{\vect{B}}{\vect{C}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{rtriplescalar}{\marg{kernel1}\marg{kernel2}\marg{kernel3}} -Symbol for right associated triple scalar product. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\rtriplescalar{\vect{A}}{\vect{B}}{\vect{C}} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Basis Vectors and Bivectors} -% If you use geometric algebra or tensors, eventually you will need -% symbols for basis vectors and basis bivectors. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ezero}{} -Symbols for basis vectors with lower indices up to 4. -\end{docCommand} -\begin{docCommand}{eone}{} -\end{docCommand} -\begin{docCommand}{etwo}{} -\end{docCommand} -\begin{docCommand}{ethree}{} -\end{docCommand} -\begin{docCommand}{efour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ezero, \eone, \etwo, \ethree, \efour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{uezero}{} -Symbols for normalized basis vectors with lower indices up to 4. -\end{docCommand} -\begin{docCommand}{ueone}{} -\end{docCommand} -\begin{docCommand}{uetwo}{} -\end{docCommand} -\begin{docCommand}{uethree}{} -\end{docCommand} -\begin{docCommand}{uefour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\uezero, \ueone, \uetwo, \uethree, \uefour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ezerozero}{} -Symbols for basis bivectors with lower indices up to 4. -\end{docCommand} -\begin{docCommand}{ezeroone}{} -\end{docCommand} -\begin{docCommand}{ezerotwo}{} -\end{docCommand} -\begin{docCommand}{ezerothree}{} -\end{docCommand} -\begin{docCommand}{ezerofour}{} -\end{docCommand} -\begin{docCommand}{eoneone}{} -\end{docCommand} -\begin{docCommand}{eonetwo}{} -\end{docCommand} -\begin{docCommand}{eonethree}{} -\end{docCommand} -\begin{docCommand}{eonefour}{} -\end{docCommand} -\begin{docCommand}{etwoeone}{} -\end{docCommand} -\begin{docCommand}{etwotwo}{} -\end{docCommand} -\begin{docCommand}{etwothree}{} -\end{docCommand} -\begin{docCommand}{etwofour}{} -\end{docCommand} -\begin{docCommand}{ethreeeone}{} -\end{docCommand} -\begin{docCommand}{ethreetwo}{} -\end{docCommand} -\begin{docCommand}{ethreethree}{} -\end{docCommand} -\begin{docCommand}{ethreefour}{} -\end{docCommand} -\begin{docCommand}{efoureone}{} -\end{docCommand} -\begin{docCommand}{efourtwo}{} -\end{docCommand} -\begin{docCommand}{efourthree}{} -\end{docCommand} -\begin{docCommand}{efourfour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ezerozero, \ezeroone, \ezerotwo, \ezerothree, \ezerofour, \\ -\eoneone, \eonetwo, \eonethree, \eonefour, \etwoone, \\ -\etwotwo, \etwothree, \etwofour, \ethreeone, \ethreetwo, \\ -\ethreethree, \ethreefour, \efourone, \efourtwo, \efourthree, \\ -\efourfour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{euzero}{} -Symbols for basis vectors with upper indices up to 4. -\end{docCommand} -\begin{docCommand}{euone}{} -\end{docCommand} -\begin{docCommand}{eutwo}{} -\end{docCommand} -\begin{docCommand}{euthree}{} -\end{docCommand} -\begin{docCommand}{eufour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\euzero, \euone, \eutwo, \euthree, \eufour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ueuzero}{} -Symbols for normalized basis vectors with upper indices up to 4. -\end{docCommand} -\begin{docCommand}{ueuone}{} -\end{docCommand} -\begin{docCommand}{ueutwo}{} -\end{docCommand} -\begin{docCommand}{ueuthree}{} -\end{docCommand} -\begin{docCommand}{ueufour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ueuzero, \ueuone, \ueutwo, \ueuthree, \ueufour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{euzerozero}{} -Symbols for basis bivectors with upper indices up to 4. -\end{docCommand} -\begin{docCommand}{euzeroone}{} -\end{docCommand} -\begin{docCommand}{euzerotwo}{} -\end{docCommand} -\begin{docCommand}{euzerothree}{} -\end{docCommand} -\begin{docCommand}{euzerofour}{} -\end{docCommand} -\begin{docCommand}{euoneone}{} -\end{docCommand} -\begin{docCommand}{euonetwo}{} -\end{docCommand} -\begin{docCommand}{euonethree}{} -\end{docCommand} -\begin{docCommand}{euonefour}{} -\end{docCommand} -\begin{docCommand}{eutwoeone}{} -\end{docCommand} -\begin{docCommand}{eutwotwo}{} -\end{docCommand} -\begin{docCommand}{eutwothree}{} -\end{docCommand} -\begin{docCommand}{eutwofour}{} -\end{docCommand} -\begin{docCommand}{euthreeeone}{} -\end{docCommand} -\begin{docCommand}{euthreetwo}{} -\end{docCommand} -\begin{docCommand}{euthreethree}{} -\end{docCommand} -\begin{docCommand}{euthreefour}{} -\end{docCommand} -\begin{docCommand}{eufoureone}{} -\end{docCommand} -\begin{docCommand}{eufourtwo}{} -\end{docCommand} -\begin{docCommand}{eufourthree}{} -\end{docCommand} -\begin{docCommand}{eufourfour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\euzerozero, \euzeroone, \euzerotwo, \euzerothree, \euzerofour, \\ -\euoneone, \euonetwo, \euonethree, \euonefour, \eutwoone, \\ -\eutwotwo, \eutwothree, \eutwofour, \euthreeone, \euthreetwo, \\ -\euthreethree, \euthreefour, \eufourone, \eufourtwo, \eufourthree, \\ -\eufourfour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gzero}{} -Symbols for basis vectors, with \(\gamma\) as the kernel, with lower indices -up to 4. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\gzero, \gone, \gtwo, \gthree, \gfour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{guzero}{} -Symbols for basis vectors, with \(\gamma\) as the kernel, with upper indices -up to 4. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\guzero, \guone, \gutwo, \guthree, \gufour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gzerozero}{} -Symbols for basis bivectors, with \(\gamma\) as the kernel, with lower indices -up to 4. -\end{docCommand} -\begin{docCommand}{gzeroone}{} -\end{docCommand} -\begin{docCommand}{gzerotwo}{} -\end{docCommand} -\begin{docCommand}{gzerothree}{} -\end{docCommand} -\begin{docCommand}{gzerofour}{} -\end{docCommand} -\begin{docCommand}{goneone}{} -\end{docCommand} -\begin{docCommand}{gonetwo}{} -\end{docCommand} -\begin{docCommand}{gonethree}{} -\end{docCommand} -\begin{docCommand}{gonefour}{} -\end{docCommand} -\begin{docCommand}{gtwoeone}{} -\end{docCommand} -\begin{docCommand}{gtwotwo}{} -\end{docCommand} -\begin{docCommand}{gtwothree}{} -\end{docCommand} -\begin{docCommand}{gtwofour}{} -\end{docCommand} -\begin{docCommand}{gthreeeone}{} -\end{docCommand} -\begin{docCommand}{gthreetwo}{} -\end{docCommand} -\begin{docCommand}{gthreethree}{} -\end{docCommand} -\begin{docCommand}{gthreefour}{} -\end{docCommand} -\begin{docCommand}{gfoureone}{} -\end{docCommand} -\begin{docCommand}{gfourtwo}{} -\end{docCommand} -\begin{docCommand}{gfourthree}{} -\end{docCommand} -\begin{docCommand}{gfourfour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\gzerozero, \gzeroone, \gzerotwo, \gzerothree, \gzerofour, \\ -\goneone, \gonetwo, \gonethree, \gonefour, \gtwoone, \\ -\gtwotwo, \gtwothree, \gtwofour, \gthreeone, \gthreetwo, \\ -\gthreethree, \gthreefour, \gfourone, \gfourtwo, \gfourthree, \\ -\gfourfour -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{guzerozero}{} -Symbols for basis bivectors, with \(\gamma\) as the kernel, with upper indices -up to 4. -\end{docCommand} -\begin{docCommand}{guzeroone}{} -\end{docCommand} -\begin{docCommand}{guzerotwo}{} -\end{docCommand} -\begin{docCommand}{guzerothree}{} -\end{docCommand} -\begin{docCommand}{guzerofour}{} -\end{docCommand} -\begin{docCommand}{guoneone}{} -\end{docCommand} -\begin{docCommand}{guonetwo}{} -\end{docCommand} -\begin{docCommand}{guonethree}{} -\end{docCommand} -\begin{docCommand}{guonefour}{} -\end{docCommand} -\begin{docCommand}{gutwoeone}{} -\end{docCommand} -\begin{docCommand}{gutwotwo}{} -\end{docCommand} -\begin{docCommand}{gutwothree}{} -\end{docCommand} -\begin{docCommand}{gutwofour}{} -\end{docCommand} -\begin{docCommand}{guthreeeone}{} -\end{docCommand} -\begin{docCommand}{guthreetwo}{} -\end{docCommand} -\begin{docCommand}{guthreethree}{} -\end{docCommand} -\begin{docCommand}{guthreefour}{} -\end{docCommand} -\begin{docCommand}{gufoureone}{} -\end{docCommand} -\begin{docCommand}{gufourtwo}{} -\end{docCommand} -\begin{docCommand}{gufourthree}{} -\end{docCommand} -\begin{docCommand}{gufourfour}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\guzerozero, \guzeroone, \guzerotwo, \guzerothree, \guzerofour, \\ -\guoneone, \guonetwo, \guonethree, \guonefour, \gutwoone, \\ -\gutwotwo, \gutwothree, \gutwofour, \guthreeone, \guthreetwo, \\ -\guthreethree, \guthreefour, \gufourone, \gufourtwo, \gufourthree, \\ -\gufourfour -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsubsection{Other Vector Related} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{colvector}{\marg{commadelimitedlistofcomps}} -Typesets column vectors. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\colvector{x^0,x^1,x^2,x^3} \\ -\colvector{x_0,x_1,x_2,x_3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{rowvector}{\marg{commadelimitedlistofcomps}} -Typesets row vectors. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\rowvector{x^0,x^1,x^2,x^3} \\ -\rowvector{x_0,x_1,x_2,x_3} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompscvect}{\oarg{anynonzero}\marg{kernel}} -Typesets subscripted symbolic components of column 3- or 4-vectors -(use any nonzero value for the optional argument to typeset a 4-vector). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\begin{mysolution*} - \vect{p} &= \scompscvect{p} \\ - \vect{p} &= \scompscvect[4]{p} -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsCvect}{\oarg{anynonzero}\marg{kernel}} -Typesets superscripted symbolic components of column 3- or 4-vectors -(use any nonzero value for the optional argument to typeset a 4-vector). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\begin{mysolution*} - \vect{p} &= \scompsCvect{p} \\ - \vect{p} &= \scompsCvect[4]{p} -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsrvect}{\oarg{anynonzero}\marg{kernel}} -Typesets subscripted symbolic components of row 3- or 4-vectors -(use any nonzero value for the optional argument to typeset a 4-vector). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\begin{mysolution*} - \vect{p} &= \scompsrvect{p} \\ - \vect{p} &= \scompsrvect[4]{p} -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scompsRvect}{\oarg{anynonzero}\marg{kernel}} -Typesets superscripted symbolic components of row 3- or 4-vectors -(use any nonzero value for the optional argument to typeset a 4-vector). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\begin{mysolution*} - \vect{p} &= \scompsRvect{p} \\ - \vect{p} &= \scompsRvect[4]{p} -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{anglebetween}{\marg{kernal}\marg{kernel}} -Typesets the symbol for the angle between two vectors. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\anglebetween{a}{b} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{parallelto}{\marg{thing}} -A better looking parallel symbol whose height is the same as the perpendicular -symbol's height. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\vect{A}_{\parallelto\vect{B}}\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{perpendicularto}{\marg{thing}} -An alias for the perpendicular symbol. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\vect{A}_{\perpendicularto\vect{B}}\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{bra}{\marg{bra}} -Typesets a Dirac bra. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\bra{\Psi^*} or \bra{\frac{1}{a}\Psi^*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ket}{\marg{ket}} -Typesets a Dirac ket. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ket{\Psi} or \ket{\frac{1}{b}\Psi^*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{bracket}{\marg{bra}\marg{ket}} -Typesets a Dirac bracket. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\bracket{\Psi^*}{\Psi} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsection{Frequently Used Fractions} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{onehalf}{} -Small fractions with numerator 1 and denominators up to 10. -\end{docCommand} -\begin{docCommand}{onethird}{} -\end{docCommand} -\begin{docCommand}{onefourth}{} -\end{docCommand} -\begin{docCommand}{onefifth}{} -\end{docCommand} -\begin{docCommand}{onesixth}{} -\end{docCommand} -\begin{docCommand}{oneseventh}{} -\end{docCommand} -\begin{docCommand}{oneeighth}{} -\end{docCommand} -\begin{docCommand}{onenineth}{} -\end{docCommand} -\begin{docCommand}{onetenth}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\onehalf, \onethird, \onefourth, \onefifth, \onesixth, \\ -\oneseventh, \oneeighth, \oneninth, \onetenth\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{twooneths}{} -Small fractions with numerator 2 and denominators up to 10. -\end{docCommand} -\begin{docCommand}{twohalves}{} -\end{docCommand} -\begin{docCommand}{twothirds}{} -\end{docCommand} -\begin{docCommand}{twofourths}{} -\end{docCommand} -\begin{docCommand}{twofifths}{} -\end{docCommand} -\begin{docCommand}{twosixths}{} -\end{docCommand} -\begin{docCommand}{twosevenths}{} -\end{docCommand} -\begin{docCommand}{twoeighths}{} -\end{docCommand} -\begin{docCommand}{twonineths}{} -\end{docCommand} -\begin{docCommand}{twotenths}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\twooneths, \twohalves, \twothirds, \twofourths, \twofifths, \\ -\twosixths, \twosevenths, \twoeighths, \twoninths, \twotenths\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{threeoneths}{} -Small fractions with numerator 3 and denominators up to 10. -\end{docCommand} -\begin{docCommand}{threehalves}{} -\end{docCommand} -\begin{docCommand}{threethirds}{} -\end{docCommand} -\begin{docCommand}{threefourths}{} -\end{docCommand} -\begin{docCommand}{threefifths}{} -\end{docCommand} -\begin{docCommand}{threesixths}{} -\end{docCommand} -\begin{docCommand}{threesevenths}{} -\end{docCommand} -\begin{docCommand}{threeeighths}{} -\end{docCommand} -\begin{docCommand}{threenineths}{} -\end{docCommand} -\begin{docCommand}{threetenths}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\threeoneths, \threehalves, \threethirds, \threefourths, \threefifths, \\ -\threesixths, \threesevenths, \threeeighths, \threeninths, \threetenths\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{fouroneths}{\marg{magnitude}} -Small fractions with numerator 4 and denominators up to 10. -\end{docCommand} -\begin{docCommand}{fourhalves}{} -\end{docCommand} -\begin{docCommand}{fourthirds}{} -\end{docCommand} -\begin{docCommand}{fourfourths}{} -\end{docCommand} -\begin{docCommand}{fourfifths}{} -\end{docCommand} -\begin{docCommand}{foursixths}{} -\end{docCommand} -\begin{docCommand}{foursevenths}{} -\end{docCommand} -\begin{docCommand}{foureighths}{} -\end{docCommand} -\begin{docCommand}{fournineths}{} -\end{docCommand} -\begin{docCommand}{fourtenths}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\fouroneths, \fourhalves, \fourthirds, \fourfourths, \fourfifths, \\ -\foursixths, \foursevenths, \foureighths, \fourninths, \fourtenths\) -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsection{Calculus} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{sumoverall}{\marg{variable}} -Properly typesets summation over all of some user specified entities. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \sumoverall{particles} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dx}{\marg{variable}} -Properly typesets variables of integration (the d should not be in -italics and should be properly spaced relative to the integrand). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \dx{y} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dslashx}{\marg{variable}} -Symbol indicating an inexact differential. Frequently used in physics. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \dslashx{Q} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{evaluatedfromto}{\marg{lower}\oarg{upper}} -Properly typesets the evaluation of definite integrals. Note that the upper -limit is optional. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( {\onethird y^3}\evaluatedfromto{0}[3] \) \\ -\( {\onethird y^3}\evaluatedfromto{0} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{evaluatedat}{\marg{evaluationpoint}} -Properly indicates evaluation at a particular point or value without -specifying the quantity. This is really just an alias for \cs{evaluatedfromto} -with no optional upper limit. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \text{LMST}\evaluatedat{\longitude{0}} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{integral}{\oarg{lower}\oarg{upper}\marg{integrand}\marg{var}} -Typesets indefinite and definite integrals. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\[ \integral{y^2}{y} \] -\[ \integral[0][3]{y^2}{y} \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{opensurfaceintegral}{\marg{surfacename}\marg{vectorname}} -Integral over an open surface of the normal component of a vector field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\[ \opensurfaceintegral{S}{\vect{E}} \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{closedsurfaceintegral}{\marg{surfacename}\marg{vectorname}} -Integral over a closed surface of the normal component of a vector field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\[ \closedsurfaceintegral{S}{\vect{E}} \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{openlineintegral}{\marg{pathname}\marg{vectorname}} -Integral over an open path of the tangential component of a vector field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\[ \openlineintegral{C}{\vect{E}} \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{closedlineintegral}{\marg{pathname}\marg{vectorname}} -Integral over a closed path of the tangential component of a vector field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\[ \closedlineintegral{C}{\vect{E}} \] -\end{dispExample*} -%\iffalse -% -%\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. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{volumeintegral}{\marg{volumename}\marg{integrand}} -Integral over a volume. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\[ \volumeintegral{V}{\rho} \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dbydt}{\oarg{operand}} -First time derivative operator. -\end{docCommand} -\begin{docCommand}{DbyDt}{\oarg{operand}} -Identical to \refCom{dbydt} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \dbydt \) or \( \dbydt x \) or \dbydt[x] \\ -\( \DbyDt \) or \( \DbyDt x \) or \DbyDt[x] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ddbydt}{\oarg{operand}} -Second time derivative operator. -\end{docCommand} -\begin{docCommand}{DDbyDt}{\oarg{operand}} -Identical to \cs{ddbydt} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \ddbydt \) or \( \ddbydt x \) or \ddbydt[x] \\ -\( \DDbyDt \) or \( \DDbyDt x \) or \DDbyDt[x] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{pbypt}{\oarg{operand}} -First partial time derivative operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \pbypt \) or \( \pbypt x \) or \pbypt[x] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ppbypt}{\oarg{operand}} -Second partial time derivative operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \ppbypt \) or \( \ppbypt x \) or \ppbypt[x] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dbyd}{\marg{dependentvariable}\marg{indvar}} -Generic first derivative operator. -\end{docCommand} -\begin{docCommand}{DbyD}{\marg{dependentvariable}\marg{indvar}} -Identical to \refCom{dbyd} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \dbyd{f}{y} \) \\ -\( \DbyD{f}{y} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ddbyd}{\marg{dependentvariable}\marg{indvar}} -Generic second derivative operator. -\end{docCommand} -\begin{docCommand}{DDbyD}{\marg{dependentvariable}\marg{indvar}} -Identical to \refCom{ddbyd} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \ddbyd{f}{y} \) \\ -\( \DDbyD{f}{y} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{pbyp}{\marg{dependentvariable}\marg{indvar}} -Generic first partial derivative operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \pbyp{f}{y} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ppbyp}{\marg{dependentvariable}\marg{indvar}} -Generic second partial derivative operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \ppbyp{f}{y} \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gradient}{} -Gibbs' gradient operator. It's just an alias for \cs{nabla}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\gradient -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{divergence}{} -Gibbs' divergence operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\divergence -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{curl}{} -Gibbs' curl operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\curl -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{taigrad}{} -Tai's gradient operator. It's just an alias for \cs{nabla}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\taigrad -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{taisvec}{} -Tai's symbol for symbolic vector. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\taisvec -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{taidivg}{} -Tai's symbol for divergence operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\taidivg -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{taicurl}{} -Tai's symbol for curl operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\taicurl -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{laplacian}{} -Laplacian operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\laplacian -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dalembertian}{} -D'Alembertian operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dalembertian -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{seriesfofx}{} -Series expansion of \(f(x)\) around \(x=a\). -\end{docCommand} -\begin{dispExample} -\seriesfofx \\ -\seriesfofx[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{seriesexpx}{} -Series expansion of \(e^x\). -\end{docCommand} -\begin{dispExample} -\seriesexpx \\ -\seriesexpx[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{seriessinx}{} -Series expansion of \(\sin x\). -\end{docCommand} -\begin{dispExample} -\seriessinx \\ -\seriessinx[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{seriescosx}{} -Series expansion of \(\cos x\). -\end{docCommand} -\begin{dispExample} -\seriescosx \\ -\seriescosx[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{seriestanx}{} -Series expansion of \(\tan x\). -\end{docCommand} -\begin{dispExample} -\seriestanx \\ -\seriestanx[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{seriesatox}{} -Series expansion of \(a^x\). -\end{docCommand} -\begin{dispExample} -\seriesatox \\ -\seriesatox[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{serieslnoneplusx}{} -Series expansion of \(\ln(1+x)\). -\end{docCommand} -\begin{dispExample} -\serieslnoneplusx \\ -\serieslnoneplusx[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{binomialseries}{} -Series expansion of \((1+x)^n\). -\end{docCommand} -\begin{dispExample} -\binomialseries \\ -\binomialseries[z] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{diracdelta}{\marg{arg}} -Dirac delta function. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\diracdelta{x} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{orderof}{\marg{arg}} -Order of indicator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\orderof{x^2} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{eulerlagrange}{\oarg{operand}} -Euler-Lagrange equation. -\end{docCommand} -\begin{docCommand}{Eulerlagrange}{\oarg{operand}} -Like \refCom{eulerlagrange} but uses \(\Delta\). -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\( \eulerlagrange \) or \( \eulerlagrange[x] \) \\ -\( \Eulerlagrange \) or \( \Eulerlagrange[x] \) -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsection{Other Useful Commands} -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{asin}{} -Symbol for inverse sine and other inverse circular trig functions. -\end{docCommand} -\begin{docCommand}{acos}{} -\end{docCommand} -\begin{docCommand}{atan}{} -\end{docCommand} -\begin{docCommand}{asec}{} -\end{docCommand} -\begin{docCommand}{acsc}{} -\end{docCommand} -\begin{docCommand}{acot}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \asin, \acos, \atan, \asec, \acsc, \acot \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{sech}{} -Hyperbolic and inverse hyperbolic functions not defined in \LaTeX. -\end{docCommand} -\begin{docCommand}{csch}{} -\end{docCommand} -\begin{docCommand}{asinh}{} -\end{docCommand} -\begin{docCommand}{acosh}{} -\end{docCommand} -\begin{docCommand}{atanh}{} -\end{docCommand} -\begin{docCommand}{asech}{} -\end{docCommand} -\begin{docCommand}{acsch}{} -\end{docCommand} -\begin{docCommand}{acoth}{} -\end{docCommand} -\begin{dispExample} -\( \sech, \csch, \asinh, \acosh, \atanh, \asech, \acsch, \acoth \) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{sgn}{\marg{arg}} -Signum function. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \sgn \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dex}{} -Decimal exponentiation function (used in astrophysics). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\( \dex \) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{logb}{\oarg{base}} -Logarithm to an arbitrary base. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\logb 8, \logb[2] 8 -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{cB}{} -Alternate symbol for magnetic field inspired by Tom Moore. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\cB, \vect{\cB} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{newpi}{} -Bob Palais' symbol for \(2\pi\). -\end{docCommand} -\begin{dispExample*}{sidebyside} -\newpi -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{scripty}{\marg{kernel}} -Command to get fonts in Griffiths' electrodynamics textbook. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\scripty{r} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Lagr}{} -Command to get symbol for Lagrangian. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Lagr -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{flux}{\oarg{label}} -Symbol for flux of a vector field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\flux, \flux[E] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{circulation}{\oarg{label}} -Symbol for circulation of a vector field. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\circulation, \circulation[E] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inparens}{\marg{arg}} -Surrounds with argument with parentneses. A blank argument generates a -placeholder. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\inparens{\onehalf}, \inparens{-3}, \inparens{} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{absof}{\marg{arg}} -Absolute value function. A blank argument generates a placeholder. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\absof{-4}, \absof{} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{magof}{\marg{arg}} -Magnitude of a quantity (lets you selectively use double bars even -when the \opt{singlemagbars} option is use when loading the package). -A blank argument generates a placeholder. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\magof{\vect{E}}, \magof{} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dimsof}{\marg{arg}} -Notation for showing the dimensions of a quantity. A blank argument -generates a placeholder. -\end{docCommand} -\begin{dispExample} -\( \dimsof{\vect{v}} = L \cdot T^{-1} \), \dimsof{} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{unitsof}{\marg{arg}} -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. A blank argument generates a placeholder. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\unitsof{\vect{v}} = \velocityonlyaltnunit, \unitsof{} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Changein}{\marg{arg}} -Notation for \emph{the change in a quantity}. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\Changein{\vect{E}} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{xtento}{\marg{exponent}\oarg{unit}} -Command for scientific notation with an optional unit. -\end{docCommand} -\begin{docCommand}{timestento}{\marg{exponent}\oarg{unit}} -Another command for scientific notation with an optional unit. -\end{docCommand} -\begin{dispExample*}{sidebyside} -2.99\xtento{8}[\velocityonlyaltnunit] \\ -2.99\timestento{-4} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ee}{\marg{mantissa}\marg{exponent}} -Command for scientific notation for computer code. Units are not used in computer -code. -\end{docCommand} -\begin{docCommand}{EE}{\marg{mantissa}\marg{exponent}} -Identical to \refCom{ee} but gives capital letters. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ee{2.99}{8} \\ -\EE{2.99}{8} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{dms}{\marg{deg}\marg{min}\marg{sec}} -Command for formatting angles and time. Note that other packages may do -this better. -\end{docCommand} -\begin{docCommand}{hms}{\marg{deg}\marg{min}\marg{sec}} -Like \refCom{dms} but formats time. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\dms{23}{34}{10.27} \\ -\hms{23}{34}{10.27} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{clockreading}{\marg{hrs}\marg{min}\marg{sec}} -Command for formatting a clock reading. Really an alias for \refCom{hms}, -but conceptually a very different idea that introductory textbooks don't -do a good enough job at articulating. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\clockreading{23}{34}{10.27} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{latitude}{\marg{arg}} -Command for formatting latitude, useful in astronomy. -\end{docCommand} -\begin{docCommand}{latitudeN}{\marg{arg}} -Command for formatting latitude with an N for north. -\end{docCommand} -\begin{docCommand}{latitudeS}{\marg{arg}} -Command for formatting latitude with an S for north. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\latitude{+35}, \latitudeN{35}, \latitudeS{35} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{longitude}{\marg{arg}} -Command for formatting longitude, useful in astronomy. -Use \refCom{longitudeE} or \refCom{longitudeW} to include a letter. -\end{docCommand} -\begin{docCommand}{longitudeE}{\marg{arg}} -Command for formatting longitude with an E for east. -\end{docCommand} -\begin{docCommand}{longitudeW}{\marg{arg}} -Command for formatting longitude with an W for east. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\longitude{-81}, \longitudeE{81}, \longitudeW{81} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ssup}{\marg{kernel}\marg{sup}} -Command for typesetting text superscripts. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ssup{N}{contact} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ssub}{\marg{kernel}\marg{sub}} -Command for typesetting text subscripts. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ssub{N}{AB} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ssud}{\marg{sup}\marg{sub}} -Command for typesetting text superscripts and subscripts. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\ssud{N}{contact}{AB} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{msub}{\marg{kernel}\marg{sub}} -Command for typesetting mathematical subscripts. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\msub{R}{\alpha\beta} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{msud}{\marg{kernel}\marg{sup}\marg{sub}} -Command for typesetting mathematical superscripts and subscripts. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\msud{\Gamma}{\gamma}{\alpha\beta} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{levicivita}{\marg{indices}} -Command for Levi-Civita symbol. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\levicivita{ijk} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{kronecker}{\marg{indices}} -Command for Kronecker delta symbol. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\kronecker{ij} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{xaxis}{} -Command for coordinate axes. -\end{docCommand} -\begin{docCommand}{yaxis}{} -\end{docCommand} -\begin{docCommand}{zaxis}{} -\end{docCommand} -\begin{dispExample*}{sidebyside} - \xaxis, \yaxis, \zaxis -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{naxis}{\oarg{axis}} -Command for custom naming a coordinate axis. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\naxis{t} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{axis}{} -Suffix command for custom naming a coordinate axis. You are responsible -for using math mode if necessary for the thing to which you apply the -suffix. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(t\axis\) -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{xyplane}{} -Commands for naming coordinate planes. All combinations are defined. -\end{docCommand} -\begin{docCommand}{yzplane}{} -\end{docCommand} -\begin{docCommand}{zxplane}{} -\end{docCommand} -\begin{docCommand}{yxplane}{} -\end{docCommand} -\begin{docCommand}{zyplane}{} -\end{docCommand} -\begin{docCommand}{xzplane}{} -\end{docCommand} -\begin{dispExample} -\xyplane, \yzplane, \zxplane, \yxplane, \zyplane, \xzplane -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{plane}{} -Suffix command for custom naming a coordinate plane. You are responsible -for using math mode if necessary for the thing to which you apply the suffix. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(xt\)\plane -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{fsqrt}{\marg{arg}} -Command for square root as a fractional exponent. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\fsqrt{x} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{cuberoot}{\marg{arg}} -Command for cube root of an argument. -\end{docCommand} -\begin{docCommand}{fcuberoot}{\marg{arg}} -Command for cube root of an argument as a fractional power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\cuberoot{x} \\ -\fcuberoot{x} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{fourthroot}{\marg{arg}} -Command for fourth root of an argument. -\end{docCommand} -\begin{docCommand}{ffourthroot}{\marg{arg}} -Command for fourth root of an argument as a fractional power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\fourthroot{x} \\ -\ffourthroot{x} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{fifthroot}{\marg{arg}} -Command for fifth root of an argument. -\end{docCommand} -\begin{docCommand}{ffifthroot}{\marg{arg}} -Command for fifth root of an argument as a fractional power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\fifthroot{x} \\ -\ffifthroot{x} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{relgamma}{\marg{arg}} -Expression for Lorentz factor. -\end{docCommand} -\begin{docCommand}{frelgamma}{\marg{arg}} -Expression for Lorentz factor with a fractional power. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\begin{mysolution*} - \gamma &= \relgamma{\magvect{v}} \\ - \gamma &= \frelgamma{\magvect{v}} -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{oosqrtomxs}{\marg{arg}} -Commands for \textbf{o}ne \textbf{o}ver \textbf{s}quare root \textbf{o}f -\textbf{o}ne \textbf{m}inus \textbf{x} \textbf{s}quared. Say that out loud and -you will see where the name comes from. -\end{docCommand} -\begin{docCommand}{oosqrtomx}{\marg{arg}} -Commands for \textbf{o}ne \textbf{o}ver \textbf{s}quare root \textbf{o}f -\textbf{o}ne \textbf{m}inus \textbf{x}. Say that out loud and -you will see where the name comes from. -\end{docCommand} -\begin{docCommand}{oomx}{\marg{arg}} -Commands for \textbf{o}ne \textbf{o}ver \textbf{s}quare root \textbf{o}f -\textbf{o}ne \textbf{m}inus \textbf{x}. Say that out loud and -you will see where the name comes from. -\end{docCommand} -\begin{docCommand}{oopx}{\marg{arg}} -Commands for \textbf{o}ne \textbf{o}ver \textbf{s}quare root \textbf{o}f -\textbf{o}ne \textbf{p}lus \textbf{x}. Say that out loud and -you will see where the name comes from. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\oosqrtomxs{0.22} \\ -\oosqrtomx{0.22} \\ -\ooomx{0.22} \\ -\ooopx{0.11} -\end{dispExample*} -%\iffalse -% -%\fi -% -% \subsection{Custom Operators} -% The \(=\) operator is frequently misused. We need other operators -% for other cases to express conceptual relationships other than, say, -% mathematical equality. Some of these may seem strange to you but I have -% found them helpful. -%\iffalse -%<*example> -%\fi -\begin{docCommand}{isequals}{} -Command for \emph{test-for-equality} operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -5 \isequals 3 -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{wordoperator}{\marg{firstline}\marg{secondline}} -Command for two lines of tiny text to be use as an operator without using -mathematical symbols. -\end{docCommand} -\begin{docCommand}{pwordoperator}{\marg{firstline}\marg{secondline}} -Like \refCom{wordoperator} but puts parentheses around the operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\wordoperator{added}{to} \\ -\pwordoperator{added}{to} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{definedas}{} -Operator representing a definition. -\end{docCommand} -\begin{docCommand}{pdefinedas}{} -Same as \refCom{definedas} but puts parentheses around the operator. -\end{docCommand} -\begin{docCommand}{earlierthan}{} -Operator useful for comparing times and clock readings. -\end{docCommand} -\begin{docCommand}{pearlierthan}{} -Same as \refCom{earlierthan} but puts parentheses around the operator. -\end{docCommand} -\begin{docCommand}{laterthan}{} -Operator useful for comparing times and clock readings. -\end{docCommand} -\begin{docCommand}{platerthan}{} -Same as \refCom{laterthan} but puts parentheses around the operator. -\end{docCommand} -\begin{docCommand}{adjustedby}{} -Operator useful for comparing times and clock readings. -\end{docCommand} -\begin{docCommand}{padjustedby}{} -Same as \refCom{adjustedby} but puts parentheses around the operator. -\end{docCommand} -\begin{docCommand}{forevery}{} -Operator for conveying the idea of for every. -\end{docCommand} -\begin{docCommand}{pforevery}{} -Same as \refCom{forevery} but puts parentheses around the operator. -\end{docCommand} -\begin{docCommand}{associated}{} -Operator representing a conceptual association. -\end{docCommand} -\begin{docCommand}{passociated}{} -Same as \refCom{associated} but puts parentheses around the operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\definedas \\ -\pdefinedas \\ -\earlierthan \\ -\pearlierthan \\ -\laterthan \\ -\platerthan \\ -\adjustedby \\ -\padjustedby \\ -\forevery \\ -\pforevery \\ -\associated \\ -\passociated -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{defines}{} -Command for \emph{defines} or \emph{defined by} operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\vect{p} \defines \(\gamma m\)\vect{v} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{inframe}{\oarg{frame}} -Command for operator indicating the coordinate representation of a vector -in a particular reference frame denoted by a capital letter. -\end{docCommand} -\begin{dispExample} -\vect{p} \inframe[S] \momentum{\mivector{1,2,3}} \\ -\vect{p} \inframe[S'] \momentum{\mivector{\sqrt{14},0,0}} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{associates}{} -Command for \emph{associated with} or \emph{associates with} operator -(for verbal concepts). This is conceptually different from the -\refCom{associated} or \refCom{passociated} operators. -\end{docCommand} -\begin{dispExample*}{sidebyside} -kinetic energy \associates velocity -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{becomes}{} -Command for \emph{becomes} operator. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\(\gamma m\)\vect{v} \becomes \(m\)\vect{v} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{rrelatedto}{\marg{leftoperation}} -Command for left-to-right relationship. -\end{docCommand} -\begin{dispExample} -(flux ratio) \rrelatedto{taking logarithm} (mag diff) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{lrelatedto}{\marg{roperation}} -Command for right-to-left relationship. -\end{docCommand} -\begin{dispExample} -(flux ratio) \lrelatedto{exponentiation} (mag diff) -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{brelatedto}{\marg{leftoperation}\marg{roperation}} -Command for bidirectional relationship. -\end{docCommand} -\begin{dispExample} -(mag diff) \brelatedto{taking logarithm}{exponentiation}(flux ratio) -\end{dispExample} -%\iffalse -% -%\fi -% -% \subsection{Commands Specific to \mi} -% While these commands were inspired by \mi, they can certainly be used in -% any introductory physics course. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{momentumprinciple}{} -Expression for the momentum principle. -\end{docCommand} -\begin{docCommand}{LHSmomentumprinciple}{} -Just the left hand side. -\end{docCommand} -\begin{docCommand}{RHSmomentumprinciple}{} -Just the right hand side. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\momentumprinciple \\ -\LHSmomentumprinciple \\ -\RHSmomentumprinciple -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{momentumprinciplediff}{} -Expression for the momentum principle in differential form. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\momentumprinciplediff -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{energyprinciple}{} -Expression for the energy principle. Processes other than work and -thermal energy transfer (e.g.\ radiation) are neglected. -\end{docCommand} -\begin{docCommand}{LHSenergyprinciple}{} -Just the left hand side. -\end{docCommand} -\begin{docCommand}{RHSenergyprinciple}{} -Just the right hand side. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\energyprinciple \\ -\LHSenergyprinciple \\ -\RHSenergyprinciple -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{energyprinciplediff}{} -Expression for the energy principle in differential form. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\energyprinciplediff -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularmomentumprinciple}{} -Expression for the angular momentum principle. -\end{docCommand} -\begin{docCommand}{LHSangularmomentumprinciple}{} -Just the left hand side. -\end{docCommand} -\begin{docCommand}{RHSangularmomentumprinciple}{} -Just the right hand side. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\angularmomentumprinciple \\ -\LHSangularmomentumprinciple \\ -\RHSangularmomentumprinciple -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{angularmomentumprinciplediff}{} -Expression for the angular momentum principle in differential form. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\angularmomentumprinciplediff -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gravitationalinteraction}{} -Expression for gravitational interaction. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\gravitationalinteraction -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricinteraction}{} -Expression for electric interaction. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\electricinteraction -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{springinteraction}{} -Expression for spring interaction. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\springinteraction -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gfieldofparticle}{} -Expression for a particle's gravitational field. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\gfieldofparticle -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Efieldofparticle}{} -Expression for a particle's electric field. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Efieldofparticle -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Bfieldofparticle}{} -Expression for a particle's magnetic field. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Bfieldofparticle -\end{dispExample*} -%\iffalse -% -%\fi -% -% In the commands that take an optional label, note how to specify -% initial and final values of quantities. -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Esys}{\oarg{label}} -Symbol for system energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Esys, \Esys[final], \Esys[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Us}{\oarg{label}} -Symbol for spring potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Us, \Us[final], \Us[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Ug}{\oarg{label}} -Symbol for gravitational potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Ug, \Ug[final], \Ug[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Ue}{\oarg{label}} -Symbol for electric potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Ue, \Ue[final], \Ue[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Ktrans}{\oarg{label}} -Symbol for translational kinetic energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Ktrans, \Ktrans[final], \Ktrans[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Krot}{\oarg{label}} -Symbol for rotational kinetic energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Krot, \Krot[final], \Krot[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Kvib}{\oarg{label}} -Symbol for vibrational kinetic energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Kvib, \Evib[final], \Evib[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Eparticle}{\oarg{label}} -Symbol for particle energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Eparticle, \Eparticle[final], \Eparticle[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Einternal}{\oarg{label}} -Symbol for internal energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Einternal, \Einternal[final], \Einternal[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Erest}{\oarg{label}} -Symbol for rest energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Erest, \Erest[final], \Erest[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Echem}{\oarg{label}} -Symbol for chemical energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Echem, \Echem[final], \Echem[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Etherm}{\oarg{label}} -Symbol for thermal energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Etherm, \Etherm[final], \Etherm[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Evib}{\oarg{label}} -Symbol for vibrational energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Evib, \Evib[final], \Evib[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Ephoton}{\oarg{label}} -Symbol for photon energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Ephoton, \Ephoton[final], \Ephoton[initial] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEsys}{} -Symbol for change in system energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEsys -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DUs}{} -Symbol for change in spring potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DUs -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DUg}{} -Symbol for change in gravitational potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DUg -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DUe}{} -Symbol for change in electric potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DUe -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DKtrans}{} -Symbol for change in translational kinetic energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DKtrans -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DKrot}{} -Symbol for change in rotational kinetic energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DKrot -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DKvib}{} -Symbol for change in vibrational kinetic energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DKvib -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEparticle}{} -Symbol for change in particle energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEparticle -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEinternal}{} -Symbol for change in internal energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEinternal -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DErest}{} -Symbol for change in rest energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DErest -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEchem}{} -Symbol for change in chemical energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEchem -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEtherm}{} -Symbol for change in thermal energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEtherm -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEvib}{} -Symbol for change in vibrational energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEvib -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{DEphoton}{} -Symbol for change in photon energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\DEphoton -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{springpotentialenergy}{} -Expression for spring potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\springpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{finalspringpotentnialenergy}{} -Expression for final spring potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\finalspringpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{initialspringpotentialenergy}{} -Expression for initial spring potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\initialspringpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{electricpotentialenergy}{} -Expression for electric potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\electricpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{finalelectricpotentialenergy}{} -Expression for final electric potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\finalelectricpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{initialelectricpotentialenergy}{} -Expression for initial electric potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\initialelectricpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{gravitationalpotentialenergy}{} -Expression for gravitational potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\gravitationalpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{finalgravitationalpotentialenergy}{} -Expression for final gravitational potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\finalgravitationalpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{initialgravitationalpotentialenergy}{} -Expression for initial gravitational potential energy. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\initialgravitationalpotentialenergy -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{ks}{} -Symbol for spring stiffness. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\ks -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Fnet}{} -Various symbols for net force. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Fnet, \Fnetext, \Fnetsys, \Fsub{ball,bat} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Tnet}{} -Various symbols for net torque. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Tnet, \Tnetext, \Tnetsys, \Tsub{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{Ltotal}{} -Various symbols for total angular momentum. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\Ltotal, \Lsys, \Lsub{ball} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwelliint}{\oarg{surfacename}} -Left hand side of Maxwell's first equation in integral form. Note the -default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\LHSmaxwelliint \\ - &\LHSmaxwelliint[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliint}{} -Right hand side of Maxwell's first equation in integral form. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliint \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliinta}{\oarg{volumename}} -Alternate form of right hand side of Maxwell's first equation in -integral form. Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwelliinta \\ - &\RHSmaxwelliinta[\upsilon] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliintfree}{} -Right hand side of Maxwell's first equation in integral form in -free space. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliintfree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliint}{\oarg{surfacename}} -Maxwell's first equation in integral form. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliint \\ - &\maxwelliint[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliinta}{\oarg{surfacename}\oarg{volumename}} -Alternate form of Maxwell's first equation in integral form. -Note the default values of the optional arguments. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliinta \\ - &\maxwelliinta[S][\upsilon] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliintfree}{\oarg{surfacename}} -Maxwell's first equation in integral form in free space. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliintfree \\ - &\maxwelliintfree[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwelliiint}{\oarg{surfacename}} -Left hand side of Maxwell's second equation in integral form. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\LHSmaxwelliiint \\ - &\LHSmaxwelliiint[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiint}{} -Right hand side of Maxwell's second equation in integral form. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliiint \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiintm}{} -Right hand side of Maxwell's second equation in integral form -with magnetic monopoles. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliiintm \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiintma}{\oarg{volumename}} -Alternate form of right hand side of Maxwell's second equation in -integral form with magnetic monopoles. Note the default value of -the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwelliiintma \\ - &\RHSmaxwelliiintma[\upsilon] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiintfree}{} -Right hand side of Maxwell's second equation in integral form in -free space. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliiintfree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiint}{\oarg{surfacename}} -Maxwell's second equation in integral form. Note the default value -of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiint \\ - &\maxwelliiint[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiintm}{\oarg{surfacename}} -Maxwell's second equation in integral form with magnetic monopoles. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiintm \\ - &\maxwelliiintm[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiintma}{\oarg{surfacename}\oarg{volumename}} -Alternate form of Maxwell's second equation in integral form with -magnetic monopoles. Note the default values of the optional arguments. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiintma \\ - &\maxwelliiintma[S][\upsilon] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiintfree}{\oarg{surfacename}} -Maxwell's second equation in integral form in free space. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiintfree \\ - &\maxwelliiintfree[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwelliiiint}{\oarg{boundaryname}} -Left hand side of Maxwell's third equation in integral form. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\LHSmaxwelliiiint \\ - &\LHSmaxwelliiiint[C] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiiint}{\oarg{surfacename}} -Right hand side of Maxwell's third equation in integral form. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwelliiiint \\ - &\RHSmaxwelliiiint[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiiintm}{\oarg{surfacename}} -Right hand side of Maxwell's third equation in integral form with -magnetic monopoles. Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwelliiiintm \\ - &\RHSmaxwelliiiintm[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiiintma}{\oarg{surfacename}} -Alternate form of right hand side of Maxwell's third equation in -integral form with magnetic monopoles. Note the default value of -the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwelliiiintma \\ - &\RHSmaxwelliiiintma[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiiintfree}{\oarg{surfacename}} -Right hand side of Maxwell's third equation in integral form in -free space. Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwelliiiintfree \\ - &\RHSmaxwelliiiintfree[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiiint}{\oarg{boundaryname}\oarg{surfacename}} -Maxwell's third equation in integral form. Note the default values of -the optional arguments. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiiint \\ - &\maxwelliiiint[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiiintm}{\oarg{boundaryname}\oarg{surfacename}} -Maxwell's third equation in integral form with magnetic monopoles. -Note the default values of the optional arguments. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiiintm \\ - &\maxwelliiiintm[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiiintma}{\oarg{boundaryname}\oarg{surfacename}} -Alternate form of Maxwell's third equation in integral form with magnetic -monopoles. Note the default values of the optional arguments. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiiintma \\ - &\maxwelliiiintma[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiiintfree}{\oarg{boundaryname}\oarg{surfacename}} -Maxwell's third equation in integral form in free space. Note the default -values of the optional arguments. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwelliiiintfree \\ - &\maxwelliiiintfree[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwellivint}{\oarg{boundaryname}} -Left hand side of Maxwell's fourth equation in integral form. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\LHSmaxwellivint \\ - &\LHSmaxwellivint[C] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellivint}{\oarg{surfacename}} -Right hand side of Maxwell's fourth equation in integral form. -Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwellivint \\ - &\RHSmaxwellivint[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellivinta}{\oarg{surfacename}} -Alternate form of right hand side of Maxwell's fourth equation in -integral form. Note the default value of the optional argument. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwellivinta \\ - &\RHSmaxwellivinta[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellivintfree}{\oarg{surfacename}} -Right hand side of Maxwell's fourth equation in integral form in -free space. Note the default value of the optional argument. +\checkquantity{linearmassdensity} +\begin{docCommand}[doc updated = 2021-05-02]{luminousintensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\RHSmaxwellivintfree \\ - &\RHSmaxwellivintfree[S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellivint}{\oarg{boundaryname}\oarg{surfacename}} -Maxwell's fourth equation in integral form. Note the default values of -the optional arguments. +\checkquantity{luminousintensity} +\begin{docCommand}{magneticcharge}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwellivint \\ - &\maxwellivint[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellivinta}{\oarg{boundaryname}\oarg{surfacename}} -Alternate form of Maxwell's fourth equation in integral form. -Note the default values of the optional arguments. +\checkquantity{magneticcharge} +\begin{docCommands} + {% + {% + doc name = magneticdipolemoment,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = magneticdipolemomentvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectormagneticdipolemoment,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{magneticdipolemoment} +\begin{docCommands} + {% + {% + doc name = magneticfield,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = magneticfieldvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectormagneticfield,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{magneticfield} +\begin{docCommand}{magneticflux}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwellivinta \\ - &\maxwellivinta[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellivintfree}{\oarg{boundaryname}\oarg{surfacename}} -Maxwell's fourth equation in integral form in free space. -Note the default values of the optional arguments. +\checkquantity{magneticflux} +\begin{docCommand}{mass}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{mysolution*} - &\maxwellivintfree \\ - &\maxwellivintfree[C][S] -\end{mysolution*} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwellidif}{} -Left hand side of Maxwell's first equation in differential form. +\checkquantity{mass} +\begin{docCommand}{mobility}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \LHSmaxwellidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellidif}{} -Right hand side of Maxwell's first equation in differential form. +\checkquantity{mobility} +\begin{docCommand}{momentofinertia}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwellidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellidiffree}{} -Right hand side of Maxwell's first equation in differential form -in free space. +\checkquantity{momentofinertia} +\begin{docCommands} + {% + {% + doc name = momentum,% + doc label = momentumdemo,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = momentumvector,% + doc label = momentumvectordemo,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectormomentum,% + doc label = vectormomentumdemo,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}} },% + }% +\end{docCommands} +\checkquantity{momentum} +\begin{docCommands} + {% + {% + doc name = momentumflux,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = momentumfluxvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectormomentumflux,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{momentumflux} +\begin{docCommand}{numberdensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwellidiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellidif}{} -Maxwell's first equation in differential form. +\checkquantity{numberdensity} +\begin{docCommand}{permeability}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwellidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellidiffree}{} -Maxwell's first equation in differential form in free space. +\checkquantity{permeability} +\begin{docCommand}{permittivity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwellidiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwelliidif}{} -Left hand side of Maxwell's second equation in differential form. +\checkquantity{permittivity} +\begin{docCommand}{planeangle}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \LHSmaxwelliidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliidif}{} -Right hand side of Maxwell's second equation in differential form. +\checkquantity{planeangle} +\begin{docCommand}{polarizability}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliidifm}{} -Right hand side of Maxwell's second equation in differential -form with magnetic monopoles. +\checkquantity{polarizability} +\begin{docCommand}{power}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliidifm \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliidiffree}{} -Right hand side of Maxwell's second equation in differential -form in free space. +\checkquantity{power} +\begin{docCommands} + {% + {% + doc name = poynting,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = poyntingvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorpoynting,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{poynting} +\begin{docCommand}{pressure}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliidiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliidif}{} -Maxwell's second equation in differential form. +\checkquantity{pressure} +\begin{docCommand}{relativepermeability}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwelliidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliidifm}{} -Maxwell's second equation in differential form with magnetic -monopoles. +\checkquantity{relativepermeability} +\begin{docCommand}{relativepermittivity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwelliidifm \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellidiiffree}{} -Maxwell's second equation in differential form in free space. +\checkquantity{relativepermittivity} +\begin{docCommand}{resistance}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwelliidiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwelliiidif}{} -Left hand side of Maxwell's third equation in differential form. +\checkquantity{resistance} +\begin{docCommand}{resistivity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \LHSmaxwelliiidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiidif}{} -Right hand side of Maxwell's third equation in differential form. +\checkquantity{resistivity} +\begin{docCommand}{solidangle}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliiidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiidifm}{} -Right hand side of Maxwell's third equation in differential form -with magnetic monopoles. +\checkquantity{solidangle} +\begin{docCommand}{specificheatcapacity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliiidifm \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwelliiidiffree}{} -Right hand side of Maxwell's third equation in differential form -in free space. +\checkquantity{specificheatcapacity} +\begin{docCommand}{springstiffness}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwelliiidiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiidif}{} -Maxwell's third equation in differential form. +\checkquantity{springstiffness} +\begin{docCommand}{springstretch}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwelliiidif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiidifm}{} -Maxwell's third equation in differential form with magnetic -monopoles. +\checkquantity{springstretch} +\begin{docCommand}{stress}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwelliiidifm \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwelliiidiffree}{} -Maxwell's third equation in differential form in free space. +\checkquantity{stress} +\begin{docCommand}{strain}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwelliiidiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{LHSmaxwellivdif}{} -Left hand side of Maxwell's fourth equation in differential form. +\checkquantity{strain} +\begin{docCommand}{temperature}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \LHSmaxwellivdif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellivdif}{} -Right hand side of Maxwell's fourth equation in differential form. +\checkquantity{temperature} +\begin{docCommands} + {% + {% + doc name = torque,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = torquevector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectortorque,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{torque} +\begin{docCommands} + {% + {% + doc name = velocity,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = velocityvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorvelocity,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = velocityc,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = velocitycvector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorvelocityc,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{velocity} +\checkquantity{velocityc} +\begin{docCommand}{volume}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwellivdif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{RHSmaxwellivdiffree}{} -Right hand side of Maxwell's fourth equation in differential form -in free space. +\checkquantity{volume} +\begin{docCommand}{volumechargedensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSmaxwellivdiffree \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellivdif}{} -Maxwell's fourth equation in differential form. +\checkquantity{volumechargedensity} +\begin{docCommand}{volumemassdensity}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwellivdif \] -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{maxwellivdiffree}{} -Maxwell's fourth equation in differential form in free space. +\checkquantity{volumemassdensity} +\begin{docCommand}{wavelength}{\marg{magnitude}} +\end{docCommand} +\checkquantity{wavelength} +\begin{docCommands} + {% + {% + doc name = wavenumber,% + doc parameter = \marg{magnitude},% + },% + {% + doc new = 2021-02-24,% + doc name = wavenumbervector,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + {% + doc name = vectorwavenumber,% + doc parameter = \marg{\ensuremath{c_1,\dots,c_n}},% + },% + }% +\end{docCommands} +\checkquantity{wavenumber} +\begin{docCommand}{work}{\marg{magnitude}} \end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \maxwellivdiffree \] -\end{dispExample*} +\checkquantity{work} +\begin{docCommand}{youngsmodulus}{\marg{magnitude}} +\end{docCommand} +\checkquantity{youngsmodulus} %\iffalse % %\fi % +% \subsubsection{Defining and Redefining Physical Quantities} +% %\iffalse %<*example> %\fi -\begin{docCommand}{RHSlorentzforce}{} -Right hand side of Lorentz force. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSlorentzforce \] -\end{dispExample*} +\begin{docCommands}[% + doc parameter = \marg{name}\marg{base units}\oarg{derived units}\oarg{alternate units},% + ]% + {% + {% + doc new = 2021-02-16,% + doc name = newscalarquantity,% + },% + {% + doc new=2021-02-21,% + doc name = renewscalarquantity,% + },% + }% + Command to (re)define a new/existing scalar quantity. + If the derived or alternate units are omitted, they are + defined to be the same as the base units. Do not use both + this command and + \refCom{newvectorquantity} or \refCom{renewvectorquantity} + to (re)define a quantity. +\end{docCommands} %\iffalse % %\fi @@ -8918,35 +1166,66 @@ Right hand side of Lorentz force. %\iffalse %<*example> %\fi -\begin{docCommand}{RHSlorentzforcem}{} -Right hand side of Lorentz force with magnetic monopoles. -\end{docCommand} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\[ \RHSlorentzforcem \] -\end{dispExample*} +\begin{docCommands}[% + doc parameter = \marg{name}\marg{base units}\oarg{derived units}\oarg{alternate units},% + ]% + {% + {% + doc new = 2021-02-16,% + doc name = newvectorquantity,% + },% + {% + doc new=2021-02-21,% + doc name = renewvectorquantity,% + },% + }% + Command to (re)define a new/existing vector quantity. + If the derived or alternate units are omitted, they are + defined to be the same as the base units. Do not use both + this command and + \refCom{newscalarquantity} or \refCom{renewscalarquantity} + to (re)define a quantity. +\end{docCommands} %\iffalse % %\fi % -% \subsection{VPython and GlowScript Code} -% There are three ways to deal with VPython\footnote{See the VPython home page at -% \url{https://vpython.org/} for more information.} and GlowScript\footnote{See the -% GlowScript home page at \url{https://glowscript.org/} for more information.} code. -% With very few exceptions, VPython code and GlowScript code are identical. The -% commands with |vpython| in their names can handle both, but for semantic -% completeness there are corresponding commands with |glowscript| in their names. -% Because Classic VPython will no longer be developed, the first line of all -% VPython programs not used in GlowScript will conform to Jupyter syntax. +% \subsubsection{Changing Units}\setplace{ssec:chgunits} +% +% Units are set when \mandi\ is loaded, but the default setting +% can be easily overridden in four ways: command variants that +% are defined when a \linktoplace{ssec:physquants}{physical quantity} +% or \linktoplace{ssec:physconsts}{physical constant} is +% defined, a global modal command (switch), a +% command that sets units for a single instance, and an +% environment that sets units for its duration. All of these +% methods work for both physical quantities and physical +% constants. % %\iffalse %<*example> %\fi -\begin{docCommand}{vpythonline}{\marg{vpythoncode}} -Command for a single line of VPython or GlowScript code used inline. -\end{docCommand} -\begin{dispExample} -\vpythonline{from vpython import *} -\end{dispExample} +\begin{docCommands}[% + doc updated = 2021-02-26,% + doc parameter = {},% + ]% + {% + {% + doc name = alwaysusebaseunits,% + },% + {% + doc name = alwaysusederivedunits,% + },% + {% + doc name = alwaysusealternateunits,% + },% + }% + Modal commands (switches) for setting the default unit form for the entire + document. When \mandi\ is loaded, one of these three commands is executed + depending on whether the optional |units| key is provided. See the section + on loading the package for details. Alternate units are the default because + they are the most likely ones to be seen in introductory physics textbooks. +\end{docCommands} %\iffalse % %\fi @@ -8954,12 +1233,32 @@ Command for a single line of VPython or GlowScript code used inline. %\iffalse %<*example> %\fi -\begin{docCommand}{glowscriptline}{\marg{glowscriptcode}} -Command for a single line of GlowScript code used inline. Note that with very -few exceptions, GlowScript code is identical to VPython code. -\end{docCommand} +\begin{docCommands}[% + doc updated = 2021-02-26,% + doc parameter = \marg{content},% + ]% + {% + {% + doc name = hereusebaseunits,% + },% + {% + doc name = hereusederivedunits,% + },% + {% + doc name = hereusedalternateunits,% + },% + }% + Commands for setting the unit form on the fly for a single instance. The + example uses momentum and the Coulomb constant, but they work for any + defined quantity and constant. +\end{docCommands} \begin{dispExample} -\glowscriptline{xyplane = box(pos=vector(0,0,0),length=10,width=10,height=0.05)} + \( \hereusebaseunits{\momentum{5}} \) \\ + \( \hereusederivedunits{\momentum{5}} \) \\ + \( \hereusealternateunits{\momentum{5}} \) \\ + \( \hereusebaseunits{\oofpez} \) \\ + \( \hereusederivedunits{\oofpez} \) \\ + \( \hereusealternateunits{\oofpez} \) \end{dispExample} %\iffalse % @@ -8968,545 +1267,281 @@ few exceptions, GlowScript code is identical to VPython code. %\iffalse %<*example> %\fi -\begin{docEnvironment}{vpythonblock}{\marg{caption}\marg{label}} -Environment for a block of VPython code. A caption and label are -required. The label can be used by \cs{ref} or \cs{hyperref}. -\end{docEnvironment} -\begin{docEnvironment}{glowscriptblock}{\marg{caption}\marg{label}} -Functionally identical to \refEnv{vpythonblock}. -\end{docEnvironment} +\begin{docEnvironments}[% + doc updated = 2021-02-26,% + doc parameter = {},% + ]% + {% + {% + doc name = usebaseunits,% + doc description = use base units,% + },% + {% + doc name = usederivedunits,% + doc description = use derived units,% + },% + {% + doc name = usealternateunits,% + doc description = use alternate units,% + },% + }% + Inside these environments units are changed for the duration + of the environment regardless of the global default setting. +\end{docEnvironments} \begin{dispExample} -\begin{vpythonblock}{Example VPython Listing}{listing1} - from vpython import * - - sphere(pos=vector(1,2,3),color=color.green) - # create a named arrow - MyArrow=arrow(pos=earth.pos,axis=fscale*Fnet,color=color.green) - print ("arrow.pos = "), arrow.pos -\end{vpythonblock} + \( \momentum{5} \) \\ + \( \oofpez \) \\ + \begin{usebaseunits} + \( \momentum{5} \) \\ + \( \oofpez \) \\ + \end{usebaseunits} + \begin{usederivedunits} + \( \momentum{5} \) \\ + \( \oofpez \) \\ + \end{usederivedunits} + \begin{usealternateunits} + \( \momentum{5} \) \\ + \( \oofpez \) + \end{usealternateunits} \end{dispExample} %\iffalse % %\fi % +% \subsection{Physical Constants} +% \subsubsection{Typesetting Physical Constants}\setplace{ssec:physconsts} +% +% Take the quantity \( \oofpezmathsymbol \), sometimes called the +% \href{https://en.wikipedia.org/wiki/Coulomb_constant}{Coulomb constant}, +% as the prototypical +% \href{https://en.wikipedia.org/wiki/Physical_constant}{physical constant} +% in an introductory physics course. Here are all the ways to access this +% quantity in \mandi. As you can see, these commands are almost identical +% to the corresponding commands for physical quantities. +% %\iffalse %<*example> %\fi -\begin{docCommand}{vpythonfile}{\marg{caption}\marg{label}\meta{filename}} -Typesets a file in the current directory containing VPython code. A caption and -label are required. The label can be used by \cs{ref} and \cs{hyperref}. -The listing will begin on a new page. -\end{docCommand} -\begin{docCommand}{glowscriptfile}{\marg{caption}\marg{label}\meta{filename}} -Functionally identical to \refCom{vpythonfile}. +\begin{docCommand}[doc label = oofpezdemo]{oofpez}{} + Command for the Coulomb constant. The constant's numerical precision and + default units will depend on the options passed to \mandi\ at load time. + Alternate units and approximate numerical values are the defaults. Other + units can be forced as demonstrated. \end{docCommand} \begin{dispExample} -\vpythonfile{Program vdemo.py}{vlisting1}{vdemo.py} + \( \oofpez \) \\ + \( \oofpezapproximatevalue \) \\ + \( \oofpezprecisevalue \) \\ + \( \oofpezmathsymbol \) \\ + \( \oofpezbaseunits \) \\ + \( \oofpezderivedunits \) \\ + \( \oofpezalternateunits \) \\ + \( \oofpezonlybaseunits \) \\ + \( \oofpezonlyderivedunits \) \\ + \( \oofpezonlyalternateunits \) \end{dispExample} %\iffalse % %\fi % -% \subsection{Boxes and Environments} +% \subsubsection{Checking Physical Constants} % %\iffalse %<*example> %\fi -\begin{docCommand}{emptyanswer}{\oarg{wdth}\oarg{hght}} -Typesets empty space for filling answer boxes, so there is nothing to see. +\begin{docCommand}[doc updated = 2021-02-26]{checkconstant}{\marg{name}} + Command to check and typeset the constant's name, base units, derived + units, alternate units, mathematical symbol, approximate value, and + precise value. \end{docCommand} -\begin{dispExample*}{sidebyside} -\emptyanswer[0.75][0.2] -\end{dispExample*} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{activityanswer} - {\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}} -Main environment for typesetting boxed answers. -\end{docEnvironment} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi +% \subsubsection{Predefined Physical Constants} % -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{adjactivityanswer} - {\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}} -Like \refEnv{activityanswer} but adjusts vertically to tightly surround text. -\end{docEnvironment} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi +% Every other defined physical constant can be treated similarly. Just +% replace |oofpez| with the constant's name. Unfortunately, there is no +% universal agreement on the names of every constant so don't fret if +% the names used here vary from other sources. Here are all the physical +% constants, with all their units, defined in \mandi. +% The constants \refCom{coulombconstant} and \refCom{biotsavartconstant} are +% defined as semantic aliases for, respectively, \refCom{oofpez} and +% \refCom{mzofp}. % %\iffalse %<*example> %\fi -\begin{docCommand}{emptybox} - {\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}} -Provides a fixed-size box with optional text. +\begin{docCommand}[doc description = exact]{avogadro}{} \end{docCommand} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{adjemptybox} - {\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}} -Like \refCom{emptybox} but adjusts vertically to tightly surround text. +\checkconstant{avogadro} +\begin{docCommand}[doc new = 2021-02-02]{biotsavartconstant}{} \end{docCommand} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{answerbox} - {\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}} -Wrapper for \refCom{emptybox}. +\checkconstant{biotsavartconstant} +\begin{docCommand}{bohrradius}{} \end{docCommand} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{adjanswerbox} - {\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}} -Wrapper for \refCom{adjemptybox}. +\checkconstant{bohrradius} +\begin{docCommand}[doc description = exact]{boltzmann}{} \end{docCommand} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{smallanswerbox}{\oarg{txt}\oarg{bgclr}} -Answer box with height 0.10 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth}. +\checkconstant{boltzmann} +\begin{docCommand}[doc new = 2021-02-02]{coulombconstant}{} \end{docCommand} -\begin{dispExample} -\smallanswerbox[][red] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mediumanswerbox}{\oarg{txt}\oarg{bgclr}} -Answer box with height 0.20 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth}. +\checkconstant{coulombconstant} +\begin{docCommand}{earthmass}{} \end{docCommand} -\begin{dispExample} -\mediumanswerbox[][lightgray] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{largeanswerbox}{\oarg{txt}\oarg{bgclr}} -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). +\checkconstant{earthmass} +\begin{docCommand}{earthmoondistance}{} \end{docCommand} -\begin{dispListing} -\largeanswerbox[][lightgray] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{largeranswerbox}{\oarg{txt}\oarg{bgclr}} -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). +\checkconstant{earthmoondistance} +\begin{docCommand}{earthradius}{} \end{docCommand} -\begin{dispListing} -\largeranswerbox[][lightgray] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hugeanswerbox}{\oarg{txt}\oarg{bgclr}} -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). +\checkconstant{earthradius} +\begin{docCommand}{earthsundistance}{} \end{docCommand} -\begin{dispListing} -\hugeanswerbox[][lightgray] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hugeranswerbox}{\oarg{txt}\oarg{bgclr}} -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). +\checkconstant{earthsundistance} +\begin{docCommand}{electroncharge}{} \end{docCommand} -\begin{dispListing} -\hugeranswerbox[][lightgray] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{fullpageanswerbox}{\oarg{txt}\oarg{bgclr}} -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). +\checkconstant{electroncharge} +\begin{docCommand}{electronCharge}{} \end{docCommand} -\begin{dispListing} -\fullpageanswerbox[][lightgray] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{smallanswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 0.10 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth}. The first argument isn't -really optional, and \emph{must} be different for each form used. -Content can be typed in the box and saved with a PDF editor or viewer -that supports PDF forms. +\checkconstant{electronCharge} +\begin{docCommand}{electronmass}{} \end{docCommand} -\begin{dispExample} -\smallanswerform[a1][Type your response here.] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{mediumanswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 0.20 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth}. The first argument isn't -really optional, and \textbf{must} be different for each form used. -Content can be typed in the box and saved with a PDF editor or viewer -that supports PDF forms. +\checkconstant{electronmass} +\begin{docCommand}[doc description = exact]{elementarycharge}{} \end{docCommand} -\begin{dispExample} -\mediumanswerform[a1][Type your response here.] -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{largeanswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 0.25 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth} (too large to show here). +\checkconstant{elementarycharge} +\begin{docCommand}{finestructure}{} \end{docCommand} -\begin{dispListing} -\largeanswerform[a1][Type your response here.] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{largeranswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 0.33 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth} (too large to show here). +\checkconstant{finestructure} +\begin{docCommand}{hydrogenmass}{} \end{docCommand} -\begin{dispListing} -\largeranswerform[a1][Type your response here.] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hugeanswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 0.50 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth} (too large to show here). +\checkconstant{hydrogenmass} +\begin{docCommand}{moonearthdistance}{} \end{docCommand} -\begin{dispListing} -\hugeanswerform[a1][Type your response here.] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{hugeranswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 0.75 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth} (too large to show here). +\checkconstant{moonearthdistance} +\begin{docCommand}{moonmass}{} \end{docCommand} -\begin{dispListing} -\hugeranswerform[a1][Type your response here.] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{fullpageanswerform}{\oarg{name}\oarg{prompt}} -Editable answer form with height 1.00 that of current \cs{textheight} -and width 0.90 that of current \cs{linewidth} (too large to show here). +\checkconstant{moonmass} +\begin{docCommand}{moonradius}{} \end{docCommand} -\begin{dispListing} -\fullpageanswerform[a1][Type your response here.] -\end{dispListing} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{miinstructornote}{} -Environment for highlighting notes to instructors. -\end{docEnvironment} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{mistudentnote}{} -Environment for highlighting notes to students. -\end{docEnvironment} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{miderivation}{} -Environment for mathematical derivations based on the |align| environment. -See \refEnv{mysolution} for how to handle long lines in this environment. -Note that using this environment resets the counter for equation numbering. -If you want continuous numbering throughout your document, use the |align| -environment. -\end{docEnvironment} -\begin{docEnvironment}{miderivation*}{} -Like \refEnv{miderivation} but suppresses line numbers. -\end{docEnvironment} -\begin{dispExample} -\begin{miderivation} - \gamma &= \relgamma{\magvect{v}} && \text{given} \\ - \gamma\squared &= \ooomx{\inparens{\frac{\magvect{v}}{c}}\squared} - &&\text{square both sides} \\ - \frac{1}{\gamma\squared} &= 1-\inparens{\frac{\magvect{v}}{c}}\squared - &&\text{reciprocal of both sides} \\ - \inparens{\frac{\magvect{v}}{c}}\squared &= 1-\frac{1}{\gamma\squared} - &&\text{rearrange} \\ - \frac{\magvect{v}}{c} &= \sqrt{1-\frac{1}{\gamma\squared}} - &&\text{square root of both sides} -\end{miderivation} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{mistandard}{} -Environment for standards for standards-based grading. -\end{docEnvironment} -\begin{dispExample} -\begin{mistandard} - I can create a standard which reflects deep student learning. -\end{mistandard} -\end{dispExample} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{bwinstructornote}{} -Like \refEnv{miinstructornote} but in black and grey. -\end{docEnvironment} -\begin{dispExample} -\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{dispExample} +\checkconstant{moonradius} +\begin{docCommand}{mzofp}{} +\end{docCommand} +\checkconstant{mzofp} +\begin{docCommand}{neutronmass}{} +\end{docCommand} +\checkconstant{neutronmass} +\begin{docCommand}{oofpez}{} +\end{docCommand} +\checkconstant{oofpez} +\begin{docCommand}{oofpezcs}{} +\end{docCommand} +\checkconstant{oofpezcs} +\begin{docCommand}[doc description = exact]{planck}{} +\end{docCommand} +\checkconstant{planck} +\begin{docCommand}{planckbar}{} +\end{docCommand} +\checkconstant{planckbar} +\begin{docCommand}{planckc}{} +\end{docCommand} +\checkconstant{planckc} +\begin{docCommand}{protoncharge}{} +\end{docCommand} +\checkconstant{protoncharge} +\begin{docCommand}{protonCharge}{} +\end{docCommand} +\checkconstant{protonCharge} +\begin{docCommand}{protonmass}{} +\end{docCommand} +\checkconstant{protonmass} +\begin{docCommand}{rydberg}{} +\end{docCommand} +\checkconstant{rydberg} +\begin{docCommand}[doc description = exact]{speedoflight}{} +\end{docCommand} +\checkconstant{speedoflight} +\begin{docCommand}{stefanboltzmann}{} +\end{docCommand} +\checkconstant{stefanboltzmann} +\begin{docCommand}{sunearthdistance}{} +\end{docCommand} +\checkconstant{sunearthdistance} +\begin{docCommand}{sunradius}{} +\end{docCommand} +\checkconstant{sunradius} +\begin{docCommand}{surfacegravfield}{} +\end{docCommand} +\checkconstant{surfacegravfield} +\begin{docCommand}{universalgrav}{} +\end{docCommand} +\checkconstant{universalgrav} +\begin{docCommand}{vacuumpermeability}{} +\end{docCommand} +\checkconstant{vacuumpermeability} +\begin{docCommand}{vacuumpermittivity}{} +\end{docCommand} +\checkconstant{vacuumpermittivity} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docEnvironment}{bwstudentnote}{} -Like \refEnv{mistudentnote} but in black and grey. -\end{docEnvironment} -\begin{dispExample} -\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{dispExample} -%\iffalse -% -%\fi +% \subsubsection{Defining and Redefining Physical Constants} % %\iffalse %<*example> %\fi -\begin{docEnvironment}{bwderivation}{} -Like \refEnv{miderivation} but in black and grey. See \refEnv{mysolution} for -how to handle long lines in this environment. -\end{docEnvironment} -\begin{docEnvironment}{bwderivation*}{} -Like \refEnv{bwderivation} but suppresses line numbers. -\end{docEnvironment} -\begin{dispExample} -\begin{bwderivation} - \gamma &= \relgamma{\magvect{v}} && \text{given} \\ - \gamma\squared &= \ooomx{\inparens{\frac{\magvect{v}}{c}}\squared} - &&\text{square both sides} \\ - \frac{1}{\gamma\squared} &= 1-\inparens{\frac{\magvect{v}}{c}}\squared - &&\text{reciprocal of both sides} \\ - \inparens{\frac{\magvect{v}}{c}}\squared &= 1-\frac{1}{\gamma\squared} - &&\text{rearrange} \\ - \frac{\magvect{v}}{c}&=\sqrt{1-\frac{1}{\gamma\squared}} - &&\text{square root of both sides} -\end{bwderivation} -\end{dispExample} +\begin{docCommands}[% + doc parameter = {% + \marg{name}\marg{symbol}\marg{approximate value}\marg{precise value}\marg{base units}\\ + \oarg{derived units}\oarg{alternate units}% + },% + ]% + {% + {% + doc new = 2021-02-16,% + doc name = newphysicalconstant,% + },% + {% + doc new=2021-02-21,% + doc name = renewphysicalconstant,% + },% + }% + Command to define/redefine a new/existing physical constant. + If the derived or alternate units are omitted, they are + defined to be the same as the base units. +\end{docCommands} %\iffalse % %\fi % +% \subsubsection{Changing Precision} +% +% \linktoplace{ssec:chgunits}{Changing units} works for +% physical constants just as it does for physical quantities. +% A similar mechanism is provided for changing the precision +% of physical constants' numerical values. +% %\iffalse %<*example> %\fi -\begin{docEnvironment}{bwstandard}{} -Like \refEnv{mistandard} but in black and grey. -\end{docEnvironment} -\begin{dispExample} -\begin{bwstandard} - I can create a standard which reflects deep student learning. -\end{bwstandard} -\end{dispExample} +\begin{docCommands}[% + doc new = 2021-02-16,% + doc parameter = {},% + ]% + {% + {% + doc name = alwaysuseapproximateconstants,% + },% + {% + doc name = alwaysusepreciseconstants,% + },% + }% + Modal commands (switches) for setting the default precision for the entire + document. The default when the package is loaded is set by the presence or + absence of the \refKey{preciseconstants} key. +\end{docCommands} %\iffalse % %\fi @@ -9514,41 +1549,23 @@ Like \refEnv{mistandard} but in black and grey. %\iffalse %<*example> %\fi -\begin{docEnvironment}{mysolution}{} -Alias for simple environment for mathematical derivations based on the -|align| environment. The second example shows how to handle long lines -for this and the derivation environments. -\end{docEnvironment} -\begin{docEnvironment}{mysolution*}{} -Like \refEnv{mysolution} but suppresses line numbers. -\end{docEnvironment} +\begin{docCommands}[% + doc new = 2021-02-16,% + doc parameter = \marg{content},% + ]% + {% + {% + doc name = hereuseapproximateconstants,% + },% + {% + doc name = hereusepreciseconstants,% + },% + }% + Commands for setting the precision on the fly for a single instance. +\end{docCommands} \begin{dispExample} -\begin{mysolution} - \gamma &= \relgamma{\magvect{v}} - && \text{given} \\ - \gamma\squared &= \ooomx{\inparens{\frac{\magvect{v}}{c}}\squared} - &&\text{square both sides} \\ - \frac{1}{\gamma\squared} &= 1-\inparens{\frac{\magvect{v}}{c}}\squared - &&\text{reciprocal of both sides} \\ - \inparens{\frac{\magvect{v}}{c}}\squared &= 1-\frac{1}{\gamma\squared} - &&\text{rearrange} \\ - \frac{\magvect{v}}{c} &= \sqrt{1-\frac{1}{\gamma\squared}} - &&\text{square root of both sides} -\end{mysolution} -\begin{mysolution*} - \vect{E} &= \electricfield{\mivector{1,2,3}} + \electricfield{\mivector{2,4,6}} - \nonumber \\ - &\hphantom{{}=\electricfield{\mivector{1,1,1}}}+\electricfield{\mivector{3,5,6}} - &&\text{superposition} \\ - \vect{E} &= \electricfield{\mivector{2,3,4}} + \electricfield{\mivector{2,4,6}} - \nonumber \\ - &+ \electricfield{\mivector{1,1,1}} +\electricfield{\mivector{3,5,6}} - &&\text{superposition again} \\ - \vect{E} &= \electricfield{\mivector{2,3,4}} + \electricfield{\mivector{2,4,6}} - \nonumber \\ - &\quad + \electricfield{\mivector{1,1,1}} +\electricfield{\mivector{3,5,6}} - && \text{more superposition} -\end{mysolution*} + \( \hereuseapproximateconstants{\oofpez} \) \\ + \( \hereusepreciseconstants{\oofpez} \) \end{dispExample} %\iffalse % @@ -9557,83 +1574,273 @@ Like \refEnv{mysolution} but suppresses line numbers. %\iffalse %<*example> %\fi -\begin{docEnvironment}{problem}{\marg{problemname}} -Creates a simple environment for problem solutions. This -environment is mainly for students. Each new problem starts on a new page in an -effort to force organization upon students. The environment also creates a new -|enumerate| environment called |parts| for which labels are alphabetic, -reflecting the organization of multipart textbook problems. The \cs{item} command -is renamed \cs{problempart} to, again, help with organization for newcomers to -\LaTeX. A typical example would be structured as follows. -\end{docEnvironment} -\begin{dispExample*}{sidebyside, lefthand ratio=0.50} -\begin{problem}{Chapter 2 Problem 1} -This problem has two parts. -\begin{parts} - \problempart - This is the first part - \problempart - This is the second part -\end{parts} -\end{problem} -\end{dispExample*} -%\iffalse -% -%\fi -% -%\iffalse -%<*example> -%\fi -\begin{docCommand}{reason}{\marg{text}} -In a \refEnv{mysolution} environment, this aligns the text arguments with the -end of the longest line and nicely handles line wrapping. Make sure your margins -are narrow enough. You may need to experiment. -\end{docCommand} +\begin{docEnvironments}[% + doc new = 2021-02-16,% + doc parameter = {},% + ]% + {% + {% + doc name = useapproximateconstants,% + doc description = use approximate constants,% + },% + {% + doc name = usepreciseconstants,% + doc description = use precise constants,% + },% + }% + Inside these environments precision is changed for the duration + of the environment regardless of the global default setting. +\end{docEnvironments} \begin{dispExample} -\begin{mysolution} - c^2 &= a^2 + b^2 && \reason{given} \\ - a^2 &= c^2 - b^2 && \reason{Rearrange, and add some extra text just for fun.} \\ - a &= \sqrt{c^2 - b^2} && \reason{Take square root of both sides.} -\end{mysolution} + \( \oofpez \) \\ + \begin{useapproximateconstants} + \( \oofpez \) \\ + \end{useapproximateconstants} + \begin{usepreciseconstants} + \( \oofpez \) \\ + \end{usepreciseconstants} + \( \oofpez \) \end{dispExample} %\iffalse % %\fi % -% \newpage -% \subsection{Miscellaneous Commands} +% \subsection{Predefined Units and Constructs} % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{checkpoint}{} -Centered checkpoint for student discussion. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\checkpoint -\end{dispExample*} -%\iffalse -% -%\fi +% These commands should be used only in defining or +% redefining physical quantities or physical +% constants. One exception is \refCom{emptyunit}, +% which may be used for explanatory purposes. % %\iffalse %<*example> %\fi -\begin{docCommand}{image}{\oarg{scalesize}\marg{filename}\marg{caption}\marg{label}} -Centered figure displayed actual size with caption. The optional argument can be -a scale factor (with 1 being the original image size), explicit \texttt{width} -and/or \texttt{height} parameters, or even an \texttt{angle} for rotating the -image. Be sure to give each image a unique label. This allows you to refer back -to the image subsequently just by using the label. -\end{docCommand} -\begin{dispListing} - \image{sampleimage.pdf}{An image shown actual size.}{img-label1} - \image[scale=1.5]{sampleimage.pdf}{An image scaled by 1.5 times.}{img-label2} - \image[height=1cm,width=2cm]{sampleimage.pdf}{An image resized.}{img-label3} - \image[width=0.8\textwidth]{sampleimage.pdf}{An image 80 percent the text width.} - {img-label4} - \image[angle=45]{sampleimage.pdf}{An image actual size, rotated.}{img-label5} -\end{dispListing} +\begin{docCommands}[% + doc parameter = {},% + ]% + {% + {% + doc name = per,% + },% + {% + doc name = usk,% + },% + {% + doc parameter = \marg{magnitude}\marg{unit},% + doc name = unit,% + },% + {% + doc name = emptyunit,% + },% + {% + doc name = ampere,% + },% + {% + doc name = atomicmassunit,% + },% + {% + doc name = candela,% + },% + {% + doc name = coulomb,% + },% + {% + doc name = degree,% + },% + {% + doc name = electronvolt,% + doc description = not SI but common in introductory physics,% + },% + {% + doc new = 2021-04-15,% + doc name = ev,% + doc description = alias,% + },% + {% + doc name = farad,% + },% + {% + doc name = henry,% + },% + {% + doc name = hertz,% + },% + {% + doc name = joule,% + },% + {% + doc name = kelvin,% + },% + {% + doc new = 2021-04-15,% + doc name = kev,% + doc description = alias,% + },% + {% + doc new = 2021-04-15,% + doc name = kiloelectronvolt,% + doc description = not SI but common in introductory physics,% + },% + {% + doc name = kilogram,% + },% + {% + doc name = lightspeed,% + doc description = not SI but common relativity,% + },% + {% + doc new = 2021-04-15,% + doc name = megaelectronvolt,% + doc description = not SI but common in introductory physics,% + },% + {% + doc name = meter,% + },% + {% + doc name = metre,% + doc description = alias,% + },% + {% + doc new = 2021-04-15,% + doc name = mev,% + doc description = alias,% + },% + {% + doc name = mole,% + },% + {% + doc name = newton,% + },% + {% + doc name = ohm,% + },% + {% + doc name = pascal,% + },% + {% + doc name = radian,% + },% + {% + doc name = second,% + },% + {% + doc name = siemens,% + },% + {% + doc name = steradian,% + },% + {% + doc name = tesla,% + },% + {% + doc name = volt,% + },% + {% + doc name = watt,% + },% + {% + doc name = weber,% + },% + {% + doc name = tothetwo,% + doc description = postfix,% + },% + {% + doc name = tothethree,% + doc description = postfix,% + },% + {% + doc name = tothefour,% + doc description = postfix,% + },% + {% + doc name = inverse,% + doc description = postfix,% + },% + {% + doc name = totheinversetwo,% + doc description = postfix,% + },% + {% + doc name = totheinversethree,% + doc description = postfix,% + },% + {% + doc name = totheinversefour,% + doc description = postfix,% + },% + }% +\end{docCommands} +\begin{dispExample} + \( \per \) \\ + \( \usk \) \\ + \( \unit{3}{\meter\per\second} \) \\ + \( \emptyunit \) \\ + \( \ampere \) \\ + \( \atomicmassunit \) \\ + \( \candela \) \\ + \( \coulomb \) \\ + \( \degree \) \\ + \( \electronvolt \) \\ + \( \farad \) \\ + \( \henry \) \\ + \( \hertz \) \\ + \( \joule \) \\ + \( \kelvin \) \\ + \( \kev \) \\ + \( \kilogram \) \\ + \( \lightspeed \) \\ + \( \meter \) \\ + \( \metre \) \\ + \( \mev \) \\ + \( \mole \) \\ + \( \newton \) \\ + \( \ohm \) \\ + \( \pascal \) \\ + \( \radian \) \\ + \( \second \) \\ + \( \siemens \) \\ + \( \steradian \) \\ + \( \tesla \) \\ + \( \volt \) \\ + \( \watt \) \\ + \( \weber \) \\ + \( \emptyunit\tothetwo \) \\ + \( \emptyunit\tothethree \) \\ + \( \emptyunit\tothefour \) \\ + \( \emptyunit\inverse \) \\ + \( \emptyunit\totheinversetwo \) \\ + \( \emptyunit\totheinversethree \) \\ + \( \emptyunit\totheinversefour \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \marg{number},% + ]% + {% + {% + doc name = tento,% + },% + {% + doc name = timestento,% + },% + {% + doc name = xtento,% + },% + }% + Commands for powers of ten and scientific notation. +\end{docCommands} +\begin{dispExample} + \( \tento{-4} \) \\ + \( 3\timestento{8} \) \\ + \( 3\xtento{8} \) +\end{dispExample} %\iffalse % %\fi @@ -9641,1176 +1848,1028 @@ to the image subsequently just by using the label. %\iffalse %<*example> %\fi -\begin{docCommand}{sneakyone}{\marg{thing}} -Shows argument as a sneaky one. +\begin{docCommand}{mivector}{% + \oarg{delimiter}\marg{\ensuremath{c_1,\dots,c_n}}\oarg{units} + }% + Typesets a vector as either numeric or symbolic components with an + optional unit (for numerical components only). There can be more + than three components. The delimiter used in the list of components + can be specified; the default is a comma. The notation mirrors that of + \emph{Matter \& Interactions}. \end{docCommand} -\begin{dispExample*}{sidebyside} -\sneakyone{\frac{\m}{\m}} +\begin{dispExample*}{lefthand ratio=0.65} + \( \mivector{p_0,p_1,p_2,p_3} \) \\ + \( \mivector{\gamma m v_x,\gamma m v_y,\gamma m v_z} \) \\ + \( \mivector{\frac{Q_1Q_2}{x^2},0,0} \) \\ + \( \mivector{-1,0,0} \) \\ + \( \mivector{-1,0,0}[\velocityonlyderivedunits] \) \\ + \( \mivector{-1,0,0}[\meter\per\second] \) \\ + \( \velocity{\mivector{-1,0,0}} \) \end{dispExample*} %\iffalse % %\fi % -%\iffalse -%<*example> -%\fi -\begin{docCommand}{qed}{} -Command for QED symbol. -\end{docCommand} -\begin{dispExample*}{sidebyside} -\qed -\end{dispExample*} -%\iffalse -% -%\fi % \StopEventually{} % -% \newpage -% \section{Source Code} +% \newgeometry{left=0.50in,right=0.50in,top=1.00in,bottom=1.00in} +% \subsection{\mandi\ Source Code} % % \iffalse %<*package> % \fi -% Note the packages that must be present. +% Definine the package version and date for global use, exploiting the fact +% that in a \pkg{.sty} file there is now no need for |\makeatletter| and +% |\makeatother|. This simplifies defining internal commands (with |@| +% in the name) that are not for the user to know about. +% % \begin{macrocode} -\RequirePackage{amsmath} -\RequirePackage{amssymb} -\RequirePackage{array} -\RequirePackage{cancel} -\RequirePackage[dvipsnames]{xcolor} -\RequirePackage{enumitem} -\RequirePackage{environ} -\RequirePackage{esint} -\RequirePackage[g]{esvect} -\RequirePackage{etoolbox} -\RequirePackage{filehook} -\RequirePackage{extarrows} -\RequirePackage{float} -\RequirePackage[T1]{fontenc} -\RequirePackage{graphicx} -\RequirePackage{epstopdf} -\RequirePackage{textcomp} -\RequirePackage{letltxmacro} -\RequirePackage{listings} -\RequirePackage{mathtools} -\RequirePackage[framemethod=TikZ]{mdframed} -\RequirePackage{stackengine} -\RequirePackage{suffix} -\RequirePackage{tensor} -\RequirePackage{xargs} -\RequirePackage{xparse} -\RequirePackage{xspace} -\RequirePackage{ifthen} -\RequirePackage{calligra} -\RequirePackage[hypertexnames=false]{hyperref} -\hypersetup{colorlinks=true,urlcolor=blue} -\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,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{@optsinglemagbars} -\newboolean{@optbaseunits} -\newboolean{@optdrvdunits} -\newboolean{@optaltnunits} -\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{@optsinglemagbars}{false} % this is where you set the default option -\setboolean{@optbaseunits}{false} % this is where you set the default option -\setboolean{@optdrvdunits}{true} % this is where you set the default option -\setboolean{@optaltnunits}{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{singlemagbars}{\setboolean{@optsinglemagbars}{true}} -\DeclareOption{baseunits}{\setboolean{@optbaseunits}{true}} -\DeclareOption{drvdunits}{\setboolean{@optdrvdunits}{true}} -\DeclareOption{approxconsts}{\setboolean{@optapproxconsts}{true}} -\DeclareOption{useradians}{\setboolean{@optuseradians}{true}} -\ProcessOptions\relax +\def\mandi@version{3.0.0} +\def\mandi@date{2021-08-21} +\NeedsTeXFormat{LaTeX2e}[2020-02-02] +\DeclareRelease{v3.0.0}{2021-08-21}{mandi.sty} +\DeclareCurrentRelease{v\mandi@version}{\mandi@date} +\ProvidesPackage{mandi} + [\mandi@date\space v\mandi@version\space Macros for physical quantities] % \end{macrocode} % +% Define a convenient package version command. +% % \begin{macrocode} -\newcommand*{\mandiversion}{\ifmmode% - 2.7.5\mbox{ dated }2019/01/12% - \else% - 2.7.5 dated 2019/01/12% - \fi - }% -\typeout{ } -\typeout{mandi: You're using mandi version \mandiversion.} +\newcommand*{\mandiversion}{v\mandi@version\space dated \mandi@date} +% \end{macrocode} +% +% Load third party packages, documenting why each one is needed. +% +% \begin{macrocode} +\RequirePackage{pgfopts} % needed for key-value interface +\RequirePackage{array} % needed for \checkquantity and \checkconstant +\RequirePackage{iftex} % needed for requiring LuaLaTeX +\RequirePackage{unicode-math} % needed for Unicode support +\RequireLuaTeX % require this engine +% \end{macrocode} +% +% Parts of the unit engine have been rewritten with +% \href{https://www.ctan.org/pkg/xparse}{\pkg{xparse}} for both clarity +% and power. Note that \pkg{xparse} is now part of the \LaTeX\ kernel. +% Other parts have been rewriten in +% \href{https://www.ctan.org/pkg/expl}{\pkg{expl}} with a look to the +% future. +% +% Generic internal selectors. +% +% \begin{macrocode} +\newcommand*{\mandi@selectunits}{} +\newcommand*{\mandi@selectprecision}{} +% \end{macrocode} +% +% Specific internal selectors. +% +% \begin{macrocode} +\newcommand*{\mandi@selectapproximate}[2]{#1} % really \@firstoftwo +\newcommand*{\mandi@selectprecise}[2]{#2} % really \@secondoftwo +\newcommand*{\mandi@selectbaseunits}[3]{#1} % really \@firstofthree +\newcommand*{\mandi@selectderivedunits}[3]{#2} % really \@secondofthree +\newcommand*{\mandi@selectalternateunits}[3]{#3} % really \@thirdofthree +% \end{macrocode} +% +% Document level global switches. +% +% \begin{macrocode} +\NewDocumentCommand{\alwaysusebaseunits}{} + {\renewcommand*{\mandi@selectunits}{\mandi@selectbaseunits}}% +\NewDocumentCommand{\alwaysusederivedunits}{} + {\renewcommand*{\mandi@selectunits}{\mandi@selectderivedunits}}% +\NewDocumentCommand{\alwaysusealternateunits}{} + {\renewcommand*{\mandi@selectunits}{\mandi@selectalternateunits}}% +\NewDocumentCommand{\alwaysuseapproximateconstants}{} + {\renewcommand*{\mandi@selectprecision}{\mandi@selectapproximate}}% +\NewDocumentCommand{\alwaysusepreciseconstants}{} + {\renewcommand*{\mandi@selectprecision}{\mandi@selectprecise}}% +% \end{macrocode} +% +% Document level localized variants. +% +% \begin{macrocode} +\NewDocumentCommand{\hereusebaseunits}{ m }{\begingroup\alwaysusebaseunits#1\endgroup}% +\NewDocumentCommand{\hereusederivedunits}{ m }{\begingroup\alwaysusederivedunits#1\endgroup}% +\NewDocumentCommand{\hereusealternateunits}{ m }{\begingroup\alwaysusealternateunits#1\endgroup}% +\NewDocumentCommand{\hereuseapproximateconstants}{ m }{\begingroup\alwaysuseapproximateconstants#1\endgroup}% +\NewDocumentCommand{\hereusepreciseconstants}{ m }{\begingroup\alwaysusepreciseconstants#1\endgroup}% +% \end{macrocode} +% +% Document level environments. +% +% \begin{macrocode} +\NewDocumentEnvironment{usebaseunits}{}{\alwaysusebaseunits}{}% +\NewDocumentEnvironment{usederivedunits}{}{\alwaysusederivedunits}{}% +\NewDocumentEnvironment{usealternateunits}{}{\alwaysusealternateunits}{}% +\NewDocumentEnvironment{useapproximateconstants}{}{\alwaysuseapproximateconstants}{}% +\NewDocumentEnvironment{usepreciseconstants}{}{\alwaysusepreciseconstants}{}% % \end{macrocode} % -% \noindent This block of code fixes a conflict with the amssymb package. +% \mandi\ now has a key-value interface, implemented with +% \href{https://www.ctan.org/pkg/pgfopts}{\pkg{pgfopts}} and +% \href{https://www.ctan.org/pkg/pgfkeys}{\pkg{pgfkeys}}. +% There are two options:\newline +% \refKey{units}, with values \docValue{base}, \docValue{derived}, or +% \docValue{alternate} selects the default form of units\newline +% \refKey{preciseconstants}, with values \docValue{true} and +% \docValue{false}, selects precise numerical values for constants +% rather than approximate values. +% +% First, define the keys. The key handlers require certain commands defined +% by the unit engine. +% % \begin{macrocode} -\@ifpackageloaded{amssymb}{% - \csundef{square} - \typeout{mandi: Package amssymb detected. Its \protect\square\space - has been redefined.} -}{% - \typeout{mandi: Package amssymb not detected.} +\newif\ifusingpreciseconstants +\pgfkeys{% + /mandi/options/.cd, + initial@setup/.style={% + /mandi/options/buffered@units/.initial=alternate,% + },% + initial@setup,% + preciseconstants/.is if=usingpreciseconstants,% + units/.is choice,% + units/.default=derived,% + units/alternate/.style={/mandi/options/buffered@units=alternate},% + units/base/.style={/mandi/options/buffered@units=base},% + units/derived/.style={/mandi/options/buffered@units=derived},% }% % \end{macrocode} % -% \noindent This block of code defines unit names and symbols. +% Process the options. +% % \begin{macrocode} -\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} -%\H is already defined as a LaTeX accent -\newcommand*{\J}{\joule} -\newcommand*{\N}{\newton} -\newcommand*{\Pa}{\pascal} -\newcommand*{\rad}{\radian} -\newcommand*{\sr}{\steradian} -%\S is already defined as a LaTeX symbol -\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*{\emptyunit}{\ensuremath{\Box}} +\ProcessPgfPackageOptions{/mandi/options} % \end{macrocode} % -% \noindent Define a new named physics quantity or physical constant and -% commands for selecting units. My thanks to Ulrich Diez for contributing -% this code. +% Write a banner to the console showing the options in use. +% % \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*\selectaltnunit[3]{#3} -\newcommand*\selectunit{} -\newcommand*\perpusebaseunit{\let\selectunit=\selectbaseunit} -\newcommand*\perpusedrvdunit{\let\selectunit=\selectdrvdunit} -\newcommand*\perpusealtnunit{\let\selectunit=\selectaltnunit} -\newcommand*\hereusebaseunit[1]{% - \begingroup\perpusebaseunit#1\endgroup}% -\newcommand*\hereusedrvdunit[1]{% - \begingroup\perpusedrvdunit#1\endgroup}% -\newcommand*\hereusealtnunit[1]{% - \begingroup\perpusealtnunit#1\endgroup}% -\newenvironment{usebaseunit}{\perpusebaseunit}{}% -\newenvironment{usedrvdunit}{\perpusedrvdunit}{}% -\newenvironment{usealtnunit}{\perpusealtnunit}{}% -\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{#5altnunit}#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{#5onlyaltnunit}{\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}}}{}}% +\typeout{}% +\typeout{mandi: You are using mandi \mandiversion.}% +\typeout{mandi: This package requires LuaLaTeX.}% +\typeout{mandi: Loadtime options...} % \end{macrocode} % -% \noindent This block of code processes the options. +% Complete the banner by showing currently selected options. +% The value of the \refKey{units} key is used in situ to set +% the default units. +% % \begin{macrocode} -\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{@optsinglemagbars}} - {\typeout{mandi: You'll get single magnitude bars.}} - {\typeout{mandi: You'll get double magnitude bars.}} -\ifthenelse{\boolean{@optbaseunits}} - {\perpusebaseunit % - \typeout{mandi: You'll get base units.}} - {\ifthenelse{\boolean{@optdrvdunits}} - {\perpusedrvdunit % - \typeout{mandi: You'll get derived units.}} - {\perpusealtnunit % - \typeout{mandi: You'll get alternate 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.}} -\typeout{ } +\newcommand*{\mandi@do@setup}{% + \csname alwaysuse\pgfkeysvalueof{/mandi/options/buffered@units}units\endcsname% + \typeout{mandi: You will get \pgfkeysvalueof{/mandi/options/buffered@units}\space units.}% + \ifusingpreciseconstants + \alwaysusepreciseconstants + \typeout{mandi: You will get precise constants.}% + \else + \alwaysuseapproximateconstants + \typeout{mandi: You will get approximate constants.}% + \fi + \typeout{}% +}% +\mandi@do@setup % \end{macrocode} % -% \noindent This is a utility command for picking constants. Do not use this -% command manually. +% Define a setup command that overrides the loadtime options +% when called with new options. A new banner is written to the console. +% % \begin{macrocode} -\ifthenelse{\boolean{@optapproxconsts}} - {\newcommand*{\mi@p}[2]{#1}} % approximate value - {\newcommand*{\mi@p}[2]{#2}} % precise value +\NewDocumentCommand{\mandisetup}{ m }{% + \IfValueT{#1}{% + \pgfqkeys{/mandi/options}{#1} + \typeout{}% + \typeout{mandi: mandisetup options...} + \mandi@do@setup + }% +}% % \end{macrocode} % -% \noindent SI base unit of length or spatial displacement +% Define units and related constructs to be used with the unit engine. +% All single letter macros are now gone. We basically absorbed and +% adapted the now outdated +% \href{https://ctan.org/pkg/siunits}{\pkg{SIunits}} package. +% We make use of |\symup{...}| from the \pkg{unicode-math} package. +% % \begin{macrocode} -\newcommand*{\m}{\metre} +\NewDocumentCommand{\per}{}{/} +\NewDocumentCommand{\usk}{}{\cdot} +\NewDocumentCommand{\unit}{ m m }{{#1}{\,#2}} +\NewDocumentCommand{\ampere}{}{\symup{A}} +\NewDocumentCommand{\atomicmassunit}{}{\symup{u}} +\NewDocumentCommand{\candela}{}{\symup{cd}} +\NewDocumentCommand{\coulomb}{}{\symup{C}} +\NewDocumentCommand{\degree}{}{^{\circ}} +\NewDocumentCommand{\electronvolt}{}{\symup{eV}} +\NewDocumentCommand{\ev}{}{\electronvolt} +\NewDocumentCommand{\farad}{}{\symup{F}} +\NewDocumentCommand{\henry}{}{\symup{H}} +\NewDocumentCommand{\hertz}{}{\symup{Hz}} +\NewDocumentCommand{\joule}{}{\symup{J}} +\NewDocumentCommand{\kelvin}{}{\symup{K}} +\NewDocumentCommand{\kev}{}{\kiloelectronvolt} +\NewDocumentCommand{\kiloelectronvolt}{}{\symup{keV}} +\NewDocumentCommand{\kilogram}{}{\symup{kg}} +\NewDocumentCommand{\lightspeed}{}{\symup{c}} +\NewDocumentCommand{\megaelectronvolt}{}{\symup{MeV}} +\NewDocumentCommand{\meter}{}{\symup{m}} +\NewDocumentCommand{\metre}{}{\meter} +\NewDocumentCommand{\mev}{}{\megaelectronvolt} +\NewDocumentCommand{\mole}{}{\symup{mol}} +\NewDocumentCommand{\newton}{}{\symup{N}} +\NewDocumentCommand{\ohm}{}{\symup\Omega} +\NewDocumentCommand{\pascal}{}{\symup{Pa}} +\NewDocumentCommand{\radian}{}{\symup{rad}} +\NewDocumentCommand{\second}{}{\symup{s}} +\NewDocumentCommand{\siemens}{}{\symup{S}} +\NewDocumentCommand{\steradian}{}{\symup{sr}} +\NewDocumentCommand{\tesla}{}{\symup{T}} +\NewDocumentCommand{\volt}{}{\symup{V}} +\NewDocumentCommand{\watt}{}{\symup{W}} +\NewDocumentCommand{\weber}{}{\symup{Wb}} +\NewDocumentCommand{\tothetwo}{}{^2} % postfix 2 +\NewDocumentCommand{\tothethree}{}{^3} % postfix 3 +\NewDocumentCommand{\tothefour}{}{^4} % postfix 4 +\NewDocumentCommand{\inverse}{}{^{-1}} % postfix -1 +\NewDocumentCommand{\totheinversetwo}{}{^{-2}} % postfix -2 +\NewDocumentCommand{\totheinversethree}{}{^{-3}} % postfix -3 +\NewDocumentCommand{\totheinversefour}{}{^{-4}} % postfix -4 +\NewDocumentCommand{\emptyunit}{}{\mdlgwhtsquare} +\NewDocumentCommand{\tento}{ m }{10^{#1}} +\NewDocumentCommand{\timestento}{ m }{\times\tento{#1}} +\NewDocumentCommand{\xtento}{ m }{\times\tento{#1}} % \end{macrocode} % -% \noindent SI base unit of mass % \begin{macrocode} -\newcommand*{\kg}{\kilogram} +\ExplSyntaxOn +\cs_new:Npn \mandi_newscalarquantity #1#2#3#4 +{% + \cs_new:cpn {#1} ##1 {\unit{##1}{\mandi@selectunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1value} ##1 {##1}% + \cs_new:cpn {#1baseunits} ##1 {\unit{##1}{\mandi@selectbaseunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1derivedunits} ##1 {\unit{##1}{\mandi@selectderivedunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1alternateunits} ##1 {\unit{##1}{\mandi@selectalternateunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1onlybaseunits} {\mandi@selectbaseunits{#2}{#3}{#4}}% + \cs_new:cpn {#1onlyderivedunits} {\mandi@selectderivedunits{#2}{#3}{#4}}% + \cs_new:cpn {#1onlyalternateunits} {\mandi@selectalternateunits{#2}{#3}{#4}}% +}% +\NewDocumentCommand{\newscalarquantity}{ m m O{#2} O{#2} }% +{% + \mandi_newscalarquantity { #1 }{ #2 }{ #3 }{ #4 }% +}% +\ExplSyntaxOff % \end{macrocode} % -% \noindent SI base unit of time or temporal displacement +% Redefining an existing scalar quantity. +% % \begin{macrocode} -\newcommand*{\s}{\second} +\ExplSyntaxOn +\cs_new:Npn \mandi_renewscalarquantity #1#2#3#4 +{% + \cs_set:cpn {#1} ##1 {\unit{##1}{\mandi@selectunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1value} ##1 {##1}% + \cs_set:cpn {#1baseunits} ##1 {\unit{##1}{\mandi@selectbaseunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1derivedunits} ##1 {\unit{##1}{\mandi@selectderivedunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1alternateunits} ##1 {\unit{##1}{\mandi@selectalternateunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1onlybaseunits} {\mandi@selectbaseunits{#2}{#3}{#4}}% + \cs_set:cpn {#1onlyderivedunits} {\mandi@selectderivedunits{#2}{#3}{#4}}% + \cs_set:cpn {#1onlyalternateunits} {\mandi@selectalternateunits{#2}{#3}{#4}}% +}% +\NewDocumentCommand{\renewscalarquantity}{ m m O{#2} O{#2} }% +{% + \mandi_renewscalarquantity { #1 }{ #2 }{ #3 }{ #4 }% +}% +\ExplSyntaxOff % \end{macrocode} % -% \noindent SI base unit of electric current +% Defining a new vector quantity. Note that a corresponding scalar is also defined. +% % \begin{macrocode} -\newcommand*{\A}{\ampere} +\ExplSyntaxOn +\cs_new:Npn \mandi_newvectorquantity #1#2#3#4 +{% + \mandi_newscalarquantity { #1 }{ #2 }{ #3 }{ #4 }% + \cs_new:cpn {vector#1} ##1 {\unit{\mivector{##1}}{\mandi@selectunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1vector} ##1 {\unit{\mivector{##1}}{\mandi@selectunits{#2}{#3}{#4}}}% + \cs_new:cpn {vector#1value} ##1 {\mivector{##1}}% + \cs_new:cpn {#1vectorvalue} ##1 {\mivector{##1}}% + \cs_new:cpn {vector#1baseunits} ##1 {\unit{\mivector{##1}}{\mandi@selectbaseunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1vectorbaseunits} ##1 {\unit{\mivector{##1}}{\mandi@selectbaseunits{#2}{#3}{#4}}}% + \cs_new:cpn {vector#1derivedunits} ##1 {\unit{\mivector{##1}}{\mandi@selectderivedunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1vectorderivedunits} ##1 {\unit{\mivector{##1}}{\mandi@selectderivedunits{#2}{#3}{#4}}}% + \cs_new:cpn {vector#1alternateunits} ##1 {\unit{\mivector{##1}}{\mandi@selectalternateunits{#2}{#3}{#4}}}% + \cs_new:cpn {#1vectoralternateunits} ##1 {\unit{\mivector{##1}}{\mandi@selectalternateunits{#2}{#3}{#4}}}% + \cs_new:cpn {vector#1onlybaseunits} {\mandi@selectbaseunits{#2}{#3}{#4}}% + \cs_new:cpn {#1vectoronlybaseunits} {\mandi@selectbaseunits{#2}{#3}{#4}}% + \cs_new:cpn {vector#1onlyderivedunits} {\mandi@selectderivedunits{#2}{#3}{#4}}% + \cs_new:cpn {#1vectoronlyderivedunits} {\mandi@selectderivedunits{#2}{#3}{#4}}% + \cs_new:cpn {vector#1onlyalternateunits} {\mandi@selectalternateunits{#2}{#3}{#4}}% + \cs_new:cpn {#1vectoronlyalternateunits} {\mandi@selectalternateunits{#2}{#3}{#4}}% +}% +\NewDocumentCommand{\newvectorquantity}{ m m O{#2} O{#2} }% +{% + \mandi_newvectorquantity { #1 }{ #2 }{ #3 }{ #4 }% +}% +\ExplSyntaxOff % \end{macrocode} % -% \noindent SI base unit of thermodynamic temperature +% Redefining an existing vector quantity. Note that a corresponding scalar is also redefined. +% % \begin{macrocode} -\newcommand*{\K}{\kelvin} +\ExplSyntaxOn +\cs_new:Npn \mandi_renewvectorquantity #1#2#3#4 +{% + \mandi_renewscalarquantity { #1 }{ #2 }{ #3 }{ #4 }% + \cs_set:cpn {vector#1} ##1 {\unit{\mivector{##1}}{\mandi@selectunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1vector} ##1 {\unit{\mivector{##1}}{\mandi@selectunits{#2}{#3}{#4}}}% + \cs_set:cpn {vector#1value} ##1 {\mivector{##1}}% + \cs_set:cpn {#1vectorvalue} ##1 {\mivector{##1}}% + \cs_set:cpn {vector#1baseunits} ##1 {\unit{\mivector{##1}}{\mandi@selectbaseunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1vectorbaseunits} ##1 {\unit{\mivector{##1}}{\mandi@selectbaseunits{#2}{#3}{#4}}}% + \cs_set:cpn {vector#1derivedunits} ##1 {\unit{\mivector{##1}}{\mandi@selectderivedunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1vectorderivedunits} ##1 {\unit{\mivector{##1}}{\mandi@selectderivedunits{#2}{#3}{#4}}}% + \cs_set:cpn {vector#1alternateunits} ##1 {\unit{\mivector{##1}}{\mandi@selectalternateunits{#2}{#3}{#4}}}% + \cs_set:cpn {#1vectoralternateunits} ##1 {\unit{\mivector{##1}}{\mandi@selectalternateunits{#2}{#3}{#4}}}% + \cs_set:cpn {vector#1onlybaseunits} {\mandi@selectbaseunits{#2}{#3}{#4}}% + \cs_set:cpn {#1vectoronlybaseunits} {\mandi@selectbaseunits{#2}{#3}{#4}}% + \cs_set:cpn {vector#1onlyderivedunits} {\mandi@selectderivedunits{#2}{#3}{#4}}% + \cs_set:cpn {#1vectoronlyderivedunits} {\mandi@selectderivedunits{#2}{#3}{#4}}% + \cs_set:cpn {vector#1onlyalternateunits} {\mandi@selectalternateunits{#2}{#3}{#4}}% + \cs_set:cpn {#1vectoronlyalternateunits} {\mandi@selectalternateunits{#2}{#3}{#4}}% +}% +\NewDocumentCommand{\renewvectorquantity}{ m m O{#2} O{#2} }% +{% + \mandi_renewvectorquantity { #1 }{ #2 }{ #3 }{ #4 }% +}% +\ExplSyntaxOff % \end{macrocode} % -% \noindent SI base unit of amount +% Defining a new physical constant. +% % \begin{macrocode} -\newcommand*{\mol}{\mole} +\ExplSyntaxOn +\cs_new:Npn \mandi_newphysicalconstant #1#2#3#4#5#6#7 +{% + \cs_new:cpn {#1} {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectunits{#5}{#6}{#7}}}% + \cs_new:cpn {#1mathsymbol} {#2}% + \cs_new:cpn {#1approximatevalue} {#3}% + \cs_new:cpn {#1precisevalue} {#4}% + \cs_new:cpn {#1baseunits} + {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectbaseunits{#5}{#6}{#7}}}% + \cs_new:cpn {#1derivedunits} + {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectderivedunits{#5}{#6}{#7}}}% + \cs_new:cpn {#1alternateunits} + {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectalternateunits{#5}{#6}{#7}}}% + \cs_new:cpn {#1onlybaseunits} {\mandi@selectbaseunits{#5}{#6}{#7}}% + \cs_new:cpn {#1onlyderivedunits} {\mandi@selectderivedunits{#5}{#6}{#7}}% + \cs_new:cpn {#1onlyalternateunits} {\mandi@selectalternateunits{#5}{#6}{#7}}% +}% +\NewDocumentCommand{\newphysicalconstant}{ m m m m m O{#5} O{#5} }% +{% + \mandi_newphysicalconstant { #1 }{ #2 }{ #3 }{ #4 }{ #5 }{ #6 }{ #7 }% +}% +\ExplSyntaxOff % \end{macrocode} % -% \noindent SI base unit of luminous intensity +% Redefining an existing physical constant. +% % \begin{macrocode} -\newcommand*{\cd}{\candela} +\ExplSyntaxOn +\cs_new:Npn \mandi_renewphysicalconstant #1#2#3#4#5#6#7 +{% + \cs_set:cpn {#1} {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectunits{#5}{#6}{#7}}}% + \cs_set:cpn {#1mathsymbol} {#2}% + \cs_set:cpn {#1approximatevalue} {#3}% + \cs_set:cpn {#1precisevalue} {#4}% + \cs_set:cpn {#1baseunits} + {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectbaseunits{#5}{#6}{#7}}}% + \cs_set:cpn {#1derivedunits} + {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectderivedunits{#5}{#6}{#7}}}% + \cs_set:cpn {#1alternateunits} + {\unit{\mandi@selectprecision{#3}{#4}}{\mandi@selectalternateunits{#5}{#6}{#7}}}% + \cs_set:cpn {#1onlybaseunits} {\mandi@selectbaseunits{#5}{#6}{#7}}% + \cs_set:cpn {#1onlyderivedunits} {\mandi@selectderivedunits{#5}{#6}{#7}}% + \cs_set:cpn {#1onlyalternateunits} {\mandi@selectalternateunits{#5}{#6}{#7}}% +}% +\NewDocumentCommand{\renewphysicalconstant}{ m m m m m O{#5} O{#5} }% +{% + \mandi_renewphysicalconstant { #1 }{ #2 }{ #3 }{ #4 }{ #5 }{ #6 }{ #7 }% +}% +\ExplSyntaxOff % \end{macrocode} % +% Define every quantity we need in introductory physics, alphabetically +% for convenience. This is really the core feature of \mandi\ that no other +% package offers. There are commands for quantities that have no dimensions +% or units, and these quantities are defined for semantic completeness. +% % \begin{macrocode} -\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*{\infeet}[1]{\unit{#1}{\mathrm{ft}}} -\newcommand*{\infeetpersecond}[1]{\unit{#1}{\mathrm{ft}\per\s}} -\newcommand*{\infeetpersecondsquared}[1]{\unit{#1}{\mathrm{ft}\per\s\squared}} -\newcommand*{\indegrees}[1]{\unit{#1}{\mkern-\thickmuskip\degree}} -\newcommand*{\inFarenheit}[1]{\unit{#1}{\mkern-\thickmuskip\degree\mathrm{F}}} -\newcommand*{\inCelsius}[1]{\unit{#1}{\mkern-\thickmuskip\degree\mathrm{C}}} -\newcommand*{\inarcminutes}[1]{\unit{#1}{\mkern-\thickmuskip\arcminute}} -\newcommand*{\inarcseconds}[1]{\unit{#1}{\mkern-\thickmuskip\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*{\lorentzfactor}[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]% - [\rad] -\newphysicsquantity{solidangle}% - {\m\squared\usk\reciprocalsquare\m}% - [\sr]% - [\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}% +\newvectorquantity{acceleration}% + {\meter\usk\second\totheinversetwo}% + [\newton\per\kilogram]% + [\meter\per\second\tothetwo]% +\newscalarquantity{amount}% + {\mole}% +\newvectorquantity{angularacceleration}% + {\radian\usk\second\totheinversetwo}% + [\radian\per\second\tothetwo]% + [\radian\per\second\tothetwo]% +\newscalarquantity{angularfrequency}% + {\radian\usk\second\inverse}% + [\radian\per\second]% + [\radian\per\second]% +%\ifmandi@rotradians +% \newphysicalquantity{angularimpulse}% +% {\meter\tothetwo\usk\kilogram\usk\second\inverse\usk\radian\inverse}% +% [\joule\usk\second\per\radian]% +% [\newton\usk\meter\usk\second\per\radian]% +% \newphysicalquantity{angularmomentum}% +% {\meter\tothetwo\usk\kilogram\usk\second\inverse\usk\radian\inverse}% +% [\kilogram\usk\meter\tothetwo\per(\second\usk\radian)]% +% [\newton\usk\meter\usk\second\per\radian]% +%\else + \newvectorquantity{angularimpulse}% + {\kilogram\usk\meter\tothetwo\usk\second\inverse}% + [\kilogram\usk\meter\tothetwo\per\second]% % also \joule\usk\second + [\kilogram\usk\meter\tothetwo\per\second]% % also \newton\usk\meter\usk\second + \newvectorquantity{angularmomentum}% + {\kilogram\usk\meter\tothetwo\usk\second\inverse}% + [\kilogram\usk\meter\tothetwo\per\second]% % also \joule\usk\second + [\kilogram\usk\meter\tothetwo\per\second]% % also \newton\usk\meter\usk\second +%\fi +\newvectorquantity{angularvelocity}% + {\radian\usk\second\inverse}% + [\radian\per\second]% + [\radian\per\second]% +\newscalarquantity{area}% + {\meter\tothetwo}% +\newscalarquantity{areachargedensity}% + {\ampere\usk\second\usk\meter\totheinversetwo}% + [\coulomb\per\meter\tothetwo]% + [\coulomb\per\meter\tothetwo]% +\newscalarquantity{areamassdensity}% + {\kilogram\usk\meter\totheinversetwo}% + [\kilogram\per\meter\tothetwo]% + [\kilogram\per\meter\tothetwo]% +\newscalarquantity{capacitance}% + {\ampere\tothetwo\usk\second\tothefour\usk\kilogram\inverse\usk\meter\totheinversetwo}% + [\farad]% + [\coulomb\per\volt]% % also \coulomb\tothetwo\per\newton\usk\meter, \second\per\ohm +\newscalarquantity{charge}% + {\ampere\usk\second}% + [\coulomb]% + [\coulomb]% % also \farad\usk\volt +\newvectorquantity{cmagneticfield}% + {\kilogram\usk\meter\usk\ampere\inverse\usk\second\totheinversethree}% + [\newton\per\coulomb]% % also \volt\per\meter + [\newton\per\coulomb]% +\newscalarquantity{conductance}% + {\ampere\tothetwo\usk\second\tothethree\usk\kilogram\inverse\usk\meter\totheinversetwo}% + [\siemens]% + [\ampere\per\volt]% +\newscalarquantity{conductivity}% + {\ampere\tothetwo\usk\second\tothethree\usk\kilogram\inverse\usk\meter\totheinversethree}% + [\siemens\per\meter]% + [\ampere\per\volt\usk\meter]% +\newscalarquantity{conventionalcurrent}% + {\ampere}% + [\coulomb\per\second]% + [\ampere]% +\newscalarquantity{current}% + {\ampere}% +\newscalarquantity{currentdensity}% + {\ampere\usk\meter\totheinversetwo}% + [\coulomb\per\second\usk\meter\tothetwo]% + [\ampere\per\meter\tothetwo]% +\newscalarquantity{dielectricconstant}% {}% - []% - [] -\newphysicsquantity{work}% - {\m\squared\usk\kg\usk\s\reciprocalsquared}% - [\J]% - [\N\usk\m] -\newphysicsquantity{energy}% - {\m\squared\usk\kg\usk\s\reciprocalsquared}% - [\J]% - [\N\usk\m] -\newphysicsquantity{power}% - {\m\squared\usk\kg\usk\s\reciprocalcubed}% - [\W]% - [\J\per\s] -\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\squared\usk\kg]% - [\J\usk\s\squared] -\ifthenelse{\boolean{@optuseradians}} - {% - \newphysicsquantity{angularmomentum}% - {\m\squared\usk\kg\usk\reciprocal\s\usk\reciprocal\rad}% - [\kg\usk\m\squared\per(\s\usk\rad)]% - [\N\usk\m\usk\s\per\rad] - \newphysicsquantity{angularimpulse}% - {\m\squared\usk\kg\usk\reciprocal\s\usk\reciprocal\rad}% - [\J\usk\s\per\rad]% - [\N\usk\m\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}% - [\kg\usk\m\squared\per\s]% - [\N\usk\m\usk\s] - \newphysicsquantity{angularimpulse}% - {\m\squared\usk\kg\usk\reciprocal\s}% - [\J\usk\s]% - [\N\usk\m\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}% - [\C\squared\per\N\usk\m\squared]% - [\F\per\m] -\newphysicsquantity{permeability}% - {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}% - [\T\usk\m\per\A]% - [\henry\per\m] -\newphysicsquantity{electricfield}% - {\m\usk\kg\usk\s\reciprocalcubed\usk\reciprocal\A}% - [\N\per\C]% - [\V\per\m] -\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}% - [\N\usk\m\squared\per\C]% - [\V\usk\m] -\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}% - [\T\usk\m\squared]% - [\volt\usk\s] % also \Wb and \J\per\A -\newphysicsquantity{cmagneticfield}% - {\m\usk\kg\usk\s\reciprocalcubed\usk\reciprocal\A}% - [\N\per\C]% - [\V\per\m] -\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}% - [\V]% - [\J\per\C] -\newphysicsquantity{emf}% - {\square\m\usk\kg\usk\reciprocalcubic\s\usk\reciprocal\A}% - [\V]% - [\J\per\C] -\newphysicsquantity{dielectricconstant}% +\newvectorquantity{direction}% {}% - []% - [] -\newphysicsquantity{indexofrefraction}% +\newvectorquantity{displacement}% + {\meter} +\newscalarquantity{duration}% + {\second}% +\newvectorquantity{electricdipolemoment}% + {\ampere\usk\second\usk\meter}% + [\coulomb\usk\meter]% + [\coulomb\usk\meter]% +\newvectorquantity{electricfield}% + {\kilogram\usk\meter\usk\ampere\inverse\usk\second\totheinversethree}% + [\volt\per\meter]% + [\newton\per\coulomb]% +\newscalarquantity{electricflux}% + {\kilogram\usk\meter\tothethree\usk\ampere\inverse\usk\second\totheinversethree}% + [\volt\usk\meter]% + [\newton\usk\meter\tothetwo\per\coulomb]% +\newscalarquantity{electricpotential}% + {\kilogram\usk\meter\tothetwo\usk\ampere\inverse\usk\second\totheinversethree}% + [\volt]% % also \joule\per\coulomb + [\volt]% +\newscalarquantity{electricpotentialdifference}% + {\kilogram\usk\meter\tothetwo\usk\ampere\inverse\usk\second\totheinversethree}% + [\volt]% % also \joule\per\coulomb + [\volt]% +\newscalarquantity{electroncurrent}% + {\second\inverse}% + [\ensuremath{\symup{e}}\per\second]% + [\ensuremath{\symup{e}}\per\second]% +\newscalarquantity{emf}% + {\kilogram\usk\meter\tothetwo\usk\ampere\inverse\usk\second\totheinversethree}% + [\volt]% % also \joule\per\coulomb + [\volt]% +\newscalarquantity{energy}% + {\kilogram\usk\meter\tothetwo\usk\second\totheinversetwo}% + [\joule]% % also \newton\usk\meter + [\joule]% +\newscalarquantity{energyinev}% + {\electronvolt}% +\newscalarquantity{energyinkev}% + {\kiloelectronvolt}% +\newscalarquantity{energyinmev}% + {\megaelectronvolt}% +\newscalarquantity{energydensity}% + {\kilogram\usk\meter\inverse\usk\second\totheinversetwo}% + [\joule\per\meter\tothethree]% + [\joule\per\meter\tothethree]% +\newscalarquantity{energyflux}% + {\kilogram\usk\second\totheinversethree}% + [\watt\per\meter\tothetwo]% + [\watt\per\meter\tothetwo]% +\newscalarquantity{entropy}% + {\kilogram\usk\meter\tothetwo\usk\second\totheinversetwo\usk\kelvin\inverse}% + [\joule\per\kelvin]% + [\joule\per\kelvin]% +\newvectorquantity{force}% + {\kilogram\usk\meter\usk\second\totheinversetwo}% + [\newton]% + [\newton]% % also \kilogram\usk\meter\per\second\tothetwo +\newscalarquantity{frequency}% + {\second\inverse}% + [\hertz]% + [\hertz]% +\newvectorquantity{gravitationalfield}% + {\meter\usk\second\totheinversetwo}% + [\newton\per\kilogram]% + [\newton\per\kilogram]% +\newscalarquantity{gravitationalpotential}% + {\meter\tothetwo\usk\second\totheinversetwo}% + [\joule\per\kilogram]% + [\joule\per\kilogram]% +\newscalarquantity{gravitationalpotentialdifference}% + {\meter\tothetwo\usk\second\totheinversetwo}% + [\joule\per\kilogram]% + [\joule\per\kilogram]% +\newvectorquantity{impulse}% + {\kilogram\usk\meter\usk\second\inverse}% + [\newton\usk\second]% + [\newton\usk\second]% +\newscalarquantity{indexofrefraction}% {}% - []% - [] -\newphysicsquantity{relativepermittivity}% +\newscalarquantity{inductance}% + {\kilogram\usk\meter\tothetwo\usk\ampere\totheinversetwo\usk\second\totheinversetwo}% + [\henry]% + [\volt\usk\second\per\ampere]% % also \square\meter\usk\kilogram\per\coulomb\tothetwo, \Wb\per\ampere +\newscalarquantity{linearchargedensity}% + {\ampere\usk\second\usk\meter\inverse}% + [\coulomb\per\meter]% + [\coulomb\per\meter]% +\newscalarquantity{linearmassdensity}% + {\kilogram\usk\meter\inverse}% + [\kilogram\per\meter]% + [\kilogram\per\meter]% +\newscalarquantity{luminousintensity}% + {\candela}% +\newscalarquantity{magneticcharge}% + {\ampere\usk\meter}% % There is another convention. Be careful! +\newvectorquantity{magneticdipolemoment}% + {\ampere\usk\meter\tothetwo}% + [\ampere\usk\meter\tothetwo]% + [\joule\per\tesla]% +\newvectorquantity{magneticfield}% + {\kilogram\usk\ampere\inverse\usk\second\totheinversetwo}% + [\newton\per\ampere\usk\meter]% % also \Wb\per\meter\tothetwo + [\tesla]% +\newscalarquantity{magneticflux}% + {\kilogram\usk\meter\tothetwo\usk\ampere\inverse\usk\second\totheinversetwo}% + [\tesla\usk\meter\tothetwo]% + [\volt\usk\second]% % also \Wb and \joule\per\ampere +\newscalarquantity{mass}% + {\kilogram}% +\newscalarquantity{mobility}% + {\kilogram\usk\meter\tothetwo\usk\ampere\inverse\usk\second\totheinversefour}% + [\meter\tothetwo\per\volt\usk\second]% + [\coulomb\usk\meter\per\newton\usk\second]% +\newscalarquantity{momentofinertia}% + {\kilogram\usk\meter\tothetwo}% + [\joule\usk\second\tothetwo]% + [\kilogram\usk\meter\tothetwo]% +\newvectorquantity{momentum}% + {\kilogram\usk\meter\usk\second\inverse}% + [\kilogram\usk\meter\per\second]% + [\kilogram\usk\meter\per\second]% +\newvectorquantity{momentumflux}% + {\kilogram\usk\meter\inverse\usk\second\totheinversetwo}% + [\newton\per\meter\tothetwo]% + [\newton\per\meter\tothetwo]% +\newscalarquantity{numberdensity}% + {\meter\totheinversethree}% + [\per\meter\tothethree]% + [\per\meter\tothethree]% +\newscalarquantity{permeability}% + {\kilogram\usk\meter\usk\ampere\totheinversetwo\usk\second\totheinversetwo}% + [\henry\per\meter]% + [\tesla\usk\meter\per\ampere]% +\newscalarquantity{permittivity}% + {\ampere\tothetwo\usk\second\tothefour\usk\kilogram\inverse\usk\meter\totheinversethree}% + [\farad\per\meter]% + [\coulomb\tothetwo\per\newton\usk\meter\tothetwo]% +\newscalarquantity{planeangle}% + {\meter\usk\meter\inverse}% + [\radian]% + [\radian]% +\newscalarquantity{polarizability}% + {\ampere\tothetwo\usk\second\tothefour\usk\kilogram\inverse}% + [\coulomb\usk\meter\tothetwo\per\volt]% + [\coulomb\tothetwo\usk\meter\per\newton]% +\newscalarquantity{power}% + {\kilogram\usk\meter\tothetwo\usk\second\totheinversethree}% + [\watt]% + [\joule\per\second]% +\newvectorquantity{poynting}% + {\kilogram\usk\second\totheinversethree}% + [\watt\per\meter\tothetwo]% + [\watt\per\meter\tothetwo]% +\newscalarquantity{pressure}% + {\kilogram\usk\meter\inverse\usk\second\totheinversetwo}% + [\pascal]% + [\newton\per\meter\tothetwo]% +\newscalarquantity{relativepermeability} {}% - []% - [] -\newphysicsquantity{relativepermeability} +\newscalarquantity{relativepermittivity}% {}% - []% - [] -\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{momentumflux}% - {\reciprocal\m\usk\kg\usk\s\reciprocalsquared}% - [\N\per\m\squared]% - [\N\per\m\squared] -\newphysicsquantity{electroncurrent}% - {\reciprocal\s}% - [\ensuremath{\mathrm{e}}\per\s]% - [\ensuremath{\mathrm{e}}\per\s] -\newphysicsquantity{conventionalcurrent}% - {\A}% - [\A]% - [\C\per\s] -\newphysicsquantity{magneticdipolemoment}% - {\square\m\usk\A}% - [\A\usk\square\m]% - [\J\per\T] -\newphysicsquantity{currentdensity}% - {\reciprocalsquare\m\usk\A}% - [\A\per\square\m]% - [\C\usk\s\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}% - [(\A\per\square\m)\per(\V\per\m)]% - [\siemens\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}% +\newscalarquantity{resistance}% + {\kilogram\usk\meter\tothetwo\usk\ampere\totheinversetwo\usk\second\totheinversethree}% + [\ohm]% % also \volt\per\ampere [\ohm]% - [\V\per\A] -\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*{\vectordisplacement}[1]{\ensuremath{\displacement{\mivector{#1}}}} -\newcommand*{\vectorvelocity}[1]{\ensuremath{\velocity{\mivector{#1}}}} -\newcommand*{\vectorvelocityc}[1]{\ensuremath{\velocityc{\mivector{#1}}}} -\newcommand*{\vectoracceleration}[1]{\ensuremath{\acceleration{\mivector{#1}}}} -\newcommand*{\vectormomentum}[1]{\ensuremath{\momentum{\mivector{#1}}}} -\newcommand*{\vectorforce}[1]{\ensuremath{\force{\mivector{#1}}}} -\newcommand*{\vectorgravitationalfield}[1] - {\ensuremath{\gravitationalfield{\mivector{#1}}}} -\newcommand*{\vectorimpulse}[1]{\ensuremath{\impulse{\mivector{#1}}}} -\newcommand*{\vectorangularvelocity}[1]{\ensuremath{\angularvelocity{\mivector{#1}}}} -\newcommand*{\vectorangularacceleration}[1] - {\ensuremath{\angularacceleration{\mivector{#1}}}} -\newcommand*{\vectorangularmomentum}[1]{\ensuremath{\angularmomentum{\mivector{#1}}}} -\newcommand*{\vectorangularimpulse}[1]{\ensuremath{\angularimpulse{\mivector{#1}}}} -\newcommand*{\vectortorque}[1]{\ensuremath{\torque{\mivector{#1}}}} -\newcommand*{\vectorwavenumber}[1]{\ensuremath{\wavenumber{\mivector{#1}}}} -\newcommand*{\vectorelectricfield}[1]{\ensuremath{\electricfield{\mivector{#1}}}} -\newcommand*{\vectorelectricdipolemoment}[1] - {\ensuremath{\electricdipolemoment{\mivector{#1}}}} -\newcommand*{\vectormagneticfield}[1]{\ensuremath{\magneticfield{\mivector{#1}}}} -\newcommand*{\vectorcmagneticfield}[1]{\ensuremath{\cmagneticfield{\mivector{#1}}}} -\newcommand*{\vectormagneticdipolemoment}[1] - {\ensuremath{\magneticdipolemoment{\mivector{#1}}}} -\newcommand*{\vectorcurrentdensity}[1]{\ensuremath{\currentdensity{\mivector{#1}}}} - \newcommand*{\lv}{\ensuremath{\left\langle}} -\newcommand*{\vectorenergyflux}[1]{\ensuremath{\energyflux{\mivector{#1}}}} -\newcommand*{\vectormomentumflux}[1]{\ensuremath{\momentumflux{\mivector{#1}}}} -\newcommand*{\poyntingvector}{\vectorenergyflux} -\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 } - }% +\newscalarquantity{resistivity}% + {\kilogram\usk\meter\tothethree\usk\ampere\totheinversetwo\usk\second\totheinversethree}% + [\ohm\usk\meter]% + [\volt\usk\meter\per\ampere]% +\newscalarquantity{solidangle}% + {\meter\tothetwo\usk\meter\totheinversetwo}% + [\steradian]% + [\steradian]% +\newscalarquantity{specificheatcapacity}% + {\meter\tothetwo\usk\second\totheinversetwo\usk\kelvin\inverse}% + [\joule\per\kelvin\usk\kilogram]% + [\joule\per\kelvin\usk\kilogram] +\newscalarquantity{springstiffness}% + {\kilogram\usk\second\totheinversetwo}% + [\newton\per\meter]% + [\newton\per\meter]% +\newscalarquantity{springstretch}% % This is really just a displacement. + {\meter}% +\newscalarquantity{stress}% + {\kilogram\usk\meter\inverse\usk\second\totheinversetwo}% + [\pascal]% + [\newton\per\meter\tothetwo]% +\newscalarquantity{strain}% + {}% +\newscalarquantity{temperature}% + {\kelvin}% +%\ifmandi@rotradians +% \newphysicalquantity{torque}% +% {\kilogram\usk\meter\tothetwo\usk\second\totheinversetwo\usk\radian\inverse}% +% [\newton\usk\meter\per\radian]% +% [\newton\usk\meter\per\radian]% +%\else +\newvectorquantity{torque}% + {\kilogram\usk\meter\tothetwo\usk\second\totheinversetwo}% + [\newton\usk\meter]% + [\newton\usk\meter]% +%\fi +\newvectorquantity{velocity}% + {\meter\usk\second\inverse}% + [\meter\per\second]% + [\meter\per\second]% +\newvectorquantity{velocityc}% + {\lightspeed}% + [\lightspeed]% + [\lightspeed]% +\newscalarquantity{volume}% + {\meter\tothethree}% +\newscalarquantity{volumechargedensity}% + {\ampere\usk\second\per\meter\totheinversethree}% + [\coulomb\per\meter\tothethree]% + [\coulomb\per\meter\tothethree]% +\newscalarquantity{volumemassdensity}% + {\kilogram\usk\meter\totheinversethree}% + [\kilogram\per\meter\tothethree]% + [\kilogram\per\meter\tothethree]% +\newscalarquantity{wavelength}% % This is really just a displacement. + {\meter}% +\newvectorquantity{wavenumber}% + {\meter\inverse}% + [\per\meter]% + [\per\meter]% +\newscalarquantity{work}% + {\kilogram\usk\meter\tothetwo\usk\second\totheinversetwo}% + [\joule]% % also \newton\usk\meter but discouraged + [\joule]% +\newscalarquantity{youngsmodulus}% % This is really just a stress. + {\kilogram\usk\meter\inverse\usk\second\totheinversetwo}% + [\pascal]% + [\newton\per\meter\tothetwo]% +% \end{macrocode} +% +% Define physical constants for introductory physics, again alphabetically +% for convenience. +% +% \begin{macrocode} +\newphysicalconstant{avogadro}% + {\symup{N_A}}% + {6\timestento{23}}{6.02214076\timestento{23}}% % exact 2019 value + {\mole\inverse}% + [\per\mole]% + [\per\mole]% +\newphysicalconstant{biotsavartconstant}% % alias for \mzofp + {\symup{\frac{\mu_o}{4\pi}}}% + {\tento{-7}}{\tento{-7}}% + {\kilogram\usk\meter\usk\ampere\totheinversetwo\usk\second\totheinversetwo}% + [\henry\per\meter]% + [\tesla\usk\meter\per\ampere]% +\newphysicalconstant{bohrradius}% + {\symup{a_o}}% + {5.3\timestento{-11}}{5.29177210903\timestento{-11}}% + {\meter}% +\newphysicalconstant{boltzmann}% + {\symup{k_B}}% + {1.4\timestento{-23}}{1.380649\timestento{-23}}% % exact 2019 value + {\kilogram\usk\meter\tothetwo\usk\second\totheinversetwo\usk\kelvin\inverse}% + [\joule\per\kelvin]% + [\joule\per\kelvin]% +\newphysicalconstant{coulombconstant}% % alias for \oofpez + {\symup{\frac{1}{4\pi\epsilon_o}}}% + {9\timestento{9}}{8.9875517923\timestento{9}}% + {\kilogram\usk\meter\tothethree\usk\ampere\totheinversetwo\usk\second\totheinversefour}% + [\meter\per\farad]% + [\newton\usk\meter\tothetwo\per\coulomb\tothetwo]% +\newphysicalconstant{earthmass}% + {\symup{M_{Earth}}}% + {6.0\timestento{24}}{5.9722\timestento{24}}% + {\kilogram}% +\newphysicalconstant{earthmoondistance}% + {\symup{d_{EM}}}% + {3.8\timestento{8}}{3.81550\timestento{8}}% + {\meter}% +\newphysicalconstant{earthradius}% + {\symup{R_{Earth}}}% + {6.4\timestento{6}}{6.3781\timestento{6}}% + {\meter}% +\newphysicalconstant{earthsundistance}% + {\symup{d_{ES}}}% + {1.5\timestento{11}}{1.496\timestento{11}}% + {\meter}% +\newphysicalconstant{electroncharge}% + {\symup{q_e}}% + {-\elementarychargeapproximatevalue}{-\elementarychargeprecisevalue}% + {\ampere\usk\second}% + [\coulomb]% + [\coulomb]% +\newphysicalconstant{electronCharge}% + {\symup{Q_e}}% + {-\elementarychargeapproximatevalue}{-\elementarychargeprecisevalue}% + {\ampere\usk\second}% + [\coulomb]% + [\coulomb]% +\newphysicalconstant{electronmass}% + {\symup{m_e}}% + {9.1\timestento{-31}}{9.1093837015\timestento{-31}}% + {\kilogram}% +\newphysicalconstant{elementarycharge}% + {\symup{e}}% + {1.6\timestento{-19}}{1.602176634\timestento{-19}}% % exact 2019 value + {\ampere\usk\second}% + [\coulomb]% + [\coulomb]% +\newphysicalconstant{finestructure}% + {\symup{\alpha}}% + {\frac{1}{137}}{7.2973525693\timestento{-3}}% + {}% +\newphysicalconstant{hydrogenmass}% + {\symup{m_H}}% + {1.7\timestento{-27}}{1.6737236\timestento{-27}}% + {\kilogram}% +\newphysicalconstant{moonearthdistance}% + {\symup{d_{ME}}}% + {3.8\timestento{8}}{3.81550\timestento{8}}% + {\meter}% +\newphysicalconstant{moonmass}% + {\symup{M_{Moon}}}% + {7.3\timestento{22}}{7.342\timestento{22}}% + {\kilogram}% +\newphysicalconstant{moonradius}% + {\symup{R_{Moon}}}% + {1.7\timestento{6}}{1.7371\timestento{6}}% + {\meter}% +\newphysicalconstant{mzofp}% + {\symup{\frac{\mu_o}{4\pi}}}% + {\tento{-7}}{\tento{-7}}% + {\kilogram\usk\meter\usk\ampere\totheinversetwo\usk\second\totheinversetwo}% + [\henry\per\meter]% + [\tesla\usk\meter\per\ampere]% +\newphysicalconstant{neutronmass}% + {\symup{m_n}}% + {1.7\timestento{-27}}{1.67492749804\timestento{-27}}% + {\kilogram}% +\newphysicalconstant{oofpez}% + {\symup{\frac{1}{4\pi\epsilon_o}}}% + {9\timestento{9}}{8.9875517923\timestento{9}}% + {\kilogram\usk\meter\tothethree\usk\ampere\totheinversetwo\usk\second\totheinversefour}% + [\meter\per\farad]% + [\newton\usk\meter\tothetwo\per\coulomb\tothetwo]% +\newphysicalconstant{oofpezcs}% + {\symup{\frac{1}{4\pi\epsilon_o c^2}}}% + {\tento{-7}}{\tento{-7}}% + {\kilogram\usk\meter\usk\ampere\totheinversetwo\usk\second\totheinversetwo}% + [\tesla\usk\meter\tothetwo]% + [\newton\usk\second\tothetwo\per\coulomb\tothetwo]% +\newphysicalconstant{planck}% + {\symup{h}}% + {6.6\timestento{-34}}{6.62607015\timestento{-34}}% % exact 2019 value + {\kilogram\usk\meter\tothetwo\usk\second\inverse}% + [\joule\usk\second]% + [\joule\usk\second]% +% \end{macrocode} +% +% See \url{https://tex.stackexchange.com/a/448565/218142}. +% +% +% \begin{macrocode} +\newphysicalconstant{planckbar}% + {\symup{\lower0.18ex\hbox{\mathchar"AF}\mkern-7mu h}}% + {1.1\timestento{-34}}{1.054571817\timestento{-34}}% + {\kilogram\usk\meter\tothetwo\usk\second\inverse}% + [\joule\usk\second]% + [\joule\usk\second] +\newphysicalconstant{planckc}% + {\symup{hc}}% + {2.0\timestento{-25}}{1.98644586\timestento{-25}}% + {\kilogram\usk\meter\tothethree\usk\second\totheinversetwo}% + [\joule\usk\meter]% + [\joule\usk\meter]% +\newphysicalconstant{protoncharge}% + {\symup{q_p}}% + {+\elementarychargeapproximatevalue}{+\elementarychargeprecisevalue}% + {\ampere\usk\second}% + [\coulomb]% + [\coulomb]% +\newphysicalconstant{protonCharge}% + {\symup{Q_p}}% + {+\elementarychargeapproximatevalue}{+\elementarychargeprecisevalue}% + {\ampere\usk\second}% + [\coulomb]% + [\coulomb]% +\newphysicalconstant{protonmass}% + {\symup{m_p}}% + {1.7\timestento{-27}}{1.672621898\timestento{-27}}% + {\kilogram}% +\newphysicalconstant{rydberg}% + {\symup{R_{\infty}}}% + {1.1\timestento{7}}{1.0973731568160\timestento{7}}% + {\meter\inverse}% +\newphysicalconstant{speedoflight}% + {\symup{c}}% + {3\timestento{8}}{2.99792458\timestento{8}}% % exact value + {\meter\usk\second\inverse}% + [\meter\per\second]% + [\meter\per\second] +\newphysicalconstant{stefanboltzmann}% + {\symup{\sigma}}% + {5.7\timestento{-8}}{5.670374\timestento{-8}}% + {\kilogram\usk\second\totheinversethree\usk\kelvin\totheinversefour}% + [\watt\per\meter\tothetwo\usk\kelvin\tothefour]% + [\watt\per\meter\tothetwo\usk\kelvin\tothefour] +\newphysicalconstant{sunearthdistance}% + {\symup{d_{SE}}}% + {1.5\timestento{11}}{1.496\timestento{11}}% + {\meter}% +\newphysicalconstant{sunmass}% + {\symup{M_{Sun}}}% + {2.0\timestento{30}}{1.98855\timestento{30}}% + {\kilogram}% +\newphysicalconstant{sunradius}% + {\symup{R_{Sun}}}% + {7.0\timestento{8}}{6.957\timestento{8}}% + {\meter}% +\newphysicalconstant{surfacegravfield}% + {\symup{g}}% + {9.8}{9.807}% + {\meter\usk\second\totheinversetwo}% + [\newton\per\kilogram]% + [\newton\per\kilogram]% +\newphysicalconstant{universalgrav}% + {\symup{G}}% + {6.7\timestento{-11}}{6.67430\timestento{-11}}% + {\meter\tothethree\usk\kilogram\inverse\usk\second\totheinversetwo}% + [\newton\usk\meter\tothetwo\per\kilogram\tothetwo]% % also \joule\usk\meter\per\kilogram\tothetwo + [\newton\usk\meter\tothetwo\per\kilogram\tothetwo]% +\newphysicalconstant{vacuumpermeability}% + {\symup{\mu_o}}% + {4\pi\timestento{-7}}{4\pi\timestento{-7}}% % as of 2018 no longer 4\pi\timestento{-7} + {\kilogram\usk\meter\usk\ampere\totheinversetwo\usk\second\totheinversetwo}% + [\henry\per\meter]% + [\tesla\usk\meter\per\ampere]% +\newphysicalconstant{vacuumpermittivity}% + {\symup{\epsilon_o}}% + {9\timestento{-12}}{8.854187817\timestento{-12}}% + {\ampere\tothetwo\usk\second\tothefour\usk\kilogram\inverse\usk\meter\totheinversethree}% + [\farad\per\meter]% + [\coulomb\tothetwo\per\newton\usk\meter\tothetwo]% +% \end{macrocode} +% +% Diagnostic commands to provide sanity checks on commands that +% represent physical quantities and constants. +% +% \begin{macrocode} +\ExplSyntaxOn +\NewDocumentCommand{\checkquantity}{ m }% +{% + % Works for both scalar and vector quantities (without vector in the name!). + \begin{center} + \begin{tabular}{% + >{\bfseries\small} + p{0.5\linewidth} + p{0.1\linewidth} + p{0.1\linewidth} + p{0.1\linewidth} }% - {% - \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} - }% + name & & & \tabularnewline + \ttfamily\footnotesize{\token_to_str:c {#1}} & & & \tabularnewline + \end{tabular}~ % This nonbreaking space is important! + \begin{tabular}{% + >{\bfseries\small}p{0.25\linewidth} + >{\bfseries\small}p{0.25\linewidth} + >{\bfseries\small}p{0.25\linewidth} }% - }% + base & derived & alternate \tabularnewline + \footnotesize{\( \use:c {#1onlybaseunits} \)} & + \footnotesize{\( \use:c {#1onlyderivedunits} \)} & + \footnotesize{\( \use:c {#1onlyalternateunits} \)} + \end{tabular} + \end{center} +}% +\NewDocumentCommand{\checkconstant}{ m }% +{% + \begin{center} + \begin{tabular}{% + >{\bfseries\small} + p{0.5\linewidth} + p{0.1\linewidth} + p{0.1\linewidth} + p{0.1\linewidth} + }% + name & & & \tabularnewline + \ttfamily\footnotesize{\token_to_str:c {#1}} & & & \tabularnewline + \end{tabular}~ % This nonbreaking space is important! + \begin{tabular}{% + >{\bfseries\small}p{0.25\linewidth} + >{\bfseries\small}p{0.25\linewidth} + >{\bfseries\small}p{0.25\linewidth} + }% + symbol & approximate & precise \tabularnewline + \footnotesize{\( \use:c {#1mathsymbol} \)} & + \footnotesize{\( \use:c {#1approximatevalue} \)} & + \footnotesize{\( \use:c {#1precisevalue} \)} + \end{tabular}~ % This nonbreaking space is important! + \begin{tabular}{% + >{\bfseries\small}p{0.25\linewidth} + >{\bfseries\small}p{0.25\linewidth} + >{\bfseries\small}p{0.25\linewidth} + }% + base & derived & alternate \tabularnewline + \footnotesize{\( \use:c {#1onlybaseunits} \)} & + \footnotesize{\( \use:c {#1onlyderivedunits} \)} & + \footnotesize{\( \use:c {#1onlyalternateunits} \)} + \end{tabular} + \end{center} +}% \ExplSyntaxOff +% \end{macrocode} % -\newcommand*{\zerovect}{\vect{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{@optsinglemagbars}} - {\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}[1]{\ensuremath{\mivector{#1}}} -\newcommand*{\vectordirection}{\direction} -\newcommand*{\factorvect}[1]{\magvect{#1}\dirvect{#1}} -\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{@optsinglemagbars}} - {\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{@optsinglemagbars}} - {\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{@optsinglemagbars}} - {\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*{\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{@optsinglemagbars}} - {\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}\cdot{#2}}} -\newcommand*{\vectDotvect}[2]{\ensuremath{{#1}\bullet{#2}}} -\newcommand*{\vectdotsvect}[2]{\ensuremath{\scompsvect{#1}\cdot\scompsvect{#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}\cdot\scompsdvect{#2}}} -\newcommand*{\vectDotsdvect}[2]{\ensuremath{\scompsvect{#1}\bullet\scompsdvect{#2}}} -\newcommand*{\vectdotsDvect}[2]{\ensuremath{\scompsvect{#1}\cdot\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}\cdot\scompsvectsub{#3}{#4}}} -\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}\cdot\scompsdvectsub{#3}{#4}}} -\newcommand*{\vectsubDotsdvectsub}[4]{\ensuremath{% - \scompsvectsub{#1}{#2}\bullet\scompsdvectsub{#3}{#4}}} -\newcommand*{\vectsubdotsDvectsub}[4]{\ensuremath{% - \scompsvectsub{#1}{#2}\cdot\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}\cdot\scompsdvect{#3}}} -\newcommand*{\vectsubDotsdvect}[3]{\ensuremath{% - \scompsvectsub{#1}{#2}\bullet\scompsdvect{#3}}} -\newcommand*{\vectsubdotsDvect}[3]{\ensuremath{% - \scompsvectsub{#1}{#2}\cdot\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}\cdot\scompsvect{#3}}} -\newcommand*{\dervectDotsvect}[3]{\ensuremath{% - \scompsdervect{#1}{#2}\bullet\scompsvect{#3}}} -\newcommand*{\Dervectdotsvect}[3]{\ensuremath{% - \scompsDervect{#1}{#2}\cdot\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}\cdot\scompsdervect{#2}{#3}}} -\newcommand*{\vectDotsdervect}[3]{\ensuremath{% - \scompsvect{#1}\bullet\scompsdervect{#2}{#3}}} -\newcommand*{\vectdotsDervect}[3]{\ensuremath{% - \scompsvect{#1}\cdot\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}\cdot\scompsdvect{#3}}} -\newcommand*{\dervectDotsdvect}[3]{\ensuremath{% - \scompsdervect{#1}{#2}\bullet\scompsdvect{#3}}} -\newcommand*{\DervectdotsDvect}[3]{\ensuremath{% - \scompsDervect{#1}{#2}\cdot\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}\cdot{#3}}} -\newcommand*{\ltripleScalar}[3]{\ensuremath{% - {#1}\boldsymbol{\times}{#2}\bullet{#3}}} -\newcommand*{\rtriplescalar}[3]{\ensuremath{% - {#1}\cdot{#2}\boldsymbol{\times}{#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 +% \refCom{mivector} is a workhorse command. +% Orginal code provided by |@egreg|.\newline +% See \url{https://tex.stackexchange.com/a/39054/218142}. +% +% +% \begin{macrocode} +\ExplSyntaxOn \NewDocumentCommand{\mivector}{ O{,} m o }% {% - \mi_vector:nn { #1 } { #2 } - \IfValueT{#3}{\;{#3}} + \mi_vector:nn { #1 } { #2 }% + \IfValueT{#3}{\,{#3}}% }% \seq_new:N \l__mi_list_seq \cs_new_protected:Npn \mi_vector:nn #1 #2 @@ -10823,1355 +2882,8 @@ Command for QED symbol. }% }% \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*{\anglebetween}[2]{\ensuremath{\theta_{\vect{#1},\vect{#2}}}} -\newcommand*{\bra}[1]{\ensuremath{\left\langle{#1}\right\lvert}} -\newcommand*{\ket}[1]{\ensuremath{\left\lvert{#1}\right\rangle}} -\newcommand*{\bracket}[2]{\ensuremath{\left\langle{#1}\!\!\right.% - \left\lvert{#2}\right\rangle}} -\newphysicsconstant{oofpez}% - {\ensuremath{\frac{1}{\phantom{_o}4\pi\epsilon_0}}}% - {\mi@p{9}{8.9875517873681764}\timestento{9}}% - {\m\cubed\usk\kg\usk\reciprocalquartic\s\usk\A\reciprocalsquared}% - [\newton\usk\m\squared\per\coulomb\squared]% - [\m\per\farad] -\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}% - [\N\usk\s\squared\per\C\squared]% - [\T\usk\m\squared] -\newphysicsconstant{vacuumpermittivity}% - {\ensuremath{\epsilon_0}}% - {\mi@p{9.0}{8.854187817}\timestento{-12}}% - {\m\reciprocalcubed\usk\reciprocal\kg\usk\s\quarted\usk\A\squared}% - [\C\squared\per\N\usk\m\squared]% - [\F\per\m] -\newphysicsconstant{mzofp}% - {\ensuremath{\frac{\phantom{_oo}\mu_0\phantom{_o}}{4\pi}}}% - {\tento{-7}}% - {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}% - [\tesla\usk\m\per\A]% - [\henry\per\m] -\newphysicsconstant{vacuumpermeability}% - {\ensuremath{\mu_0}}% - {4\pi\timestento{-7}}% - {\m\usk\kg\usk\s\reciprocalsquared\usk\A\reciprocalsquared}% - [\T\usk\m\per\A]% - [\henry\per\m] -\newphysicsconstant{boltzmann}% - {\ensuremath{k_B}}% - {\mi@p{1.4}{1.38064852}\timestento{-23}}% - {\m\squared\usk\kg\usk\reciprocalsquare\s\usk\reciprocal\K}% - [\J\per\K]% - [\J\per\K] -\newphysicsconstant{boltzmannineV}% - {\ensuremath{k_B}}% - {\mi@p{8.6}{8.6173303}\timestento{-5}}% - {\eV\usk\reciprocal\K}% - [\eV\per\K]% - [\eV\per\K] -\newphysicsconstant{stefanboltzmann}% - {\ensuremath{\sigma}}% - {\mi@p{5.7}{5.670367}\timestento{-8}}% - {\kg\usk\s\reciprocalcubed\usk\K\reciprocalquarted}% - [\W\per\m\squared\usk\K\quarted]% - [\W\per\m\squared\usk\K\quarted] -\newphysicsconstant{planck}% - {\ensuremath{h}}% - {\mi@p{6.6}{6.626070040}\timestento{-34}}% - {\m\squared\usk\kg\usk\reciprocal\s}% - [\J\usk\s]% - [\J\usk\s] -\newphysicsconstant{planckineV}% - {\ensuremath{h}}% - {\mi@p{4.1}{4.135667662}\timestento{-15}}% - {\eV\usk\s}% - [\eV\usk\s]% - [\eV\usk\s] -\newphysicsconstant{planckbar}% - {\ensuremath{\hslash}}% - {\mi@p{1.1}{1.054571800}\timestento{-34}}% - {\m\squared\usk\kg\usk\reciprocal\s}% - [\J\usk\s]% - [\J\usk\s] -\newphysicsconstant{planckbarineV}% - {\ensuremath{\hslash}}% - {\mi@p{6.6}{6.582119514}\timestento{-16}}% - {\eV\usk\s}% - [\eV\usk\s]% - [\eV\usk\s] -\newphysicsconstant{planckc}% - {\ensuremath{hc}}% - {\mi@p{2.0}{1.98644568}\timestento{-25}}% - {\m\cubed\usk\kg\usk\reciprocalsquare\s}% - [\J\usk\m]% - [\J\usk\m] -\newphysicsconstant{planckcineV}% - {\ensuremath{hc}}% - {\mi@p{1240}{1.23984193}\timestento{3}}% - {\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.0973731568508}\timestento{7}}% - {\reciprocal\m}% - [\reciprocal\m]% - [\reciprocal\m] -\newphysicsconstant{bohrradius}% - {\ensuremath{a_0}}% - {\mi@p{5.3}{5.2917721067}\timestento{-11}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{finestructure}% - {\ensuremath{\alpha}}% - {\mi@p{\frac{1}{137}}{7.2973525664\timestento{-3}}}% - {}% - []% - [] -\newphysicsconstant{avogadro}% - {\ensuremath{N_A}}% - {\mi@p{6.0}{6.022140857}\timestento{23}}% - {\reciprocal\mol}% - [\reciprocal\mol]% - [\reciprocal\mol] -\newphysicsconstant{universalgrav}% - {\ensuremath{G}}% - {\mi@p{6.7}{6.67408}\timestento{-11}}% - {\m\cubed\usk\reciprocal\kg\usk\s\reciprocalsquared}% - [\N\usk\m\squared\per\kg\squared]% - [\J\usk\m\per\kg\squared] -\newphysicsconstant{surfacegravfield}% - {\ensuremath{g}}% - {\mi@p{9.8}{9.807}}% - {\m\usk\s\reciprocalsquared}% - [\N\per\kg]% - [\N\per\kg] -\newphysicsconstant{clight}% - {\ensuremath{c}}% - {\mi@p{3}{2.99792458}\timestento{8}}% - {\m\usk\reciprocal\s}% - [\m\per\s]% - [\m\per\s] -\newphysicsconstant{clightinfeet}% - {\ensuremath{c}}% - {\mi@p{1}{0.983571}}% - {\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.672621898}\timestento{-27}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{Mneutron}% - {\ensuremath{m_n}}% - {\mi@p{1.7}{1.674927471}\timestento{-27}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{Mhydrogen}% - {\ensuremath{m_H}}% - {\mi@p{1.7}{1.6737236}\timestento{-27}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{Melectron}% - {\ensuremath{m_e}}% - {\mi@p{9.1}{9.10938356}\timestento{-31}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{echarge}% - {\ensuremath{e}}% - {\mi@p{1.6}{1.6021766208}\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.97237}\timestento{24}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{MMoon}% - {\ensuremath{M_{\text{Moon}}}}% - {\mi@p{7.3}{7.342}\timestento{22}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{MSun}% - {\ensuremath{M_{\text{Sun}}}}% - {\mi@p{2.0}{1.98855}\timestento{30}}% - {\kg}% - [\kg]% - [\kg] -\newphysicsconstant{REarth}% - {\ensuremath{R_{\text{Earth}}}}% - {\mi@p{6.4}{6.371}\timestento{6}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{RMoon}% - {\ensuremath{R_{\text{Moon}}}}% - {\mi@p{1.7}{1.7371}\timestento{6}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{RSun}% - {\ensuremath{R_{\text{Sun}}}}% - {\mi@p{7.0}{6.957}\timestento{8}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{ESdist}% - {\magvectsub{r}{ES}}% - {\mi@p{1.5}{1.496}\timestento{11}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{SEdist}% - {\magvectsub{r}{SE}}% - {\mi@p{1.5}{1.496}\timestento{11}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{EMdist}% - {\magvectsub{r}{EM}}% - {\mi@p{3.8}{3.81550}\timestento{8}}% - {\m}% - [\m]% - [\m] -\newphysicsconstant{MEdist}% - {\magvectsub{r}{ME}}% - {\mi@p{3.8}{3.81550}\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*{\dslashx}[1]{\ensuremath{\,\mathchar'26\mkern-12mu \mathrm{d}{#1}}} -\newcommandx{\evaluatedfromto}[2][2,usedefault]{\ensuremath{% - \Bigg.\Bigg\rvert_{#1}^{#2}}} -\newcommand*{\evaluatedat}{\evaluatedfromto} -\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}}}} -\newcommandx{\seriesfofx}[1][1=x,usedefault]{\ensuremath{% - f({#1}) \approx f(a) + \frac{f^\prime (a)}{1!}({#1}-a) + - \frac{f^{\prime\prime}(a)}{2!}({#1}-a)^2 + - \frac{f^{\prime\prime\prime}(a)}{3!}({#1}-a)^3 + \ldots}\xspace} -\newcommandx{\seriesexpx}[1][1=x,usedefault]{\ensuremath{% - e^{#1} \approx 1 + {#1} + \frac{{#1}^2}{2!} + \frac{{#1}^3}{3!} + \ldots}\xspace} -\newcommandx{\seriessinx}[1][1=x,usedefault]{\ensuremath{% - \sin {#1} \approx {#1} - \frac{{#1}^3}{3!} + \frac{{#1}^5}{5!} - \ldots}\xspace} -\newcommandx{\seriescosx}[1][1=x,usedefault]{\ensuremath{% - \cos {#1} \approx 1 - \frac{{#1}^2}{2!} + \frac{{#1}^4}{4!} - \ldots}\xspace} -\newcommandx{\seriestanx}[1][1=x,usedefault]{\ensuremath{% - \tan {#1} \approx {#1} + \frac{{#1}^3}{3} + \frac{2{#1}^5}{15} + \ldots}\xspace} -\newcommandx{\seriesatox}[1][1=x,usedefault]{\ensuremath{% - a^{#1} \approx 1 + {#1} \ln{a} + \frac{({#1} \ln a)^2}{2!} + - \frac{({#1} \ln a)^3}{3!} + \ldots}\xspace} -\newcommandx{\serieslnoneplusx}[1][1=x,usedefault]{\ensuremath{% - \ln(1 \pm {#1}) \approx \pm\; {#1} - \frac{{#1}^2}{2} \pm \frac{{#1}^3}{3} - % - \frac{{#1}^4}{4} \pm \ldots}\xspace} -\newcommandx{\binomialseries}[1][1=x,usedefault]{\ensuremath{% - (1 + {#1})^n \approx 1 + n{#1} + \frac{n(n-1)}{2!}{#1}^2 + \ldots}\xspace} -\newcommand*{\gradient}{\ensuremath{\boldsymbol{\nabla}}} -\newcommand*{\divergence}{\ensuremath{\boldsymbol{\nabla}\bullet}} -\newcommand*{\curl}{\ensuremath{\boldsymbol{\nabla\times}}} -\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}}} -\newcommandx{\circulation}[1][1]{\ensuremath{\ssub{\Gamma}{#1}}} -\newcommand*{\absof}[1]{\ensuremath{% - \left\lvert{\ifblank{#1}{\:\_\:}{#1}}\right\rvert}} -\newcommand*{\inparens}[1]{\ensuremath{% - \left({\ifblank{#1}{\:\_\:}{#1}}\right)}} -\newcommand*{\magof}[1]{\ensuremath{% - \left\lVert{\ifblank{#1}{\:\_\:}{#1}}\right\rVert}} -\newcommand*{\dimsof}[1]{\ensuremath{% - \left[{\ifblank{#1}{\:\_\:}{#1}}\right]}} -\newcommand*{\unitsof}[1]{\ensuremath{% - \left[{\ifblank{#1}{\:\_\:}{#1}}\right]_u}} -\newcommand*{\changein}[1]{\ensuremath{\delta{#1}}} -\newcommand*{\Changein}[1]{\ensuremath{\Delta{#1}}} -\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}{\mkern-\thickmuskip\degree}} -\newcommand*{\latitudeN}[1]{\unit{#1}{\mkern-\thickmuskip\degree\;\mathrm{N}}} -\newcommand*{\latitudeS}[1]{\unit{#1}{\mkern-\thickmuskip\degree\;\mathrm{S}}} -\newcommand*{\longitude}[1]{\unit{#1}{\mkern-\thickmuskip\degree}} -\newcommand*{\longitudeE}[1]{\unit{#1}{\mkern-\thickmuskip\degree\;\mathrm{E}}} -\newcommand*{\longitudeW}[1]{\unit{#1}{\mkern-\thickmuskip\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} -% Frequently used roots. Prepend |f| for fractional exponents. -\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*{\genericinteractionplaces}[5]{\ensuremath{\inparens{#1} - \frac{\inparens{#2}\inparens{#3}}{\inparens{#4}^2}{{\ifblank{#5}{% - \mivector{\_ , \_ , \_}}{#5}}}}} -\newcommand*{\genericfieldofparticleplaces}[4]{\ensuremath{\inparens{#1} - \frac{\inparens{#2}}{\inparens{#3}^2}{{\ifblank{#4}{\mivector{\_ , \_ , \_}}{#4}}}}} -\newcommand*{\genericpotentialenergyplaces}[4]{\ensuremath{% - \inparens{#1}\frac{\inparens{#2}\inparens{#3}}{\inparens{#4}}}} -\newcommand*{\genericelectricdipoleplaces}[5]{% - \ensuremath{\inparens{#1}\frac{\inparens{#2}\inparens{#3}}{\inparens{#4}^3}% - {{\ifblank{#5}{\mivector{\_ , \_ , \_}}{#5}}}}} -\newcommand*{\genericelectricdipoleonaxisplaces}[5]{% - \ensuremath{\inparens{#1}\frac{2\inparens{#2}\inparens{#3}}{\inparens{#4}^3}% - {{\ifblank{#5}{\mivector{\_ , \_ , \_}}{#5}}}}} -\newcommand*{\gfieldofparticle}{\ensuremath{\universalgravmathsymbol\frac{M}% - {\magsquaredvect{r}}\inparens{-\dirvect{r}}}} -\newcommand*{\gravitationalinteractionplaces}[4]{% - \genericinteractionplaces{\universalgrav}{#1}{#2}{#3}{#4}} -\newcommand*{\gfieldofparticleplaces}[3]{% - \genericfieldofparticleplaces{\universalgrav}{#1}{#2}{#3}} -\newcommand*{\electricinteractionplaces}[4]{% - \genericinteractionplaces{\oofpez}{#1}{#2}{#3}{#4}} -\newcommand*{\Efieldofparticleplaces}[3]{% - \genericfieldofparticleplaces{\oofpez}{#1}{#2}{#3}} -\newcommand*{\Bfieldofparticleplaces}[5]{\ensuremath{\inparens{\mzofp}% - \frac{\inparens{#1}\inparens{#2}}{\inparens{#3}^2}{{\ifblank{#4}{% - \mivector{\_ , \_ , \_}}{#4}}}\times{{\ifblank{#5}{\mivector{\_ , \_ , \_}}{#5}}}}} -\newcommand*{\springinteractionplaces}[3]{\ensuremath{\inparens{#1} - \inparens{#2}{{\ifblank{#3}{\mivector{\_ , \_ , \_}}{#3}}}}} -\newcommand*{\gravitationalpotentialenergyplaces}[3]{\ensuremath{% - -\genericpotentialenergyplaces{\universalgrav}{#1}{#2}{#3}}} -\newcommand*{\electricpotentialenergyplaces}[3]{% - \genericpotentialenergyplaces{\oofpez}{#1}{#2}{#3}} -\newcommand*{\springpotentialenergyplaces}[2]{\ensuremath{% - \onehalf\inparens{#1}\inparens{#2}^2}} -\newcommand*{\electricdipoleonaxisplaces}[4]{% - \genericelectricdipoleonaxisplaces{\oofpez}{\absof{#1}}{#2}{#3}{{\ifblank{#4}{% - \mivector{\_ , \_ , \_}}{#4}}}} -\newcommand*{\electricdipoleonbisectorplaces}[4]{% - \genericelectricdipoleplaces{\oofpez}{\absof{#1}}{#2}{#3}{{\ifblank{#4}{% - \mivector{\_ , \_ , \_}}{#4}}}} -\newcommand{\define}[2]{\newcommand{#1}{#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}}{\magsquaredvect{r}}\dirvect{v}\times - \dirvect{r}}} -\newcommand*{\Efieldofparticle}{\ensuremath{% - \oofpezmathsymbol\frac{Q}{\magsquaredvect{r}}\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]} -\newcommand*{\glowscriptline}{\lstinline[style=vpython]} -\lstnewenvironment{vpythonblock}[2]{% - \lstset{style=vpython,caption={#1},label={#2}}}{} -\lstnewenvironment{glowscriptblock}[2]{% - \lstset{style=vpython,caption={#1},label={#2}}}{} -\newcommand*{\vpythonfile}[3]{% - \newpage\lstinputlisting[style=vpython,caption={#1},label={#2}]{#3}} -\newcommand*{\glowscriptfile}[3]{% - \newpage\lstinputlisting[style=vpython,caption={#1},label={#2}]{#3}} -\newcommandx{\emptyanswer}[2][1=0.80,2=0.1,usedefault] - {\begin{minipage}{#1\textwidth}\hfill\vspace{#2\textheight}\end{minipage}} -\newenvironmentx{activityanswer}[5][1=white,2=black,3=black,4=0.90,% - 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{mistandardstyle}{% - hidealllines=false,skipbelow=\baselineskip,skipabove=\baselineskip, - leftmargin=40pt,rightmargin=40pt,linewidth=1,roundcorner=10, - nobreak=true, - frametitle={STANDARD}, - frametitlebackgroundcolor=cyan!60,frametitlerule=true,frametitlerulewidth=1, - backgroundcolor=cyan!25, - linecolor=black,fontcolor=black,shadow=true} -\NewEnviron{mistandard}{% - \begin{mdframed}[style=mistandardstyle] - \begin{adjactivityanswer}[cyan!25][cyan!25][black] - \BODY - \end{adjactivityanswer} - \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} -}% -\mdfdefinestyle{bwstandardstyle}{% - hidealllines=false,skipbelow=\baselineskip,skipabove=\baselineskip, - leftmargin=40pt,rightmargin=40pt,linewidth=1,roundcorner=10, - nobreak=true, - frametitle={STANDARD}, - frametitlebackgroundcolor=gray!50,frametitlerule=true,frametitlerulewidth=1, - backgroundcolor=gray!20, - linecolor=black,fontcolor=black,shadow=true} -\NewEnviron{bwstandard}{% - \begin{mdframed}[style=bwstandardstyle] - \begin{adjactivityanswer}[gray!20][gray!20][black] - \BODY - \end{adjactivityanswer} - \end{mdframed} -}% -\NewEnviron{mysolution}{% - \setcounter{equation}{0} - \begin{align} - \BODY - \end{align} -}% -\NewEnviron{mysolution*}{% - \setcounter{equation}{0} - \begin{align*} - \BODY - \end{align*} -}% -\newenvironment{problem}[1]{% - \newpage% - \section*{#1}% - \newlist{parts}{enumerate}{2}% - \setlist[parts]{label=(\alph*)}}{\newpage} -\newcommand{\problempart}{\item}% -\newcommand{\reason}[1]{\begin{minipage}{5cm}{#1}\end{minipage}} -\newcommand*{\checkpoint}{% - \vspace{1cm}\begin{center}% - \colorbox{yellow!80}{|--------- CHECKPOINT ---------|}% - \end{center}}% -\newcommandx*{\image}[4][1={scale=1},usedefault]{% - \begin{figure}[H] - \begin{center}% - \includegraphics[#1]{#2}% - \end{center}% - \caption{#3}% - \label{#4}% - \end{figure}} -\newcommand*{\sneakyone}[1]{\ensuremath{\cancelto{1}{#1}}} -\newcommand*{\parallelto}{\ensuremath{{{\mkern3mu\vphantom{\perp}\vrule depth 0pt - \mkern2mu\vrule depth 0pt\mkern3mu}}}} -\newcommand*{\perpendicularto}{\ensuremath{\perp}} -\newcommand*{\qed}{\ensuremath{\text{ Q.E.D.}}} -\newcommand*{\chkquantity}[1]{% - \begin{center} - \begin{tabular}{C{4.5cm} C{4cm} C{4cm} C{4cm}} - name & baseunit & drvdunit & altnunit \tabularnewline - \cs{#1} & \csname #1onlybaseunit\endcsname & \csname #1onlydrvdunit\endcsname & - \csname #1onlyaltnunit\endcsname - \end{tabular} - \end{center} -}% -\newcommand*{\chkconstant}[1]{% - \begin{center} - \begin{tabular}{C{4cm} C{4cm} C{4cm}} - name & symbol & value \tabularnewline - \cs{#1} & \csname #1mathsymbol\endcsname & \csname #1value\endcsname - \tabularnewline - baseunit & drvdunit & altnunit \tabularnewline - \csname #1onlybaseunit\endcsname & \csname #1onlydrvdunit\endcsname & - \csname #1onlyaltnunit\endcsname - \end{tabular} - \end{center} -}% % \end{macrocode} -% \newpage -% \section{Acknowledgements} -% I thank Marcel Heldoorn, Joseph Wright, Scott Pakin, Thomas Sturm, Aaron Titus, -% David Zaslavsky, 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 physics quantities and constants. Also very special thanks to -% students who helped test recent versions of this package. +% \restoregeometry % % \iffalse % diff --git a/macros/latex/contrib/mandi/mandi.ins b/macros/latex/contrib/mandi/mandi.ins index 363aaa3520..522a62d88a 100644 --- a/macros/latex/contrib/mandi/mandi.ins +++ b/macros/latex/contrib/mandi/mandi.ins @@ -6,27 +6,31 @@ %% %% mandi.dtx (with options: `install') %% -%% Copyright (C) 2018 by Paul J. Heafner -%% --------------------------------------------------------------------------- -%% 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. +%% Copyright (C) 2021 by Paul J. Heafner +%% --------------------------------------------------------------------------- +%% 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'. +%% This work has the LPPL maintenance status `maintained'. %% -%% The Current Maintainer of this work is Paul J. Heafner. +%% The Current Maintainer of this work is Paul J. Heafner. %% %% This work consists of the files mandi.dtx +%% mandistudent.dtx +%% mandiexp.dtx %% mandi.ins %% mandi.pdf -%% README +%% README.md %% %% and includes the derived files mandi.sty -%% vdemo.py. -%% --------------------------------------------------------------------------- +%% mandistudent.sty +%% mandiexp.sty +%% vdemo.py +%% --------------------------------------------------------------------------- %% \input docstrip.tex \keepsilent @@ -34,48 +38,54 @@ \usedir{tex/latex/mandi} \preamble -Copyright (C) 2018 by Paul J. Heafner ---------------------------------------------------------------------------- -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. + Copyright (C) 2021 by Paul J. Heafner + --------------------------------------------------------------------------- + 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'. + This work has the LPPL maintenance status `maintained'. -The Current Maintainer of this work is Paul J. Heafner. + The Current Maintainer of this work is Paul J. Heafner. This work consists of the files mandi.dtx + mandistudent.dtx + mandiexp.dtx mandi.ins mandi.pdf - README + README.md and includes the derived files mandi.sty - vdemo.py. ---------------------------------------------------------------------------- + mandistudent.sty + mandiexp.sty + vdemo.py + --------------------------------------------------------------------------- \endpreamble \generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}} +\generate{\file{mandistudent.sty}{\from{mandistudent.dtx}{package}}} +\generate{\file{mandiexp.sty}{\from{mandiexp.dtx}{package}}} \generate{\usepreamble\empty\usepostamble\empty - \file{vdemo.py}{\from{\jobname.dtx}{vdemo}}} + \file{vdemo.py}{\from{mandistudent.dtx}{vdemo}}} \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 pdfLaTeX. *} +\Msg{* To finish the installation, open a command line and *} +\Msg{* type the following, repeating 2-4 until there are no *} +\Msg{* warnings: *} +\Msg{* 2. lualatex mandi.dtx (lualatex is required) *} +\Msg{* 3. makeindex -s gind.ist -o mandi.ind mandi.idx *} +\Msg{* 4. makeindex -s gglo.ist -o mandi.gls mandi.glo *} +\Msg{* Move the *.sty files into a directory searched by TeX. *} +\Msg{* The vdemo.py file is not needed. *} \Msg{* *} \Msg{*************************************************************} \endbatchfile - \endinput %% %% End of file `mandi.ins'. diff --git a/macros/latex/contrib/mandi/mandi.pdf b/macros/latex/contrib/mandi/mandi.pdf index bb4f4fc947..f86fe84c06 100644 Binary files a/macros/latex/contrib/mandi/mandi.pdf and b/macros/latex/contrib/mandi/mandi.pdf differ diff --git a/macros/latex/contrib/mandi/mandiexp.dtx b/macros/latex/contrib/mandi/mandiexp.dtx new file mode 100644 index 0000000000..47c6745833 --- /dev/null +++ b/macros/latex/contrib/mandi/mandiexp.dtx @@ -0,0 +1,787 @@ +% \iffalse meta-comment +% !TEX program = lualatexmk +% +% Copyright (C) 2021 by Paul J. Heafner +% --------------------------------------------------------------------------- +% 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 +% mandistudent.dtx +% mandiexp.dtx +% mandi.ins +% mandi.pdf +% README.md +% +% and includes the derived files mandi.sty +% mandistudent.sty +% mandiexp.sty +% vdemo.py +% --------------------------------------------------------------------------- +% +% \fi +% +% \iffalse +% +%<*internal> +\iffalse +% +% +%<*internal> +\fi +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +% +% +%<*internal> +\usedir{tex/latex/mandi} +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup +\fi +% +% +%<*driver> +\ProvidesFile{mandiexp.dtx} +\DisableCrossrefs % index descriptions only +\PageIndex % index refers to page numbers +\CodelineNumbered % number source lines +\RecordChanges % record changes +\begin{document} % main document + \DocInput{\jobname.dtx} % + \PrintIndex % +\end{document} % end main document +% +% \fi +% +% \CheckSum{215} +% +% \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 \~} +% +% ^^A DO NOT TRY TO COMPILE THIS DTX FILE BY ITSELF. IT WILL FAIL. +% +% \section{The \mandiexp\ Package}\setplace{sec:mandiexppkg} +% +% \mandi\ comes with an accessory package \mandiexp\ +% which includes commands specific to +% \emph{Matter \& Interactions}.\footnote{See +% \href{https://www.wiley.com/en-us/Matter+and+Interactions%2C+4th+Edition-p-9781118875865} +% {\emph{Matter \& Interactions}} and +% \url{https://matterandinteractions.org/} for details.} +% The commands are primarily for typesetting +% mathematical expressions used in that text. Note that \mandiexp\ +% requires, and loads, \mandi\ but \mandi\ doesn't require, +% and doesn't load, \mandiexp. +% +% Load \mandiexp\ as you would any package in your preamble. +% There are no package options. +% +%\iffalse +%<*example> +%\fi +\begin{dispListing*}{sidebyside=false,listing only} + \usepackage{mandiexp} +\end{dispListing*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}{mandiexpversion}{} + Typesets the current version and build date. +\end{docCommand} +\begin{dispExample*}{sidebyside=false} + The version is \mandiexpversion\ and is a stable build. +\end{dispExample*} +%\iffalse +% +%\fi +% +% \subsection{The Fundamenal Principles} +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = {},% + ]% + {% + {% + doc name = lhsmomentumprinciple,% + doc description = {LHS of delta form, bold vectors},% + },% + {% + doc name = rhsmomentumprinciple,% + doc description = {RHS of delta form, bold vectors},% + },% + {% + doc name = lhsmomentumprincipleupdate,% + doc description = {LHS of update form, bold vectors},% + },% + {% + doc name = rhsmomentumprincipleupdate,% + doc description = {RHS of update form, bold vectors},% + },% + {% + doc name = momentumprinciple,% + doc description = {delta form, bold vectors},% + },% + {% + doc name = momentumprincipleupdate,% + doc description = {update form, bold vectors},% + },% + {% + doc name = lhsmomentumprinciple*,% + doc description = {LHS of delta form, arrow vectors},% + },% + {% + doc name = rhsmomentumprinciple*,% + doc description = {RHS of delta form, arrow vectors},% + },% + {% + doc name = lhsmomentumprincipleupdate*,% + doc description = {LHS of update form, arrow vectors},% + },% + {% + doc name = rhsmomentumprincipleupdate*,% + doc description = {RHS of update form, arrow vectors},% + },% + {% + doc name = momentumprinciple*,% + doc description = {delta form, arrow vectors},% + },% + {% + doc name = momentumprincipleupdate*,% + doc description = {update form, arrow vectors},% + },% + }% + Variants of command for typesetting the momentum principle. + Use starred variants to get arrow notation for vectors. +\end{docCommands} +\begin{dispExample} + \( \lhsmomentumprinciple \) \\ + \( \rhsmomentumprinciple \) \\ + \( \lhsmomentumprincipleupdate \) \\ + \( \rhsmomentumprincipleupdate \) \\ + \( \momentumprinciple \) \\ + \( \momentumprincipleupdate \) \\ + \( \lhsmomentumprinciple* \) \\ + \( \rhsmomentumprinciple* \) \\ + \( \lhsmomentumprincipleupdate* \) \\ + \( \rhsmomentumprincipleupdate* \) \\ + \( \momentumprinciple* \) \\ + \( \momentumprincipleupdate* \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = {},% + ]% + {% + {% + doc name = lhsenergyprinciple,% + doc description = {LHS of delta form},% + },% + {% + doc name = rhsenergyprinciple,% + doc parameter = \oarg{\(+\)process...},% + doc description = {RHS of delta form},% + },% + {% + doc name = lhsenergyprincipleupdate,% + doc description = {LHS of update form},% + },% + {% + doc name = rhsenergyprincipleupdate,% + doc parameter = \oarg{\(+\)process...},% + doc description = {RHS of update form},% + },% + {% + doc name = energyprinciple,% + doc parameter = \oarg{\(+\)process...},% + doc description = {delta form},% + },% + {% + doc name = energyprincipleupdate,% + doc parameter = \oarg{\(+\)process...},% + doc description = {update form},% + },% + }% + Variants of command for typesetting the energy principle. +\end{docCommands} +\begin{dispExample} + \( \lhsenergyprinciple \) \\ + \( \rhsenergyprinciple \) \\ + \( \rhsenergyprinciple[+Q] \) \\ + \( \energyprinciple \) \\ + \( \energyprinciple[+Q] \) \\ + \( \lhsenergyprincipleupdate \) \\ + \( \rhsenergyprincipleupdate \) \\ + \( \rhsenergyprincipleupdate[+Q] \) \\ + \( \energyprincipleupdate \) \\ + \( \energyprincipleupdate[+Q] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = {},% + ]% + {% + {% + doc name = lhsangularmomentumprinciple,% + doc description = {LHS of delta form, bold vectors},% + },% + {% + doc name = rhsangularmomentumprinciple,% + doc description = {RHS of delta form, bold vectors},% + },% + {% + doc name = lhsangularmomentumprincipleupdate,% + doc description = {LHS of update form, bold vectors},% + },% + {% + doc name = rhsangularmomentumprincipleupdate,% + doc description = {RHS of update form, bold vectors},% + },% + {% + doc name = angularmomentumprinciple,% + doc description = {delta form, bold vectors},% + },% + {% + doc name = angularmomentumprincipleupdate,% + doc description = {update form, bold vectors},% + },% + {% + doc name = lhsangularmomentumprinciple*,% + doc description = {LHS of delta form, arrow vectors},% + },% + {% + doc name = rhsangularmomentumprinciple*,% + doc description = {RHS of delta form, arrow vectors},% + },% + {% + doc name = lhsangularmomentumprincipleupdate*,% + doc description = {LHS of update form, arrow vectors},% + },% + {% + doc name = rhsangularmomentumprincipleupdate*,% + doc description = {RHS of update form, arrow vectors},% + },% + {% + doc name = angularmomentumprinciple*,% + doc description = {delta form, arrow vectors},% + },% + {% + doc name = angularmomentumprincipleupdate*,% + doc description = {update form, arrow vectors},% + },% + }% + Variants of command for typesetting the angularmomentum principle. + Use starred variants to get arrow notation for vectors. +\end{docCommands} +\begin{dispExample} + \( \lhsangularmomentumprinciple \) \\ + \( \rhsangularmomentumprinciple \) \\ + \( \lhsangularmomentumprincipleupdate \) \\ + \( \rhsangularmomentumprincipleupdate \) \\ + \( \angularmomentumprinciple \) \\ + \( \angularmomentumprincipleupdate \) \\ + \( \lhsangularmomentumprinciple* \) \\ + \( \rhsangularmomentumprinciple* \) \\ + \( \lhsangularmomentumprincipleupdate* \) \\ + \( \rhsangularmomentumprincipleupdate* \) \\ + \( \angularmomentumprinciple* \) \\ + \( \angularmomentumprincipleupdate* \) +\end{dispExample} +%\iffalse +% +%\fi +% +% \subsection{Other Expressions} +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{energyof}{\marg{label}\oarg{label}} + Generic symbol for the energy of some entity. +\end{docCommand} +\begin{dispExample*}{lefthand ratio=0.6} + \( \energyof{\symup{electron}} \) \\ + \( \energyof{\symup{electron}}[\symup{final}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{systemenergy}{\oarg{label}} + Symbol for system energy. +\end{docCommand} +\begin{dispExample} + \( \systemenergy \) \\ + \( \systemenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{particleenergy}{\oarg{label}} + Symbol for particle energy. +\end{docCommand} +\begin{dispExample} + \( \particleenergy \) \\ + \( \particleenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{restenergy}{\oarg{label}} + Symbol for rest energy. +\end{docCommand} +\begin{dispExample} + \( \restenergy \) \\ + \( \restenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{internalenergy}{\oarg{label}} + Symbol for internal energy. +\end{docCommand} +\begin{dispExample} + \( \internalenergy \) \\ + \( \internalenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{chemicalenergy}{\oarg{label}} + Symbol for chemical energy. +\end{docCommand} +\begin{dispExample} + \( \chemicalenergy \) \\ + \( \chemicalenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{thermalenergy}{\oarg{label}} + Symbol for thermal energy. +\end{docCommand} +\begin{dispExample} + \( \thermalenergy \) \\ + \( \thermalenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{photonenergy}{\oarg{label}} + Symbol for photon energy. +\end{docCommand} +\begin{dispExample} + \( \photonenergy \) \\ + \( \photonenergy[\symup{final}] \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc new=2021-02-13,% + doc parameter = \oarg{label},% + ]% + {% + {% + doc name = translationalkineticenergy,% + },% + {% + doc name = translationalkineticenergy*,% + },% + }% + Symbol for translational kinetic energy. + The starred variant gives \(E\) notation. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.6} + \( \translationalkineticenergy \) \\ + \( \translationalkineticenergy[\symup{initial}] \) \\ + \( \translationalkineticenergy* \) \\ + \( \translationalkineticenergy*[\symup{initial}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc new=2021-02-13,% + doc parameter = \oarg{label},% + ]% + {% + {% + doc name = rotationalkineticenergy,% + },% + {% + doc name = rotationalkineticenergy*,% + },% + }% + Symbol for rotational kinetic energy. + The starred variant gives \(E\) notation. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.6} + \( \rotationalkineticenergy \) \\ + \( \rotationalkineticenergy[\symup{initial}] \) \\ + \( \rotationalkineticenergy* \) \\ + \( \rotationalkineticenergy*[\symup{initial}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc new=2021-02-13,% + doc parameter = \oarg{label},% + ]% + {% + {% + doc name = vibrationalkineticenergy,% + },% + {% + doc name = vibrationalkineticenergy*,% + },% + }% + Symbol for vibrational kinetic energy. + The starred variant gives \(E\) notation. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.6} + \( \vibrationalkineticenergy \) \\ + \( \vibrationalkineticenergy[\symup{initial}] \) \\ + \( \vibrationalkineticenergy* \) \\ + \( \vibrationalkineticenergy*[\symup{initial}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{gravitationalpotentialenergy} + {\oarg{label}} + Symbol for gravitational potential energy. +\end{docCommand} +\begin{dispExample*}{lefthand ratio=0.6} + \( \gravitationalpotentialenergy \) \\ + \( \gravitationalpotentialenergy[\symup{final}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{electricpotentialenergy}{\oarg{label}} + Symbol for electric potential energy. +\end{docCommand} +\begin{dispExample*}{lefthand ratio=0.6} + \( \electricpotentialenergy \) \\ + \( \electricpotentialenergy[\symup{final}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-13]{springpotentialenergy}{\oarg{label}} + Symbol for spring potential energy. +\end{docCommand} +\begin{dispExample*}{lefthand ratio=0.6} + \( \springpotentialenergy \) \\ + \( \springpotentialenergy[\symup{final}] \) +\end{dispExample*} +%\iffalse +% +%\fi +% +% \StopEventually{} +% +% \newgeometry{left=0.50in,right=0.50in,top=1.00in,bottom=1.00in} +% \subsection{\mandiexp\ Source Code} +% +% \iffalse +%<*package> +% \fi +% Definine the package version and date for global use, exploiting the fact +% that in a \pkg{.sty} file there is now no need for |\makeatletter| and +% |\makeatother|. This simplifies defining internal commands, with |@| +% in the name, that are not for the user to know about. +% +% \begin{macrocode} +\def\mandiexp@version{\mandi@version} +\def\mandiexp@date{\mandi@date} +\NeedsTeXFormat{LaTeX2e}[2020-02-02] +\DeclareRelease{v3.0.0}{2021-08-21}{mandiexp.sty} +\DeclareCurrentRelease{v\mandi@version}{\mandi@date} +\ProvidesPackage{mandiexp} + [\mandiexp@date\space v\mandiexp@version\space Macros for Matter & Interactions] +% \end{macrocode} +% +% Define a convenient package version command. +% +% \begin{macrocode} +\newcommand*{\mandiexpversion}{v\mandiexp@version\space dated \mandiexp@date} +% \end{macrocode} +% +% \begin{macrocode} +\RequirePackage{mandi} +% +\typeout{}% +\typeout{mandiexp: You are using mandiexp \mandiexpversion.} +\typeout{mandiexp: This package requires LuaLaTeX.}% +\typeout{}% +% +% Commands specific to Matter & Interactions +% The momentum principle +\NewDocumentCommand{\lhsmomentumprinciple}{ s }{% + \Delta + \IfBooleanTF{#1}% + {\vec*{p}}% + {\vec{p}}% + _{\symup{sys}}% +}% +\NewDocumentCommand{\rhsmomentumprinciple}{ s }{% + \IfBooleanTF{#1}% + {\vec*{F}}% + {\vec{F}}% + _{\symup{sys,net}}\,\Delta t% +}% +\NewDocumentCommand{\lhsmomentumprincipleupdate}{ s }{% + \IfBooleanTF{#1}% + {\vec*{p}}% + {\vec{p}}% + _{\symup{sys,final}}% +}% +\NewDocumentCommand{\rhsmomentumprincipleupdate}{ s }{% + \IfBooleanTF{#1}% + {\vec*{p}}% + {\vec{p}}% + _{\symup{sys,initial}}+% + \IfBooleanTF{#1}% + {\vec*{F}}% + {\vec{F}}% + _{\symup{sys,net}}\,\Delta t% +}% +\NewDocumentCommand{\momentumprinciple}{ s }{% + \IfBooleanTF{#1}% + {\lhsmomentumprinciple* = \rhsmomentumprinciple*}% + {\lhsmomentumprinciple = \rhsmomentumprinciple}% +}% +\NewDocumentCommand{\momentumprincipleupdate}{ s }{% + \IfBooleanTF{#1}% + {\lhsmomentumprincipleupdate* = \rhsmomentumprincipleupdate*}% + {\lhsmomentumprincipleupdate = \rhsmomentumprincipleupdate}% +}% +% The momentum principle +\NewDocumentCommand{\lhsenergyprinciple}{}{% + \Delta E_{\symup{sys}}% +}% +\NewDocumentCommand{\rhsenergyprinciple}{ O{} }{% + W_{\symup{ext}}#1% +}% +\NewDocumentCommand{\lhsenergyprincipleupdate}{}{% + E_{\symup{sys,final}}% +}% +\NewDocumentCommand{\rhsenergyprincipleupdate}{ O{} }{% + E_{\symup{sys,initial}}+% + W_{\symup{ext}}#1% +}% +\NewDocumentCommand{\energyprinciple}{ O{} }{% + \lhsenergyprinciple = \rhsenergyprinciple[#1]% +}% +\NewDocumentCommand{\energyprincipleupdate}{ O{} }{% + \lhsenergyprincipleupdate = \rhsenergyprincipleupdate[#1]% +}% +% The angular momentum principle +\NewDocumentCommand{\lhsangularmomentumprinciple}{ s }{% + \Delta + \IfBooleanTF{#1}% + {\vec*{L}}% + {\vec{L}}% + _{A\symup{,sys,net}}% +}% +\NewDocumentCommand{\rhsangularmomentumprinciple}{ s }{% + \IfBooleanTF{#1}% + {\vec*{\tau}}% + {\vec{\tau}}% + _{A\symup{,sys,net}}\,\Delta t% +}% +\NewDocumentCommand{\lhsangularmomentumprincipleupdate}{ s }{% + \IfBooleanTF{#1}% + {\vec*{L}}% + {\vec{L}}% + _{A,\symup{sys,final}}% +}% +\NewDocumentCommand{\rhsangularmomentumprincipleupdate}{ s }{% + \IfBooleanTF{#1}% + {\vec*{L}}% + {\vec{L}}% + _{A\symup{,sys,initial}}+% + \IfBooleanTF{#1}% + {\vec*{\tau}}% + {\vec{\tau}}% + _{A\symup{,sys,net}}\,\Delta t% +}% +\NewDocumentCommand{\angularmomentumprinciple}{ s }{% + \IfBooleanTF{#1}% + {\lhsangularmomentumprinciple* = \rhsangularmomentumprinciple*}% + {\lhsangularmomentumprinciple = \rhsangularmomentumprinciple}% +}% +\NewDocumentCommand{\angularmomentumprincipleupdate}{ s }{% + \IfBooleanTF{#1}% + {\lhsangularmomentumprincipleupdate* = \rhsangularmomentumprincipleupdate*}% + {\lhsangularmomentumprincipleupdate = \rhsangularmomentumprincipleupdate}% +}% +\NewDocumentCommand{\energyof}{ m o }{% + E_{#1\IfValueT{#2}{,#2}}% +}% +\NewDocumentCommand{\systemenergy}{ o }{% + E_{\symup{sys}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\particleenergy}{ o }{% + E_{\symup{particle}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\restenergy}{ o }{% + E_{\symup{rest}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\internalenergy}{ o }{% + E_{\symup{internal}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\chemicalenergy}{ o }{% + E_{\symup{chem}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\thermalenergy}{ o }{% + E_{\symup{therm}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\photonenergy}{ o }{% + E_{\symup{photon}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\translationalkineticenergy}{ s d[] }{% +% d[] must be used because of the way consecutive optional +% arguments are handled. See xparse docs for details. +% See https://tex.stackexchange.com/a/569011/218142 + \IfBooleanTF{#1}% + {E_\bgroup \symup{K}}% + {K_\bgroup\symup{trans}}% + \IfValueT{#2}{,#2}% + \egroup% +}% +\NewDocumentCommand{\rotationalkineticenergy}{ s d[] }{% +% d[] must be used because of the way consecutive optional +% arguments are handled. See xparse docs for details. +% See https://tex.stackexchange.com/a/569011/218142 + \IfBooleanTF{#1}% + {E_\bgroup}% + {K_\bgroup}% + \symup{rot}\IfValueT{#2}{,#2}% + \egroup% +}% +\NewDocumentCommand{\vibrationalkineticenergy}{ s d[] }{% +% d[] must be used because of the way consecutive optional +% arguments are handled. See xparse docs for details. +% See https://tex.stackexchange.com/a/569011/218142 + \IfBooleanTF{#1}% + {E_\bgroup}% + {K_\bgroup}% + \symup{vib}\IfValueT{#2}{,#2}% + \egroup% +}% +\NewDocumentCommand{\gravitationalpotentialenergy}{ o }{% + U_{\symup{g}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\electricpotentialenergy}{ o }{% + U_{\symup{e}\IfValueT{#1}{,#1}}% +}% +\NewDocumentCommand{\springpotentialenergy}{ o }{% + U_{\symup{s}\IfValueT{#1}{,#1}}% +}% +% \end{macrocode} +% +% \restoregeometry +% +% \iffalse +% +% \fi +% +% \Finale diff --git a/macros/latex/contrib/mandi/mandistudent.dtx b/macros/latex/contrib/mandi/mandistudent.dtx new file mode 100644 index 0000000000..278725234c --- /dev/null +++ b/macros/latex/contrib/mandi/mandistudent.dtx @@ -0,0 +1,1789 @@ +% \iffalse meta-comment +% !TEX program = lualatexmk +% +% Copyright (C) 2021 by Paul J. Heafner +% --------------------------------------------------------------------------- +% 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 +% mandistudent.dtx +% mandiexp.dtx +% mandi.ins +% mandi.pdf +% README.md +% +% and includes the derived files mandi.sty +% mandistudent.sty +% mandiexp.sty +% vdemo.py +% --------------------------------------------------------------------------- +% +% \fi +% +% \iffalse +% +%<*internal> +\iffalse +% +% +%<*vdemo> +from vpython import * + +scene.width = 400 +scene.height = 760 +# constants and data +g = 9.8 # m/s^2 +mball = 0.03 # kg +Lo = 0.26 # m +ks = 1.8 # N/m +deltat = 0.01 # s + +# objects (origin is at ceiling) +ceiling = box(pos=vector(0,0,0), length=0.2, height=0.01, + width=0.2) +ball = sphere(pos=vector(0,-0.3,0),radius=0.025, + color=color.orange) +spring = helix(pos=ceiling.pos, axis=ball.pos-ceiling.pos, + color=color.cyan,thickness=0.003,coils=40, + radius=0.010) + +# initial values +pball = mball * vector(0,0,0) # kg m/s +Fgrav = mball * g * vector(0,-1,0) # N +t = 0 + +# improve the display +scene.autoscale = False # turn off automatic camera zoom +scene.center = vector(0,-Lo,0) # move camera down +scene.waitfor('click') # wait for a mouse click + +# initial calculation loop +# calculation loop +while t < 10: + rate(100) + # we need the stretch + s = mag(ball.pos) - Lo + # we need the spring force + Fspring = ks * s * -norm(spring.axis) + Fnet = Fgrav + Fspring + pball = pball + Fnet * deltat + ball.pos = ball.pos + (pball / mball) * deltat + spring.axis = ball.pos - ceiling.pos + t = t + deltat +% +% +%<*internal> +\fi +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +% +% +%<*internal> +\usedir{tex/latex/mandi} +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup +\fi +% +% +%<*driver> +\ProvidesFile{mandistudent.dtx} +\DisableCrossrefs % index descriptions only +\PageIndex % index refers to page numbers +\CodelineNumbered % number source lines +\RecordChanges % record changes +\begin{document} % main document + \DocInput{\jobname.dtx} % + \PrintIndex % +\end{document} % end main document +% +% \fi +% +% \CheckSum{706} +% +% \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 \~} +% +% ^^A DO NOT TRY TO COMPILE THIS DTX FILE BY ITSELF. IT WILL FAIL. +% +% \section{The \mandistudent\ Package}\setplace{sec:mandistudentpkg} +% +% \mandi\ comes with an accessory package \mandistudent, +% which provides a collection of commands physics students can +% use for writing problem solutions. This package focuses on +% the most frequently needed tools. These commands should always +% be used in math mode. Note that \mandistudent\ requires, and +% loads, \mandi\ but \mandi\ doesn't require, and doesn't load, +% \mandistudent. +% +% Load \mandistudent\ as you would any package in your preamble. +% There are no package options. +% +%\iffalse +%<*example> +%\fi +\begin{dispListing*}{sidebyside=false,listing only} + \usepackage{mandistudent} +\end{dispListing*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}{mandistudentversion}{} + Typesets the current version and build date. +\end{docCommand} +\begin{dispExample*}{sidebyside=false} + The version is \mandistudentversion\ and is a stable build. +\end{dispExample*} +%\iffalse +% +%\fi +% +% \subsection{Traditional Vector Notation} +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \marg{symbol}\oarg{labels},% + ]% + {% + {% + doc name = vec,% + doc description = use this variant for boldface notation,% + },% + {% + doc name = vec*,% + doc description = use this variant for arrow notation,% + }% + }% + Powerful and intelligent command for symbolic vector notation. The + mandatory argument is the symbol for the vector quantity. The optional + label(s) consists of superscripts and/or subscripts and can be + mathematical or textual in nature. If textual, be sure to wrap them in + |\symup{...}| for proper typesetting. The starred variant gives arrow + notation whereas without the star you get boldface notation. Subscript + and superscript labels can be arbitrarily mixed, and order doesn't matter. + This command redefines the default \LaTeX\ |\vec| command. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.6} + \( \vec{p} \) \\ + \( \vec{p}_{2} \) \\ + \( \vec{p}^{\symup{ball}} \) \\ + \( \vec{p}_{\symup{final}} \) \\ + \( \vec{p}^{\symup{ball}}_{\symup{final}} \) \\ + \( \vec{p}^{\symup{final}}_{\symup{ball}} \) \\ + \( \vec*{p} \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \marg{symbol}\oarg{labels},% + ]% + {% + {% + doc name = dirvec,% + doc description = use this variant for boldface notation,% + },% + {% + doc name = dirvec*,% + doc description = use this variant for arrow notation,% + }% + }% + Powerful and intelligent command for typesetting the direction of + a vector. The options are the same as those for \refCom{vec}. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.65} + \( \dirvec{p} \) \\ + \( \dirvec{p}_{2} \) \\ + \( \dirvec{p}^{\symup{ball}} \) \\ + \( \dirvec{p}_{\symup{final}} \) \\ + \( \dirvec{p}^{\symup{ball}}_{\symup{final}} \) \\ + \( \dirvec{p}^{\symup{final}}_{\symup{ball}} \) \\ + \( \dirvec*{p} \) +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands} + {% + {% + doc name = zerovec,% + doc description = use this variant for boldface notation,% + },% + {% + doc name = zerovec*,% + doc description = use this variant for arrow notation,% + },% + }% + Command for typesetting the zero vector. The starred variant gives + arrow notation. Without the star you get boldface notation. +\end{docCommands} +\begin{dispExample} + \( \zerovec \) \\ + \( \zerovec* \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}{changein}{}% + Semantic alias for |\Delta|. +\end{docCommand} +\begin{dispExample} + \( \changein t \) \\ + \( \changein \vec{p} \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc new = 2021-02-21,% + doc parameter = \oarg{size}\marg{quantity},% + ]% + {% + {% + doc name = doublebars,% + doc description = double bars,% + },% + {% + doc name = doublebars*,% + doc description = double bars for fractions,% + },% + {% + doc name = singlebars,% + doc description = single bars,% + },% + {% + doc name = singlebars*,% + doc description = single bars for fractions,% + },% + {% + doc name = anglebrackets,% + doc description = angle brackets,% + },% + {% + doc name = anglebrackets*,% + doc description = angle brackets for fractions,% + },% + {% + doc name = parentheses,% + doc description = parentheses,% + },% + {% + doc name = parentheses*,% + doc description = parentheses for fractions,% + },% + {% + doc name = squarebrackets,% + doc description = square brackets,% + },% + {% + doc name = squarebrackets*,% + doc description = square brackets for fractions,% + },% + {% + doc name = curlybraces,% + doc description = curly braces,% + },% + {% + doc name = curlybraces*,% + doc description = curly braces for fractions,% + },% + }% + If no argument is given, a placeholder is provided. + Sizers like |\big|,|\Big|,|\bigg|, and |\Bigg| can + be optionally specified. Beginners are encouraged + not to use them. See the + \href{https://www.ctan.org/pkg/mathtools}{\pkg{mathtools}} package + documentation for details. +\end{docCommands} +\begin{dispExample} + \[ \doublebars{} \] + \[ \doublebars{\vec{a}} \] + \[ \doublebars*{\frac{\vec{a}}{3}} \] + \[ \doublebars[\Bigg]{\frac{\vec{a}}{3}} \] +\end{dispExample} +\begin{dispExample} + \[ \singlebars{} \] + \[ \singlebars{x} \] + \[ \singlebars*{\frac{x}{3}} \] + \[ \singlebars[\Bigg]{\frac{x}{3}} \] +\end{dispExample} +\begin{dispExample} + \[ \anglebrackets{} \] + \[ \anglebrackets{\vec{a}} \] + \[ \anglebrackets*{\frac{\vec{a}}{3}} \] + \[ \anglebrackets[\Bigg]{\frac{\vec{a}}{3}} \] +\end{dispExample} +\begin{dispExample} + \[ \parentheses{} \] + \[ \parentheses{x} \] + \[ \parentheses*{\frac{x}{3}} \] + \[ \parentheses[\Bigg]{\frac{x}{3}} \] +\end{dispExample} +\begin{dispExample} + \[ \squarebrackets{} \] + \[ \squarebrackets{x} \] + \[ \squarebrackets*{\frac{x}{3}} \] + \[ \squarebrackets[\Bigg]{\frac{x}{3}} \] +\end{dispExample} +\begin{dispExample} + \[ \curlybraces{} \] + \[ \curlybraces{x} \] + \[ \curlybraces*{\frac{x}{3}} \] + \[ \curlybraces[\Bigg]{\frac{x}{3}} \] +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc new = 2021-02-21,% + doc parameter = \oarg{size}\marg{quantity},% + ]% + {% + {% + doc name = magnitude,% + doc description = alias for double bars,% + },% + {% + doc name = magnitude*,% + doc description = alias for double bars for fractions,% + },% + {% + doc name = norm,% + doc description = alias for double bars,% + },% + {% + doc name = norm*,% + doc description = alias for double bars for fractions,% + },% + {% + doc name = absolutevalue,% + doc description = alias for single bars,% + },% + {% + doc name = absolutevalue*,% + doc description = alias for single bars for fractions,% + },% + }% + Semantic aliases. Use \refCom{magnitude} or \refCom{magnitude*} to + typeset the magnitude of a vector. +\end{docCommands} +\begin{dispExample} + \[ \magnitude{\vec{p}} \] + \[ \magnitude{\vec*{p}} \] + \[ \magnitude*{\vec{p}_{\symup{final}}} \] + \[ \magnitude*{\vec*{p}_{\symup{final}}} \] +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc new = 2021-04-06,% + ]% + {% + {% + doc name = parallelto,% + },% + {% + doc name = perpendicularto,% + },% + }% + Commands for geometric relationships, mainly + intended for subscripts. +\end{docCommands} +\begin{dispExample*}{lefthand ratio=0.6} + \( \vec{F}_{\parallelto} + \vec{F}_{\perpendicularto} \) +\end{dispExample*} +%\iffalse +% +%\fi +% +% \subsection{Problems and Annotated Problem Solutions} +% +%\iffalse +%<*example> +%\fi +\begin{docEnvironments}[% + doc new = 2021-02-03,% + doc parameter = \marg{title},% + doclang/environment content = problem,% + ]% + {% + {% + doc name = physicsproblem,% + doc description = use this variant for vertical lists,% + },% + {% + doc name = physicsproblem*,% + doc description = use this variant for in-line lists,% + },% + {% + doc name = parts,% + doc description = provides problem parts,% + },% + }% + Provides an environment for stating physics problems. Each problem will + begin on a new page. See the examples for how to handle single and + multiple part problems. +\end{docEnvironments} +\begin{docCommand}[doc new = 2012-02-03]{problempart}{} + Denotes a part of a problem within a \refEnv{parts} + environment. +\end{docCommand} +\begin{dispExample*}{sidebyside=false} + \begin{physicsproblem}{Problem 1} + This is a physics problem with no parts. + \end{physicsproblem} +\end{dispExample*} +\begin{dispExample*}{sidebyside=false} + \begin{physicsproblem}{Problem 2} + This is a physics problem with multiple parts. + The list is vertical. + \begin{parts} + \problempart This is the first part. + \problempart This is the second part. + \problempart This is the third part. + \end{parts} + \end{physicsproblem} +\end{dispExample*} +\begin{dispExample*}{sidebyside=false} + \begin{physicsproblem*}{Problem 3} + This is a physics problem with multiple parts. + The list is in-line. + \begin{parts} + \problempart This is the first part. + \problempart This is the second part. + \problempart This is the third part. + \end{parts} + \end{physicsproblem*} +\end{dispExample*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docEnvironments}[% + doc updated = 2021-02-26,% + doc parameter = {},% + doclang/environment content = solution steps,% + ]% + {% + {% + doc name = physicssolution,% + doc description = use this variant for numbered steps,% + },% + {% + doc name = physicssolution*,% + doc description = use this variant for unnumbered steps,% + },% + }% + This environment is only for mathematical solutions. The starred + variant omits numbering of steps. See the examples. +\end{docEnvironments} +\begin{dispExample} + \begin{physicssolution} + x &= y + z \\ + z &= x - y \\ + y &= x - z + \end{physicssolution} + \begin{physicssolution*} + x &= y + z \\ + z &= x - y \\ + y &= x - z + \end{physicssolution*} +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc updated = 2012-02-26]{reason}{\marg{reason}} + Provides an annotation in a step-by-step solution. + Keep reasons short and to the point. Wrap mathematical + content in math mode. +\end{docCommand} +\begin{dispExample} + \begin{physicssolution} + x &= y + z \reason{This is a reason.} \\ + z &= x - y \reason{This is a reason too.} \\ + y &= x - z \reason{final answer} + \end{physicssolution} + \begin{physicssolution*} + x &= y + z \reason{This is a reason.} \\ + z &= x - y \reason{This is a reason too.} \\ + y &= x - z \reason{final answer} + \end{physicssolution*} +\end{dispExample} +%\iffalse +% +%\fi +% +% When writing solutions, remember that the \refEnv{physicssolution} +% environment is \emph{only} for mathematical content, not textual +% content or explanations. +% +%\iffalse +%<*example> +%\fi +\begin{dispListing*}{sidebyside=false,listing only} + \begin{physicsproblem}{Combined Problem and Solution} + This is an interesting physics problem. + \begin{physicssolution} + The solution goes here. + \end{physicssolution} + \end{physicsproblem} +\end{dispListing*} +\begin{dispListing*}{sidebyside=false,listing only} + \begin{physicsproblem}{Combined Multipart Problem with Solutions} + This is a physics problem with multiple parts. + \begin{parts} + \problempart This is the first part. + \begin{physicssolution} + The solution goes here. + \end{physicssolution} + \problempart This is the second part. + \begin{physicssolution} + The solution goes here. + \end{physicssolution} + \problempart This is the third part. + \begin{physicssolution} + The solution goes here. + \end{physicssolution} + \end{parts} + \end{physicsproblem} +\end{dispListing*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-02-06]{hilite}{% + \oarg{color}\marg{target}\oarg{shape} + }% + Hilites the desired target, which can be an entire mathematical expression + or a part thereof. The default color is magenta and the default shape is a + rectangle. +\end{docCommand} +\begin{dispListing*}{sidebyside=false,listing only} + \begin{align*} + (\Delta s)^2 &= -(\Delta t)^2 + (\Delta x)^2 + (\Delta y)^2 + + (\Delta z)^2 \\ + (\Delta s)^2 &= \hilite{-(\Delta t)^2 + (\Delta x)^2}[rounded rectangle] + + (\Delta y)^2 + (\Delta z)^2 \\ + (\Delta s)^2 &= \hilite{-(\Delta t)^2 + (\Delta x)^2}[rectangle] + + (\Delta y)^2 + (\Delta z)^2 \\ + (\Delta s)^2 &= \hilite{-(\Delta t)^2 + (\Delta x)^2}[ellipse] + + (\Delta y)^2 + (\Delta z)^2 \\ + (\Delta s)^{\hilite{2}[circle]} &= \hilite[green]{-}[circle] + (\Delta t)^{\hilite[cyan]{2}[circle]}+ + (\Delta x)^{\hilite[orange]{2}[circle]} + + (\Delta y)^{\hilite[blue!50]{2}[circle]} + + (\Delta z)^{\hilite[violet!45]{2}[circle]} + \end{align*} +\end{dispListing*} + \begin{align*} + (\Delta s)^2 &= -(\Delta t)^2 + (\Delta x)^2 + (\Delta y)^2 + + (\Delta z)^2 \\ + (\Delta s)^2 &= \hilite{-(\Delta t)^2 + (\Delta x)^2}[rounded rectangle] + + (\Delta y)^2 + (\Delta z)^2 \\ + (\Delta s)^2 &= \hilite{-(\Delta t)^2 + (\Delta x)^2}[rectangle] + + (\Delta y)^2 + (\Delta z)^2 \\ + (\Delta s)^2 &= \hilite{-(\Delta t)^2 + (\Delta x)^2}[ellipse] + + (\Delta y)^2 + (\Delta z)^2 \\ + (\Delta s)^{\hilite{2}[circle]} &= \hilite[green]{-}[circle] + (\Delta t)^{\hilite[cyan]{2}[circle]}+ + (\Delta x)^{\hilite[orange]{2}[circle]} + + (\Delta y)^{\hilite[blue!50]{2}[circle]} + + (\Delta z)^{\hilite[violet!45]{2}[circle]} + \end{align*} +\begin{dispListing*}{sidebyside=false,listing only} + \begin{align*} + \Delta\vec{p} &= \vec{F}_{\sumup{net}}\Delta t \\ + \hilite[orange]{\Delta\vec{p}}[circle] &= \vec{F}_{\symup{net}}\Delta t \\ + \Delta\vec{p} &= \hilite[yellow!50]{\vec{F}_{\symup{net}}} + [rounded rectangle]\Delta t \\ + \Delta\vec{p} &= \vec{F}_{\symup{net}}\hilite[olive!50] + {\Delta t}[rectangle] \\ + \Delta\vec{p} &= \hilite[cyan!50]{\vec{F}_{\symup{net}}\Delta t} + [ellipse] \\ + \hilite{\Delta\vec{p}}[rectangle] &= \vec{F}_{\symup{net}}\Delta t + \end{align*} +\end{dispListing*} + \begin{align*} + \Delta\vec{p} &= \vec{F}_{\symup{net}}\Delta t \\ + \hilite[orange]{\Delta\vec{p}}[circle] &= \vec{F}_{\symup{net}} + \Delta t \\ + \Delta\vec{p} &= \hilite[yellow!50]{\vec{F}_{\symup{net}}} + [rounded rectangle]\Delta t \\ + \Delta\vec{p} &= \vec{F}_{\symup{net}}\hilite[olive!50]{\Delta t} + [rectangle] \\ + \Delta\vec{p} &= \hilite[cyan!50]{\vec{F}_{\symup{net}}\Delta t} + [ellipse] \\ + \hilite{\Delta\vec{p}}[rectangle] &= \vec{F}_{\symup{net}}\Delta t + \end{align*} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc updated = 2021-02-26]{image}{% + \oarg{options}\marg{caption}\marg{label}\marg{image} + }% + Simplified interface for importing an image. The images are treated + as floats, so they may not appear at the most logically intuitive + place. +\end{docCommand} +\begin{dispListing*}{sidebyside=false,listing only,verbatim ignore percent} + \image[scale=0.20]{example-image-1x1} + {Image shown 20 percent actual size.}{reffig1} +\end{dispListing*} +\image[scale=0.20]{example-image-1x1} + {Image shown 20 percent actual size.}{reffig1} +\begin{dispExample*}{sidebyside=false} + Figure \ref{reffig1} is nice. + It's captioned \nameref{reffig1} and is on page \pageref{reffig1}. +\end{dispExample*} +\begin{dispListing*}{sidebyside=false,listing only,verbatim ignore percent} + \image[scale=0.20,angle=45]{example-image-1x1} + {Image shown 20 percent actual size and rotated.}{reffig1} +\end{dispListing*} +\image[scale=0.20,angle=45]{example-image-1x1} +{Image shown 20 percent actual size and rotated.}{reffig2} +\begin{dispExample*}{sidebyside=false} + Figure \ref{reffig2} is nice. + It's captioned \nameref{reffig2} and is on page \pageref{reffig2}. +\end{dispExample*} +%\iffalse +% +%\fi +% +% \subsection{Coordinate-Free and Index Notation} +% +% Beyond the current level of introductory physics, we need intelligent +% commands for typesetting vector and tensor symbols and components +% suitable for both coordinate-free and index notations. +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \oarg{delimiter}\marg{\ensuremath{c_1,\dots,c_n}},% + ]% + {% + {% + doc name = colvec,% + },% + {% + doc name = rowvec,% + },% + }% + Typesets column vectors and row vectors as numeric or symbolic components. + There can be more than three components. The delimiter used in the list of + components can be specified; the default is a comma. Units are not + supported, so these are mainly for symbolic work. +\end{docCommands} +\begin{dispExample} + \[ \colvec{1,2,3} \] + \[ \rowvec{1,2,3} \] + \[ \colvec{x^0,x^1,x^2,x^3} \] + \[ \rowvec{x_0,x_1,x_2,x_3} \] +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \marg{symbol},% + ]% + {% + {% + doc name = veccomp,% + doc description = use this variant for coordinate-free vector notation,% + },% + {% + doc name = veccomp*,% + doc description = use this variant for index vector notation,% + },% + {% + doc name = tencomp,% + doc description = use this variant for coordinate-free tensor notation,% + },% + {% + doc name = tencomp*,% + doc description = use this variant for index tensor notation,% + },% + }% + Conforms to ISO 80000-2 notation. +\end{docCommands} +\begin{dispExample} + \( \veccomp{r} \) \\ + \( \veccomp*{r} \) \\ + \( \tencomp{r} \) \\ + \( \tencomp*{r} \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \marg{index}\marg{index},% + ]% + {% + {% + doc name = valence,% + },% + {% + doc name = valence*,% + },% + }% + Typesets tensor valence. The starred variant typesets it horizontally. +\end{docCommands} +\begin{dispExample} + A vector is a \( \valence{1}{0} \) tensor. \\ + A vector is a \( \valence*{1}{0} \) tensor. +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc parameter = \marg{slot,slot},% + ]% + {% + {% + doc name = contraction,% + },% + {% + doc name = contraction*,% + },% + }% + Typesets tensor contraction in coordinate-free notation. There + is no standard on this so we assert one here. +\end{docCommands} +\begin{dispExample} + \( \contraction{1,2} \) \\ + \( \contraction*{1,2} \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}% + {% + {% + doc name = slot,% + doc parameter = \oarg{vector},% + },% + {% + doc name = slot*,% + doc parameter = \oarg{vector},% + },% + }% + An intelligent slot command for coordinate-free vector + and tensor notation. The starred variants suppress the + underscore. +\end{docCommands} +\begin{dispExample} + \( (\slot) \) \\ + \( (\slot[\vec{a}]) \) \\ + \( (\slot*) \) \\ + \( (\slot*[\vec{a}]) \) +\end{dispExample} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc new=2021-04-06]{diff}{}% + Intelligent differential (exterior derivative) + operator. +\end{docCommand} +\begin{dispExample} + \[ + \int x\,dx + \] + \[ + \int x\,\diff{x} + \] + \[ + \int x\,\diff*{x} + \] +\end{dispExample} +%\iffalse +% +%\fi +% +% \subsection{\GlowScript\ and \VPython\ Program Listings} +% +% \href{https://\gsurl}{\GlowScript}\footnote{\href{https://\gsurl}{https://\gsurl}} +% and +% \href{https://\vpurl}{VPython}\footnote{\href{https://\vpurl}{https://\vpurl}} +% are programming environments (both use \href{https://www.python.org}{Python}) +% frequently used in introductory physics to introduce students +% for modeling physical systems. \mandi\ makes including code listings +% very simple for students. +% +% \subsection{The \texttt{\small glowscriptblock} Environment} +% +%\iffalse +%<*example> +%\fi +\begin{docEnvironment}[% + doc updated = 2021-02-26,doclang/environment content=GlowScript code% + ]% + {glowscriptblock}{\oarg{options}(\meta{link})\marg{caption}} + Code placed here is nicely formatted and optionally linked to its source on + \href{https://\gsurl}{\GlowScriptorg}. Clicking anywhere in the code window + will open the link in the default browser. A caption is mandatory, and a + label is internally generated. The listing always begins on a new page. A + URL shortening utility is recommended to keep the URL from getting unruly. + For convenience, |https://| is automatically prepended to the URL and can + thus be omitted. The program must exist in a public, not private, folder. +\end{docEnvironment} +\begin{dispListing*}{sidebyside=false} +\begin{glowscriptblock}(tinyurl.com/y3lnqyn3){A \texttt{GlowScript} Program} +GlowScript 3.0 vpython + +scene.width = 400 +scene.height = 760 +# constants and data +g = 9.8 # m/s^2 +mball = 0.03 # kg +Lo = 0.26 # m +ks = 1.8 # N/m +deltat = 0.01 # s + +# objects (origin is at ceiling) +ceiling = box(pos=vector(0,0,0), length=0.2, height=0.01, + width=0.2) +ball = sphere(pos=vector(0,-0.3,0),radius=0.025, + color=color.orange) +spring = helix(pos=ceiling.pos, axis=ball.pos-ceiling.pos, + color=color.cyan,thickness=0.003,coils=40, + radius=0.010) + +# initial values +pball = mball * vector(0,0,0) # kg m/s +Fgrav = mball * g * vector(0,-1,0) # N +t = 0 + +# improve the display +scene.autoscale = False # turn off automatic camera zoom +scene.center = vector(0,-Lo,0) # move camera down +scene.waitfor('click') # wait for a mouse click + +# initial calculation loop +# calculation loop +while t < 10: + rate(100) + # we need the stretch + s = mag(ball.pos) - Lo + # we need the spring force + Fspring = ks * s * -norm(spring.axis) + Fnet = Fgrav + Fspring + pball = pball + Fnet * deltat + ball.pos = ball.pos + (pball / mball) * deltat + spring.axis = ball.pos - ceiling.pos + t = t + deltat +\end{glowscriptblock} +\end{dispListing*} +\begin{glowscriptblock}(tinyurl.com/y3lnqyn3){A \texttt{GlowScript} Program} +GlowScript 3.0 vpython + +scene.width = 400 +scene.height = 760 +# constants and data +g = 9.8 # m/s^2 +mball = 0.03 # kg +Lo = 0.26 # m +ks = 1.8 # N/m +deltat = 0.01 # s + +# objects (origin is at ceiling) +ceiling = box(pos=vector(0,0,0), length=0.2, height=0.01, + width=0.2) +ball = sphere(pos=vector(0,-0.3,0),radius=0.025, + color=color.orange) +spring = helix(pos=ceiling.pos, axis=ball.pos-ceiling.pos, + color=color.cyan,thickness=0.003,coils=40, + radius=0.010) + +# initial values +pball = mball * vector(0,0,0) # kg m/s +Fgrav = mball * g * vector(0,-1,0) # N +t = 0 + +# improve the display +scene.autoscale = False # turn off automatic camera zoom +scene.center = vector(0,-Lo,0) # move camera down +scene.waitfor('click') # wait for a mouse click + +# initial calculation loop +# calculation loop +while t < 10: + rate(100) + # we need the stretch + s = mag(ball.pos) - Lo + # we need the spring force + Fspring = ks * s * -norm(spring.axis) + Fnet = Fgrav + Fspring + pball = pball + Fnet * deltat + ball.pos = ball.pos + (pball / mball) * deltat + spring.axis = ball.pos - ceiling.pos + t = t + deltat +\end{glowscriptblock} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{dispExample*}{sidebyside=false} + \GlowScript\ program \ref{gs:1} is nice. + It's called \nameref{gs:1} and is on page \pageref{gs:1}. +\end{dispExample*} +% +%\iffalse +% +%\fi +% +% \subsection{The \texttt{\small vpythonfile} Command} +% +%\iffalse +%<*example> +%\fi +\begin{docCommand}[doc updated = 2021-02-26]{vpythonfile} + {\oarg{options}\marg{file}\marg{caption}} + Command to load and typeset a \VPython\ program. The file is read from + \marg{file}. Clicking anywhere in the code window can optionally open + a link, passed as an option, in the default browser. A caption is mandatory, + and a label is internally generated. The listing always begins on a new page. + A URL shortening utility is recommended to keep the URL from getting unruly. + For convenience, |https://| is automatically prepended to the URL and can + thus be omitted. +\end{docCommand} +\begin{dispListing*}{sidebyside=false} +\vpythonfile[hyperurl interior = https://vpython.org]{vdemo.py} + {A \VPython\ Program} +\end{dispListing*} +\vpythonfile[hyperurl interior = https://vpython.org]{vdemo.py} + {A \VPython\ Program} +%\iffalse +% +%\fi +% +%\iffalse +%<*example> +%\fi +\begin{dispExample*}{sidebyside=false} + \VPython\ program \ref{vp:1} is nice. + It's called \nameref{vp:1} and is on page \pageref{vp:1}. +\end{dispExample*} +% +%\iffalse +% +%\fi +% +% \subsection{The \texttt{\small glowscriptinline} and +% \texttt{\small vpythoninline} Commands} +% +%\iffalse +%<*example> +%\fi +\begin{docCommands}[% + doc updated = 2021-02-26,% + ]% + {% + {% + doc name = glowscriptinline,% + doc parameter = \marg{GlowScript code},% + },% + {% + doc name = vpythoninline,% + doc parameter = \marg{VPython code},% + },% + }% + Typesets a small, in-line snippet of code. The snippet should be + less than one line long. +\end{docCommands} +\begin{dispExample*}{sidebyside=false} + \GlowScript\ programs begin with \glowscriptinline{GlowScript 3.0 VPython} + and \VPython\ programs begin with \vpythoninline{from vpython import *}. +\end{dispExample*} +%\iffalse +% +%\fi +% +% \StopEventually{} +% +% \newgeometry{left=0.50in,right=0.50in,top=1.00in,bottom=1.00in} +% \subsection{\mandistudent\ Source Code} +% +% \iffalse +%<*package> +% \fi +% Definine the package version and date for global use, exploiting the fact +% that in a \pkg{.sty} file there is now no need for |\makeatletter| and +% |\makeatother|. This simplifies defining internal commands, with |@| +% in the name, that are not for the user to know about. +% +% \begin{macrocode} +\def\mandistudent@version{\mandi@version} +\def\mandistudent@date{\mandi@date} +\NeedsTeXFormat{LaTeX2e}[2020-02-02] +\DeclareRelease{v3.0.0}{2021-08-21}{mandistudent.sty} +\DeclareCurrentRelease{v\mandi@version}{\mandi@date} +\ProvidesPackage{mandistudent} + [\mandistudent@date\space v\mandistudent@version\space Macros for introductory physics] +% \end{macrocode} +% +% Define a convenient package version command. +% +% \begin{macrocode} +\newcommand*{\mandistudentversion}{v\mandistudent@version\space dated \mandistudent@date} +% \end{macrocode} +% +% Load third party packages, documenting why each one is needed. +% +% \begin{macrocode} +\RequirePackage{amsmath} % AMS goodness (don't load amssymb or amsfonts) +\RequirePackage[inline]{enumitem} % needed for physicsproblem environment +\RequirePackage{eso-pic} % needed for \hilite +\RequirePackage[g]{esvect} % needed for nice vector arrow, style g +\RequirePackage{pgfopts} % needed for key-value interface +\RequirePackage{iftex} % needed for requiring LuaLaTeX +\RequirePackage{makebox} % needed for consistent \dirvect; \makebox +\RequirePackage{mandi} +\RequirePackage{mathtools} % needed for paired delimiters; extends amsmath +\RequirePackage{nicematrix} % needed for column and row vectors +\RequirePackage[most]{tcolorbox} % needed for program listings +\RequirePackage{tensor} % needed for index notation +\RequirePackage{tikz} % needed for \hilite +\usetikzlibrary{shapes,fit,tikzmark} % needed for \hilite +\RequirePackage{unicode-math} % needed for Unicode support +\RequirePackage{hyperref} % load last +\RequireLuaTeX % require this engine +% \end{macrocode} +% +% Set up the fonts to be consistent with ISO 80000-2 notation. +% The \href{https://www.ctan.org/pkg/unicode-math}{\pkg{unicode-math}} package +% loads the \href{https://www.ctan.org/pkg/fontspec}{\pkg{fontspec}} and +% \href{https://www.ctan.org/pkg/xparse}{\pkg{xparse}} +% packages. Note that \pkg{xparse} is now part of the \LaTeX\ kernel. +% Because \pkg{unicode-math} is required, all documents using \mandi\ must +% be compiled with an engine that supports Unicode. We recommend \lualatex. +% +% \begin{macrocode} +\unimathsetup{math-style=ISO} +\unimathsetup{warnings-off={mathtools-colon,mathtools-overbracket}} +% +% Use normal math letters from Latin Modern Math for familiarity with +% textbooks. +% +% \begin{macrocode} +\setmathfont[Scale=MatchLowercase] + {Latin Modern Math} % default math font; better J +% \end{macrocode} +% +% Borrow from GeX Gyre DejaVu Math for vectors and tensors to get single-storey g. +% +% \begin{macrocode} +\setmathfont[Scale=MatchLowercase,range={sfit/{latin},bfsfit/{latin}}] + {TeX Gyre DejaVu Math} % single-storey lowercase g +% \end{macrocode} +% +% Borrow from GeX Gyre DejaVu Math to get single-storey g. +% +% \begin{macrocode} +\setmathfont[Scale=MatchLowercase,range={sfup/{latin},bfsfup/{latin}}] + {TeX Gyre DejaVu Math} % single-storey lowercase g +% \end{macrocode} +% Borrow |mathscr| and |mathbfscr| from XITS Math.\newline +% See \url{https://tex.stackexchange.com/a/120073/218142}. +% +% \begin{macrocode} +\setmathfont[Scale=MatchLowercase,range={\mathscr,\mathbfscr}]{XITS Math} +% \end{macrocode} +% +% Get original and bold |mathcal| fonts.\newline +% See \url{https://tex.stackexchange.com/a/21742/218142}. +% +% \begin{macrocode} +\setmathfont[Scale=MatchLowercase,range={\mathcal,\mathbfcal},StylisticSet=1]{XITS Math} +% \end{macrocode} +% +% Borrow Greek sfup and sfit letters from STIX Two Math. +% Since this isn't officially supported in \pkg{unicode-math} +% we have to manually set this up. +% +% \begin{macrocode} +\setmathfont[Scale=MatchLowercase,range={"E17C-"E1F6}]{STIX Two Math} +\newfontfamily{\symsfgreek}{STIX Two Math} +% I don't understand why \text{...} is necessary. +\newcommand{\symsfupalpha} {\text{\symsfgreek{^^^^e196}}} +\newcommand{\symsfupbeta} {\text{\symsfgreek{^^^^e197}}} +\newcommand{\symsfupgamma} {\text{\symsfgreek{^^^^e198}}} +\newcommand{\symsfupdelta} {\text{\symsfgreek{^^^^e199}}} +\newcommand{\symsfupepsilon} {\text{\symsfgreek{^^^^e1af}}} +\newcommand{\symsfupvarepsilon} {\text{\symsfgreek{^^^^e19a}}} +\newcommand{\symsfupzeta} {\text{\symsfgreek{^^^^e19b}}} +\newcommand{\symsfupeta} {\text{\symsfgreek{^^^^e19c}}} +\newcommand{\symsfuptheta} {\text{\symsfgreek{^^^^e19d}}} +\newcommand{\symsfupvartheta} {\text{\symsfgreek{^^^^e1b0}}} +\newcommand{\symsfupiota} {\text{\symsfgreek{^^^^e19e}}} +\newcommand{\symsfupkappa} {\text{\symsfgreek{^^^^e19f}}} +\newcommand{\symsfuplambda} {\text{\symsfgreek{^^^^e1a0}}} +\newcommand{\symsfupmu} {\text{\symsfgreek{^^^^e1a1}}} +\newcommand{\symsfupnu} {\text{\symsfgreek{^^^^e1a2}}} +\newcommand{\symsfupxi} {\text{\symsfgreek{^^^^e1a3}}} +\newcommand{\symsfupomicron} {\text{\symsfgreek{^^^^e1a4}}} +\newcommand{\symsfuppi} {\text{\symsfgreek{^^^^e1a5}}} +\newcommand{\symsfupvarpi} {\text{\symsfgreek{^^^^e1b3}}} +\newcommand{\symsfuprho} {\text{\symsfgreek{^^^^e1a6}}} +\newcommand{\symsfupvarrho} {\text{\symsfgreek{^^^^e1b2}}} +\newcommand{\symsfupsigma} {\text{\symsfgreek{^^^^e1a8}}} +\newcommand{\symsfupvarsigma} {\text{\symsfgreek{^^^^e1a7}}} +\newcommand{\symsfuptau} {\text{\symsfgreek{^^^^e1a9}}} +\newcommand{\symsfupupsilon} {\text{\symsfgreek{^^^^e1aa}}} +\newcommand{\symsfupphi} {\text{\symsfgreek{^^^^e1b1}}} +\newcommand{\symsfupvarphi} {\text{\symsfgreek{^^^^e1ab}}} +\newcommand{\symsfupchi} {\text{\symsfgreek{^^^^e1ac}}} +\newcommand{\symsfuppsi} {\text{\symsfgreek{^^^^e1ad}}} +\newcommand{\symsfupomega} {\text{\symsfgreek{^^^^e1ae}}} +\newcommand{\symsfupDelta} {\text{\symsfgreek{^^^^e180}}} +\newcommand{\symsfupGamma} {\text{\symsfgreek{^^^^e17f}}} +\newcommand{\symsfupTheta} {\text{\symsfgreek{^^^^e18e}}} +\newcommand{\symsfupLambda} {\text{\symsfgreek{^^^^e187}}} +\newcommand{\symsfupXi} {\text{\symsfgreek{^^^^e18a}}} +\newcommand{\symsfupPi} {\text{\symsfgreek{^^^^e18c}}} +\newcommand{\symsfupSigma} {\text{\symsfgreek{^^^^e18f}}} +\newcommand{\symsfupUpsilon} {\text{\symsfgreek{^^^^e191}}} +\newcommand{\symsfupPhi} {\text{\symsfgreek{^^^^e192}}} +\newcommand{\symsfupPsi} {\text{\symsfgreek{^^^^e194}}} +\newcommand{\symsfupOmega} {\text{\symsfgreek{^^^^e195}}} +\newcommand{\symsfitalpha} {\text{\symsfgreek{^^^^e1d8}}} +\newcommand{\symsfitbeta} {\text{\symsfgreek{^^^^e1d9}}} +\newcommand{\symsfitgamma} {\text{\symsfgreek{^^^^e1da}}} +\newcommand{\symsfitdelta} {\text{\symsfgreek{^^^^e1db}}} +\newcommand{\symsfitepsilon} {\text{\symsfgreek{^^^^e1f1}}} +\newcommand{\symsfitvarepsilon} {\text{\symsfgreek{^^^^e1dc}}} +\newcommand{\symsfitzeta} {\text{\symsfgreek{^^^^e1dd}}} +\newcommand{\symsfiteta} {\text{\symsfgreek{^^^^e1de}}} +\newcommand{\symsfittheta} {\text{\symsfgreek{^^^^e1df}}} +\newcommand{\symsfitvartheta} {\text{\symsfgreek{^^^^e1f2}}} +\newcommand{\symsfitiota} {\text{\symsfgreek{^^^^e1e0}}} +\newcommand{\symsfitkappa} {\text{\symsfgreek{^^^^e1e1}}} +\newcommand{\symsfitlambda} {\text{\symsfgreek{^^^^e1e2}}} +\newcommand{\symsfitmu} {\text{\symsfgreek{^^^^e1e3}}} +\newcommand{\symsfitnu} {\text{\symsfgreek{^^^^e1e4}}} +\newcommand{\symsfitxi} {\text{\symsfgreek{^^^^e1e5}}} +\newcommand{\symsfitomicron} {\text{\symsfgreek{^^^^e1e6}}} +\newcommand{\symsfitpi} {\text{\symsfgreek{^^^^e1e7}}} +\newcommand{\symsfitvarpi} {\text{\symsfgreek{^^^^e1f5}}} +\newcommand{\symsfitrho} {\text{\symsfgreek{^^^^e1e8}}} +\newcommand{\symsfitvarrho} {\text{\symsfgreek{^^^^e1f4}}} +\newcommand{\symsfitsigma} {\text{\symsfgreek{^^^^e1ea}}} +\newcommand{\symsfitvarsigma} {\text{\symsfgreek{^^^^e1e9}}} +\newcommand{\symsfittau} {\text{\symsfgreek{^^^^e1eb}}} +\newcommand{\symsfitupsilon} {\text{\symsfgreek{^^^^e1ec}}} +\newcommand{\symsfitphi} {\text{\symsfgreek{^^^^e1f3}}} +\newcommand{\symsfitvarphi} {\text{\symsfgreek{^^^^e1ed}}} +\newcommand{\symsfitchi} {\text{\symsfgreek{^^^^e1ee}}} +\newcommand{\symsfitpsi} {\text{\symsfgreek{^^^^e1ef}}} +\newcommand{\symsfitomega} {\text{\symsfgreek{^^^^e1f0}}} +\newcommand{\symsfitDelta} {\text{\symsfgreek{^^^^e1c2}}} +\newcommand{\symsfitGamma} {\text{\symsfgreek{^^^^e1c1}}} +\newcommand{\symsfitTheta} {\text{\symsfgreek{^^^^e1d0}}} +\newcommand{\symsfitLambda} {\text{\symsfgreek{^^^^e1c9}}} +\newcommand{\symsfitXi} {\text{\symsfgreek{^^^^e1cc}}} +\newcommand{\symsfitPi} {\text{\symsfgreek{^^^^e1ce}}} +\newcommand{\symsfitSigma} {\text{\symsfgreek{^^^^e1d1}}} +\newcommand{\symsfitUpsilon} {\text{\symsfgreek{^^^^e1d3}}} +\newcommand{\symsfitPhi} {\text{\symsfgreek{^^^^e1d4}}} +\newcommand{\symsfitPsi} {\text{\symsfgreek{^^^^e1d6}}} +\newcommand{\symsfitOmega} {\text{\symsfgreek{^^^^e1d7}}} +% \end{macrocode} +% +% Tweak the \href{https://www.ctan.org/pkg/esvect}{\pkg{esvect}} package +% fonts to get the correct font size. Code provided by |@egreg|.\newline +% See \url{https://tex.stackexchange.com/a/566676}. +% +% \begin{macrocode} +\DeclareFontFamily{U}{esvect}{} +\DeclareFontShape{U}{esvect}{m}{n}{% + <-5.5> vect5 + <5.5-6.5> vect6 + <6.5-7.5> vect7 + <7.5-8.5> vect8 + <8.5-9.5> vect9 + <9.5-> vect10 +}{}% +% \end{macrocode} +% +% Write a banner to the console showing the options in use. +% +% \begin{macrocode} +\typeout{}% +\typeout{mandistudent: You are using mandistudent \mandistudentversion.}% +\typeout{mandistudent: This package requires LuaLaTeX.}% +\typeout{mandistudent: This package changes the default math font(s).}% +\typeout{mandistudent: This package redefines the \protect\vec\space command.}% +\typeout{}% +% \end{macrocode} +% +% A better, intelligent coordinate-free \refCom{vec} command. Note the use of +% the |e{_^}| type of optional argument. This accounts for much of the +% flexibility and power of this command. Also note the use of the \TeX\ +% primitives |\sb{}| and |\sp{}|. Why doesn't it work when I put spaces +% around |#3| or |#4|? Because outside of |\ExplSyntaxOn...\ExplSyntaxOff|, +% the |_| character has a different catcode and is treated as a mathematical +% entity.\newline +% See \url{https://tex.stackexchange.com/q/554706/218142}.\newline +% See also \url{https://tex.stackexchange.com/a/531037/218142}. +% +% \begin{macrocode} +\RenewDocumentCommand{\vec}{ s m e{_^} }{% + % Note the \, used to make superscript look better. + \IfBooleanTF {#1} + {\vv{#2}% % * gives an arrow + % Use \sp{} primitive for superscript. + % Adjust superscript for the arrow. + \sp{\IfValueT{#4}{\,#4}\vphantom{\smash[t]{\big|}}} + }% + {\symbfit{#2} % no * gives us bold + % Use \sp{} primitive for superscript. + % No superscript adjustment needed. + \sp{\IfValueT{#4}{#4}\vphantom{\smash[t]{\big|}}} + }% + % Use \sb{} primitive for subscript. + \sb{\IfValueT{#3}{#3}\vphantom{\smash[b]{|}}} +}% +% \end{macrocode} +% +% A command for the direction of a vector. +% We use a slight tweak to get uniform hats that +% requires the \href{https://www.ctan.org/pkg/makebox}{\pkg{makebox}} +% package.\newline +% See \url{https://tex.stackexchange.com/a/391204/218142}. +% +% \begin{macrocode} +\NewDocumentCommand{\dirvec}{ s m e{_^} }{% + \widehat{\makebox*{\(w\)}{\ensuremath{% + \IfBooleanTF {#1} + {% + #2 + }% + {% + \symbfit{#2} + }% + }% + }% + }% + \sb{\IfValueT{#3}{#3}\vphantom{\smash[b]{|}}} + \sp{\IfValueT{#4}{\,#4}\vphantom{\smash[t]{\big|}}} +}% +% \end{macrocode} +% +% The zero vector. +% +% \begin{macrocode} +\NewDocumentCommand{\zerovec}{ s }{% + \IfBooleanTF {#1} + {\vv{0}}% + {\symbfup{0}}% +}% +% \end{macrocode} +% +% Notation for column and row vectors. +% Orginal code provided by |@egreg|.\newline +% See \url{https://tex.stackexchange.com/a/39054/218142}. +% +% \begin{macrocode} +\ExplSyntaxOn +\NewDocumentCommand{\colvec}{ O{,} m }{% + \vector_main:nnnn { p } { \\ } { #1 } { #2 } +}% +\NewDocumentCommand{\rowvec}{ O{,} m }{% + \vector_main:nnnn { p } { & } { #1 } { #2 } +}% +\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{#1NiceMatrix}[r] + \seq_use:Nnnn \l__vector_arg_seq { #2 } { #2 } { #2 } + \end{#1NiceMatrix} +}% +\ExplSyntaxOff +% \end{macrocode} +% +% Students always need this symbol. +% +% \begin{macrocode} +\NewDocumentCommand{\changein}{}{\Delta} +% \end{macrocode} +% +% Intelligent delimiters provided via the +% \href{https://www.ctan.org/pkg/mathtools}{\pkg{mathtools}} package. +% Use the starred variants for fractions. You can supply optional sizes. +% Note that default placeholders are used when the argument is empty. +% +% \begin{macrocode} +\DeclarePairedDelimiterX{\doublebars}[1]{\lVert}{\rVert}{\ifblank{#1}{\:\cdot\:}{#1}} +\DeclarePairedDelimiterX{\singlebars}[1]{\lvert}{\rvert}{\ifblank{#1}{\:\cdot\:}{#1}} +\DeclarePairedDelimiterX{\anglebrackets}[1]{\langle}{\rangle}{\ifblank{#1}{\:\cdot\:}{#1}} +\DeclarePairedDelimiterX{\parentheses}[1]{(}{)}{\ifblank{#1}{\:\cdot\:}{#1}} +\DeclarePairedDelimiterX{\squarebrackets}[1]{\lbrack}{\rbrack}{\ifblank{#1}{\:\cdot\:}{#1}} +\DeclarePairedDelimiterX{\curlybraces}[1]{\lbrace}{\rbrace}{\ifblank{#1}{\:\cdot\:}{#1}} +% \end{macrocode} +% +% Some semantic aliases. Because of the way \refCom{vec} and +% \refCom{dirvec} are defined, I reluctantly decided not to +% implement a |\magvec| command. It would require accounting +% for too mamy options. So \refCom{magnitude} is the new +% solution. +% +% \begin{macrocode} +\NewDocumentCommand{\magnitude}{}{\doublebars} +\NewDocumentCommand{\norm}{}{\doublebars} +\NewDocumentCommand{\absolutevalue}{}{\singlebars} +% \end{macrocode} +% +% Commands for two important geometric relationships. These are meant +% mainly to be subscripts. +% +% \begin{macrocode} +\NewDocumentCommand{\parallelto}{} + {\mkern3mu\vphantom{\perp}\vrule depth 0pt\mkern2mu\vrule depth 0pt\mkern3mu} +\NewDocumentCommand{\perpendicularto}{}{\perp} +% \end{macrocode} +% +% An environment for problem statements. The starred variant gives +% in-line lists. +% +% \begin{macrocode} +\NewDocumentEnvironment{physicsproblem}{ m }{% + \newpage% + \section*{#1}% + \newlist{parts}{enumerate}{2}% + \setlist[parts]{label=\bfseries(\alph*)}}% + {}% +\NewDocumentEnvironment{physicsproblem*}{ m }{% + \newpage% + \section*{#1}% + \newlist{parts}{enumerate*}{2}% + \setlist[parts]{label=\bfseries(\alph*)}}% + {}% +\NewDocumentCommand{\problempart}{}{\item}% +% \end{macrocode} +% +% An environment for problem solutions. +% +% \begin{macrocode} +\NewDocumentEnvironment{physicssolution}{ +b }{% + % Make equation numbering consecutive through the document. + \begin{align} + #1 + \end{align} +}{}% +\NewDocumentEnvironment{physicssolution*}{ +b }{% + % Make equation numbering consecutive through the document. + \begin{align*} + #1 + \end{align*} +}{}% +% \end{macrocode} +% +% See \url{https://tex.stackexchange.com/q/570223/218142}. +% +% \begin{macrocode} +\NewDocumentCommand{\reason}{ O{4cm} m } + {&&\begin{minipage}{#1}\raggedright\small #2\end{minipage}} +% \end{macrocode} +% +% Command for highlighting parts of, or entire, mathematical expressions.\newline +% Original code by anonymous user |@abcdefg|, modified by me.\newline +% See \url{https://texample.net/tikz/examples/beamer-arrows/}.\newline +% See also \url{https://tex.stackexchange.com/a/406084/218142}.\newline +% See also \url{https://tex.stackexchange.com/a/570858/218142}.\newline +% See also \url{https://tex.stackexchange.com/a/570789/218142}.\newline +% See also \url{https://tex.stackexchange.com/a/79659/218142}.\newline +% See also \url{https://tex.stackexchange.com/q/375032/218142}.\newline +% See also \url{https://tex.stackexchange.com/a/571744/218142}% +% +% \begin{macrocode} +\newcounter{tikzhighlightnode} +\NewDocumentCommand{\hilite}{ O{magenta!60} m O{rectangle} }{% + \stepcounter{tikzhighlightnode}% + \tikzmarknode{highlighted-node-\number\value{tikzhighlightnode}}{#2}% + \edef\temp{% + \noexpand\AddToShipoutPictureBG{% + \noexpand\begin{tikzpicture}[overlay,remember picture]% + \noexpand\iftikzmarkoncurrentpage{highlighted-node-\number\value{tikzhighlightnode}}% + \noexpand\node[inner sep=1.0pt,fill=#1,#3,fit=(highlighted-node-\number\value{tikzhighlightnode})]{};% + \noexpand\fi + \noexpand\end{tikzpicture}% + }% + }% + \temp% +}% +% \end{macrocode} +% +% A simplified command for importing images. +% +% \begin{macrocode} +\NewDocumentCommand{\image}{ O{scale=1} m m m }{% + \begin{figure}[ht!] + \begin{center}% + \includegraphics[#1]{#2}% + \end{center}% + \caption{#3}% + \label{#4}% + \end{figure}% +}% +% \end{macrocode} +% +% Intelligent commands for typesetting vector and tensor symbols and +% components suitable for use with both coordinate-free and index +% notations. Use starred form for index notation, unstarred form for +% coordinate-free. +% +% \begin{macrocode} +\NewDocumentCommand{\veccomp}{ s m }{% + % Consider renaming this to \vectorsym. + \IfBooleanTF{#1} + {% + \symnormal{#2}% + }% + {% + \symbfit{#2}% + }% +}% +\NewDocumentCommand{\tencomp}{ s m }{% + % Consider renaming this to \tensororsym. + \IfBooleanTF{#1} + {% + \symsfit{#2}% + }% + {% + \symbfsfit{#2} + }% +}% +% \end{macrocode} +% +% Command to typeset tensor valence. +% +% \begin{macrocode} +\NewDocumentCommand{\valence}{ s m m }{% + \IfBooleanTF{#1} + {(#2,#3)} + {\binom{#2}{#3}} +}% +% \end{macrocode} +% +% Intelligent notation for contraction on pairs of slots. +% +% \begin{macrocode} +\NewDocumentCommand{\contraction}{ s m }{% + \IfBooleanTF{#1} + {\mathsf{C}}% + {\symbb{C}}% + _{#2} +}% +% \end{macrocode} +% +% Intelligent slot command for coordinate-free tensor notation. +% +% \begin{macrocode} +\NewDocumentCommand{\slot}{ s d[] }{% + % d[] must be used because of the way consecutive optional + % arguments are handled. See xparse docs for details. + \IfBooleanTF{#1} + {% + \IfValueTF{#2} + {% Insert a vector, but don't show the slot. + \smash{\makebox[1.5em]{\ensuremath{#2}}} + }% + {% No vector, no slot. + \smash{\makebox[1.5em]{\ensuremath{}}} + }% + }% + {% + \IfValueTF{#2} + {% Insert a vector and show the slot. + \underline{\smash{\makebox[1.5em]{\ensuremath{#2}}}} + }% + {% No vector; just show the slot. + \underline{\smash{\makebox[1.5em]{\ensuremath{}}}} + }% + }% +}% +% \end{macrocode} +% +% Intelligent differential (exterior derivative) operator. +% +% \begin{macrocode} +\NewDocumentCommand{\diff}{ s }{% + \mathop{}\! + \IfBooleanTF{#1} + {\symbfsfup{d}}% + {\symsfup{d}}% +}% +% \end{macrocode} +% +% Here is a clever way to color digits in program listsings thanks to +% Ulrike Fischer.\newline +% See \url{https://tex.stackexchange.com/a/570717/218142}. +% +% \begin{macrocode} +\directlua{% + luaotfload.add_colorscheme("colordigits", + {["8000FF"] = {"one","two","three","four","five","six","seven","eight","nine","zero"}}) +}% +\newfontfamily\colordigits{DejaVuSansMono}[RawFeature={color=colordigits}] +% \end{macrocode} +% +% Set up a color scheme and a new code environment for listings. The new colors +% are more restful on the eye. All listing commands now use +% \href{https://www.ctan.org/pkg/tcolorbox}{\pkg{tcolorbox}}.\newline +% See \url{https://tex.stackexchange.com/a/529421/218142}. +% +% \begin{macrocode} +\newfontfamily{\gsfontfamily}{DejaVuSansMono} % new font for listings +\definecolor{gsbggray} {rgb}{0.90,0.90,0.90} % background gray +\definecolor{gsgray} {rgb}{0.30,0.30,0.30} % gray +\definecolor{gsgreen} {rgb}{0.00,0.60,0.00} % green +\definecolor{gsorange} {rgb}{0.80,0.45,0.12} % orange +\definecolor{gspeach} {rgb}{1.00,0.90,0.71} % peach +\definecolor{gspearl} {rgb}{0.94,0.92,0.84} % pearl +\definecolor{gsplum} {rgb}{0.74,0.46,0.70} % plum +\lstdefinestyle{vpython}{% % style for listings + backgroundcolor=\color{gsbggray},% % background color + basicstyle=\colordigits\footnotesize,% % default style + breakatwhitespace=true% % break at whitespace + breaklines=true,% % break long lines + captionpos=b,% % position caption + classoffset=1,% % STILL DON'T UNDERSTAND THIS + commentstyle=\color{gsgray},% % font for comments + deletekeywords={print},% % delete keywords from the given language + emph={self,cls,@classmethod,@property},% % words to emphasize + emphstyle=\color{gsorange}\itshape,% % font for emphasis + escapeinside={(*@}{@*)},% % add LaTeX within your code + frame=tb,% % frame style + framerule=2.0pt,% % frame thickness + framexleftmargin=5pt,% % extra frame left margin + %identifierstyle=\sffamily,% % style for identifiers + keywordstyle=\gsfontfamily\color{gsplum},% % color for keywords + language=Python,% % select language + linewidth=\linewidth,% % width of listings + morekeywords={% % VPython/GlowScript specific keywords + __future__,abs,acos,align,ambient,angle,append,append_to_caption,% + append_to_title,arange,arrow,asin,astuple,atan,atan2,attach_arrow,% + attach_trail,autoscale,axis,background,billboard,bind,black,blue,border,% + bounding_box,box,bumpaxis,bumpmap,bumpmaps,camera,canvas,caption,capture,% + ceil,center,clear,clear_trail,click,clone,CoffeeScript,coils,color,combin,% + comp,compound,cone,convex,cos,cross,curve,cyan,cylinder,data,degrees,del,% + delete,depth,descender,diff_angle,digits,division,dot,draw_complete,% + ellipsoid,emissive,end_face_color,equals,explog,extrusion,faces,factorial,% + False,floor,follow,font,format,forward,fov,frame,gcurve,gdisplay,gdots,% + get_library,get_selected,ghbars,global,GlowScript,graph,graphs,green,gvbars,% + hat,headlength,headwidth,height,helix,hsv_to_rgb,index,interval,keydown,% + keyup,label,length,lights,line,linecolor,linewidth,logx,logy,lower_left,% + lower_right,mag,mag2,magenta,make_trail,marker_color,markers,material,% + max,min,mouse,mousedown,mousemove,mouseup,newball,norm,normal,objects,% + offset,one,opacity,orange,origin,path,pause,pi,pixel_to_world,pixels,plot,% + points,pos,pow,pps,print,print_function,print_options,proj,purple,pyramid,% + quad,radians,radius,random,rate,ray,read_local_file,readonly,red,redraw,% + retain,rgb_to_hsv,ring,rotate,round,scene,scroll,shaftwidth,shape,shapes,% + shininess,show_end_face,show_start_face,sign,sin,size,size_units,sleep,% + smooth,space,sphere,sqrt,start,start_face_color,stop,tan,text,textpos,% + texture,textures,thickness,title,trail_color,trail_object,trail_radius,% + trail_type,triangle,trigger,True,twist,unbind,up,upper_left,upper_right,% + userpan,userspin,userzoom,vec,vector,vertex,vertical_spacing,visible,% + visual,vpython,VPython,waitfor,white,width,world,xtitle,yellow,yoffset,% + ytitle% + },% + morekeywords={print,None,TypeError},% % additional keywords + morestring=[b]{"""},% % treat triple quotes as strings + numbers=left,% % where to put line numbers + numbersep=10pt,% % how far line numbers are from code + numberstyle=\bfseries\tiny,% % set to 'none' for no line numbers + showstringspaces=false,% % show spaces in strings + showtabs=false,% % show tabs within strings + stringstyle=\gsfontfamily\color{gsgreen},% % color for strings + upquote=true,% % how to typeset quotes +}% +% \end{macrocode} +% +% Introduce a new, more intelligent \refEnv{glowscriptblock} environment. +% +% \begin{macrocode} +\NewTCBListing[auto counter,list inside=gsprogs]{glowscriptblock} + { O{} D(){glowscript.org} m }{% + breakable,% + center,% + code = \newpage,% + %derivpeach,% + enhanced,% + hyperurl interior = https://#2,% + label = {gs:\thetcbcounter},% + left = 8mm,% + list entry = \thetcbcounter~~~~~#3,% + listing only,% + listing style = vpython,% + nameref = {#3},% + title = \texttt{GlowScript} Program \thetcbcounter: #3,% + width = 0.9\textwidth,% + {#1}, +}% +% \end{macrocode} +% +% A new command for generating a list of \GlowScript\ programs. +% +% \begin{macrocode} +\NewDocumentCommand{\listofglowscriptprograms}{}{\tcblistof[\section*]{gsprogs} + {List of \texttt{GlowScript} Programs}}% +% \end{macrocode} +% +% Introduce a new, more intelligent \refCom{vpythonfile} command. +% +% \begin{macrocode} +\NewTCBInputListing[auto counter,list inside=vpprogs]{\vpythonfile} + { O{} m m }{% + breakable,% + center,% + code = \newpage,% + %derivgray,% + enhanced,% + hyperurl interior = https://,% + label = {vp:\thetcbcounter},% + left = 8mm,% + list entry = \thetcbcounter~~~~~#3,% + listing file = {#2},% + listing only,% + listing style = vpython,% + nameref = {#3},% + title = \texttt{VPython} Program \thetcbcounter: #3,% + width = 0.9\textwidth,% + {#1},% +}% +% \end{macrocode} +% +% A new command for generating a list of \VPython\ programs. +% +% \begin{macrocode} +\NewDocumentCommand{\listofvpythonprograms}{}{\tcblistof[\section*]{vpprogs} + {List of \texttt{VPython} Programs}}% +% \end{macrocode} +% +% Introduce a new \refCom{glowscriptinline} command. +% +% \begin{macrocode} +\DeclareTotalTCBox{\glowscriptinline}{ m }{% + bottom = 0pt,% + bottomrule = 0.0mm,% + boxsep = 1.0mm,% + colback = gsbggray,% + colframe = gsbggray,% + left = 0pt,% + leftrule = 0.0mm,% + nobeforeafter,% + right = 0pt,% + rightrule = 0.0mm,% + sharp corners,% + tcbox raise base,% + top = 0pt,% + toprule = 0.0mm,% +}{\lstinline[style = vpython]{#1}}% +% \end{macrocode} +% +% Define \refCom{vpythoninline}, a semantic alias for \VPython\ +% in-line listings. +% +% \begin{macrocode} +\NewDocumentCommand{\vpythoninline}{}{\glowscriptinline}% +% \end{macrocode} +% +% \restoregeometry +% +% \iffalse +% +% \fi +% +% \Finale diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md index d02f959416..5be9f750f6 100644 --- a/macros/latex/contrib/siunitx/CHANGELOG.md +++ b/macros/latex/contrib/siunitx/CHANGELOG.md @@ -7,6 +7,12 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ## [Unreleased] +## [v3.0.26] + +### Fixed +- Accidental printing of `T@TS1` with `beamer` (issue + [#534](https://github.com/josephwright/siunitx/issues/534)) + ## [v3.0.25] ### Changed @@ -361,6 +367,7 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to - Option `table-alignment-mode` - Option `table-column-type` - Option `text-family-to-math` +- Option `text-font-command` - Option `text-series-to-math` - Option `uncertainty-mode` - Option `unit-font-command` @@ -423,7 +430,6 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to - Option `table-sign-mantissa` - Option `table-space-text-post` - Option `table-space-text-pre` -- Option `text-font-command` - Option `zero-decimal-to-integer` - Option setting `list-units = brackets` - Option setting `per-mode = reciprocal` @@ -1539,7 +1545,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ### Added - First public testing release (as `si`) -[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.25...HEAD +[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.26...HEAD +[v3.0.26]: https://github.com/josephwright/siunitx/compare/v3.0.25...v3.0.26 [v3.0.25]: https://github.com/josephwright/siunitx/compare/v3.0.24...v3.0.25 [v3.0.24]: https://github.com/josephwright/siunitx/compare/v3.0.23...v3.0.24 [v3.0.23]: https://github.com/josephwright/siunitx/compare/v3.0.22...v3.0.23 diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf index 6e575cff02..779c0c26b6 100644 Binary files a/macros/latex/contrib/siunitx/siunitx-code.pdf and b/macros/latex/contrib/siunitx/siunitx-code.pdf differ diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx index 924aaa3b0f..25e15ca4bb 100644 --- a/macros/latex/contrib/siunitx/siunitx-number.dtx +++ b/macros/latex/contrib/siunitx/siunitx-number.dtx @@ -2765,11 +2765,16 @@ % \begin{macro}[EXP]{\@@_round_uncertainty:nnnnnnn} % \begin{macro}[EXP]{\@@_round_uncertainty_end:nn} % \begin{macro}[EXP]{\@@_round_uncertainty:nnn} -% \begin{macro}[EXP]{\@@_round_uncertainty:nnnnn, \@@_round_uncertainty_aux:nnnnn} -% \begin{macro}[EXP]{\@@_round_uncertainty_aux:nnnnnn} +% \begin{macro}[EXP]{\@@_round_uncertainty:nnnn} +% \begin{macro}[EXP]{\@@_round_uncertainty:nnnnn} +% \begin{macro}[EXP] +% { +% \@@_round_uncertainty_simple:nnnnnn , +% \@@_round_uncertainty_shift:nnnnnn +% } % \begin{macro}[EXP]{\@@_round_uncertainty_shift:nn} % \begin{macro}[EXP]{\@@_round_uncertainty_shift:nnnw} -% \begin{macro}[EXP]{\@@_round_uncertainty_shift:nnnn} +% \begin{macro}[EXP]{\@@_round_uncertainty_shift_aux:nnnnn} % \begin{macro}[EXP] % { % \@@_round_uncertainty_engineering:nnn , @@ -2808,66 +2813,73 @@ { \exp_not:n { {#1} {#2} } } % \end{macrocode} % Round the uncertainty first: this is needed to get the number of places -% correct (for the case where the uncertainty rounds up to |1...|). Once that -% is done, it's just a question of working out the digits in the main part. +% correct. Once that is done, it's just a question of working out the digits +% in the main part. % \begin{macrocode} \cs_new:Npn \@@_round_uncertainty:nnn #1#2#3 { - \exp_last_unbraced:Nf \@@_round_uncertainty:nnnnn + \exp_args:Nf \@@_round_uncertainty:nnnn { - \@@_round:fnn - { - \int_eval:n - { \tl_count:n {#3} - \l_@@_round_precision_int } - } - { } {#3} + \int_eval:n + { \tl_count:n {#3} - \l_@@_round_precision_int } } {#1} {#2} {#3} } -\cs_new:Npn \@@_round_uncertainty:nnnnn #1#2#3#4#5 +\cs_new:Npn \@@_round_uncertainty:nnnn #1#2#3#4 { - \exp_args:Nff \@@_round_uncertainty_aux:nnnnn - { \int_eval:n { \tl_count:n {#5} - \tl_count:n {#2} } } - {#1} {#2} {#3} {#4} + \exp_last_unbraced:Nf \@@_round_uncertainty:nnnnn + { \@@_round:nnn {#1} { } {#4} } + {#2} {#3} {#1} } % \end{macrocode} -% The first argument here deals with the case where we've lost digits -% in the uncertainty and it's purely located in the integer part. +% Here, we need to work out how many digits to zero-fill the uncertainty, for +% the case where it crosses into the integer part. This depends on whether +% the uncertainty rounded up, which also links to additional treatment. We +% therefore split paths here. % \begin{macrocode} -\cs_new:Npn \@@_round_uncertainty_aux:nnnnn #1#2#3#4#5 +\cs_new:Npn \@@_round_uncertainty:nnnnn #1#2#3#4#5 { - \exp_args:Nf \@@_round_uncertainty_aux:nnnnnn + \tl_if_blank:nTF {#1} { - \prg_replicate:nn - { \int_max:nn { #1 - \tl_count:n {#5} } { 0 } } - { 0 } + \exp_args:Nf \@@_round_uncertainty_simple:nnnnn + { + \prg_replicate:nn + { + \int_max:nn + { 0 - ( \tl_count:n {#4} - \tl_count:n {#2} - #5 + 1 ) } + { 0 } + } + { 0 } + } + {#3} {#4} {#2} {#5} } - {#1} {#2} {#3} {#4} {#5} + { \@@_round_uncertainty_shift:nnnnn {#3} {#4} {#1} {#2} {#5} } + } -\cs_new:Npn \@@_round_uncertainty_aux:nnnnnn #1#2#3#4#5#6 +% \end{macrocode} +% The simple case: round and pad out the uncertainty as required. +% \begin{macrocode} +\cs_new:Npn \@@_round_uncertainty_simple:nnnnn #1#2#3#4#5 { - \tl_if_blank:nTF {#3} - { - \@@_round:nnn - {#2} - {#5} {#6} - { { S } { #4 #1 } } - } - { - \exp_args:Ne \@@_round_uncertainty_shift:nn - { - \@@_round:fnn - { \int_eval:n { #2 + 1 } } - {#5} {#6} - } - { { S } { #3 #1 } } - } + \@@_round:nnn + {#5} + {#2} {#3} + { { S } { #4 #1 } } + } +% \end{macrocode} +% \begin{macrocode} +\cs_new:Npn \@@_round_uncertainty_shift:nnnnn #1#2#3#4#5 + { + \exp_args:Ne \@@_round_uncertainty_shift:nn + { \@@_round:fnn { \int_eval:n { #5 + 1 } } {#1} {#2} } + {#5} } % \end{macrocode} -% We now have to clear up the exponent, plus deal with the case where -% rounding has resulted in the entire value being uncertain (|1(1)| with -% some exponent). The latter shows up if the uncertainty is too long or if -% we match a specific pattern. +% If the padding length is the same as the number of integer digits, then +% we have a pathological case and need to filter out. They show up as they +% have the either the precision greater than the length of the integer +% part, or have a value of exactly $10$ when the exponent mode is +% scientific. % \begin{macrocode} \cs_new:Npn \@@_round_uncertainty_shift:nn #1#2 { \@@_round_uncertainty_shift:nnnw #1 {#2} } @@ -2876,24 +2888,38 @@ { #4 \bool_lazy_and:nnTF + { \int_compare_p:nNn {#3} > { \tl_count:n {#1} } } { - \int_compare_p:nNn - { \tl_count:o { \use_ii:nn #3 } } = \l_@@_round_precision_int - } - { - ! \str_if_eq_p:nn { {#1} {#2} {#3} } { { 10 } { } { { S } { 1 } } } + ! \bool_lazy_and_p:nn + { \str_if_eq_p:Vn \l_@@_exponent_mode_tl { scientific } } + { \str_if_eq_p:nn { #1.#2 } { 10. } } } { - \use:c - { @@_round_ \l_@@_exponent_mode_tl :nn } - {#1} {#2} - \@@_round_places_end:nnn {#3} {#5} {#6} + \exp_args:Nf \@@_round_uncertainty_shift_aux:nnnnn + { + \prg_replicate:nn + { + \tl_if_blank:nTF {#2} + { \int_min:nn {#3} { \tl_count:n {#1} - 1 } } + { 0 } + } + { 0 } + } + {#1} {#2} } { \use:c { @@_round_uncertainty_ \l_@@_exponent_mode_tl :nnn } - {#1} {#5} {#6} + {#1} } + {#5} {#6} + } +\cs_new:Npn \@@_round_uncertainty_shift_aux:nnnnn #1#2#3#4#5 + { + \use:c + { @@_round_ \l_@@_exponent_mode_tl :nn } + {#2} {#3} + \@@_round_places_end:nnn { { S } { 1 #1 } } {#4} {#5} } % \end{macrocode} % With the data available, adjust the output such that the uncertainty @@ -2949,6 +2975,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\@@_zero_decimal:NN} % \begin{macro}[EXP]{\@@_zero_decimal:nnnnnnn} diff --git a/macros/latex/contrib/siunitx/siunitx-unit.dtx b/macros/latex/contrib/siunitx/siunitx-unit.dtx index 2c76156563..677e05f750 100644 --- a/macros/latex/contrib/siunitx/siunitx-unit.dtx +++ b/macros/latex/contrib/siunitx/siunitx-unit.dtx @@ -2830,7 +2830,7 @@ % \begin{macrocode} \AtBeginDocument { - \str_if_eq:eeTF + \str_if_eq:eeT { \exp_not:o { \familydefault } } { \exp_not:n { \sfdefault } } { \keys_set:nn { siunitx } { unit-font-command = \mathsf } } diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx index d0d855e92a..0acd9a6c46 100644 --- a/macros/latex/contrib/siunitx/siunitx.dtx +++ b/macros/latex/contrib/siunitx/siunitx.dtx @@ -121,7 +121,7 @@ % % Identify the package and give the over all version information. % \begin{macrocode} -\ProvidesExplPackage {siunitx} {2021-08-16} {3.0.25} +\ProvidesExplPackage {siunitx} {2021-08-21} {3.0.26} {A comprehensive (SI) units package} % \end{macrocode} % diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf index 5d7777db9c..fe5b448e15 100644 Binary files a/macros/latex/contrib/siunitx/siunitx.pdf and b/macros/latex/contrib/siunitx/siunitx.pdf differ -- cgit v1.2.3