summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FILES.byname561
-rw-r--r--FILES.byname.gzbin2334780 -> 2334874 bytes
-rw-r--r--FILES.last07days552
-rw-r--r--fonts/charissil/README2
-rw-r--r--fonts/charissil/doc/CharisSIL-samples.pdfbin70505 -> 70505 bytes
-rw-r--r--fonts/charissil/doc/about.md54
-rw-r--r--fonts/charissil/doc/announcement.md133
-rw-r--r--fonts/charissil/doc/charset.md105
-rw-r--r--fonts/charissil/doc/design.md26
-rw-r--r--fonts/charissil/doc/developer.md44
-rw-r--r--fonts/charissil/doc/faq.md39
-rw-r--r--fonts/charissil/doc/features.md371
-rw-r--r--fonts/charissil/doc/history.md (renamed from fonts/charissil/doc/FONTLOG.txt)141
-rw-r--r--fonts/charissil/doc/index.md22
-rw-r--r--fonts/charissil/doc/resources.md36
-rw-r--r--fonts/charissil/doc/support.md23
-rw-r--r--fonts/charissil/doc/versions.md36
-rw-r--r--info/biblio/tugboat.bib22
-rw-r--r--info/biblio/tugboat.ltx12
-rw-r--r--macros/latex/contrib/mandi/README10
-rw-r--r--macros/latex/contrib/mandi/README.md10
-rw-r--r--macros/latex/contrib/mandi/mandi.dtx14040
-rw-r--r--macros/latex/contrib/mandi/mandi.ins80
-rw-r--r--macros/latex/contrib/mandi/mandi.pdfbin1343851 -> 468489 bytes
-rw-r--r--macros/latex/contrib/mandi/mandiexp.dtx787
-rw-r--r--macros/latex/contrib/mandi/mandistudent.dtx1789
-rw-r--r--macros/latex/contrib/siunitx/CHANGELOG.md11
-rw-r--r--macros/latex/contrib/siunitx/siunitx-code.pdfbin1510786 -> 1511547 bytes
-rw-r--r--macros/latex/contrib/siunitx/siunitx-number.dtx137
-rw-r--r--macros/latex/contrib/siunitx/siunitx-unit.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.dtx2
-rw-r--r--macros/latex/contrib/siunitx/siunitx.pdfbin636202 -> 636196 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl1
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb80
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2330344 -> 2332600 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini8
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini8
-rw-r--r--timestamp2
41 files changed, 6660 insertions, 12504 deletions
diff --git a/FILES.byname b/FILES.byname
index cdeef4ab8c..07df0b00a7 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5100,7 +5100,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2021/08/20 | 59256 | FILES.last07days
+2021/08/21 | 56995 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -18338,28 +18338,39 @@
2010/05/26 | 228 | fonts/cfr-lm/vf/u-clmvtt10.vf
2010/05/26 | 228 | fonts/cfr-lm/vf/u-clmvtto10.vf
2015/02/02 | 3801582 | fonts/cfr-lm.zip
-2021/08/19 | 36786 | fonts/charissil/doc/about.pdf
-2021/08/19 | 70505 | fonts/charissil/doc/CharisSIL-samples.pdf
+2021/08/21 | 4219 | fonts/charissil/doc/about.md
+2021/08/21 | 36786 | fonts/charissil/doc/about.pdf
+2021/08/21 | 6303 | fonts/charissil/doc/announcement.md
+2021/08/20 | 70505 | fonts/charissil/doc/CharisSIL-samples.pdf
2021/08/19 | 565 | fonts/charissil/doc/CharisSIL-samples.tex
-2021/08/19 | 35261 | fonts/charissil/doc/charset.pdf
-2021/08/19 | 41044 | fonts/charissil/doc/design.pdf
-2021/08/19 | 32928 | fonts/charissil/doc/developer.pdf
-2021/08/19 | 38635 | fonts/charissil/doc/faq.pdf
-2021/08/19 | 126534 | fonts/charissil/doc/features.pdf
-2021/08/19 | 18589 | fonts/charissil/doc/FONTLOG.txt
-2021/08/19 | 70451 | fonts/charissil/doc/history.pdf
-2021/08/19 | 24470 | fonts/charissil/doc/index.pdf
-2021/08/19 | 4411 | fonts/charissil/doc/OFL.txt
-2021/08/19 | 29829 | fonts/charissil/doc/resources.pdf
-2021/08/19 | 18776 | fonts/charissil/doc/support.pdf
-2021/08/19 | 35791 | fonts/charissil/doc/versions.pdf
+2021/08/21 | 5320 | fonts/charissil/doc/charset.md
+2021/08/21 | 35261 | fonts/charissil/doc/charset.pdf
+2021/08/21 | 1961 | fonts/charissil/doc/design.md
+2021/08/21 | 41044 | fonts/charissil/doc/design.pdf
+2021/08/21 | 3765 | fonts/charissil/doc/developer.md
+2021/08/21 | 32928 | fonts/charissil/doc/developer.pdf
+2021/08/21 | 2329 | fonts/charissil/doc/faq.md
+2021/08/21 | 38635 | fonts/charissil/doc/faq.pdf
+2021/08/21 | 18996 | fonts/charissil/doc/features.md
+2021/08/21 | 126534 | fonts/charissil/doc/features.pdf
+2021/08/21 | 14040 | fonts/charissil/doc/history.md
+2021/08/21 | 70451 | fonts/charissil/doc/history.pdf
+2021/08/21 | 1484 | fonts/charissil/doc/index.md
+2021/08/21 | 24470 | fonts/charissil/doc/index.pdf
+2021/08/21 | 4411 | fonts/charissil/doc/OFL.txt
+2021/08/21 | 3070 | fonts/charissil/doc/resources.md
+2021/08/21 | 29829 | fonts/charissil/doc/resources.pdf
+2021/08/21 | 1216 | fonts/charissil/doc/support.md
+2021/08/21 | 18776 | fonts/charissil/doc/support.pdf
+2021/08/21 | 2724 | fonts/charissil/doc/versions.md
+2021/08/21 | 35791 | fonts/charissil/doc/versions.pdf
2021/08/19 | 1070 | fonts/charissil/latex/CharisSIL.sty
-2021/08/20 | 1317 | fonts/charissil/README
+2021/08/21 | 1317 | fonts/charissil/README
2021/08/19 | 777260 | fonts/charissil/truetype/CharisSIL-BoldItalic.ttf
2021/08/19 | 714200 | fonts/charissil/truetype/CharisSIL-Bold.ttf
2021/08/19 | 750536 | fonts/charissil/truetype/CharisSIL-Italic.ttf
2021/08/19 | 728064 | fonts/charissil/truetype/CharisSIL-Regular.ttf
-2021/08/20 | 1898837 | fonts/charissil.zip
+2021/08/21 | 1916452 | fonts/charissil.zip
1998/11/27 | 21626 | fonts/charter/bchb8a.afm
1998/11/27 | 33799 | fonts/charter/bchb8a.pfb
1998/11/27 | 22099 | fonts/charter/bchbi8a.afm
@@ -172889,7 +172900,7 @@
2019/06/24 | 2863898 | install/fonts/cantarell.tds.zip
2014/08/20 | 3922638 | install/fonts/carlito.tds.zip
2017/10/30 | 120633 | install/fonts/ccicons.tds.zip
-2021/08/20 | 4199302 | install/fonts/charissil.tds.zip
+2021/08/21 | 1919668 | install/fonts/charissil.tds.zip
2019/10/15 | 776510 | install/fonts/cinzel.tds.zip
2019/10/25 | 2401518 | install/fonts/clearsans.tds.zip
2016/02/14 | 739416 | install/fonts/cm/cmtiup.tds.zip
@@ -173329,7 +173340,7 @@
2012/09/24 | 130991 | install/macros/latex/contrib/scrjrnl.tds.zip
2020/02/15 | 1097592 | install/macros/latex/contrib/sdaps.tds.zip
2019/12/10 | 544332 | install/macros/latex/contrib/selinput.tds.zip
-2021/08/16 | 2283720 | install/macros/latex/contrib/siunitx.tds.zip
+2021/08/21 | 2284877 | install/macros/latex/contrib/siunitx.tds.zip
2019/10/15 | 315856 | install/macros/latex/contrib/skmath.tds.zip
2019/10/16 | 345652 | install/macros/latex/contrib/skrapport.tds.zip
2019/12/15 | 357584 | install/macros/latex/contrib/soulutf8.tds.zip
@@ -205596,11 +205607,13 @@
2019/11/15 | 66637 | macros/latex/contrib/makerobust.zip
2017/07/16 | 173 | macros/latex/contrib/maker/README
2017/07/16 | 212725 | macros/latex/contrib/maker.zip
-2019/01/13 | 348122 | macros/latex/contrib/mandi/mandi.dtx
-2019/01/13 | 3216 | macros/latex/contrib/mandi/mandi.ins
-2019/01/13 | 1343851 | macros/latex/contrib/mandi/mandi.pdf
-2019/01/13 | 601 | macros/latex/contrib/mandi/README
-2019/01/14 | 1372993 | macros/latex/contrib/mandi.zip
+2021/08/21 | 92922 | macros/latex/contrib/mandi/mandi.dtx
+2021/08/21 | 21287 | macros/latex/contrib/mandi/mandiexp.dtx
+2021/08/21 | 3845 | macros/latex/contrib/mandi/mandi.ins
+2021/08/21 | 468489 | macros/latex/contrib/mandi/mandi.pdf
+2021/08/21 | 57804 | macros/latex/contrib/mandi/mandistudent.dtx
+2021/08/21 | 438 | macros/latex/contrib/mandi/README.md
+2021/08/21 | 486434 | macros/latex/contrib/mandi.zip
1999/07/04 | 21515 | macros/latex/contrib/manfnt/manfnt.dtx
1999/07/04 | 1768 | macros/latex/contrib/manfnt/manfnt.ins
2020/04/03 | 249451 | macros/latex/contrib/manfnt/manfnt.pdf
@@ -212355,33 +212368,33 @@
2007/12/02 | 2971 | macros/latex/contrib/SIunits/SIunits.ins
2007/12/02 | 328621 | macros/latex/contrib/SIunits/SIunits.pdf
2007/12/02 | 296391 | macros/latex/contrib/SIunits.zip
-2021/08/16 | 57527 | macros/latex/contrib/siunitx/CHANGELOG.md
-2021/08/16 | 996 | macros/latex/contrib/siunitx/README.md
-2021/08/16 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
-2021/08/16 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
-2021/08/16 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx
-2021/08/16 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
-2021/08/16 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
-2021/08/16 | 1510786 | macros/latex/contrib/siunitx/siunitx-code.pdf
-2021/08/16 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex
-2021/08/16 | 8752 | macros/latex/contrib/siunitx/siunitx-command.dtx
-2021/08/16 | 25939 | macros/latex/contrib/siunitx/siunitx-complex.dtx
-2021/08/16 | 33434 | macros/latex/contrib/siunitx/siunitx-compound.dtx
-2021/08/16 | 19826 | macros/latex/contrib/siunitx/siunitx.dtx
-2021/08/16 | 31333 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
-2021/08/16 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
-2021/08/16 | 4746 | macros/latex/contrib/siunitx/siunitx-locale.dtx
-2021/08/16 | 120302 | macros/latex/contrib/siunitx/siunitx-number.dtx
-2021/08/16 | 636202 | macros/latex/contrib/siunitx/siunitx.pdf
-2021/08/16 | 31711 | macros/latex/contrib/siunitx/siunitx-print.dtx
-2021/08/16 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
-2021/08/16 | 9040 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
-2021/08/16 | 50335 | macros/latex/contrib/siunitx/siunitx-table.dtx
-2021/08/16 | 146388 | macros/latex/contrib/siunitx/siunitx.tex
-2021/08/16 | 98476 | macros/latex/contrib/siunitx/siunitx-unit.dtx
-2021/08/16 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
-2021/08/16 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
-2021/08/16 | 2244284 | macros/latex/contrib/siunitx.zip
+2021/08/21 | 57745 | macros/latex/contrib/siunitx/CHANGELOG.md
+2021/08/21 | 996 | macros/latex/contrib/siunitx/README.md
+2021/08/21 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
+2021/08/21 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
+2021/08/21 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx
+2021/08/21 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
+2021/08/21 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
+2021/08/21 | 1511547 | macros/latex/contrib/siunitx/siunitx-code.pdf
+2021/08/21 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex
+2021/08/21 | 8752 | macros/latex/contrib/siunitx/siunitx-command.dtx
+2021/08/21 | 25939 | macros/latex/contrib/siunitx/siunitx-complex.dtx
+2021/08/21 | 33434 | macros/latex/contrib/siunitx/siunitx-compound.dtx
+2021/08/21 | 19826 | macros/latex/contrib/siunitx/siunitx.dtx
+2021/08/21 | 31333 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
+2021/08/21 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
+2021/08/21 | 4746 | macros/latex/contrib/siunitx/siunitx-locale.dtx
+2021/08/21 | 121120 | macros/latex/contrib/siunitx/siunitx-number.dtx
+2021/08/21 | 636196 | macros/latex/contrib/siunitx/siunitx.pdf
+2021/08/21 | 31711 | macros/latex/contrib/siunitx/siunitx-print.dtx
+2021/08/21 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
+2021/08/21 | 9040 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
+2021/08/21 | 50335 | macros/latex/contrib/siunitx/siunitx-table.dtx
+2021/08/21 | 146388 | macros/latex/contrib/siunitx/siunitx.tex
+2021/08/21 | 98475 | macros/latex/contrib/siunitx/siunitx-unit.dtx
+2021/08/21 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
+2021/08/21 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
+2021/08/21 | 2245341 | macros/latex/contrib/siunitx.zip
2011/06/03 | 662398 | macros/latex/contrib/skb/doc/skb.pdf
2011/03/15 | 1485 | macros/latex/contrib/skb/doc/user-guide/database/acronyms.tex
2011/03/15 | 722 | macros/latex/contrib/skb/doc/user-guide/database/bibliography.tex
@@ -265284,9 +265297,9 @@
1994/02/22 | 94984 | systems/mac/macmakeindex2.12.sea.hqx
1993/07/19 | 61321 | systems/mac/macmakeindex.sit.hqx
2021/04/01 | 47 | systems/mac/mactex/BasicTeX.pkg.md5
-2021/08/18 | 38111 | systems/mac/mactex/ExtrasFolder.pdf
+2021/08/20 | 38113 | systems/mac/mactex/ExtrasFolder.pdf
2021/04/01 | 50 | systems/mac/mactex/Ghostscript.pkg.md5
-2021/08/18 | 1711 | systems/mac/mactex/Licenses.txt
+2021/08/20 | 1711 | systems/mac/mactex/Licenses.txt
2021/03/29 | 4701496188 | systems/mac/mactex/mactex-20210328.pkg
2021/03/29 | 54 | systems/mac/mactex/mactex-20210328.pkg.md5
2021/03/25 | 97330890 | systems/mac/mactex/mactex-basictex-20210325.pkg
@@ -265296,8 +265309,8 @@
2021/04/01 | 45 | systems/mac/mactex/MacTeX.pkg.md5
2021/02/26 | 77461 | systems/mac/mactex/mactex-texdist-20210226.pkg
2021/02/26 | 58 | systems/mac/mactex/mactex-texdist-20210226.pkg.md5
-2021/08/18 | 421914136 | systems/mac/mactex/MacTeXtras-20210818.zip
-2021/08/18 | 58 | systems/mac/mactex/MacTeXtras-20210818.zip.md5
+2021/08/20 | 421914034 | systems/mac/mactex/MacTeXtras-20210820.zip
+2021/08/20 | 58 | systems/mac/mactex/MacTeXtras-20210820.zip.md5
2021/04/01 | 179 | systems/mac/mactex/README
1995/08/15 | 308344 | systems/mac/MakeIndex-Fat-1.0-sit.hqx
1994/04/20 | 2925109 | systems/mac/metafont/bluesky/MAC_MF_0.66.sit.hqx
@@ -267544,8 +267557,8 @@
2021/06/10 | 27124 | systems/texlive/tlnet/archive/biblatex-ext.r59532.tar.xz
2019/02/28 | 595408 | systems/texlive/tlnet/archive/biblatex-fiwi.doc.r45876.tar.xz
2019/02/28 | 16768 | systems/texlive/tlnet/archive/biblatex-fiwi.r45876.tar.xz
-2021/05/07 | 1616860 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r59101.tar.xz
-2021/05/07 | 40548 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r59101.tar.xz
+2021/08/21 | 1603644 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r60286.tar.xz
+2021/08/21 | 42412 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r60286.tar.xz
2020/11/16 | 167748 | systems/texlive/tlnet/archive/biblatex-german-legal.doc.r56939.tar.xz
2020/11/16 | 5348 | systems/texlive/tlnet/archive/biblatex-german-legal.r56939.tar.xz
2021/05/09 | 999720 | systems/texlive/tlnet/archive/biblatex-gost.doc.r59135.tar.xz
@@ -268165,8 +268178,8 @@
2019/02/28 | 186732 | systems/texlive/tlnet/archive/chapterfolder.doc.r15878.tar.xz
2019/02/28 | 1588 | systems/texlive/tlnet/archive/chapterfolder.r15878.tar.xz
2019/02/28 | 2884 | systems/texlive/tlnet/archive/chapterfolder.source.r15878.tar.xz
-2021/08/20 | 9960 | systems/texlive/tlnet/archive/charissil.doc.r60281.tar.xz
-2021/08/20 | 2005908 | systems/texlive/tlnet/archive/charissil.r60281.tar.xz
+2021/08/21 | 9924 | systems/texlive/tlnet/archive/charissil.doc.r60284.tar.xz
+2021/08/21 | 1995500 | systems/texlive/tlnet/archive/charissil.r60284.tar.xz
2019/02/28 | 800 | systems/texlive/tlnet/archive/charter.doc.r15878.tar.xz
2019/02/28 | 175180 | systems/texlive/tlnet/archive/charter.r15878.tar.xz
2019/02/28 | 169552 | systems/texlive/tlnet/archive/chbibref.doc.r17120.tar.xz
@@ -269921,9 +269934,9 @@
2021/07/19 | 313228 | systems/texlive/tlnet/archive/easing.doc.r59975.tar.xz
2021/07/19 | 2220 | systems/texlive/tlnet/archive/easing.r59975.tar.xz
2021/07/19 | 7876 | systems/texlive/tlnet/archive/easing.source.r59975.tar.xz
-2021/08/20 | 611472 | systems/texlive/tlnet/archive/easybook.doc.r60275.tar.xz
-2021/08/20 | 17216 | systems/texlive/tlnet/archive/easybook.r60275.tar.xz
-2021/08/20 | 17264 | systems/texlive/tlnet/archive/easybook.source.r60275.tar.xz
+2021/08/21 | 611516 | systems/texlive/tlnet/archive/easybook.doc.r60287.tar.xz
+2021/08/21 | 17216 | systems/texlive/tlnet/archive/easybook.r60287.tar.xz
+2021/08/21 | 17248 | systems/texlive/tlnet/archive/easybook.source.r60287.tar.xz
2019/02/28 | 4540 | systems/texlive/tlnet/archive/easy.doc.r19440.tar.xz
2020/09/08 | 175976 | systems/texlive/tlnet/archive/easyfig.doc.r56291.tar.xz
2020/09/08 | 1936 | systems/texlive/tlnet/archive/easyfig.r56291.tar.xz
@@ -274371,9 +274384,9 @@
2021/07/13 | 6572 | systems/texlive/tlnet/archive/newcastle-bst.r59904.tar.xz
2019/02/28 | 407624 | systems/texlive/tlnet/archive/newcommand.doc.r18704.tar.xz
2019/02/28 | 496 | systems/texlive/tlnet/archive/newcommand.r18704.tar.xz
-2021/05/26 | 1443380 | systems/texlive/tlnet/archive/newcomputermodern.doc.r59353.tar.xz
-2021/05/26 | 7082996 | systems/texlive/tlnet/archive/newcomputermodern.r59353.tar.xz
-2021/05/26 | 14020516 | systems/texlive/tlnet/archive/newcomputermodern.source.r59353.tar.xz
+2021/08/21 | 1443476 | systems/texlive/tlnet/archive/newcomputermodern.doc.r60285.tar.xz
+2021/08/21 | 7082984 | systems/texlive/tlnet/archive/newcomputermodern.r60285.tar.xz
+2021/08/21 | 14020516 | systems/texlive/tlnet/archive/newcomputermodern.source.r60285.tar.xz
2019/02/28 | 1632 | systems/texlive/tlnet/archive/newenviron.doc.r29331.tar.xz
2019/02/28 | 2488 | systems/texlive/tlnet/archive/newenviron.r29331.tar.xz
2019/02/28 | 147644 | systems/texlive/tlnet/archive/newfile.doc.r15878.tar.xz
@@ -275253,8 +275266,8 @@
2020/11/18 | 479704 | systems/texlive/tlnet/archive/philosophersimprint.doc.r56954.tar.xz
2020/11/18 | 4604 | systems/texlive/tlnet/archive/philosophersimprint.r56954.tar.xz
2020/11/18 | 13344 | systems/texlive/tlnet/archive/philosophersimprint.source.r56954.tar.xz
-2019/08/23 | 1094648 | systems/texlive/tlnet/archive/phonenumbers.doc.r51933.tar.xz
-2019/08/23 | 69988 | systems/texlive/tlnet/archive/phonenumbers.r51933.tar.xz
+2021/08/21 | 1114408 | systems/texlive/tlnet/archive/phonenumbers.doc.r60288.tar.xz
+2021/08/21 | 70892 | systems/texlive/tlnet/archive/phonenumbers.r60288.tar.xz
2020/09/29 | 46824 | systems/texlive/tlnet/archive/phonetic.doc.r56468.tar.xz
2020/09/29 | 23380 | systems/texlive/tlnet/archive/phonetic.r56468.tar.xz
2019/02/28 | 44080 | systems/texlive/tlnet/archive/phonrule.doc.r43963.tar.xz
@@ -277618,7 +277631,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2021/08/19 | 399680 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60264.tar.xz
+2021/08/21 | 399648 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60283.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -277642,7 +277655,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2021/08/19 | 108300 | systems/texlive/tlnet/archive/texlive-scripts.r60264.tar.xz
+2021/08/21 | 108296 | systems/texlive/tlnet/archive/texlive-scripts.r60283.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2021/04/12 | 36308 | systems/texlive/tlnet/archive/texlive-scripts.win32.r58829.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -278028,13 +278041,13 @@
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.amd64-freebsd.r55132.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.amd64-netbsd.r55132.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.armhf-linux.r55132.tar.xz
-2021/08/01 | 210356 | systems/texlive/tlnet/archive/tikztosvg.doc.r60114.tar.xz
+2021/08/21 | 213584 | systems/texlive/tlnet/archive/tikztosvg.doc.r60289.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.i386-cygwin.r55132.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.i386-freebsd.r55132.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.i386-linux.r55132.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.i386-netbsd.r55132.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.i386-solaris.r55132.tar.xz
-2021/08/01 | 1996 | systems/texlive/tlnet/archive/tikztosvg.r60114.tar.xz
+2021/08/21 | 2052 | systems/texlive/tlnet/archive/tikztosvg.r60289.tar.xz
2021/02/25 | 340 | systems/texlive/tlnet/archive/tikztosvg.universal-darwin.r57908.tar.xz
2020/05/14 | 336 | systems/texlive/tlnet/archive/tikztosvg.x86_64-cygwin.r55132.tar.xz
2020/05/14 | 344 | systems/texlive/tlnet/archive/tikztosvg.x86_64-darwinlegacy.r55132.tar.xz
@@ -279366,16 +279379,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2021/05/02 | 105152 | systems/texlive/tlnet/install-tl
-2021/08/20 | 6811182 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/08/20 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2021/08/20 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/08/21 | 6811632 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/08/21 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/08/21 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2021/08/20 | 20809935 | systems/texlive/tlnet/install-tl-windows.exe
-2021/08/20 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/08/20 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/08/20 | 25585327 | systems/texlive/tlnet/install-tl.zip
-2021/08/20 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2021/08/20 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/08/21 | 20810571 | systems/texlive/tlnet/install-tl-windows.exe
+2021/08/21 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/08/21 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/08/21 | 25585315 | systems/texlive/tlnet/install-tl.zip
+2021/08/21 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/08/21 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2021/04/01 | 1229 | systems/texlive/tlnet/README.md
2021/04/01 | 0 | systems/texlive/tlnet/TEXLIVE_2021
2021/07/03 | 7181 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -279385,7 +279398,7 @@
2021/07/03 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2021/07/02 | 49348 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2021/08/18 | 6957 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2021/08/20 | 6914 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2020/04/15 | 223687 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -279427,12 +279440,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/05/16 | 5402 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/05/16 | 27555 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2021/08/20 | 17369641 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2021/08/20 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/08/21 | 17370091 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/08/21 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/05/16 | 86511 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2021/08/20 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2021/08/20 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/08/20 | 2332080 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/08/21 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/08/21 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/08/21 | 2330344 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/05/16 | 58801 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2021/05/16 | 42084 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/05/16 | 16103 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -284315,7 +284328,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2021/08/20 | 594084 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/08/21 | 594084 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -285677,9 +285690,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2021/08/07 | 39000 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2021/08/07 | 43393 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/08/20 | 235986 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2021/08/20 | 1329483 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/08/20 | 1235306 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/08/21 | 235938 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/08/21 | 1329200 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/08/21 | 1235757 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2021/08/07 | 13446 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2021/08/07 | 14327 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -285879,189 +285892,189 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2021/08/20 | 594002 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2021/08/20 | 51112 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/08/20 | 56474 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/08/20 | 975018 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/08/20 | 1077989 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/08/20 | 29035 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/08/20 | 31350 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/08/20 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/08/20 | 34665 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/08/20 | 50150 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2021/08/20 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/08/20 | 83540 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/08/20 | 95401 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/08/20 | 67820 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/08/20 | 75791 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/08/20 | 27198 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/08/20 | 30822 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2021/08/20 | 330786 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/08/20 | 392792 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/08/20 | 32672 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/08/20 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2021/08/20 | 51308 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/08/20 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/08/20 | 241811 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2021/08/20 | 263958 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/08/20 | 180011 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/08/20 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2021/08/20 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2021/08/20 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/08/20 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/08/20 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/08/20 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/08/20 | 45905 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2021/08/20 | 51202 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/08/20 | 284579 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/08/20 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2021/08/20 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/08/20 | 45308 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2021/08/20 | 119819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2021/08/20 | 133864 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/08/20 | 1291301 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2021/08/20 | 1421867 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2021/08/20 | 100624 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2021/08/20 | 112982 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/08/20 | 43027 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/08/20 | 48252 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/08/20 | 25018 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/08/20 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2021/08/20 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2021/08/20 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/08/20 | 136816 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/08/20 | 154426 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/08/20 | 73195 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/08/20 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/08/20 | 71668 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/08/20 | 80447 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2021/08/20 | 258882 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/08/20 | 295204 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/08/20 | 22048 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/08/20 | 24994 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/08/20 | 97338 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/08/20 | 112088 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/08/20 | 64427 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2021/08/20 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2021/08/20 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/08/20 | 115350 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2021/08/20 | 38140 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/08/20 | 43002 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2021/08/20 | 483651 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/08/20 | 566529 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/08/20 | 147372 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/08/20 | 159578 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2021/08/20 | 94798 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/08/20 | 109029 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/08/20 | 16356 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2021/08/20 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/08/20 | 28389 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/08/20 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/08/20 | 629399 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/08/20 | 681250 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/08/20 | 531850 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/08/20 | 596929 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/08/20 | 476921 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2021/08/20 | 510587 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/08/20 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2021/08/20 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/08/20 | 1713891 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/08/20 | 2009903 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/08/20 | 67617 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/08/20 | 74208 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/08/20 | 27357 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/08/20 | 31619 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/08/20 | 7720 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2021/08/20 | 8768 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/08/20 | 196871 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/08/20 | 215248 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/08/20 | 250264 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/08/20 | 284024 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/08/20 | 98380 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/08/20 | 103204 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2021/08/20 | 60638 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
-2021/08/20 | 68022 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/08/20 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/08/20 | 136819 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/08/20 | 178354 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2021/08/20 | 196741 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2021/08/20 | 199733 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2021/08/20 | 180121 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/08/20 | 67483 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2021/08/20 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2021/08/20 | 31231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/08/20 | 35085 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/08/20 | 37805 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/08/20 | 42709 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/08/20 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/08/20 | 46905 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/08/20 | 45970 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/08/20 | 52524 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/08/20 | 194383 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2021/08/20 | 206603 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/08/20 | 35690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/08/20 | 40228 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/08/20 | 744118 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/08/20 | 815244 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2021/08/20 | 198169 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/08/20 | 202796 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/08/20 | 208047 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/08/20 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/08/20 | 78774 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2021/08/20 | 87778 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/08/20 | 1169716 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/08/20 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/08/20 | 20136 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/08/20 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/08/20 | 31537 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2021/08/20 | 37240 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2021/08/20 | 64186 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2021/08/20 | 72207 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/08/20 | 50393 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/08/20 | 57729 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/08/20 | 1340931 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/08/20 | 1464202 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/08/20 | 42384 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/08/20 | 51748 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/08/20 | 56513 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/08/20 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/08/20 | 25290 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/08/20 | 27389 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/08/20 | 16412 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/08/20 | 18175 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/08/20 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2021/08/20 | 69913 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/08/20 | 154804 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/08/20 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2021/08/20 | 57013 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/08/20 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/08/20 | 98260 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/08/20 | 105221 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2021/08/20 | 2672609 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/08/20 | 2796724 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/08/20 | 56355 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/08/20 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/08/20 | 33544 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/08/20 | 37358 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/08/20 | 27727 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/08/20 | 33630 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/08/20 | 65618 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2021/08/20 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/08/20 | 312108 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2021/08/20 | 345738 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2021/08/20 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/08/20 | 57138 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/08/20 | 589842 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/08/20 | 624656 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/08/20 | 39127 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2021/08/20 | 43425 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/08/20 | 236004 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/08/20 | 1330319 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/08/20 | 1235557 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/08/20 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/08/20 | 14347 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/08/21 | 594002 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/08/21 | 51112 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/08/21 | 56476 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/08/21 | 975020 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/08/21 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/08/21 | 29036 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/08/21 | 31352 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/08/21 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/08/21 | 34665 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/08/21 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/08/21 | 57549 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/08/21 | 83540 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/08/21 | 95402 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/08/21 | 67821 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/08/21 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/08/21 | 27199 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/08/21 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/08/21 | 330786 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/08/21 | 392793 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/08/21 | 32672 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/08/21 | 36629 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/08/21 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/08/21 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/08/21 | 241813 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/08/21 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/08/21 | 180009 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/08/21 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/08/21 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/08/21 | 61814 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/08/21 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/08/21 | 23365 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/08/21 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/08/21 | 45905 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/08/21 | 51203 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/08/21 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/08/21 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/08/21 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/08/21 | 45312 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/08/21 | 119820 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/08/21 | 133865 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/08/21 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/08/21 | 1421869 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/08/21 | 100625 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2021/08/21 | 112982 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/08/21 | 43028 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/08/21 | 48254 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/08/21 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/08/21 | 28179 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/08/21 | 56318 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/08/21 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/08/21 | 136817 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/08/21 | 154423 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/08/21 | 73197 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/08/21 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/08/21 | 71667 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/08/21 | 80448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/08/21 | 258875 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/08/21 | 295205 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/08/21 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/08/21 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/08/21 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/08/21 | 112089 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/08/21 | 64428 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/08/21 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/08/21 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/08/21 | 115352 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/08/21 | 38139 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/08/21 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/08/21 | 483654 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/08/21 | 566527 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/08/21 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/08/21 | 159579 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/08/21 | 94800 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/08/21 | 109033 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/08/21 | 16357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/08/21 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/08/21 | 28390 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/08/21 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/08/21 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/08/21 | 681251 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/08/21 | 531851 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/08/21 | 596929 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/08/21 | 476919 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/08/21 | 510588 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/08/21 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/08/21 | 103401 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/08/21 | 1713893 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/08/21 | 2009904 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/08/21 | 67619 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/08/21 | 74211 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/08/21 | 27357 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/08/21 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/08/21 | 7721 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/08/21 | 8769 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/08/21 | 196871 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/08/21 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/08/21 | 250264 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/08/21 | 284025 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/08/21 | 98381 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/08/21 | 103204 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/08/21 | 60637 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/08/21 | 68024 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/08/21 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/08/21 | 136819 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/08/21 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/08/21 | 196741 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/08/21 | 199732 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/08/21 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/08/21 | 67484 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/08/21 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/08/21 | 31232 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/08/21 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/08/21 | 37804 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/08/21 | 42712 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/08/21 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/08/21 | 46907 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/08/21 | 45969 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/08/21 | 52524 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/08/21 | 194383 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/08/21 | 206603 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/08/21 | 35693 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/08/21 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/08/21 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/08/21 | 815241 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/08/21 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/08/21 | 202798 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/08/21 | 208048 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/08/21 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/08/21 | 78773 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/08/21 | 87778 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/08/21 | 1169717 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/08/21 | 1301195 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/08/21 | 20137 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/08/21 | 23903 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/08/21 | 31540 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/08/21 | 37239 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/08/21 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/08/21 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/08/21 | 50396 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/08/21 | 57728 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/08/21 | 1340931 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/08/21 | 1464202 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/08/21 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/08/21 | 51749 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/08/21 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/08/21 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/08/21 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/08/21 | 27389 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/08/21 | 16415 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/08/21 | 18177 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/08/21 | 63776 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/08/21 | 69915 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/08/21 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/08/21 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/08/21 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/08/21 | 65788 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/08/21 | 98257 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/08/21 | 105224 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/08/21 | 2672609 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/08/21 | 2796725 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/08/21 | 56356 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/08/21 | 62228 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/08/21 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/08/21 | 37359 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/08/21 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/08/21 | 33632 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/08/21 | 65619 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/08/21 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/08/21 | 312107 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/08/21 | 345739 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/08/21 | 55497 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/08/21 | 57140 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/08/21 | 589839 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/08/21 | 624652 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/08/21 | 39129 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/08/21 | 43427 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/08/21 | 235980 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/08/21 | 1330413 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/08/21 | 1236729 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/08/21 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/08/21 | 14349 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2021/08/20 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/08/21 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
@@ -286437,7 +286450,7 @@
2020/10/20 | 342254 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2021/08/20 | 935 | systems/win32/miktex/tm/packages/pr.ini
+2021/08/21 | 935 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -288011,7 +288024,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2021/08/21 | 186 | timestamp
+2021/08/22 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2021/08/04 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index 7962220002..aaf3230d93 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index f7eeb478e6..a8148cf6bd 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,295 +1,371 @@
-2021/08/20 | 9960 | systems/texlive/tlnet/archive/charissil.doc.r60281.tar.xz
-2021/08/20 | 98380 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2021/08/20 | 98260 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2021/08/20 | 975018 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2021/08/20 | 97338 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2021/08/20 | 96631 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2021/08/20 | 95401 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2021/08/20 | 94798 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2021/08/20 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/08/21 | 996 | macros/latex/contrib/siunitx/README.md
+2021/08/21 | 9924 | systems/texlive/tlnet/archive/charissil.doc.r60284.tar.xz
+2021/08/21 | 98475 | macros/latex/contrib/siunitx/siunitx-unit.dtx
+2021/08/21 | 98381 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2021/08/21 | 98257 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2021/08/21 | 975020 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2021/08/21 | 97339 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2021/08/21 | 96633 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2021/08/21 | 95402 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2021/08/21 | 94800 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2021/08/21 | 94311 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2021/08/21 | 935 | systems/win32/miktex/tm/packages/pr.ini
+2021/08/21 | 92922 | macros/latex/contrib/mandi/mandi.dtx
+2021/08/21 | 9040 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
+2021/08/21 | 87778 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2021/08/21 | 8769 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2021/08/21 | 8752 | macros/latex/contrib/siunitx/siunitx-command.dtx
+2021/08/21 | 83540 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2021/08/21 | 815241 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2021/08/21 | 80448 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2021/08/21 | 78773 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2021/08/21 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2021/08/21 | 7721 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2021/08/21 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2021/08/21 | 75792 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2021/08/21 | 744116 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2021/08/21 | 74211 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2021/08/21 | 73197 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2021/08/21 | 73148 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2021/08/21 | 72206 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2021/08/21 | 71667 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2021/08/21 | 70892 | systems/texlive/tlnet/archive/phonenumbers.r60288.tar.xz
+2021/08/21 | 7082984 | systems/texlive/tlnet/archive/newcomputermodern.r60285.tar.xz
+2021/08/21 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2021/08/21 | 70451 | fonts/charissil/doc/history.pdf
+2021/08/21 | 69915 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2021/08/21 | 681251 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2021/08/21 | 6811632 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2021/08/21 | 68024 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
+2021/08/21 | 67821 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2021/08/21 | 67619 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2021/08/21 | 67484 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/08/21 | 65788 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2021/08/21 | 65619 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2021/08/21 | 64428 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2021/08/21 | 64185 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2021/08/21 | 63776 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2021/08/21 | 636196 | macros/latex/contrib/siunitx/siunitx.pdf
+2021/08/21 | 6303 | fonts/charissil/doc/announcement.md
+2021/08/21 | 629400 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2021/08/21 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2021/08/21 | 624652 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2021/08/21 | 62228 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2021/08/21 | 61814 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2021/08/21 | 611516 | systems/texlive/tlnet/archive/easybook.doc.r60287.tar.xz
+2021/08/21 | 60637 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
+2021/08/21 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2021/08/21 | 596929 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2021/08/21 | 594084 | systems/win32/miktex/tm/packages/files.csv.lzma
+2021/08/21 | 594002 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2021/08/21 | 589839 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2021/08/21 | 57804 | macros/latex/contrib/mandi/mandistudent.dtx
+2021/08/21 | 57745 | macros/latex/contrib/siunitx/CHANGELOG.md
+2021/08/21 | 57728 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2021/08/21 | 57549 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2021/08/21 | 57140 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2021/08/21 | 57012 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2021/08/21 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2021/08/21 | 566527 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2021/08/21 | 56514 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2021/08/21 | 56476 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2021/08/21 | 56356 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2021/08/21 | 56318 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/08/21 | 55497 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2021/08/21 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2021/08/21 | 5320 | fonts/charissil/doc/charset.md
+2021/08/21 | 531851 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2021/08/21 | 52524 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2021/08/21 | 51749 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2021/08/21 | 51309 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2021/08/21 | 51203 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2021/08/21 | 51112 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2021/08/21 | 510588 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2021/08/21 | 50396 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2021/08/21 | 50335 | macros/latex/contrib/siunitx/siunitx-table.dtx
+2021/08/21 | 50153 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2021/08/21 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2021/08/21 | 486434 | macros/latex/contrib/mandi.zip
+2021/08/21 | 483654 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2021/08/21 | 48254 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2021/08/21 | 476919 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2021/08/21 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
+2021/08/21 | 4746 | macros/latex/contrib/siunitx/siunitx-locale.dtx
+2021/08/21 | 46907 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2021/08/21 | 468489 | macros/latex/contrib/mandi/mandi.pdf
+2021/08/21 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2021/08/21 | 45969 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2021/08/21 | 45905 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2021/08/21 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2021/08/21 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2021/08/21 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2021/08/21 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2021/08/21 | 45312 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2021/08/21 | 4411 | fonts/charissil/doc/OFL.txt
+2021/08/21 | 438 | macros/latex/contrib/mandi/README.md
+2021/08/21 | 43427 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2021/08/21 | 43028 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2021/08/21 | 43003 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2021/08/21 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2021/08/21 | 42712 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2021/08/21 | 42412 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.r60286.tar.xz
+2021/08/21 | 42386 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2021/08/21 | 4219 | fonts/charissil/doc/about.md
+2021/08/21 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2021/08/21 | 41044 | fonts/charissil/doc/design.pdf
+2021/08/21 | 40229 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2021/08/21 | 399648 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60283.tar.xz
+2021/08/21 | 392793 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2021/08/21 | 39129 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/08/21 | 38635 | fonts/charissil/doc/faq.pdf
+2021/08/21 | 3845 | macros/latex/contrib/mandi/mandi.ins
+2021/08/21 | 38139 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2021/08/21 | 37804 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2021/08/21 | 3765 | fonts/charissil/doc/developer.md
+2021/08/21 | 37359 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2021/08/21 | 37239 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/08/21 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
+2021/08/21 | 36786 | fonts/charissil/doc/about.pdf
+2021/08/21 | 36629 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2021/08/21 | 35791 | fonts/charissil/doc/versions.pdf
+2021/08/21 | 35693 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2021/08/21 | 35261 | fonts/charissil/doc/charset.pdf
+2021/08/21 | 35087 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2021/08/21 | 34665 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2021/08/21 | 345739 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2021/08/21 | 33632 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2021/08/21 | 33545 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2021/08/21 | 33434 | macros/latex/contrib/siunitx/siunitx-compound.dtx
+2021/08/21 | 330786 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2021/08/21 | 32928 | fonts/charissil/doc/developer.pdf
+2021/08/21 | 32672 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2021/08/21 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2021/08/21 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
+2021/08/21 | 31711 | macros/latex/contrib/siunitx/siunitx-print.dtx
+2021/08/21 | 31620 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2021/08/21 | 31540 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2021/08/21 | 31352 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2021/08/21 | 31333 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
+2021/08/21 | 31232 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2021/08/21 | 312107 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2021/08/21 | 30824 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2021/08/21 | 3070 | fonts/charissil/doc/resources.md
+2021/08/21 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2021/08/21 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2021/08/21 | 29829 | fonts/charissil/doc/resources.pdf
+2021/08/21 | 295205 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2021/08/21 | 29036 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2021/08/21 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
+2021/08/21 | 284580 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2021/08/21 | 284025 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2021/08/21 | 28390 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2021/08/21 | 28179 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2021/08/21 | 2796725 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2021/08/21 | 27728 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2021/08/21 | 27389 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2021/08/21 | 27357 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2021/08/21 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
+2021/08/21 | 2724 | fonts/charissil/doc/versions.md
+2021/08/21 | 27199 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2021/08/21 | 2672609 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2021/08/21 | 263959 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2021/08/21 | 25939 | macros/latex/contrib/siunitx/siunitx-complex.dtx
+2021/08/21 | 258875 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2021/08/21 | 25585315 | systems/texlive/tlnet/install-tl.zip
+2021/08/21 | 25291 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2021/08/21 | 250264 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2021/08/21 | 25020 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2021/08/21 | 24995 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2021/08/21 | 24470 | fonts/charissil/doc/index.pdf
+2021/08/21 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2021/08/21 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex
+2021/08/21 | 241813 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2021/08/21 | 23903 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2021/08/21 | 235980 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2021/08/21 | 235938 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2021/08/21 | 23365 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2021/08/21 | 2330344 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2021/08/21 | 2329 | fonts/charissil/doc/faq.md
+2021/08/21 | 2284877 | install/macros/latex/contrib/siunitx.tds.zip
+2021/08/21 | 2245341 | macros/latex/contrib/siunitx.zip
+2021/08/21 | 22049 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2021/08/21 | 215249 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2021/08/21 | 213584 | systems/texlive/tlnet/archive/tikztosvg.doc.r60289.tar.xz
+2021/08/21 | 21287 | macros/latex/contrib/mandi/mandiexp.dtx
+2021/08/21 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2021/08/21 | 20810571 | systems/texlive/tlnet/install-tl-windows.exe
+2021/08/21 | 208048 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2021/08/21 | 206603 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2021/08/21 | 2052 | systems/texlive/tlnet/archive/tikztosvg.r60289.tar.xz
+2021/08/21 | 202798 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2021/08/21 | 20137 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2021/08/21 | 2009904 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2021/08/21 | 199732 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2021/08/21 | 1995500 | systems/texlive/tlnet/archive/charissil.r60284.tar.xz
+2021/08/21 | 19826 | macros/latex/contrib/siunitx/siunitx.dtx
+2021/08/21 | 198170 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2021/08/21 | 196871 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2021/08/21 | 196741 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2021/08/21 | 1961 | fonts/charissil/doc/design.md
+2021/08/21 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2021/08/21 | 194383 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2021/08/21 | 1919668 | install/fonts/charissil.tds.zip
+2021/08/21 | 1916452 | fonts/charissil.zip
+2021/08/21 | 18996 | fonts/charissil/doc/features.md
+2021/08/21 | 18776 | fonts/charissil/doc/support.pdf
+2021/08/21 | 18177 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2021/08/21 | 180120 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2021/08/21 | 180009 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2021/08/21 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2021/08/21 | 178353 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2021/08/21 | 17370091 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2021/08/21 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
+2021/08/21 | 17248 | systems/texlive/tlnet/archive/easybook.source.r60287.tar.xz
+2021/08/21 | 17216 | systems/texlive/tlnet/archive/easybook.r60287.tar.xz
+2021/08/21 | 1713893 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2021/08/21 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/08/21 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx
+2021/08/21 | 16415 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2021/08/21 | 16357 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2021/08/21 | 1603644 | systems/texlive/tlnet/archive/biblatex-gb7714-2015.doc.r60286.tar.xz
+2021/08/21 | 159579 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2021/08/21 | 154806 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2021/08/21 | 154423 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2021/08/21 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2021/08/21 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
+2021/08/21 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2021/08/21 | 1511547 | macros/latex/contrib/siunitx/siunitx-code.pdf
+2021/08/21 | 1484 | fonts/charissil/doc/index.md
+2021/08/21 | 147373 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2021/08/21 | 1464202 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2021/08/21 | 146388 | macros/latex/contrib/siunitx/siunitx.tex
+2021/08/21 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2021/08/21 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2021/08/21 | 1443476 | systems/texlive/tlnet/archive/newcomputermodern.doc.r60285.tar.xz
+2021/08/21 | 14349 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2021/08/21 | 1421869 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2021/08/21 | 14040 | fonts/charissil/doc/history.md
+2021/08/21 | 14020516 | systems/texlive/tlnet/archive/newcomputermodern.source.r60285.tar.xz
+2021/08/21 | 136819 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2021/08/21 | 136817 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2021/08/21 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2021/08/21 | 1340931 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2021/08/21 | 133865 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2021/08/21 | 1330413 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2021/08/21 | 1329200 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2021/08/21 | 1317 | fonts/charissil/README
+2021/08/21 | 1301195 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2021/08/21 | 1291299 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2021/08/21 | 126534 | fonts/charissil/doc/features.pdf
+2021/08/21 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2021/08/21 | 1236729 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2021/08/21 | 1235757 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2021/08/21 | 1216 | fonts/charissil/doc/support.md
+2021/08/21 | 121120 | macros/latex/contrib/siunitx/siunitx-number.dtx
+2021/08/21 | 119820 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2021/08/21 | 1169717 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2021/08/21 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2021/08/21 | 115352 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2021/08/21 | 112982 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2021/08/21 | 112089 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2021/08/21 | 1114408 | systems/texlive/tlnet/archive/phonenumbers.doc.r60288.tar.xz
+2021/08/21 | 109033 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2021/08/21 | 108296 | systems/texlive/tlnet/archive/texlive-scripts.r60283.tar.xz
+2021/08/21 | 1077990 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2021/08/21 | 105224 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2021/08/21 | 103401 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2021/08/21 | 103204 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2021/08/21 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
+2021/08/21 | 100625 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2021/08/20 | 9421 | macros/latex/contrib/phonenumbers/tex/phn-UK_Vorwahlen.tex
-2021/08/20 | 935 | systems/win32/miktex/tm/packages/pr.ini
2021/08/20 | 9152 | macros/latex/contrib/phonenumbers/doc/Literatur.bib
2021/08/20 | 887 | fonts/newcomputermodern/tex/NewCMSans10-Book.fontspec
2021/08/20 | 886 | fonts/newcomputermodern/tex/NewCMSans10-Regular.fontspec
2021/08/20 | 884 | support/tikztosvg/Makefile
-2021/08/20 | 87778 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2021/08/20 | 8768 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2021/08/20 | 83540 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2021/08/20 | 815244 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
2021/08/20 | 80745 | macros/latex/contrib/easybook/easybook.tex
-2021/08/20 | 80447 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
2021/08/20 | 79465 | macros/latex/contrib/easybook/easybook.dtx
2021/08/20 | 788 | systems/texlive/tlnet/archive/visualfaq-fr.r60273.tar.xz
-2021/08/20 | 78774 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
2021/08/20 | 7876 | support/tikztosvg/example/example.svg
-2021/08/20 | 77951 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2021/08/20 | 7720 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
2021/08/20 | 76866 | macros/latex/contrib/phonenumbers/tex/phn-UK_Ortsnamen.tex
-2021/08/20 | 76826 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
2021/08/20 | 7592 | macros/latex/contrib/phonenumbers/tex/phn-AT_Vorwahlen.tex
-2021/08/20 | 75791 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2021/08/20 | 744118 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2021/08/20 | 74208 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2021/08/20 | 73195 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2021/08/20 | 73143 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
2021/08/20 | 72505 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/README.md
-2021/08/20 | 72207 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2021/08/20 | 71668 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2021/08/20 | 70647 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2021/08/20 | 69913 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2021/08/20 | 681250 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2021/08/20 | 6811182 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2021/08/20 | 68022 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-x64-2.9.tar.lzma
-2021/08/20 | 67820 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2021/08/20 | 67617 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2021/08/20 | 67483 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2021/08/20 | 70505 | fonts/charissil/doc/CharisSIL-samples.pdf
+2021/08/20 | 6914 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/08/20 | 673752 | systems/texlive/tlnet/archive/projlib.doc.r60279.tar.xz
-2021/08/20 | 65786 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2021/08/20 | 65618 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
2021/08/20 | 652374 | macros/latex/contrib/nicematrix/nicematrix.dtx
-2021/08/20 | 64427 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
2021/08/20 | 6436 | systems/texlive/tlnet/archive/collection-latexextra.r60277.tar.xz
-2021/08/20 | 64186 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
2021/08/20 | 64166 | macros/latex/contrib/phonenumbers/tex/phn-AT_Ortsnamen.tex
-2021/08/20 | 63777 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
2021/08/20 | 631840 | macros/latex/contrib/easybook.zip
-2021/08/20 | 629399 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2021/08/20 | 62786 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2021/08/20 | 624656 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2021/08/20 | 62226 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2021/08/20 | 61813 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2021/08/20 | 611472 | systems/texlive/tlnet/archive/easybook.doc.r60275.tar.xz
-2021/08/20 | 60638 | systems/win32/miktex/tm/packages/next/miktex-mkfntmap-bin-2.9.tar.lzma
2021/08/20 | 604 | systems/texlive/tlnet/archive/collection-langfrench.r60273.tar.xz
2021/08/20 | 6004 | systems/texlive/tlnet/archive/mynsfc.source.r60280.tar.xz
-2021/08/20 | 60039 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2021/08/20 | 596929 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2021/08/20 | 594084 | systems/win32/miktex/tm/packages/files.csv.lzma
-2021/08/20 | 594002 | systems/win32/miktex/tm/packages/next/files.csv.lzma
2021/08/20 | 590670 | macros/latex/contrib/easybook/easybook.pdf
-2021/08/20 | 589842 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2021/08/20 | 57729 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2021/08/20 | 57548 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2021/08/20 | 57138 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2021/08/20 | 57013 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2021/08/20 | 56684 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2021/08/20 | 566529 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2021/08/20 | 56513 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2021/08/20 | 56474 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2021/08/20 | 56355 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2021/08/20 | 56317 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2021/08/20 | 58 | systems/mac/mactex/MacTeXtras-20210820.zip.md5
2021/08/20 | 560836 | systems/texlive/tlnet/archive/keyparse.doc.r60277.tar.xz
2021/08/20 | 556 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.cbx
-2021/08/20 | 55498 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2021/08/20 | 54631 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
2021/08/20 | 541164 | systems/texlive/tlnet/archive/lambdax.doc.r60278.tar.xz
2021/08/20 | 540 | systems/texlive/tlnet/archive/collection-games.r60276.tar.xz
-2021/08/20 | 531850 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2021/08/20 | 52524 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2021/08/20 | 51748 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2021/08/20 | 51308 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2021/08/20 | 51202 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2021/08/20 | 51112 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2021/08/20 | 510587 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2021/08/20 | 50393 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2021/08/20 | 50150 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
2021/08/20 | 49444 | macros/latex/contrib/phonenumbers/doc/phonenumbers-de.tex
-2021/08/20 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2021/08/20 | 4836 | systems/texlive/tlnet/archive/keyparse.source.r60277.tar.xz
-2021/08/20 | 483651 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2021/08/20 | 48252 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2021/08/20 | 476921 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
2021/08/20 | 47311 | macros/latex/contrib/phonenumbers/doc/phonenumbers-en.tex
2021/08/20 | 471024 | macros/latex/contrib/nicematrix/nicematrix-french.pdf
2021/08/20 | 4704 | macros/latex/contrib/phonenumbers/tex/phn-US_Vorwahlen.tex
-2021/08/20 | 46905 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2021/08/20 | 461812 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2021/08/20 | 45970 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2021/08/20 | 45905 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
2021/08/20 | 4578308 | systems/texlive/tlnet/archive/visualfaq-fr.doc.r60273.tar.xz
-2021/08/20 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2021/08/20 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2021/08/20 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2021/08/20 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2021/08/20 | 45308 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2021/08/20 | 450800 | systems/texlive/tlnet/archive/mynsfc.doc.r60280.tar.xz
2021/08/20 | 4498 | support/tikztosvg/tikztosvg
2021/08/20 | 447 | macros/latex/contrib/phonenumbers/tex/phn-FR_Vorwahlen.tex
-2021/08/20 | 43425 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2021/08/20 | 43027 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2021/08/20 | 43002 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2021/08/20 | 4292 | systems/texlive/tlnet/archive/lambdax.source.r60278.tar.xz
-2021/08/20 | 42890 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2021/08/20 | 42709 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2021/08/20 | 42384 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2021/08/20 | 4199302 | install/fonts/charissil.tds.zip
-2021/08/20 | 41193 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2021/08/20 | 40228 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2021/08/20 | 392792 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2021/08/20 | 39127 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2021/08/20 | 421914034 | systems/mac/mactex/MacTeXtras-20210820.zip
2021/08/20 | 3898 | macros/latex/contrib/phonenumbers/tex/phn-FR_Ortsnamen.tex
2021/08/20 | 382964 | systems/texlive/tlnet/archive/gamebooklib.doc.r60276.tar.xz
2021/08/20 | 38214 | macros/latex/contrib/phonenumbers/tex/phn-DE_Vorwahlen.tex
-2021/08/20 | 38140 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2021/08/20 | 37805 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2021/08/20 | 37358 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2021/08/20 | 37240 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2021/08/20 | 38113 | systems/mac/mactex/ExtrasFolder.pdf
2021/08/20 | 36880 | systems/texlive/tlnet/archive/projlib.source.r60279.tar.xz
-2021/08/20 | 36628 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
2021/08/20 | 35703614 | fonts/newcomputermodern.zip
-2021/08/20 | 35690 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2021/08/20 | 35085 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2021/08/20 | 34665 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2021/08/20 | 345738 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
2021/08/20 | 3455031 | macros/latex/contrib/phonenumbers.zip
-2021/08/20 | 33630 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2021/08/20 | 33544 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2021/08/20 | 330786 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2021/08/20 | 32672 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2021/08/20 | 325043 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
2021/08/20 | 318907 | macros/latex/contrib/phonenumbers/tex/phn-DE_Ortsnamen.tex
2021/08/20 | 3164 | systems/texlive/tlnet/archive/gamebooklib.r60276.tar.xz
-2021/08/20 | 31619 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2021/08/20 | 31537 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
2021/08/20 | 3143724 | systems/texlive/tlnet/archive/animate.doc.r60274.tar.xz
-2021/08/20 | 31350 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2021/08/20 | 31231 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2021/08/20 | 312108 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
2021/08/20 | 3114 | support/tikztosvg/man/tikztosvg.1
-2021/08/20 | 30822 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
2021/08/20 | 3081 | support/tikztosvg/README.md
2021/08/20 | 30200 | systems/texlive/tlnet/archive/animate.source.r60274.tar.xz
-2021/08/20 | 30058 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2021/08/20 | 29841 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2021/08/20 | 295204 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2021/08/20 | 29035 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2021/08/20 | 284579 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2021/08/20 | 284024 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2021/08/20 | 28389 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2021/08/20 | 28180 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
2021/08/20 | 2816 | systems/texlive/tlnet/archive/mynsfc.r60280.tar.xz
-2021/08/20 | 2796724 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2021/08/20 | 27727 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2021/08/20 | 27389 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2021/08/20 | 27357 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2021/08/20 | 27198 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2021/08/20 | 2672609 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2021/08/20 | 263958 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2021/08/20 | 258882 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2021/08/20 | 25585327 | systems/texlive/tlnet/install-tl.zip
-2021/08/20 | 25290 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2021/08/20 | 250264 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2021/08/20 | 25018 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2021/08/20 | 24994 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2021/08/20 | 243426 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2021/08/20 | 241811 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
2021/08/20 | 23907 | macros/latex/contrib/phonenumbers/tex/phn-US_Ortsnamen.tex
-2021/08/20 | 23902 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2021/08/20 | 236004 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2021/08/20 | 235986 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
2021/08/20 | 234 | fonts/newcomputermodern/tex/NewCMMono10-Regular.fontspec
-2021/08/20 | 23364 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2021/08/20 | 2332080 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/08/20 | 23312 | systems/texlive/tlnet/archive/animate.r60274.tar.xz
2021/08/20 | 232 | fonts/newcomputermodern/tex/NewCMMono10-Book.fontspec
2021/08/20 | 2258 | support/tikztosvg/man/man.adoc
-2021/08/20 | 22048 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2021/08/20 | 215248 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2021/08/20 | 21224 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2021/08/20 | 20809935 | systems/texlive/tlnet/install-tl-windows.exe
-2021/08/20 | 208047 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2021/08/20 | 206603 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2021/08/20 | 202796 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2021/08/20 | 20136 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2021/08/20 | 2009903 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2021/08/20 | 2005908 | systems/texlive/tlnet/archive/charissil.r60281.tar.xz
-2021/08/20 | 199733 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2021/08/20 | 1992 | systems/texlive/tlnet/archive/lambdax.r60278.tar.xz
-2021/08/20 | 198169 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2021/08/20 | 196871 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2021/08/20 | 196741 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2021/08/20 | 1963514 | macros/latex/contrib/nicematrix.zip
-2021/08/20 | 195636 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2021/08/20 | 195459 | support/tikztosvg.zip
-2021/08/20 | 194383 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
2021/08/20 | 1940544 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015.zip
2021/08/20 | 1927261 | macros/latex/contrib/phonenumbers/doc/phonenumbers-de.pdf
2021/08/20 | 1918787 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.pdf
2021/08/20 | 191852 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015.tex
2021/08/20 | 1913835 | macros/latex/contrib/phonenumbers/doc/phonenumbers-en.pdf
-2021/08/20 | 1898837 | fonts/charissil.zip
-2021/08/20 | 18175 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2021/08/20 | 180121 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2021/08/20 | 180011 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2021/08/20 | 17980 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2021/08/20 | 178354 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
2021/08/20 | 173905 | macros/latex/contrib/nicematrix/nicematrix-french.tex
-2021/08/20 | 17369641 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
2021/08/20 | 173448 | support/tikztosvg/tikztosvg.pdf
-2021/08/20 | 17264 | systems/texlive/tlnet/archive/easybook.source.r60275.tar.xz
2021/08/20 | 17218 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/biblatex-gb7714-2015-preamble.tex
-2021/08/20 | 17216 | systems/texlive/tlnet/archive/easybook.r60275.tar.xz
-2021/08/20 | 1713891 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2021/08/20 | 169242 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2021/08/20 | 1711 | systems/mac/mactex/Licenses.txt
2021/08/20 | 16845 | CTAN.sites
2021/08/20 | 166952 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.bbx
2021/08/20 | 165570 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.bbx
-2021/08/20 | 16412 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2021/08/20 | 16356 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2021/08/20 | 1620 | systems/texlive/tlnet/archive/keyparse.r60277.tar.xz
-2021/08/20 | 159578 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
2021/08/20 | 157 | support/tikztosvg/example/example.tikz
2021/08/20 | 15772 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015.cbx
2021/08/20 | 15514 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.cbx
-2021/08/20 | 154804 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2021/08/20 | 154426 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2021/08/20 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2021/08/20 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
2021/08/20 | 1490 | macros/latex/contrib/phonenumbers/README
-2021/08/20 | 147372 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2021/08/20 | 1464202 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2021/08/20 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2021/08/20 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
2021/08/20 | 14360 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ay.cbx
-2021/08/20 | 14347 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2021/08/20 | 1421867 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
2021/08/20 | 138625 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015mx.bbx
2021/08/20 | 1380062 | macros/latex/contrib/nicematrix/nicematrix.pdf
-2021/08/20 | 136819 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2021/08/20 | 136816 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2021/08/20 | 13464 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2021/08/20 | 1340931 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2021/08/20 | 133864 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2021/08/20 | 1330319 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2021/08/20 | 1329483 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2021/08/20 | 1317 | fonts/charissil/README
-2021/08/20 | 1301193 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2021/08/20 | 1291301 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2021/08/20 | 12844 | systems/texlive/tlnet/archive/gamebooklib.source.r60276.tar.xz
2021/08/20 | 12560 | systems/texlive/tlnet/archive/projlib.r60279.tar.xz
-2021/08/20 | 124282 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2021/08/20 | 1235557 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2021/08/20 | 1235306 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
-2021/08/20 | 119819 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
2021/08/20 | 118148 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-2015ms.bbx
-2021/08/20 | 1169716 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2021/08/20 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
-2021/08/20 | 115350 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
2021/08/20 | 1147 | macros/latex/contrib/phonenumbers/tex/phn-Landeskennzahlen.tex
-2021/08/20 | 112982 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2021/08/20 | 112088 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2021/08/20 | 109029 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2021/08/20 | 1077989 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2021/08/20 | 105221 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
2021/08/20 | 1044 | support/tikztosvg/CHANGELOG.md
2021/08/20 | 1034 | fonts/newcomputermodern/tex/NewCM10-Regular.fontspec
-2021/08/20 | 103399 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2021/08/20 | 103204 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
2021/08/20 | 101996 | macros/latex/contrib/phonenumbers/tex/phonenumbers.sty
2021/08/20 | 1014 | fonts/newcomputermodern/tex/NewCM10-Book.fontspec
2021/08/20 | 10098 | fonts/newcomputermodern/README
-2021/08/20 | 100624 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
2021/08/19 | 99210 | systems/win32/miktex/tm/packages/colorist__doc.tar.lzma
2021/08/19 | 9852 | systems/win32/miktex/tm/packages/colorist.tar.lzma
2021/08/19 | 9806 | systems/win32/miktex/tm/packages/uni-titlepage.tar.lzma
@@ -324,8 +400,6 @@
2021/08/19 | 714200 | fonts/charissil/truetype/CharisSIL-Bold.ttf
2021/08/19 | 7077 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987ay.bbx
2021/08/19 | 7058 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/gb7714-1987.bbx
-2021/08/19 | 70505 | fonts/charissil/doc/CharisSIL-samples.pdf
-2021/08/19 | 70451 | fonts/charissil/doc/history.pdf
2021/08/19 | 704239 | systems/win32/miktex/tm/packages/verifiche__doc.tar.lzma
2021/08/19 | 703432 | systems/texlive/tlnet/archive/verifiche.doc.r60269.tar.xz
2021/08/19 | 687723 | systems/win32/miktex/tm/packages/beaulivre__doc.tar.lzma
@@ -362,38 +436,29 @@
2021/08/19 | 4639 | systems/win32/miktex/tm/packages/verifiche.tar.lzma
2021/08/19 | 4625 | systems/win32/miktex/tm/packages/lambdax__source.tar.lzma
2021/08/19 | 456428 | systems/win32/miktex/tm/packages/tipauni__doc.tar.lzma
-2021/08/19 | 4411 | fonts/charissil/doc/OFL.txt
2021/08/19 | 4360 | systems/texlive/tlnet/archive/verifiche.r60269.tar.xz
2021/08/19 | 4348 | macros/latex/contrib/projlib/README.md
2021/08/19 | 4107 | systems/win32/miktex/tm/packages/einfart.tar.lzma
-2021/08/19 | 41044 | fonts/charissil/doc/design.pdf
2021/08/19 | 4084 | systems/win32/miktex/tm/packages/simplivre.tar.lzma
2021/08/19 | 4004 | systems/win32/miktex/tm/packages/lebhart.tar.lzma
-2021/08/19 | 399680 | systems/texlive/tlnet/archive/texlive-scripts.doc.r60264.tar.xz
2021/08/19 | 3987 | systems/win32/miktex/tm/packages/beaulivre.tar.lzma
2021/08/19 | 394964 | macros/latex/contrib/gamebooklib.zip
2021/08/19 | 38934 | macros/latex/contrib/gamebooklib/gamebooklib.dtx
2021/08/19 | 3878981 | macros/latex/contrib/animate/animate.pdf
2021/08/19 | 38757 | systems/win32/miktex/tm/packages/easybook__source.tar.lzma
-2021/08/19 | 38635 | fonts/charissil/doc/faq.pdf
2021/08/19 | 3755141 | systems/win32/miktex/tm/packages/media9__doc.tar.lzma
2021/08/19 | 37261 | systems/win32/miktex/tm/packages/projlib__source.tar.lzma
-2021/08/19 | 36786 | fonts/charissil/doc/about.pdf
2021/08/19 | 364912 | systems/texlive/tlnet/archive/ejpecp.doc.r60267.tar.xz
2021/08/19 | 3591 | systems/win32/miktex/tm/packages/tikzbricks__source.tar.lzma
-2021/08/19 | 35791 | fonts/charissil/doc/versions.pdf
-2021/08/19 | 35261 | fonts/charissil/doc/charset.pdf
2021/08/19 | 347339 | systems/win32/miktex/tm/packages/ejpecp__doc.tar.lzma
2021/08/19 | 33490 | systems/win32/miktex/tm/packages/xindex.tar.lzma
2021/08/19 | 3308 | systems/win32/miktex/tm/packages/makelabels.tar.lzma
-2021/08/19 | 32928 | fonts/charissil/doc/developer.pdf
2021/08/19 | 324041 | systems/win32/miktex/tm/packages/thesis-ekf__doc.tar.lzma
2021/08/19 | 3232521 | install/macros/latex/contrib/animate.tds.zip
2021/08/19 | 3230248 | macros/latex/contrib/animate.zip
2021/08/19 | 319918 | macros/latex/contrib/projlib/ProjLib-doc-cn.pdf
2021/08/19 | 300158 | systems/win32/miktex/tm/packages/xindex__doc.tar.lzma
2021/08/19 | 29841 | systems/win32/miktex/tm/packages/bytefield__source.tar.lzma
-2021/08/19 | 29829 | fonts/charissil/doc/resources.pdf
2021/08/19 | 29556 | systems/texlive/tlnet/archive/bytefield.source.r60265.tar.xz
2021/08/19 | 2832 | macros/latex/contrib/projlib/ProjLib.ins
2021/08/19 | 2675 | systems/win32/miktex/tm/packages/hvlogos.tar.lzma
@@ -403,7 +468,6 @@
2021/08/19 | 255980 | macros/xetex/latex/mynsfc.zip
2021/08/19 | 253867 | systems/win32/miktex/tm/packages/tikzbricks__doc.tar.lzma
2021/08/19 | 252736 | macros/xetex/latex/mynsfc/mynsfc.pdf
-2021/08/19 | 24470 | fonts/charissil/doc/index.pdf
2021/08/19 | 22798 | systems/win32/miktex/tm/packages/uni-titlepage__source.tar.lzma
2021/08/19 | 2218 | systems/win32/miktex/tm/packages/lambdax.tar.lzma
2021/08/19 | 21824 | systems/win32/miktex/tm/packages/cryptocode.tar.lzma
@@ -422,10 +486,8 @@
2021/08/19 | 19106 | macros/latex/contrib/projlib/LICENSE
2021/08/19 | 19104 | systems/texlive/tlnet/archive/zref-check.source.r60270.tar.xz
2021/08/19 | 1900770 | systems/win32/miktex/tm/packages/media9.tar.lzma
-2021/08/19 | 18776 | fonts/charissil/doc/support.pdf
2021/08/19 | 18728 | systems/win32/miktex/tm/packages/einfart__source.tar.lzma
2021/08/19 | 18591 | systems/win32/miktex/tm/packages/simplivre__source.tar.lzma
-2021/08/19 | 18589 | fonts/charissil/doc/FONTLOG.txt
2021/08/19 | 1820 | systems/win32/miktex/tm/packages/keyparse.tar.lzma
2021/08/19 | 17912 | systems/win32/miktex/tm/packages/lebhart__source.tar.lzma
2021/08/19 | 1782284 | systems/win32/miktex/tm/packages/media9__source.tar.lzma
@@ -444,7 +506,6 @@
2021/08/19 | 13459 | systems/win32/miktex/tm/packages/light-latex-make.tar.lzma
2021/08/19 | 131796 | macros/latex/contrib/biblatex-contrib/biblatex-gb7714-2015/example.bib
2021/08/19 | 12886 | systems/win32/miktex/tm/packages/projlib.tar.lzma
-2021/08/19 | 126534 | fonts/charissil/doc/features.pdf
2021/08/19 | 12403 | macros/latex/contrib/animate/ChangeLog
2021/08/19 | 12056 | systems/win32/miktex/tm/packages/fancyvrb.tar.lzma
2021/08/19 | 117057 | macros/latex/contrib/gamebooklib/gamebooklib_test.pdf
@@ -452,7 +513,6 @@
2021/08/19 | 11698 | systems/win32/miktex/tm/packages/light-latex-make__source.tar.lzma
2021/08/19 | 113397 | systems/win32/miktex/tm/packages/thesis-ekf.tar.lzma
2021/08/19 | 10837 | systems/win32/miktex/tm/packages/fancyvrb__source.tar.lzma
-2021/08/19 | 108300 | systems/texlive/tlnet/archive/texlive-scripts.r60264.tar.xz
2021/08/19 | 1070 | fonts/charissil/latex/CharisSIL.sty
2021/08/19 | 106797 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
2021/08/19 | 1049716 | systems/win32/miktex/tm/packages/cryptocode__doc.tar.lzma
@@ -468,11 +528,9 @@
2021/08/18 | 795870 | macros/latex/contrib/bytefield.zip
2021/08/18 | 7552 | systems/texlive/tlnet/archive/beamer-rl.r60262.tar.xz
2021/08/18 | 715945 | macros/latex/contrib/verifiche.zip
-2021/08/18 | 6957 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2021/08/18 | 6851 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1-tei.xml
2021/08/18 | 630473 | macros/latex/contrib/bytefield/bytefield.pdf
2021/08/18 | 61936 | systems/texlive/tlnet/archive/siunitx.r60258.tar.xz
-2021/08/18 | 58 | systems/mac/mactex/MacTeXtras-20210818.zip.md5
2021/08/18 | 57586 | macros/latex/contrib/verifiche/verifiche.dtx
2021/08/18 | 575187 | macros/latex/contrib/keyparse/keyparse.pdf
2021/08/18 | 564027 | macros/latex/contrib/keyparse.zip
@@ -482,10 +540,8 @@
2021/08/18 | 50656 | systems/texlive/tlnet/archive/yquant.r60259.tar.xz
2021/08/18 | 443607 | macros/luatex/latex/ekdosis/ekdosis.dtx
2021/08/18 | 4266 | macros/luatex/latex/ekdosis/README.md
-2021/08/18 | 421914136 | systems/mac/mactex/MacTeXtras-20210818.zip
2021/08/18 | 3977 | macros/luatex/latex/ekdosis/Makefile
2021/08/18 | 3903 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.tex
-2021/08/18 | 38111 | systems/mac/mactex/ExtrasFolder.pdf
2021/08/18 | 333 | macros/latex/contrib/keyparse/README.md
2021/08/18 | 332 | macros/latex/contrib/lambdax/README.md
2021/08/18 | 23535 | macros/latex/contrib/bytefield/bf-example.tex
@@ -499,7 +555,6 @@
2021/08/18 | 182373 | macros/latex/contrib/verifiche/verifiche-example.pdf
2021/08/18 | 18006 | macros/luatex/latex/ekdosis/samples/Caesar_BG-6-13-1.pdf
2021/08/18 | 1791 | macros/latex/contrib/gamebooklib/gamebooklib.ins
-2021/08/18 | 1711 | systems/mac/mactex/Licenses.txt
2021/08/18 | 1710 | macros/latex/contrib/bytefield/README
2021/08/18 | 1710 | macros/latex/contrib/bytefield/bytefield.ins
2021/08/18 | 1569 | macros/latex/contrib/gamebooklib/README
@@ -576,24 +631,15 @@
2021/08/17 | 12710 | macros/luatex/latex/beamer-rl/beamer-rl.cls
2021/08/17 | 1151830 | macros/latex/contrib/zref-check.zip
2021/08/17 | 1002 | macros/latex/contrib/zref-check/README.md
-2021/08/16 | 996 | macros/latex/contrib/siunitx/README.md
-2021/08/16 | 98476 | macros/latex/contrib/siunitx/siunitx-unit.dtx
-2021/08/16 | 9040 | macros/latex/contrib/siunitx/siunitx-symbol.dtx
2021/08/16 | 8921 | macros/luatex/latex/beamer-rl/Example-of-use-en.tex
2021/08/16 | 882512 | systems/texlive/tlnet/archive/beebe.r60247.tar.xz
-2021/08/16 | 8752 | macros/latex/contrib/siunitx/siunitx-command.dtx
2021/08/16 | 841219 | macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
2021/08/16 | 750113 | macros/latex/contrib/makelabels.zip
2021/08/16 | 686795 | macros/latex/contrib/makelabels/makelabels.pdf
-2021/08/16 | 636202 | macros/latex/contrib/siunitx/siunitx.pdf
2021/08/16 | 58935 | macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
-2021/08/16 | 57527 | macros/latex/contrib/siunitx/CHANGELOG.md
2021/08/16 | 54017 | macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
2021/08/16 | 50996 | systems/texlive/tlnet/archive/cryptocode.source.r60249.tar.xz
-2021/08/16 | 50335 | macros/latex/contrib/siunitx/siunitx-table.dtx
2021/08/16 | 4970 | macros/latex/contrib/makelabels/README.md
-2021/08/16 | 4748 | macros/latex/contrib/siunitx/siunitx-abbreviations.cfg
-2021/08/16 | 4746 | macros/latex/contrib/siunitx/siunitx-locale.dtx
2021/08/16 | 465224 | systems/texlive/tlnet/archive/xindex.doc.r60248.tar.xz
2021/08/16 | 45918 | macros/latex/contrib/makelabels/makelabels-envlab-example.pdf
2021/08/16 | 43998 | macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
@@ -602,39 +648,21 @@
2021/08/16 | 40396 | macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
2021/08/16 | 3991 | macros/latex/contrib/uni-titlepage/README.md
2021/08/16 | 38251 | macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
-2021/08/16 | 3687 | macros/latex/contrib/siunitx/siunitx.ins
2021/08/16 | 34948 | macros/latex/contrib/makelabels/makelabels-example.pdf
-2021/08/16 | 33434 | macros/latex/contrib/siunitx/siunitx-compound.dtx
2021/08/16 | 33256 | systems/texlive/tlnet/archive/xindex.r60248.tar.xz
-2021/08/16 | 31738 | macros/latex/contrib/siunitx/siunitx-version-1.cfg
-2021/08/16 | 31711 | macros/latex/contrib/siunitx/siunitx-print.dtx
-2021/08/16 | 31333 | macros/latex/contrib/siunitx/siunitx-emulation.dtx
-2021/08/16 | 2883 | macros/latex/contrib/siunitx/siunitx-binary.dtx
2021/08/16 | 27444 | macros/latex/contrib/makelabels/makelabels.dtx
-2021/08/16 | 273398 | macros/latex/contrib/siunitx/siunitx-v2.sty
2021/08/16 | 26903 | macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
-2021/08/16 | 25939 | macros/latex/contrib/siunitx/siunitx-complex.dtx
-2021/08/16 | 2426 | macros/latex/contrib/siunitx/siunitx-code.tex
-2021/08/16 | 2283720 | install/macros/latex/contrib/siunitx.tds.zip
2021/08/16 | 22652 | macros/luatex/latex/beamer-rl/pgfpages-rl.sty
-2021/08/16 | 2244284 | macros/latex/contrib/siunitx.zip
2021/08/16 | 21648 | systems/texlive/tlnet/archive/cryptocode.r60249.tar.xz
2021/08/16 | 2081 | macros/latex/contrib/easybook/easybook.ins
-2021/08/16 | 19826 | macros/latex/contrib/siunitx/siunitx.dtx
2021/08/16 | 185636 | systems/texlive/tlnet/archive/light-latex-make.doc.r60251.tar.xz
2021/08/16 | 17744 | macros/luatex/latex/beamer-rl/Example-of-use-ar.tex
-2021/08/16 | 1729 | macros/latex/contrib/siunitx/siunitx-binary.cfg
2021/08/16 | 1675826 | macros/latex/contrib/uni-titlepage.zip
2021/08/16 | 166494 | macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
-2021/08/16 | 16529 | macros/latex/contrib/siunitx/siunitx-angle.dtx
2021/08/16 | 1632 | macros/latex/contrib/easybook/README.md
2021/08/16 | 161779 | macros/luatex/latex/beamer-rl/Example-of-use-ar.pdf
-2021/08/16 | 15317 | macros/latex/contrib/siunitx/siunitx-quantity.dtx
-2021/08/16 | 1510786 | macros/latex/contrib/siunitx/siunitx-code.pdf
-2021/08/16 | 146388 | macros/latex/contrib/siunitx/siunitx.tex
2021/08/16 | 128796 | macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
2021/08/16 | 127996 | macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
-2021/08/16 | 120302 | macros/latex/contrib/siunitx/siunitx-number.dtx
2021/08/16 | 119780 | macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
2021/08/16 | 119572 | macros/luatex/latex/beamer-rl/Example-of-use-en.pdf
2021/08/16 | 117770 | macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
@@ -642,7 +670,6 @@
2021/08/16 | 1081 | macros/latex/contrib/makelabels/LICENSE.md
2021/08/16 | 10568 | systems/texlive/tlnet/archive/light-latex-make.r60251.tar.xz
2021/08/16 | 1046800 | systems/texlive/tlnet/archive/cryptocode.doc.r60249.tar.xz
-2021/08/16 | 10106 | macros/latex/contrib/siunitx/siunitx-abbreviation.dtx
2021/08/15 | 99340 | support/light-latex-make/llmk.pdf
2021/08/15 | 941 | macros/latex/contrib/cryptocode/cryptocode.ins
2021/08/15 | 9220 | indexing/xindex/doc/tests/demo3.pdf
@@ -686,7 +713,6 @@
2021/08/15 | 18345 | indexing/xindex/doc/tests/HADW.pdf
2021/08/15 | 179891 | support/light-latex-make.zip
2021/08/15 | 1776608 | systems/texlive/tlnet/archive/media9.source.r60244.tar.xz
-2021/08/15 | 160963 | support/TeX4ht/source/ChangeLog
2021/08/15 | 15380 | indexing/xindex/doc/tests/buch.ind
2021/08/15 | 15198 | indexing/xindex/doc/tests/Umlaute.pdf
2021/08/15 | 1433 | support/light-latex-make/llmk-logo-code.tex
@@ -700,16 +726,8 @@
2021/08/15 | 114 | indexing/xindex/doc/tests/demo3.idx
2021/08/15 | 1133384 | macros/latex/contrib/cryptocode.zip
2021/08/15 | 11083 | indexing/xindex/lualatex/xindex-HAdW-eKO.lua
-2021/08/15 | 1093005 | support/TeX4ht/source/tex4ht-4ht.tex
2021/08/15 | 1091 | support/light-latex-make/LICENSE
2021/08/15 | 1062027 | macros/latex/contrib/cryptocode/cryptocode.pdf
2021/08/15 | 10136 | indexing/xindex/lualatex/xindex-lapp.lua
2021/08/15 | 1005 | indexing/xindex/doc/tests/demo2.ind
2021/08/15 | 10045 | indexing/xindex/lualatex/xindex-base.lua
-2021/08/14 | 75968 | systems/texlive/tlnet/archive/hvlogos.doc.r60236.tar.xz
-2021/08/14 | 42668 | graphics/pgf/contrib/yquant/tex/yquant-draw.tex
-2021/08/14 | 256244 | systems/texlive/tlnet/archive/tikzbricks.doc.r60234.tar.xz
-2021/08/14 | 25605 | graphics/pgf/contrib/yquant/tex/yquant-lang.tex
-2021/08/14 | 2388 | systems/texlive/tlnet/archive/hvlogos.r60236.tar.xz
-2021/08/14 | 1952 | systems/texlive/tlnet/archive/tikzbricks.r60234.tar.xz
-2021/08/14 | 14467 | graphics/pgf/contrib/yquant/tex/yquant-circuit.tex
diff --git a/fonts/charissil/README b/fonts/charissil/README
index 8a3ee49246..fa1dac449c 100644
--- a/fonts/charissil/README
+++ b/fonts/charissil/README
@@ -1,5 +1,5 @@
This is the README for the charissil package, version 6.001,
-release 2021-08-20.
+release 2021-08-21.
This package provides the CharisSIL family of TrueType fonts
adapted by SIL International from Bitstream Charter. Because
diff --git a/fonts/charissil/doc/CharisSIL-samples.pdf b/fonts/charissil/doc/CharisSIL-samples.pdf
index 164b29c7e3..f61cc2b428 100644
--- a/fonts/charissil/doc/CharisSIL-samples.pdf
+++ b/fonts/charissil/doc/CharisSIL-samples.pdf
Binary files differ
diff --git a/fonts/charissil/doc/about.md b/fonts/charissil/doc/about.md
new file mode 100644
index 0000000000..a174f08122
--- /dev/null
+++ b/fonts/charissil/doc/about.md
@@ -0,0 +1,54 @@
+---
+title: Charis SIL - About
+fontversion: 6.001
+---
+
+## About this project
+
+This project is intended to provide a free and open font family for all current languages and writing systems that use Latin and Cyrillic scripts. It supports almost the complete range of Unicode characters for these scripts, including a comprehensive range of diacritics and a large set of symbols useful for linguistics and literacy work. Smart font routines automatically adjust the position of diacritics to support and optimize arbitrary base+diacritic combinations.
+
+For more information on the visual characteristics of the font family see [Design](design.md).
+
+For a comparison between this and other SIL fonts, see [Comparison of Latin, Greek, and Cyrillic fonts](https://software.sil.org/lcgfonts/support/comparison/).
+
+## Future plans
+
+These fonts are actively maintained and improved, and recent changes to their development process will enable more frequent releases.
+
+The highest priorities for future additions and enhancements are mainly driven by:
+
+- New additions to [The Unicode Standard](https://unicode.org/)
+- Requests from language communities using the fonts
+- Needs of the linguistic and academic community
+
+Although some expert typographic features are supported (e.g. small caps), those are a lesser priority.
+
+Please send us your requests using the [form on the font website](https://software.sil.org/charis/about/contact/). If you are interested in helping us make the fonts better see the [Developer](developer.md) page.
+
+## Announcement list
+
+If you wish to receive announcements about updates to any of our SIL fonts, please subscribe to our [SIL Font News Announcement List](https://groups.google.com/a/groups.sil.org/forum/#!forum/sil-font-news). This is an announcement-only list with messages approximately once a month. It does not allow any discussion.
+
+You can subscribe using either of the two following options.
+
+- If you use a Google profile and join the group, you will be able to access the group and control your subscription and notification options with a web browser. Make sure you are logged in to your Google profile and go to the [SIL Font News Google Group](https://groups.google.com/a/groups.sil.org/forum/#!forum/sil-font-news). Click on **Join group**.
+
+- If you would rather not use a Google profile, you can subscribe any email address by sending a message to [sil-font-news+subscribe@groups.sil.org](mailto:sil-font-news+subscribe@groups.sil.org) and following the instructions you get in the confirmation message.
+
+Our font announcements are also available through Twitter [@silfonts](http://twitter.com/silfonts).
+
+## Supporting the project
+
+These fonts are provided at no cost, however they are expensive to produce and maintain. Please consider donating to SIL’s font development efforts to support future development. Go to [SIL’s Give Direct page](https://donate.givedirect.org/?cid=13536&n=206909) and designate your gift for _Scripts & Fonts_. **Thank you!**
+
+## About SIL International
+
+[SIL International](http://www.sil.org/) is a global, faith-based nonprofit that works with local communities around the world to develop language solutions that expand possibilities for a better life.
+
+We are involved in approximately 1,350 active language projects in 104 countries. These projects impact more than 1.1 billion people within 1,600 local communities. SIL’s work brings together more than 4,300 staff from 89 countries who work alongside thousands more local partners and community volunteers worldwide. Our services are available without regard to religious belief, political ideology, gender, race or ethnic background.
+
+Our Vision: We long to see people flourishing in community using the languages they value most.
+
+Our Mission: Inspired by God’s love, we advocate, build capacity, and work with local communities to apply language expertise that advances meaningful development, education, and engagement with Scripture.
+
+[SIL Language Technology](https://software.sil.org/) supports these activities by developing [software](https://software.sil.org/products/), [fonts](https://software.sil.org/fonts/), and [keyboard technologies](https://keyman.com/).
diff --git a/fonts/charissil/doc/announcement.md b/fonts/charissil/doc/announcement.md
new file mode 100644
index 0000000000..9a6c9f23e8
--- /dev/null
+++ b/fonts/charissil/doc/announcement.md
@@ -0,0 +1,133 @@
+Release 6.000
+
+We’re excited to announce the long-awaited version 6 release of Charis SIL. This release is full of new features and important improvements. **Note that this is a major upgrade. This may cause document reflow as some glyphs widths have changed and some features have been removed. Please do not assume that you can replace version 5 with version 6 with no resulting changes to your publications.**
+
+Both desktop and web fonts are provided in a single, all-platforms package on the [Download page](http://software.sil.org/charis/download).
+
+#### Removed
+
+- **Removed DSIGs added in version 5.000.** These have now been removed to reflect current best practice font development guidance. Adobe InDesign will complain that fonts cannot be found if a document last saved with version 5.000 is opened with version 5.960 or later installed. It will be necessary to find/replace the fonts in the document using the command in the Type menu. Please also look over the document carefully to note any places where changes in the fonts have affected letterforms or spacing.
+
+- **Graphite has been removed.** Application and OS support for OpenType has greatly improved, so the need for Graphite in this font family is greatly reduced. *If this affects you, and you find that OpenType does not provide sufficient support for your needs, please contact us right away.*
+
+- Removed the *Show Invisibles* feature.
+
+- Removed support for nine-level pitch contours. These will be replaced by a standalone pitch contours font in the future.
+
+#### Added
+
+Characters added to support Unicode versions 7.0-13.0, including feature support (e.g. small caps) where appropriate:
+
+- U+03D1 GREEK THETA SYMBOL
+- U+03F4 GREEK CAPITAL THETA SYMBOL
+- U+1AB0 COMBINING DOUBLED CIRCUMFLEX ACCENT
+- U+1AB1 COMBINING DIAERESIS-RING
+- U+1AB2 COMBINING INFINITY
+- U+1AB3 COMBINING DOWNWARDS ARROW
+- U+1AB4 COMBINING TRIPLE DOT
+- U+1AB5 COMBINING X-X BELOW
+- U+1AB6 COMBINING WIGGLY LINE BELOW
+- U+1AB7 COMBINING OPEN MARK BELOW
+- U+1AB8 COMBINING DOUBLE OPEN MARK BELOW
+- U+1AB9 COMBINING LIGHT CENTRALIZATION STROKE BELOW
+- U+1ABA COMBINING STRONG CENTRALIZATION STROKE BELOW
+- U+1DF5 COMBINING UP TACK ABOVE
+- U+203B REFERENCE MARK
+- U+20BE LARI SIGN
+- U+20BF BITCOIN SIGN
+- U+27E8 MATHEMATICAL LEFT ANGLE BRACKET
+- U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET
+- U+2E13 DOTTED OBELOS
+- U+2E14 DOWNWARDS ANCORA
+- U+2E17 DOUBLE OBLIQUE HYPHEN
+- U+2E22 TOP LEFT HALF BRACKET
+- U+2E23 TOP RIGHT HALF BRACKET
+- U+2E24 BOTTOM LEFT HALF BRACKET
+- U+2E25 BOTTOM RIGHT HALF BRACKET
+- U+A78F LATIN LETTER SINOLOGICAL DOT
+- U+A7AE LATIN CAPITAL LETTER SMALL CAPITAL I
+- U+A7AF LATIN LETTER SMALL CAPITAL Q
+- U+A7B3 LATIN CAPITAL LETTER CHI
+- U+A7B4 LATIN CAPITAL LETTER BETA
+- U+A7B5 LATIN SMALL LETTER BETA
+- U+A7B6 LATIN CAPITAL LETTER OMEGA
+- U+A7B7 LATIN SMALL LETTER OMEGA
+- U+A7B8 LATIN CAPITAL LETTER U WITH STROKE
+- U+A7B9 LATIN SMALL LETTER U WITH STROKE
+- U+AB30 LATIN SMALL LETTER BARRED ALPHA
+- U+AB53 LATIN SMALL LETTER CHI
+- U+AB5C MODIFIER LETTER SMALL HENG
+- U+AB5E MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+- U+F26E CAPITAL RAMS HORN (in SIL PUA)
+
+#### New
+
+- First release that uses a UFO-based design and production workflow
+ - All sources are in open formats
+ - Build toolkit and workflow is completely open-source
+ - See https://silnrsi.github.io/silfontdev/en-US/Introduction.html
+
+- Web fonts are provided in both WOFF and WOFF2 formats
+
+- Applied new hinting techniques to try to improve screen rendering on Windows
+
+- All-new documentation in HTML and PDF formats
+
+- Features for controlling literacy forms of a and g separately
+ - Literacy a alternates (ss02)
+ - Literacy g alternates (ss03)
+
+- Feature to support side-by-side rendering of U+0300 plus U+0301
+ - Kayan diacritics (cv79)
+
+- Tone letter features (cv91 & cv92) now supported through OpenType
+
+#### Fixes
+
+- Width of typographic spaces have been made more consistent to reflect common publishing industry usage. Note that this may affect line and page lengths. Affected spaces:
+
+ - U+2000 EN QUAD (made width consistent)
+ - U+2001 EM QUAD (made width consistent)
+ - U+2007 FIGURE SPACE (made wider to match numerals in all styles)
+ - U+2009 THIN SPACE (made narrower)
+ - U+202F NARROW NO-BREAK SPACE (made narrower)
+
+- Fixed some small capital correspondences, including added support for clicks
+
+- Fixed problems with spacing of tone letters
+
+- Fixed missing or distorted Vietnamese composite glyphs
+
+- Fixed miscellaneous distorted glyphs
+
+- Improved miscellaneous anchor positions, including the position of diacritics below glyphs with macrons below (e.g. U+1E0F LATIN SMALL LETTER D WITH LINE BELOW)
+
+- Improved position of diacritics for superscripts and modifier letters (including cedilla, ogonek, rhotic hook)
+
+- Fixes and improvements to various glyphs:
+ - U+0037 DIGIT SEVEN (spacing)
+ - U+01E5 LATIN SMALL LETTER G WITH STROKE (bar position on single-story variant)
+ - U+02D6 MODIFIER LETTER PLUS SIGN (size)
+ - U+02DF MODIFIER LETTER CROSS ACCENT (size)
+ - U+02E4 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP (form)
+ - U+033B COMBINING SQUARE BELOW (more rectangular)
+ - U+1AB3 COMBINING DOWNWARDS ARROW (position fixes since beta 1)
+ - U+1D02 LATIN SMALL LETTER TURNED AE (made double-story in italic)
+ - U+1D15 LATIN LETTER SMALL CAPITAL OU (form)
+ - U+1D46 MODIFIER LETTER SMALL TURNED AE (made double-story in italic)
+ - U+1D77 LATIN SMALL LETTER TURNED G (position)
+ - U+1D78 MODIFIER LETTER CYRILLIC EN (form)
+ - U+1EFC LATIN CAPITAL LETTER MIDDLE-WELSH V
+ - U+A76A LATIN CAPITAL LETTER ET
+ - U+A76B LATIN SMALL LETTER ET
+ - U+A76C LATIN CAPITAL LETTER IS
+ - U+A76D LATIN SMALL LETTER IS
+ - U+A77F LATIN SMALL LETTER TURNED INSULAR G (position)
+ - U+A7F8 MODIFIER LETTER CAPITAL H WITH STROKE (form)
+ - U+A7FA LATIN LETTER SMALL CAPITAL TURNED M (italic)
+
+#### Known issues
+
+- There is no support for TypeTuner or TypeTuner Web. We hope to add that support soon.
+
+- There are no regional subsets. Please contact us if these are a priority for you and describe how you use them. We are reassessing whether to provide these subsets. With current web technology and WOFF2 compression most uses can be met equally well with the full fonts.
diff --git a/fonts/charissil/doc/charset.md b/fonts/charissil/doc/charset.md
new file mode 100644
index 0000000000..7d6a752633
--- /dev/null
+++ b/fonts/charissil/doc/charset.md
@@ -0,0 +1,105 @@
+---
+title: Charis SIL - Character Set Support
+fontversion: 6.001
+---
+
+This font supports over 2,300 characters from [The Unicode Standard](https://unicode.org/) as well as a number of [Private Use Area (PUA)](https://scripts.sil.org/SILPUAassignments) characters. In total, over 3,500 glyphs are included, supporting stylistic alternates for a number of characters as well as a large number of ligated sequences (e.g., contour tone letters used in phonetic transcription of tonal languages).
+
+## Supported characters
+
+The following character ranges are supported by this font:
+
+Unicode block | Charis SIL support
+------------- | ---------------
+C0 Controls and Basic Latin|U+0020..U+007E
+C1 Controls and Latin-1 Supplement|U+00A0..U+00FF
+Latin Extended-A|U+0100..U+0148, U+014A..U+017F
+Latin Extended-B|U+0180..U+024F
+IPA Extensions|U+0250..U+02AF
+Spacing Modifier Letters|U+02B0..U+02FF
+Combining Diacritical Marks|U+0300..U+0320, U+0323..U+033F, U+0346..U+036F
+Greek and Coptic|U+0387, U+0393..U+0394, U+0398, U+039E, U+03A0, U+03A8..U+03A9, U+03B1..U+03B4, U+03B8, U+03BB..U+03BC, U+03C0..U+03C1, U+03C3, U+03C6..U+03C7, U+03C9, U+03D1, U+03F4
+Cyrillic|U+0400..U+045F, U+0462..U+0463, U+0472..U+0475, U+048A..U+04FF
+Cyrillic Supplementary|U+0500..U+052F
+Combining Diacritical Marks Extended|U+1AB0..U+1ABA
+Phonetic Extensions|U+1D00..U+1D7F
+Phonetic Extensions Supplement|U+1D80..U+1DBF
+Combining Diacritical Marks Supplement|U+1DC2, U+1DC4..U+1DCD, U+1DF5, U+1DFD..U+1DFF
+Latin Extended Additional|U+1E00..U+1EFF
+General Punctuation|U+2000..U+2030, U+2032..U+203B, U+203C, U+203F.. U+2041, U+2044, U+2053, U+2057, U+2060..U+2063, U+206A..U+206F
+Superscripts and Subscripts|U+2070..U+2071, U+2074..U+208E, U+2090..U+209C
+Currency Symbols|U+20A0..U+20BF
+Combining Diacritical Marks for Symbols|U+20E5, U+20EC..U+20EF
+Letterlike Symbols|U+210C, U+2113, U+2116..U+2117, U+211F, U+2122..U+2123, U+2126, U+212D, U+2135, U+214F
+Number Forms|U+2150..U+2189
+Arrows|U+2190..U+219B, U+21A8, U+21D0..U+21D5
+Mathematical Operators|U+2202..U+2206, U+220F, U+2211..U+2213, U+2219..U+221A, U+221E, U+2225..U+2226, U+222B, U+2234..U+2235, U+223C, U+2248, U+225F, U+2260..U+2262, U+2264..U+2265, U+U+2282..U+2287
+Miscellaneous Technical|U+2308..U+230B, U+231C..U+231F, U+2329..U+232A, U+239B..U+23AD
+Control Pictures|U+2423
+Geometric Shapes|U+25CA, U+25CC
+Miscellaneous Symbols|U+2640, U+2642, U+266D, U+266F
+Dingbats|U+2713, U+274D
+Misc. Math. Symbols-A|U+27E6..U+27E9
+Latin Extended-C|U+2C60..U+2C7F
+Coptic|U+2C88
+Supplemental Punctuation|U+2E00..U+2E0D, U+2E13, U+2E14, U+2E17, U+2E22..U+2E25, U+2E3A..U+2E3B
+Modifier Tone Letters|U+A700..U+A71F
+Latin Extended-D|U+A720..U+A78F, U+A790..U+A799, U+A7A0..U+A7AF, U+A7B0..U+A7B9, U+A7F7..U+A7FF
+Kayah Li|U+A92E
+Latin Extended-E|U+AB30, U+AB53, U+AB5C, U+AB5E, U+AB64..U+AB65
+PUA: Specials|U+F130..U+F133
+PUA: Modifier letters (e.g. superscripts)|U+F1A1, U+F1A3..U+F1A4, U+F1AB, U+F1AE, U+F1B4..U+F1B5, U+F1BC, U+F1CD..U+F1CE, U+F1F1..U+F1F9
+PUA: Latin|U+F20D, U+F234..U+F235, U+F258..U+F259, U+F267..U+F269, U+F26C..U+F26D
+PUA: Cyrillic|U+F326..U+F327
+Alphabetic Presentation Forms|U+FB00..U+FB04
+Variation Selectors|U+FE00..U+FE0F
+Combining Half Marks|U+FE20..U+FE23
+Arabic Presentation Forms-B|U+FEFF (zero-width no-break space)
+Specials|U+FFF9..U+FFFD
+Mathematical Alphanumeric Symbols|U+1D40C, U+1D504..U+1D505, U+1D50A, U+1D50E..U+1D510, U+1D513..U+1D514, U+1D516..U+1D517, U+1D519
+
+## Private-use (PUA) characters
+
+There are a number of private-use characters that are supported in this font. These conform to [SIL International’s corporate registry](http://scripts.sil.org/PUA_home) for usage of the Unicode private-use areas. Characters which are not yet in Unicode are shown below.
+
+### Specials
+
+- U+F130 FONT BASELINE AND SIDE-BEARING MARKER LEFT
+- U+F131 FONT BASELINE AND SIDE-BEARING MARKER RIGHT
+- U+F132 FONT VERTICAL METRICS MARKER LEFT
+- U+F133 FONT VERTICAL METRICS MARKER RIGHT
+
+### Modifier Letters
+
+- U+F1A1 MODIFIER LETTER SMALL AE
+- U+F1A3 MODIFIER LETTER SMALL REVERSED E
+- U+F1A4 MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+- U+F1AB MODIFIER LETTER SMALL O WITH STROKE
+- U+F1AE MODIFIER LETTER SMALL CAPITAL OE
+- U+F1B4 MODIFIER LETTER SMALL CAPITAL Y
+- U+F1B5 MODIFIER LETTER SMALL RAMS HORN
+- U+F1BC MODIFIER LETTER SMALL H WITH STROKE
+- U+F1CD MODIFIER LETTER SMALL CAPITAL U BAR
+- U+F1CE MODIFIER LETTER SMALL TURNED Y
+
+### Latin
+
+- U+F20D LATIN CAPITAL LETTER D WITH STROKE AND HOOK
+- U+F234 LATIN CAPITAL LETTER Z WITH PALATAL HOOK
+- U+F235 LATIN SMALL LETTER EZH WITH PALATAL HOOK
+- U+F258 LATIN LETTER SMALL CAPITAL I OVER SMALL SCHWA
+- U+F259 LATIN LETTER SMALL UPSILON OVER SMALL SCHWA
+- U+F267 LATIN SMALL LETTER TURNED Y WITH BELT
+- U+F268 LATIN LETTER SMALL CAPITAL L WITH BELT
+- U+F269 LATIN SMALL LETTER TURNED R WITH LONG LEG AND HOOK
+- U+F26D LATIN SMALL LETTER B WITH LEFT HOOK
+- U+F26E LATIN CAPITAL LETTER RAMS HORN
+
+### Cyrillic
+
+- U+F326 CYRILLIC CAPITAL LETTER GHE WITH STROKE AND DESCENDER
+- U+F327 CYRILLIC SMALL LETTER GHE WITH STROKE AND DESCENDER
+
+### Deprecated SIL Corporate PUA characters
+
+Some characters formerly in the PUA have been added to Unicode, and so have been deprecated in our fonts. Those PUA characters are displayed as black boxes containing a white image of the deprecated glyph.
diff --git a/fonts/charissil/doc/design.md b/fonts/charissil/doc/design.md
new file mode 100644
index 0000000000..d389abde58
--- /dev/null
+++ b/fonts/charissil/doc/design.md
@@ -0,0 +1,26 @@
+---
+title: Charis SIL - Design
+fontversion: 6.001
+---
+
+Charis SIL is optimized for readability in long printed documents. It is highly readable and holds up well in less-than-ideal reproduction environments due to its simple and robust design with strong serifs and clear features.
+
+![Charis SIL Sample - Precomposed Latin Diacritics](assets/images/CharisSILTypePage.png){.fullsize}
+<!-- PRODUCT SITE IMAGE SRC http://software.sil.org/charis/wp-content/uploads/sites/14/2015/12/CharisSILTypePage.png -->
+<figcaption>Charis SIL Sample - Precomposed Latin Diacritics</figcaption>
+
+Type samples showing an inventory of some of the unusual glyphs and features are available in a PDF sample: [Charis SIL Type Sample](https://software.sil.org/charis/wp-content/uploads/sites/14/2015/12/CharisSILTypeSample.pdf). For a complete list of characters included in Charis SIL, see [Character Set Support](charset.md).
+
+### Note regarding Charter
+
+This Charis SIL font is essentially the same design as the SIL Charis font first released by SIL in 1997. The design of the basic character set of Charis SIL is similar (but not identical) to Bitstream Charter, designed by Matthew Carter. The following notice accompanied the Charter fonts:
+
+> © Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
+>
+> You are hereby granted permission under all Bitstream propriety rights to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream Charter® Type 1 outline fonts and the 4 Courier Type 1 outline fonts for any purpose and without restriction; provided, that this notice is left intact on all copies of such fonts and that Bitstream's trademark is acknowledged as shown below on all unmodified copies of the 4 Charter Type 1 fonts.
+>
+> BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
+
+SIL International is the creator of the Charis SIL fonts, and is the owner of all proprietary rights therein.
+
+*Charis SIL* is a trademark of SIL International.
diff --git a/fonts/charissil/doc/developer.md b/fonts/charissil/doc/developer.md
new file mode 100644
index 0000000000..c970c5600d
--- /dev/null
+++ b/fonts/charissil/doc/developer.md
@@ -0,0 +1,44 @@
+---
+title: Charis SIL - Developer information
+fontversion: 6.001
+---
+
+## Welcome font developers!
+
+We welcome other developers who wish to get involved in supporting and enhancing these fonts or who want to modify them.
+
+## Permissions granted by the OFL
+
+SIL’s fonts are licensed according to the terms of the [SIL Open Font License](https://scripts.sil.org/OFL). The OFL allows the fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. For details see the OFL.txt and OFL-FAQ.txt files in the package.
+
+## Building the fonts from source code
+
+The full source code for our Latin, Greek, and Cyrillic fonts is available on Github:
+
+- [Charis SIL Github repository](https://github.com/silnrsi/font-charis)
+- [Doulos SIL Github repository](https://github.com/silnrsi/font-doulos)
+- [Gentium Plus Github repository](https://github.com/silnrsi/font-gentium)
+- [Andika Github repository](https://github.com/silnrsi/font-andika)
+
+Font sources are in the [UFO3](http://unifiedfontobject.org/versions/ufo3/) format with font family structures defined using [designspace](https://github.com/fonttools/fonttools/tree/master/Doc/source/designspaceLib). OpenType source code is stored in the [.fea](https://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html) format in the UFO (features.fea) but is maintained in a separate file using the more efficient and powerful [.feax](https://github.com/silnrsi/pysilfont/blob/master/docs/feaextensions.rawmd) format.
+
+The fonts are built using a completely free and open source workflow using industry-standard tools ([fontools](https://github.com/fonttools/fonttools)), a package of custom python scripts ([pysilfont](https://github.com/silnrsi/pysilfont)), and a build and packaging system ([Smith](https://github.com/silnrsi/smith)). The whole system is available in a preconfigured virtual machine using VirtualBox and Vagrant.
+
+Full instructions for setting up the tools and building SIL fonts are available on a dedicated web site: [SIL Font Development Notes](https://silnrsi.github.io/silfontdev/).
+
+## Contributing to the project
+
+We warmly welcome contributions to the fonts, such as new glyphs, enhanced smart font code, or bug fixes. The [brief overview of contributing changes](https://silnrsi.github.io/silfontdev/en-US/Contributing_Changes.html) is a good place to begin. The next step is to contact us by responding to an existing issue or creating an issue in the Github repository and expressing your interest. We can then work together to plan and integrate your contributions.
+
+Here are a few examples of contributions that would be welcomed (some more than others):
+
+- Old style figures
+- Coptic (Gentium)
+- Historic/Archaic Cyrillic
+- Mathematical glyphs
+- OpenType code and glyphs for on-the-fly fraction creation
+- Additional scripts (Armenian, etc.), and any needed OpenType code
+
+Because we want to be able to guarantee a high level of quality for our fonts, we will review submissions carefully. Contributions will need to cover all the weights and styles of the family and in some cases all four font projects. Please don’t be discouraged if we do not include a submission due to quality or incompleteness, or if we ask you to make specific revisions.
+
+To enable us to accept contributions in a way that honors your contribution and respects your copyright while preserving long-term flexibility for open source licensing, you would also need to agree to the **SIL International Contributor License Agreement for Font Software (v1.0)** prior to sending us your contribution. To read more about this requirement and find out how to submit the required form, please visit the [CLA information page](https://software.sil.org/fontcla).
diff --git a/fonts/charissil/doc/faq.md b/fonts/charissil/doc/faq.md
new file mode 100644
index 0000000000..14695a9dbf
--- /dev/null
+++ b/fonts/charissil/doc/faq.md
@@ -0,0 +1,39 @@
+---
+title: Charis SIL - Frequently Asked Questions
+fontversion: 6.001
+---
+
+Many questions can be answered by consulting the following FAQ pages. Here are a few sample questions answered in each FAQ:
+
+- [SIL fonts in general](http://software.sil.org/fonts/faq)
+ - *How can I type...?*
+ - *How can I use font features?*
+ - *Will you add support for character...?*
+ - *Will you add support for script...?*
+ - *WIll you help me...?*
+
+- [SIL’s Latin, Cyrillic, and Greek fonts](http://software.sil.org/lcgfonts/faq).
+ - *How can I type IPA symbols?*
+ - *How do I use both a single-story and double-story 'a' in italic?*
+ - *Why don’t my diacritics position properly?*
+ - *Why is the line spacing so much looser that other fonts?*
+
+- [The SIL Open Font License (OFL-FAQ)](https://scripts.sil.org/OFL-FAQ_web)
+ - *Can I use this font for...?*
+ - *Can I modify the font and then include it in...*
+ - *If I use the font on a web page do I have to include an acknowledgement?*
+ - The full OFL-FAQ.txt is also included in the font package.
+
+Here are a few of the most frequently asked questions specifically regarding Charis SIL:
+
+#### *Why does the font have some Greek characters, but not all?*
+
+Although Charis SIL includes some Greek characters, it is not intended to provide general support for the Greek language. The Greek characters that are included are there to support various notational systems (linguistic, logical, mathematical). Other fonts, such as [Gentium Plus](http://software.sil.org/gentium) provide complete Greek script support.
+
+#### *Will you add full Greek script support?*
+
+We have no plans to do that, however the [OFL licensing](https://scripts.sil.org/OFL_web) allows anyone to add Greek support and freely distribute the font to others. It is even possible to [contribute that work back to the project](developer.md) and share it with others.
+
+#### *Isn’t Charis SIL just a copy of Charter?*
+
+Charis SIL is very closely based on the design of Bitstream Charter, however the glyphs were completely redrawn based only on visual reference to Charter. There are some significant design differences in the serif structure, proportions, diacritics, and Cyrillic. The design was also adjusted and extended to cover a much wider range of characters and publishing needs.
diff --git a/fonts/charissil/doc/features.md b/fonts/charissil/doc/features.md
new file mode 100644
index 0000000000..e5ff6e0a84
--- /dev/null
+++ b/fonts/charissil/doc/features.md
@@ -0,0 +1,371 @@
+---
+title: Charis SIL - Font Features
+fontversion: 6.001
+---
+
+Charis SIL is an OpenType-enabled font family that supports the Latin and Cyrillic scripts. It includes a number of optional features that may be useful or required for particular uses or languages. This document lists all the available features.
+
+These OpenType features are primarily specified using four-letter tags (e.g. 'cv17'), although some applications may provide a direct way to control certain common features such as small caps. For more information on how to access OpenType features in specific environments and applications, see [Using Font Features](http://software.sil.org/fonts/features).
+
+*Please note that Graphite support has been removed in the current release, but continues to be available in the version 5 fonts. See our [Previous Versions archive](http://software.sil.org/charis/download/previous-versions).*
+
+This page uses web fonts (WOFF2) to demonstrate font features and should display correctly in all modern browsers. For a more concise example of how to use Charis SIL as a web font see [Charis SIL Webfont Example](../web/CharisSIL-webfont-example.html). For detailed information see [Using SIL Fonts on Web Pages](http://software.sil.org/fonts/webfonts).
+
+*If this document is not displaying correctly a PDF version is also provided in the documentation/pdf folder of the release package.*
+
+## Complete feature list
+
+### Stylistic alternates
+
+#### Small caps from lowercase
+
+<span class='affects'>Affects: all lowercase letters with capital equivalents</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>a ... z</span> (all letters with capital equivalents) | `smcp=0`
+Small caps | <span class='charis-R normal' style='font-feature-settings: "smcp" 1'>a ... z</span> (all letters with capital equivalents) | `smcp=1`
+
+#### Small caps from capitals
+
+<span class='affects'>Affects: all capitals</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>A ... Z</span> (all capitals) | `c2sc=0`
+Small caps | <span class='charis-R normal' style='font-feature-settings: "c2sc" 1'>A ... Z</span> (all capitals) | `c2sc=1`
+
+#### Literacy a and g
+
+<span class='affects'>Affects: U+0061 U+00E0 U+00E1 U+00E2 U+00E3 U+00E4 U+00E5 U+0101 U+0103 U+0105 U+01CE U+01DF U+01E1 U+01FB U+0201 U+0203 U+0227 U+1E01 U+1E9A U+1EA1 U+1EA3 U+1EA5 U+1EA7 U+1EA9 U+1EAB U+1EAD U+1EAF U+1EB1 U+1EB3 U+1EB5 U+1EB7 U+2C65 U+2090 U+1D43 U+0363 U+0067 U+011D U+011F U+0121 U+0123 U+01E7 U+01F5 U+01E5 U+1E21 U+A7A1 U+1D4D</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>a à á â ã ä å ā ă ą ǎ ǟ ǡ ǻ ȁ ȃ ȧ ḁ ẚ ạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ ⱥ ₐ ᵃ ◌ͣ g ĝ ğ ġ ģ ǧ ǵ ǥ ḡ ꞡ ᵍ </span> | `ss01=0`
+Single-story | <span class='charis-R normal' style='font-feature-settings: "ss01" 1'>a à á â ã ä å ā ă ą ǎ ǟ ǡ ǻ ȁ ȃ ȧ ḁ ẚ ạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ ⱥ ₐ ᵃ ◌ͣ g ĝ ğ ġ ģ ǧ ǵ ǥ ḡ ꞡ ᵍ </span> | `ss01=1`
+
+#### Literacy a (only)
+
+<span class='affects'>Affects: U+0061 U+00E0 U+00E1 U+00E2 U+00E3 U+00E4 U+00E5 U+0101 U+0103 U+0105 U+01CE U+01DF U+01E1 U+01FB U+0201 U+0203 U+0227 U+1E01 U+1E9A U+1EA1 U+1EA3 U+1EA5 U+1EA7 U+1EA9 U+1EAB U+1EAD U+1EAF U+1EB1 U+1EB3 U+1EB5 U+1EB7 U+2C65 U+2090 U+1D43 U+0363</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>a à á â ã ä å ā ă ą ǎ ǟ ǡ ǻ ȁ ȃ ȧ ḁ ẚ ạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ ⱥ ₐ ᵃ ◌ͣ </span> | `ss11=0`
+Single-story | <span class='charis-R normal' style='font-feature-settings: "ss11" 1'>a à á â ã ä å ā ă ą ǎ ǟ ǡ ǻ ȁ ȃ ȧ ḁ ẚ ạ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ặ ⱥ ₐ ᵃ ◌ͣ </span> | `ss11=1`
+
+#### Literacy g (only)
+
+<span class='affects'>Affects: U+0067 U+011D U+011F U+0121 U+0123 U+01E7 U+01F5 U+01E5 U+1E21 U+A7A1 U+1D4D</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>g ĝ ğ ġ ģ ǧ ǵ ǥ ḡ ꞡ ᵍ </span> | `ss12=0`
+Single-story | <span class='charis-R normal' style='font-feature-settings: "ss12" 1'>g ĝ ğ ġ ģ ǧ ǵ ǥ ḡ ꞡ ᵍ </span> | `ss12=1`
+
+#### Barred-bowl forms
+
+<span class='affects'>Affects: U+0111 U+0180 U+01E5</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>đ ƀ ǥ</span> | `ss04=0`
+Barred-bowl | <span class='charis-R normal' style='font-feature-settings: "ss04" 1'>đ ƀ ǥ</span> | `ss04=1`
+
+#### Slant italic specials
+
+<span class='affects'>Affects: U+0061 U+00E3 U+00E0 U+00E1 U+00E2 U+00E4 U+00E5 U+0101 U+0103 U+01CE U+01DF U+01E1 U+01FB U+0201 U+0203 U+0227 U+1E01 U+1E9A U+1EA3 U+1EA5 U+1EA7 U+1EA9 U+1EAB U+1EAD U+1EAF U+1EB1 U+1EB3 U+1EB5 U+1EA1 U+1EB7 U+2C65 U+0250 U+00E6 U+0066 U+1E1F U+0069 U+00EC U+00ED U+00EE U+00EF U+0129 U+012B U+012D U+012F U+01D0 U+0209 U+020B U+1E2D U+1E2F U+1EC9 U+1ECB U+0131 U+006C U+013A U+1E37 U+1E39 U+1E3B U+1E3D U+0076 U+1E7D U+1E7F U+007A U+017A U+017C U+017E U+1E91 U+1E93 U+1E95 U+0493 U+04FB U+F327 U+A749 U+A75F U+2097</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-I normal'>a ã à á â ä å ā ă ǎ ǟ ǡ ǻ ȁ ȃ ȧ ḁ ẚ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ạ ặ ⱥ ɐ æ f ḟ i ì í î ï ĩ ī ĭ į ǐ ȉ ȋ ḭ ḯ ỉ ị ı l ĺ ḷ ḹ ḻ ḽ ꝉ ₗ v ṽ ṿ ꝟ z ź ż ž ẑ ẓ ẕ ғ ӻ  fi ffi</span> | `ss05=0`
+Slanted | <span class='charis-I normal' style='font-feature-settings: "ss05" 1'>a ã à á â ä å ā ă ǎ ǟ ǡ ǻ ȁ ȃ ȧ ḁ ẚ ả ấ ầ ẩ ẫ ậ ắ ằ ẳ ẵ ạ ặ ⱥ ɐ æ f ḟ i ì í î ï ĩ ī ĭ į ǐ ȉ ȋ ḭ ḯ ỉ ị ı l ĺ ḷ ḹ ḻ ḽ ꝉ ₗ v ṽ ṿ ꝟ z ź ż ž ẑ ẓ ẕ ғ ӻ  fi ffi</span> | `ss05=1`
+
+### Character alternates
+
+#### B hook
+
+<span class='affects'>Affects: U+0181</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ɓ</span> | `cv13=0`
+Lowercase-style | <span class='charis-R normal' style='font-feature-settings: "cv13" 1'>Ɓ</span> | `cv13=1`
+
+#### D hook
+
+<span class='affects'>Affects: U+018A</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ɗ</span> | `cv17=0`
+Lowercase-style | <span class='charis-R normal' style='font-feature-settings: "cv17" 1'>Ɗ</span> | `cv17=1`
+
+#### H stroke
+
+<span class='affects'>Affects: U+0126</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ħ</span> | `cv28=0`
+Vertical stroke | <span class='charis-R normal' style='font-feature-settings: "cv28" 1'>Ħ</span> | `cv28=1`
+
+#### J stroke hook
+
+<span class='affects'>Affects: U+0284</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ʄ</span> | `cv37=0`
+Top serif | <span class='charis-R normal' style='font-feature-settings: "cv37" 1'>ʄ</span> | `cv37=1`
+
+#### Eng
+
+<span class='affects'>Affects: U+014A</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ŋ</span> | `cv43=0`
+Lowercase style on baseline | <span class='charis-R normal' style='font-feature-settings: "cv43" 1'>Ŋ</span> | `cv43=1`
+Uppercase style with descender | <span class='charis-R normal' style='font-feature-settings: "cv43" 2'>Ŋ</span> | `cv43=2`
+Alt. lowercase style on baseline | <span class='charis-R normal' style='font-feature-settings: "cv43" 3'>Ŋ</span> | `cv43=3`
+
+#### N left hook
+
+<span class='affects'>Affects: U+019D</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ɲ</span> | `cv44=0`
+Lowercase-style | <span class='charis-R normal' style='font-feature-settings: "cv44" 1'>Ɲ</span> | `cv44=1`
+
+#### Open-O
+
+<span class='affects'>Affects: U+0186 U+0254 U+1D10 U+1D53 U+1D97</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ɔ ɔ ᴐ ᵓ ᶗ</span> | `cv46=0`
+Top serif | <span class='charis-R normal' style='font-feature-settings: "cv46" 1'>Ɔ ɔ ᴐ ᵓ ᶗ</span> | `cv46=1`
+
+#### OU
+
+<span class='affects'>Affects: U+0222 U+0223 U+1D3D U+1D15</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ȣ ȣ ᴕ ᴽ</span> | `cv47=0`
+Open | <span class='charis-R normal' style='font-feature-settings: "cv47" 1'>Ȣ ȣ ᴕ ᴽ</span> | `cv47=1`
+
+#### p hook
+
+<span class='affects'>Affects: U+01A5</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ƥ</span> | `cv49=0`
+Right hook | <span class='charis-R normal' style='font-feature-settings: "cv49" 1'>ƥ</span> | `cv49=1`
+
+#### R tail
+
+<span class='affects'>Affects: U+2C64</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ɽ</span> | `cv55=0`
+Lowercase-style | <span class='charis-R normal' style='font-feature-settings: "cv55" 1'>Ɽ</span> | `cv55=1`
+
+#### T hook
+
+<span class='affects'>Affects: U+01AC</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ƭ</span> | `cv57=0`
+Right hook | <span class='charis-R normal' style='font-feature-settings: "cv57" 1'>Ƭ</span> | `cv57=1`
+
+#### V hook
+
+<span class='affects'>Affects: U+01B2 U+028B U+1DB9</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ʋ ʋ ᶹ</span> | `cv62=0`
+Straight with low hook | <span class='charis-R normal' style='font-feature-settings: "cv62" 1'>Ʋ ʋ ᶹ</span> | `cv62=1`
+Straight with high hook | <span class='charis-R normal' style='font-feature-settings: "cv62" 2'>Ʋ ʋ ᶹ</span> | `cv62=2`
+
+#### Y hook
+
+<span class='affects'>Affects: U+01B3</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ƴ</span> | `cv68=0`
+Left hook | <span class='charis-R normal' style='font-feature-settings: "cv68" 1'>Ƴ</span> | `cv68=1`
+
+#### Ezh
+
+<span class='affects'>Affects: U+01B7 U+04E0</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ʒ Ӡ</span> | `cv20=0`
+Reversed sigma | <span class='charis-R normal' style='font-feature-settings: "cv20" 1'>Ʒ Ӡ</span> | `cv20=1`
+
+#### ezh curl
+
+<span class='affects'>Affects: U+0293</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ʓ</span> | `cv19=0`
+Large bowl | <span class='charis-R normal' style='font-feature-settings: "cv19" 1'>ʓ</span> | `cv19=1`
+
+#### rams horn
+
+<span class='affects'>Affects: U+0264</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ɤ</span> | `cv25=0`
+Large bowl | <span class='charis-R normal' style='font-feature-settings: "cv25" 1'>ɤ</span> | `cv25=1`
+Small gamma | <span class='charis-R normal' style='font-feature-settings: "cv25" 2'>ɤ</span> | `cv25=2`
+
+### Diacritic and symbol alternates
+
+#### Vietnamese-style diacritics
+
+<span class='affects'>Affects: U+1EA4 U+1EA5 U+1EA6 U+1EA7 U+1EA8 U+1EA9 U+1EAA U+1EAB U+1EAE U+1EAF U+1EB0 U+1EB1 U+1EB2 U+1EB3 U+1EB4 U+1EB5 U+1EBE U+1EBF U+1EC0 U+1EC1 U+1EC2 U+1EC3 U+1EC4 U+1EC5 U+1ED0 U+1ED1 U+1ED2 U+1ED3 U+1ED4 U+1ED5 U+1ED6 U+1ED7</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Ấấ Ầầ Ẩẩ Ẫẫ Ắắ Ằằ Ẳẳ Ẵẵ Ếế Ềề Ểể Ễễ Ốố Ồồ Ổổ Ỗỗ</span> | `cv75=0`
+Vietnamese-style | <span class='charis-R normal' style='font-feature-settings: "cv75" 1'>Ấấ Ầầ Ẩẩ Ẫẫ Ắắ Ằằ Ẳẳ Ẵẵ Ếế Ềề Ểể Ễễ Ốố Ồồ Ổổ Ỗỗ</span> | `cv75=1`
+
+#### Kayan diacritics
+
+<span class='affects'>Affects: U+0300 U+0301</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>◌̀́</span> | `cv79=0`
+Side by side | <span class='charis-R normal' style='font-feature-settings: "cv79" 1'>◌̀́</span> | `cv79=1`
+
+#### Ogonek
+
+<span class='affects'>Affects: U+0328 U+0104 U+0105 U+0118 U+0119 U+012E U+012F U+0172 U+0173 U+01EA U+01EB U+01EC U+01ED</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>anything with ◌̨ (Ąą Ęę Įį Ųų Ǫǫ Ǭǭ)</span> | `cv76=0`
+Straight | <span class='charis-R normal' style='font-feature-settings: "cv76" 1'>anything with ◌̨ (Ąą Ęę Įį Ųų Ǫǫ Ǭǭ)</span> | `cv76=1`
+
+#### Caron
+
+<span class='affects'>Affects: U+010F U+013D U+013E U+0165</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ď Ľ ľ ť</span> | `cv77=0`
+Global-style | <span class='charis-R normal' style='font-feature-settings: "cv77" 1'>ď Ľ ľ ť</span> | `cv77=1`
+
+#### Modifier apostrophe
+
+<span class='affects'>Affects: U+02BC U+A78B U+A78C</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ʼ Ꞌ ꞌ</span> | `cv70=0`
+Large | <span class='charis-R normal' style='font-feature-settings: "cv70" 1'>ʼ Ꞌ ꞌ</span> | `cv70=1`
+
+#### Modifier colon
+
+<span class='affects'>Affects: U+A789</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>꞉</span> | `cv71=0`
+Expanded | <span class='charis-R normal' style='font-feature-settings: "cv71" 1'>꞉</span> | `cv71=1`
+
+#### Empty set
+
+<span class='affects'>Affects: U+2205</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>∅</span> | `cv98=0`
+Zero-style | <span class='charis-R normal' style='font-feature-settings: "cv98" 1'>∅</span> | `cv98=1`
+
+### Cyrillic alternates
+
+*There are also Cyrillic characters affected by the “Ezh” and “Small capitals” features. Some languages may also use the “Modifier apostrophe”.*
+
+#### Cyrillic E
+
+<span class='affects'>Affects: U+042D U+044D</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>Э э</span> | `cv80=0`
+Mongolian-style | <span class='charis-R normal' style='font-feature-settings: "cv80" 1'>Э э</span> | `cv80=1`
+
+#### Cyrillic shha
+
+<span class='affects'>Affects: U+04BB</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>һ</span> | `cv81=0`
+Uppercase-style | <span class='charis-R normal' style='font-feature-settings: "cv81" 1'>һ</span> | `cv81=1`
+
+#### Cyrillic breve
+
+<span class='affects'>Affects: U+0306</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>anything with ◌̆ (Ә̆ә̆)</span> | `cv82=0`
+Cyrillic-style | <span class='charis-R normal' style='font-feature-settings: "cv82" 1'>anything with ◌̆ (Ә̆ә̆)</span> | `cv82=1`
+
+#### Serbian Cyrillic alternates
+
+*These alternate forms mainly affect italic styles. Unlike other features this is activated by tagging the span of text as being in the Serbian language, not by turning on an OpenType feature.*
+
+<span class='affects'>Affects: U+0431 U+0433 U+0434 U+043F U+0442</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-I normal'>б г д п т</span> |
+Serbian | <span class='charis-I normal' lang='sr'>б г д п т</span> | `lang='sr'`
+
+### Tone alternates
+
+#### Chinantec tones
+
+<span class='affects'>Affects: U+02CB U+02C8 U+02C9 U+02CA</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>ˋ ˈ ˉ ˊ</span> | `cv90=0`
+Chinantec-style | <span class='charis-R normal' style='font-feature-settings: "cv90" 1'>ˋ ˈ ˉ ˊ</span> | `cv90=1`
+
+#### Tone numbers
+
+<span class='affects'>Affects: U+02E5 U+02E6 U+02E7 U+02E8 U+02E9 U+A712 U+A713 U+A714 U+A715 U+A716</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>˥ ˦ ˧ ˨ ˩ ꜒ ꜓ ꜔ ꜕ ꜖</span> | `cv91=0`
+Numbers | <span class='charis-R normal' style='font-feature-settings: "cv91" 1'>˥ ˦ ˧ ˨ ˩ ꜒ ꜓ ꜔ ꜕ ꜖</span> | `cv91=1`
+
+#### Hide tone contour staves
+
+<span class='affects'>Affects: U+02E5 U+02E6 U+02E7 U+02E8 U+02E9 U+A712 U+A713 U+A714 U+A715 U+A716</span>
+
+Feature | Sample | Feature setting
+------- | --------------------------- | -------
+Standard | <span class='charis-R normal'>˥ ˦ ˧ ˨ ˩ ꜒ ꜓ ꜔ ꜕ ꜖ (˩˦˥˧˨ ꜖꜓꜒꜔꜕)</span> | `cv92=0`
+Hide staves | <span class='charis-R normal' style='font-feature-settings: "cv92" 1'>˥ ˦ ˧ ˨ ˩ ꜒ ꜓ ꜔ ꜕ ꜖ (˩˦˥˧˨ ꜖꜓꜒꜔꜕)</span> | `cv92=1`
+
+<!-- PRODUCT SITE ONLY
+[font id='charis' face='CharisSIL-Regular' italic='CharisSIL-Italic' bold='CharisSIL-Bold' bolditalic='CharisSIL-BoldItalic' size='150%']
+-->
diff --git a/fonts/charissil/doc/FONTLOG.txt b/fonts/charissil/doc/history.md
index db422ba4b3..498c1af163 100644
--- a/fonts/charissil/doc/FONTLOG.txt
+++ b/fonts/charissil/doc/history.md
@@ -1,106 +1,29 @@
-FONTLOG
-Charis SIL
-==========
-
-This file provides detailed information on the Charis SIL family of fonts.
-This information should be distributed along with the Charis SIL fonts and
-any derivative works.
-
-## About this project
-
-This project is intended to provide a free and open font family for all
-current languages and writing systems that use Latin and Cyrillic scripts.
-It supports almost the complete range of Unicode characters for these scripts,
-including a comprehensive range of diacritics and a large set of symbols
-useful for linguistics and literacy work. Smart font routines automatically
-adjust the position of diacritics to support and optimize arbitrary
-base+diacritic combinations.
-
-Charis SIL is optimized for readability in long printed documents. It is
-highly readable and holds up well in less-than-ideal reproduction environments
-due to its simple and robust design with strong serifs and clear features.
-
-## Note regarding Charter
-
-This Charis SIL font is essentially the same design as the SIL Charis font
-first released by SIL in 1997. The design of the basic character set of Charis
-IL is similar (but not identical) to Bitstream Charter, designed by Matthew
-Carter. The following notice accompanied the Charter fonts:
-
-> © Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
->
-> You are hereby granted permission under all Bitstream propriety rights to
-> use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
-> Charter® Type 1 outline fonts and the 4 Courier Type 1 outline fonts for
-> any purpose and without restriction; provided, that this notice is left
-> intact on all copies of such fonts and that Bitstream's trademark is
-> acknowledged as shown below on all unmodified copies of the 4 Charter Type
-> 1 fonts.
->
-> BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
-
-SIL International is the creator of the Charis SIL fonts, and is the owner
-of all proprietary rights therein.
-
-## A Note Regarding the Open Font License and TypeTuner
-
-The OFL prohibits the use of Reserved Font Names "Charis" and "SIL" in
-the name of any font that is derived from the Original Version of Charis
-SIL. However, SIL International (the Copyright Holder) grants through
-this separate written agreement the right to use the Reserved Font Names
-in any Modified Version of this font created by using TypeTuner as long
-as the feature information contained in the Original Version is used,
-unmodified, as the source for TypeTuner feature information, and
-"Charis SIL" is not the resulting font family name.
-
-TypeTuner-produced fonts created in this manner are still bound by the
-terms of the OFL. Specifically, the use of Reserved Font Names is
-prohibited when making derivatives of a TypeTuner-produced font. Anyone
-making a derivative of a TypeTuner font will need to find a different
-name. For example a TypeTuner-produced font may be named
-"Charis SIL Literacy SomeFarAwayPlace" but a derivative of that font made
-with other tools would not be allowed to use the "Charis" and "SIL"
-Reserved Font Names and would have to be named something like "Grace Foo".
-
-## ChangeLog
-
-(This should list both major and minor changes, most recent first.)
+---
+title: Charis SIL - Version History
+fontversion: 6.001
+---
### 2 July 2021 (SIL WSTech Team) Charis SIL version 6.001
-- Reverted font Postscript name to that used in v5 and earlier to avoid
-problems with unrecognized fonts when opening older documents.
+- Reverted font Postscript name to that used in v5 and earlier to avoid problems with unrecognized fonts when opening older documents.
### 29 Jun 2021 (SIL WSTech Team) Charis SIL version 6.000
-***Note that this is a major upgrade that may cause document reflow as
-some glyphs widths have changed and some features have been removed.***
+***Note that this is a major upgrade that may cause document reflow as some glyphs widths have changed and some features have been removed.***
#### Removed
-- **Removed DSIGs added in version 5.000.** These have now been removed
-to reflect current best practice font development guidance. Adobe InDesign
-will complain that fonts cannot be found if a document last saved with
-version 5.000 is opened with version 5.960 or later installed. It will be
-necessary to find/replace the fonts in the document using the command in
-the Type menu. Please also look over the document carefully to note any
-places where changes in the fonts have affected letterforms or spacing.
+- **Removed DSIGs added in version 5.000.** These have now been removed to reflect current best practice font development guidance. Adobe InDesign will complain that fonts cannot be found if a document last saved with version 5.000 is opened with version 5.960 or later installed. It will be necessary to find/replace the fonts in the document using the command in the Type menu. Please also look over the document carefully to note any places where changes in the fonts have affected letterforms or spacing.
-- **Graphite has been removed.** Application and OS support for OpenType
-has greatly improved, so the need for Graphite in this font family is
-greatly reduced. *If this affects you, and you find that OpenType does
-not provide sufficient support for your needs, please contact us right
-away.*
+- **Graphite has been removed.** Application and OS support for OpenType has greatly improved, so the need for Graphite in this font family is greatly reduced. *If this affects you, and you find that OpenType does not provide sufficient support for your needs, please contact us right away.*
-- Removed the "Show Invisibles" feature.
+- Removed the *Show Invisibles* feature.
-- Removed support for nine-level pitch contours. These will be replaced
-by a standalone pitch contours font in the future.
+- Removed support for nine-level pitch contours. These will be replaced by a standalone pitch contours font in the future.
#### Added
-Characters added to support Unicode versions 7.0-13.0, including feature
-support (e.g. small caps) where appropriate:
+Characters added to support Unicode versions 7.0-13.0, including feature support (e.g. small caps) where appropriate:
- U+03D1 GREEK THETA SYMBOL
- U+03F4 GREEK CAPITAL THETA SYMBOL
@@ -168,9 +91,7 @@ support (e.g. small caps) where appropriate:
#### Fixes
-- Width of typographic spaces have been made more consistent to reflect
-common publishing industry usage. Note that this may affect line and page
-lengths. Affected spaces:
+- Width of typographic spaces have been made more consistent to reflect common publishing industry usage. Note that this may affect line and page lengths. Affected spaces:
- U+2000 EN QUAD (made width consistent)
- U+2001 EM QUAD (made width consistent)
@@ -186,11 +107,9 @@ lengths. Affected spaces:
- Fixed miscellaneous distorted glyphs
-- Improved miscellaneous anchor positions, including the position of diacritics
-below glyphs with macrons below (e.g. U+1E0F LATIN SMALL LETTER D WITH LINE BELOW)
+- Improved miscellaneous anchor positions, including the position of diacritics below glyphs with macrons below (e.g. U+1E0F LATIN SMALL LETTER D WITH LINE BELOW)
-- Improved position of diacritics for superscripts and modifier letters
-(including cedilla, ogonek, rhotic hook)
+- Improved position of diacritics for superscripts and modifier letters (including cedilla, ogonek, rhotic hook)
- Fixes and improvements to various glyphs:
- U+0037 DIGIT SEVEN (spacing)
@@ -385,35 +304,3 @@ below glyphs with macrons below (e.g. U+1E0F LATIN SMALL LETTER D WITH LINE BELO
### 31 Jan 2006 (SIL NRSI team) Charis SIL version 4.0.02 (Version 4.002)
- First version released under the SIL Open Font License
-## Information for developers and contributors
-
-We welcome other developers who wish to get involved in supporting and
-enhancing these fonts or who want to modify them.
-
-SIL’s fonts are licensed according to the terms of the SIL Open Font License
-(https://scripts.sil.org/OFL). The OFL allows the fonts to be used, studied,
-modified and redistributed freely as long as they are not sold by themselves.
-For details see the OFL.txt and OFL-FAQ.txt files in the package.
-
-Full sources are included in this package. For information on the source
-formats or how the fonts are built see documentation/developer.html.
-
-## Acknowledgements
-
-(Here is where contributors can be acknowledged. If you make modifications
-be sure to add your name (N), email (E), web-address (W) and description
-(D). This list is sorted by last name in alphabetical order.)
-
-N: Walt Agee, Jon Coblentz, Sharon Correll, Lorna Evans, Victor Gaultney,
-Bob Hallissy, Martin Hosken, Jonathan Kew, Miriam Martin, Annie Olsen,
-Alan Ward
-E: https://software.sil.org/charis/about/contact/
-W: https://software.sil.org/charis/
-D: SIL designers and font engineers
-
-The Charis SIL project is maintained by SIL International, a global,
-faith-based nonprofit that works with local communities around the world
-to develop language solutions that expand possibilities for a better life.
-
-For more information or support please visit:
-https://software.sil.org/charis/
diff --git a/fonts/charissil/doc/index.md b/fonts/charissil/doc/index.md
new file mode 100644
index 0000000000..1054f666df
--- /dev/null
+++ b/fonts/charissil/doc/index.md
@@ -0,0 +1,22 @@
+---
+title: Charis SIL - Documentation
+fontversion: 6.001
+---
+
+Thank you for your interest in the Charis SIL fonts. This font family supports the broad variety of writing systems that use Latin and Cyrillic scripts. The design is optimized for high readability at a wide range of sizes and resolutions, making it ideal for new readers moving on from simple sans serif forms.
+
+This documentation is a set of HTML pages that can be viewed in any modern web browser. PDF versions of these pages are also provided. This content, plus download links and a contact form, are available from the [Charis SIL site](https://software.sil.org/charis/).
+
+- [About](about.md) — Information about this project and SIL International
+- [Resources](resources.md) — Help with installation and use
+- [FAQ](faq.md) — Common questions and answers
+- [Design](design.md) — History and background of the design
+- [Character set support](charset.md) — Details of Unicode characters that are supported
+- [Font features](features.md) — Using smart font features
+- [Support](support.md) — How to get additional support
+- [Developer information](developer.md) — How to modify and build the fonts
+- [Versions](versions.md) - Sources for alternate versions
+- [Version history](history.md) - Complete version history
+
+Additional information is also provided in other project files: [README.txt](../README.txt), [OFL.txt](../OFL.txt), [OFL-FAQ.txt](../OFL-FAQ.txt), and [FONTLOG.txt](../FONTLOG.txt).
+
diff --git a/fonts/charissil/doc/resources.md b/fonts/charissil/doc/resources.md
new file mode 100644
index 0000000000..5f3fefb67c
--- /dev/null
+++ b/fonts/charissil/doc/resources.md
@@ -0,0 +1,36 @@
+---
+title: Charis SIL - Resources
+fontversion: 6.001
+---
+
+## Requirements
+
+These fonts are supported by all major operating systems (macOS, Windows, Linux-based, iOS, and Android), however the extent of that support depends on the individual OS and application.
+
+## Installation
+
+Install the fonts by decompressing the .zip archive and installing the fonts using the standard font installation process for .ttf (TrueType/OpenType) fonts for your platform. For additional tips see the help page on [Font installation](https://software.sil.org/fonts/installation).
+
+## Keyboarding and character set support
+
+These fonts do not include keyboards or other software for entering text. To type the symbols in these fonts use the keyboarding systems provided in your OS or use a separate utility. SIL’s [Keyman](https://keyman.com/) provides keyboards for over 2000 languages and works on all major desktop and mobile platforms. For information on other keyboarding options see the overview at [Keyboard Systems Overview (ScriptSource)](https://scriptsource.org/entry/ytr8g8n6sw).
+
+See [Character set support](charset.md) for details of the Unicode characters supported by these fonts.
+
+## Rendering and application support
+
+These fonts will work normally like any other fonts in most applications. If the writing system requires special diacritic positioning the application/OS will need to support OpenType.
+
+These fonts also include extensive OpenType features for small caps, literacy forms, character alernates and language-specific preferences. For information on the specific features available in these fonts see [Font features](features.md).
+
+If special font features are to be activated the application will need to provide a way to turn on the feature or choose the feature setting. Details of current application support, and specific techniques for activating features, are on the [Using Font Features](http://software.sil.org/fonts/features) help page.
+
+Although the current fonts support only OpenType, previous versions provided support for Graphite and AAT (Apple Advanced Typography) technologies. Graphite was supported through version 5 and AAT was supported up to version 4. These older versions remain available from our [Previous Versions archive](http://software.sil.org/charis/download/previous-versions).
+
+## Web fonts
+
+Web font versions of these fonts (in WOFF and WOFF2 formats) are available in the `web` folder. These can be copied to a web server and used as fonts on web pages. A very basic HTML/CSS demo page is also included. For more information on the options and techniques available for using these fonts on web pages see [Using SIL Fonts on Web Pages](http://software.sil.org/fonts/webfonts).
+
+## Text conversion
+
+These fonts are encoded according to [The Unicode Standard](http://unicode.org). If you have text that uses a legacy, non-Unicode encoding there are tools that can help you convert that text for use with Unicode fonts. See [Introduction to Text Conversion and Transliteration](https://scriptsource.org/entry/xlzd6n5aqt).
diff --git a/fonts/charissil/doc/support.md b/fonts/charissil/doc/support.md
new file mode 100644
index 0000000000..eeccfbc8ab
--- /dev/null
+++ b/fonts/charissil/doc/support.md
@@ -0,0 +1,23 @@
+---
+title: Charis SIL - Support
+fontversion: 6.001
+---
+
+## Support options
+
+As these fonts are distributed at no cost, we are unable to provide a commercial level of personal technical support. We will, however, try to resolve problems that are reported to us.
+
+Before requesting technical support, please **carefully read all the documentation included with the fonts and linked pages on the web site**. The [Resources page](resources.md) is a good place to begin.
+
+## Language Software Community
+
+For person-to-person support visit the [SIL Language Software Community](https://community.software.sil.org/c/silfonts), where font developers and users can help each other. These support discussions can also help others in the future.
+
+## Reporting bugs and feature requests
+
+If you have a bug to report or a suggestion for how we could improve the fonts please create an issue in the [Github Charis SIL project](https://github.com/silnrsi/font-charis/issues) or contact us directly.
+
+## Contact form
+
+If the documentation and community fail to answer your question or need further help using the fonts, please contact us using [the form on the Charis SIL web site](https://software.sil.org/charis/about/contact/).
+
diff --git a/fonts/charissil/doc/versions.md b/fonts/charissil/doc/versions.md
new file mode 100644
index 0000000000..40aabda456
--- /dev/null
+++ b/fonts/charissil/doc/versions.md
@@ -0,0 +1,36 @@
+---
+title: Charis SIL - Versions and Changes
+fontversion: 6.001
+---
+
+## Announcement list
+
+If you would like stay informed of updates to Charis SIL and other SIL fonts, please subscribe to the [SIL Font News Announcement List](https://groups.google.com/a/groups.sil.org/forum/#!forum/sil-font-news). For more information see [About](about.md).
+
+Our font announcements are also available through Twitter [@silfonts](http://twitter.com/silfonts).
+
+## Current versions
+
+The latest version of the fonts is always available from the [Charis SIL download page](https://software.sil.org/charis/download/) as a .zip archive for all major platforms.
+
+This font package is also available in the [SIL software repository for Ubuntu](https://packages.sil.org/). Users can subscribe to this software repository and get current versions and updates automatically.
+
+Charis SIL is also available through the [TypeTuner Web](https://scripts.sil.org/ttw/fonts2go.cgi) service, which allows you to choose among the smart font features and download a font with those features preset. This enables them to work in many applications that do not make use of Graphite or OpenType Stylistic Sets. *TypeTuner Web currently uses version 5 fonts, however we will be working to update it to use the newest version 6 fonts soon.*
+
+## Version 5 subsets and modified variants
+
+Special versions of Charis SIL version 5 were created for specific uses. Those fonts still work and remain available:
+
+- [Font subsets](https://software.sil.org/lcgfonts/font-subsets/) are limited versions of the fonts that support only the characters needed for a particular area or use. Subsets are available for Africa, Americas, Asia/Pacific, Europe/Eurasia, Vietnam, Phonetic, Cyrillic (Basic) and Cyrillic Extended. With the exception of the Phonetic font, the font subsets are intended for orthographic use only. We have not put anything in the other subsets for phonetic, transliteration, or transcription use. For those purposes, use the Phonetic subset.
+
+- [Modified fonts](https://software.sil.org/lcgfonts/download/) are fonts that have been ‘tuned’ to turn on certain features by default. These are available for some regions and for literacy uses.
+
+We do not intend to update these fonts to version 6, however they should continue to work. **If you have a need for any of these fonts to be updated to version 6 please [contact us](https://software.sil.org/charis/about/contact/).**
+
+## Previous versions
+
+Previous versions remain available from our [Previous Versions archive](https://software.sil.org/charis/download/previous-versions).
+
+## Change history
+
+A detailed list of changes for each version of the fonts is on the [Version history page](history.md).
diff --git a/info/biblio/tugboat.bib b/info/biblio/tugboat.bib
index 14dfb9e4c6..7b97cbdff2 100644
--- a/info/biblio/tugboat.bib
+++ b/info/biblio/tugboat.bib
@@ -2,9 +2,9 @@
%%% ====================================================================
%%% BibTeX-file{
%%% author = "Nelson H. F. Beebe",
-%%% version = "4.04",
-%%% date = "13 August 2021",
-%%% time = "17:55:49 MDT",
+%%% version = "4.05",
+%%% date = "21 August 2021",
+%%% time = "11:49:35 MDT",
%%% filename = "tugboat.bib",
%%% address = "University of Utah
%%% Department of Mathematics, 110 LCB
@@ -14,7 +14,7 @@
%%% telephone = "+1 801 581 5254",
%%% FAX = "+1 801 581 4148",
%%% URL = "http://www.math.utah.edu/~beebe",
-%%% checksum = "62063 103733 351003 3736830",
+%%% checksum = "43815 103733 350998 3736828",
%%% email = "beebe at math.utah.edu, beebe at acm.org,
%%% beebe at computer.org (Internet)",
%%% codetable = "ISO/ASCII",
@@ -37,7 +37,7 @@
%%%
%%% https://tug.org/TUGboat/
%%%
-%%% At version 4.04, the COMPLETE year coverage
+%%% At version 4.05, the COMPLETE year coverage
%%% looked like this:
%%%
%%% 1980 ( 15) 1994 ( 131) 2008 ( 131)
@@ -55958,7 +55958,7 @@
fjournal = "TUGboat",
issue = "72",
journal-URL = "https://tug.org/TUGboat/",
- remark = "The status of TUGboat; Glitches in TUGboat 22 :1/2;
+ remark = "The status of TUGboat; Glitches in TUGboat 22:1/2;
Zapfest exhibition, honoring Hermann Zapf; Mordecai
Richler font; References for \TeX{} and Friends;
Institut d'Histoire du Livre; More historic books
@@ -68300,7 +68300,7 @@
issue = "88",
journal-URL = "https://tug.org/TUGboat/",
remark = "Introductory{\Dash}typography and TUGboat news.
- Erratum: TUGboat 27 :1 (EuroTeX proceedings); A new
+ Erratum: TUGboat 27:1 (EuroTeX proceedings); A new
Korean \TeX{} Society; \LaTeX{} goes to the movies;
Some TUGboat staff changes",
}
@@ -68324,7 +68324,7 @@
issue = "88",
journal-URL = "https://tug.org/TUGboat/",
remark = "Introductory{\Dash}typography and TUGboat news.
- Erratum: TUGboat 27 :1 (EuroTeX proceedings); A new
+ Erratum: TUGboat 27:1 (EuroTeX proceedings); A new
Korean \TeX{} Society; \LaTeX{} goes to the movies;
Some TUGboat staff changes",
}
@@ -82670,8 +82670,7 @@
remark = "Introductory{\Dash}typography and TUGboat news. New
printings of Computers \& Typesetting; Three
printing-related symposia; An open source font from
- Adobe: Source Sans Pro; Errata: TUGboat 33 :1 and 33
- :2",
+ Adobe: Source Sans Pro; Errata: TUGboat 33:1 and 33:2",
}
@Article{Kohm:TB33-3-241,
@@ -99133,7 +99132,8 @@
@Article{Menke:2019:PCD,
author = "Henri Menke",
- title = "Parsing complex data formats in {LuaTeX} with LPEG",
+ title = "Parsing complex data formats in {\LuaTeX} with
+ {LPEG}",
journal = j-TUGboat,
volume = "40",
number = "2",
diff --git a/info/biblio/tugboat.ltx b/info/biblio/tugboat.ltx
index 637bfe7ec5..047b00b44a 100644
--- a/info/biblio/tugboat.ltx
+++ b/info/biblio/tugboat.ltx
@@ -6,9 +6,9 @@
%%% ====================================================================
%%% @LaTeX-file{
%%% author = "Nelson H. F. Beebe",
-%%% version = "4.04",
-%%% date = "13 August 2021",
-%%% time = "17:55:54 MDT",
+%%% version = "4.05",
+%%% date = "21 August 2021",
+%%% time = "11:45:58 MDT",
%%% filename = "tugboat.ltx",
%%% address = "University of Utah
%%% Department of Mathematics, 110 LCB
@@ -18,7 +18,7 @@
%%% telephone = "+1 801 581 5254",
%%% FAX = "+1 801 585 1640, +1 801 581 4148",
%%% URL = "http://www.math.utah.edu/~beebe",
-%%% checksum = "16515 104 362 3579",
+%%% checksum = "52901 104 362 3579",
%%% email = "beebe@math.utah.edu, beebe@acm.org,
%%% beebe@computer.org (Internet)",
%%% codetable = "ISO/ASCII",
@@ -73,8 +73,8 @@
WWW URL: \protect\path=http://www.math.utah.edu/~beebe/=
}
-\date{13 August 2021 \\
-Version 4.04}
+\date{21 August 2021 \\
+Version 4.05}
\begin{document}
\nocite{*}
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 <heafnerj@gmail.com>
+% Copyright (C) 2021 by Paul J. Heafner <heafnerj@gmail.com>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the conditions of the
% LaTeX Project Public License, either version 1.3 of this license or (at
-% your option) any later version. The latest version of this license is in
+% 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
%</internal>
%
-%<*package>
-%%\ProvidesPackage{mandi}[2019/01/12 2.7.5 Macros for physics and astronomy]
-\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-%</package>
-%
-%<*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)
-%</vdemo>
-%
%<*internal>
\fi
\def\nameofplainTeX{plain}
@@ -81,63 +53,96 @@ while 1:
%
%<*driver>
\ProvidesFile{mandi.dtx}
-%</driver>
-%
-%<*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
%</driver>
% \fi
%
-% \newcommand*{\pkgname}[1]{\texttt{#1}}
-% \newcommand*{\mandi}{\pkgname{mandi}}
-% \newcommand*{\mi}{\textit{Matter \& Interactions}}
-% \hyphenation{Matter Interactions}
-% \newcommand*{\opt}[1]{\textsf{\textbf{#1}}}
-% \newcommand*{\baseunits}{\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,1389 +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
-%</example>
-%\fi
-%
-% \newpage
-% \section{Overleaf Users}
-% \href{https://www.overleaf.com}{Overleaf.com} is an online \LaTeX\ environment
-% with widespread use. It uses a full \TeX/\LaTeX\ installation but may not always
-% 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
-%</example>
-%\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.
-%
-% 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
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\Efieldofparticle
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\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{}{}{}{}
-\end{dispExample}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\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}
-%\iffalse
-%</example>
-%\fi
-%
-%\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}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\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
-%</example>
-%\fi
-%
-%\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
-%</example>
-%\fi
-%
-%\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}
-%\iffalse
-%</example>
-%\fi
-%
-%\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.
-\end{docCommand}
-\begin{dispExample}
-\electricinteractionplaces{}{}{}{}
-\end{dispExample}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\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}
-%\iffalse
-%</example>
-%\fi
-%
-%\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.
-\end{docCommand}
-\begin{dispExample}
-\electricpotentialenergyplaces{}{}{}
-\end{dispExample}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\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
-%</example>
-%\fi
-%
-% 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.
-%
-% \hypertarget{target5}{So} now how to you go about getting numerical values (with
-% units) into the placeholders? Use the \refCom{define} command to define a variable
-% containing a desired quantity, and then pass that variable to the above commands
-% and that quantity will appear in the corresponding placeholder.
-%
-%\iffalse
-%<*example>
-%\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}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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:
-%
-%\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}
-%\iffalse
-%</example>
-%\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.
-%
-% 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.
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{m}{}
- Command for \href{https://en.wikipedia.org/wiki/metre}{metre}, the SI unit of
- spatial displacement (length).
-\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{kg}{}
- Command for \href{https://en.wikipedia.org/wiki/kilogram}{kilogram}, the SI unit
- of mass.
-\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{s}{}
- Command for \href{https://en.wikipedia.org/wiki/second}{second}, the SI unit
- of temporal displacement (duration).
-\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{A}{}
- Command for \href{https://en.wikipedia.org/wiki/ampere}{ampere}, the SI unit
- of electric current.
-\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{K}{}
- Command for \href{https://en.wikipedia.org/wiki/kelvin}{kelvin}, the SI unit
- of thermodynamic temperature.
-\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{mol}{}
- Command for \href{https://en.wikipedia.org/wiki/mole}{mole}, the SI unit of
- amount.
-\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{cd}{}
- Command for \href{https://en.wikipedia.org/wiki/candela}{candela}, the SI
- unit of luminous intensity.
-\end{docCommand}
-%\iffalse
-%</example>
-%\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-displacement has dimension of \dimdisplacement
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{dimmass}{}
-Command for the symbol for the dimension of mass.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-mass has dimension of \dimmass
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{dimduration}{}
-Command for the symbol for the dimension of duration.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-duration has dimension of \dimduration
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
+% \section{Student/Instructor Quick Guide}
%
-%\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
-%</example>
-%\fi
+% 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{docCommand}{dimluminous}{}
-Command for the symbol for the dimension of luminous intensity.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-luminous has dimension of \dimluminous
+\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
%</example>
%\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
-%</example>
-%\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
+% 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{dispExample}
-\momentum{\mivector{3,2,-1}} \\
-\vectormomentum{3,2,-1}
+ \( \momentum{7.071} \) \\
+ \( \vectormomentum{3,-4,5} \) \\
+ \( \momentumvector{3,-4,5} \)
\end{dispExample}
%\iffalse
%</example>
%\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\displacement{5} \\
-\displacement{\mivector{3,2,-1}} \\
-\vectordisplacement{1,2,3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{mass}{\marg{magnitude}}
-Command for mass.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\mass{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{duration}{\marg{magnitude}}
-Command for duration.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\duration{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{current}{\marg{magnitude}}
-Command for current.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\current{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{temperature}{\marg{magnitude}}
-Command for temperature.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\temperature{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{amount}{\marg{magnitude}}
-Command for amount.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\amount{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{luminous}{\marg{magnitude}}
-Command for luminous intensity.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\luminous{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+% 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}{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.
-\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.
-\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\infeet{5} \\
-\infeetpersecond{5} \\
-\infeetpersecondsquared{32}
+\begin{dispExample*}{lefthand ratio=0.70}
+ \( \vacuumpermittivitymathsymbol = \vacuumpermittivity \)
\end{dispExample*}
%\iffalse
%</example>
%\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}{planeangle}{\marg{magnitude}}
-Command for plane angle in radians.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\planeangle{5}
+\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
%</example>
%\fi
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{solidangle}{\marg{magnitude}}
-Command for solidangle.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\solidangle{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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}{indegrees}{\marg{magnitude}}
-Command for plane angle in degrees.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\indegrees{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
+% \newpage
+% \section{The \mandi\ Package}\setplace{sec:mandipkg}
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{inarcminutes}{\marg{magnitude}}
-Command for plane angle in minutes of arc.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inarcminutes{5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
+% Load \mandi\ as you would any package in your preamble.
%
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{inarcseconds}{\marg{magnitude}}
-Command for plane angle in seconds of arc.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inarcseconds{5}
-\end{dispExample*}
+\begin{dispListing*}{sidebyside=false,listing only}
+ \usepackage[options]{mandi}
+\end{dispListing*}
%\iffalse
%</example>
%\fi
@@ -1545,1809 +351,881 @@ Command for plane angle in seconds of arc.
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{inFarenheit}{\marg{magnitude}}
-Command for temperature in degrees Farenheit.
+\begin{docCommand}{mandiversion}{}
+ Typesets the current version and build date.
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inFarenheit{68}
+\begin{dispExample*}{sidebyside=false}
+ The version is \mandiversion\ and is a stable build.
\end{dispExample*}
%\iffalse
%</example>
%\fi
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{inCelsius}{\marg{magnitude}}
-Command for temperature in degrees Celsius.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inCelsius{20}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
+% \subsection{Package Options}
%
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{ineV}{\marg{magnitude}}
-Command for energy in electron volts.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\ineV{10.2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{ineVocs}{\marg{magnitude}}
-Command for mass in \(\mathrm{eV}\per c^2\).
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\ineVocs{1.1}
-\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
%</example>
%\fi
%
+% \subsection{The \texttt{mandisetup} Command}
+%
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{ineVoc}{\marg{magnitude}}
-Command for momentum in \(\mathrm{eV}\per c\).
+\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*}{sidebyside}
-\ineVoc{3.6}
-\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
%</example>
%\fi
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{inMeV}{\marg{magnitude}}
-Command for energy in millions of electron volts.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inMeV{2.2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
+% \subsection{\lualatex\ is Required}
%
-%\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
-%</example>
-%\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.
%
-%\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
-%</example>
-%\fi
+% \newpage
+% \subsection{Physical Quantities}
+% \subsubsection{Typesetting Physical Quantities}\setplace{ssec:physquants}
%
-%\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
-%</example>
-%\fi
+% 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}{inGeVocs}{\marg{magnitude}}
-Command for mass in \(\mathrm{GeV}\per c^2\).
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inGeVocs{0.511}
+\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
%</example>
%\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
-%</example>
-%\fi
+% 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.
%
-%\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
-%</example>
-%\fi
+% \subsubsection{Checking Physical Quantities}
%
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{inAU}{\marg{magnitude}}
-Command for displacement in astronomical units.
+\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}
-\begin{dispExample*}{sidebyside}
-\inAU{5.2}
-\end{dispExample*}
%\iffalse
%</example>
%\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
-%</example>
-%\fi
+% \subsubsection{Predefined Physical Quantities}
%
-%\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
-%</example>
-%\fi
+% 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}{inpc}{\marg{magnitude}}
-Command for displacement in parsecs.
+\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}
-\begin{dispExample*}{sidebyside}
-\inpc{4.3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarL}{\marg{magnitude}}
-Command for luminosity in solar multiples.
+\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}
-\begin{dispExample*}{sidebyside}
-\insolarL{4.3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarT}{\marg{magnitude}}
-Command for temperature in solar multiples.
+\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}
-\begin{dispExample*}{sidebyside}
-\insolarT{2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarR}{\marg{magnitude}}
-Command for radius in solar multiples.
+\checkquantity{area}
+\begin{docCommand}{areachargedensity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\insolarR{4.3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarM}{\marg{magnitude}}
-Command for mass in solar multiples.
+\checkquantity{areachargedensity}
+\begin{docCommand}{areamassdensity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\insolarM{4.3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarF}{\marg{magnitude}}
-Command for flux in solar multiples.
+\checkquantity{areamassdensity}
+\begin{docCommand}{capacitance}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\insolarF{4.3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarf}{\marg{magnitude}}
-Command for apparent flux in solar multiples.
+\checkquantity{capacitance}
+\begin{docCommand}{charge}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\insolarf{4.3}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarMag}{\marg{magnitude}}
-Command for absolute magnitude in solar multiples.
+\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}
-\insolarMag{2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarmag}{\marg{magnitude}}
-Command for apparent magnitude in solar multiples.
+\checkquantity{conductance}
+\begin{docCommand}{conductivity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\insolarmag{2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{insolarD}{\marg{magnitude}}
-Command for distance in solar multiples.
+\checkquantity{conductivity}
+\begin{docCommand}{conventionalcurrent}{\marg{magnitude}}
\end{docCommand}
-\begin{docCommand}{insolard}{\marg{magnitude}}
-Identical to \refCom{insolarD} but uses \(d\).
+\checkquantity{conventionalcurrent}
+\begin{docCommand}{current}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\insolarD{2} \\
-\insolard{2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\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{docCommand}{vectordirection}{\marg{commadelimitedlistofcomps}}
-This is an alias for \refCom{direction}.
+\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}}
\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{velocityc}{\marg{magnitude or vector}}
-Command for velocity as a fraction of \(c\).
+\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{docCommand}{vectorvelocityc}{\marg{commadelimitedlistofcomps}}
-Command for vector velocity as a fraction of \(c\).
+\checkquantity{electricflux}
+\begin{docCommand}{electricpotential}{\marg{magnitude}}
\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{velocity}{\marg{magnitude or vector}}
-Command for velocity.
+\checkquantity{electricpotential}
+\begin{docCommand}[doc new = 2021-05-01]{electricpotentialdifference}{\marg{magnitude}}
\end{docCommand}
-\begin{docCommand}{vectorvelocity}{\marg{commadelimitedlistofcomps}}
-Command for vector velocity.
+\checkquantity{electricpotentialdifference}
+\begin{docCommand}{electroncurrent}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\velocity{2.34} \\
-\velocity{\mivector{3,2,-1}} \\
-\vectorvelocity{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{electroncurrent}
+\begin{docCommand}{emf}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\velocity{8.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{emf}
+\begin{docCommand}{energy}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\lorentzfactor{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{momentum}{\marg{magnitude or vector}}
-Command for momentum.
+\checkquantity{energy}
+\begin{docCommand}[doc new = 2021-04-15]{energyinev}{\marg{magnitude}}
\end{docCommand}
-\begin{docCommand}{vectormomentum}{\marg{commadelimitedlistofcomps}}
-Command for vector momentum.
+\checkquantity{energyinev}
+\begin{docCommand}[doc new = 2021-04-15]{energyinkev}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\momentum{2.34} \\
-\momentum{\mivector{3,2,-1}} \\
-\vectormomentum{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{acceleration}{\marg{magnitude or vector}}
-Command for acceleration.
+\checkquantity{energyinkev}
+\begin{docCommand}[doc new = 2021-04-15]{energyinmev}{\marg{magnitude}}
\end{docCommand}
-\begin{docCommand}{vectoracceleration}{\marg{commadelimitedlistofcomps}}
-Command for vector acceleration.
+\checkquantity{energyinmev}
+\begin{docCommand}{energydensity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\acceleration{2.34} \\
-\acceleration{\mivector{3,2,-1}} \\
-\vectoracceleration{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{gravitationalfield}{\marg{commadelimitedlistofcomps}}
-Command for gravitational field.
+\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{docCommand}{vectorgravitationalfield}{\marg{magnitude or vector}}
-Command for vector gravitational field.
+\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}
-\gravitationalfield{2.34} \\
-\gravitationalfield{\mivector{3,2,-1}} \\
-\vectorgravitationalfield{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\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}}
-Command for gravitational potential.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\gravitationalpotential{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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.
+\checkquantity{gravitationalpotential}
+\begin{docCommand}[doc new = 2021-05-01]{gravitationalpotentialdifference}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\force{2.34} \\
-\force{\mivector{3,2,-1}} \\
-\vectorforce{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{springstiffness}{\marg{magnitude}}
-Command for spring stiffness.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\springstiffness{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{springstretch}{\marg{magnitude}}
-Command for spring stretch.
+\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}
-\springstretch{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{area}{\marg{magnitude}}
-Command for area.
+\checkquantity{indexofrefraction}
+\begin{docCommand}{inductance}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\area{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{volume}{\marg{magnitude}}
-Command for volume.
+\checkquantity{inductance}
+\begin{docCommand}{linearchargedensity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\volume{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkquantity{linearchargedensity}
\begin{docCommand}{linearmassdensity}{\marg{magnitude}}
-Command for linear mass density.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\linearmassdensity{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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.
+\checkquantity{linearmassdensity}
+\begin{docCommand}[doc updated = 2021-05-02]{luminousintensity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\work{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{power}{\marg{magnitude}}
-Command for power.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\power{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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.
+\checkquantity{luminousintensity}
+\begin{docCommand}{magneticcharge}{\marg{magnitude}}
\end{docCommand}
-\begin{docCommand}{vectorangularimpulse}{\marg{commadelimitedlistofcomps}}
-Command for vector angular impulse.
+\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}
-\angularimpulse{2.34} \\
-\angularimpulse{\mivector{3,2,-1}} \\
-\vectorangularimpulse{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{magneticflux}
+\begin{docCommand}{mass}{\marg{magnitude}}
\end{docCommand}
-\begin{docCommand}{vectortorque}{\marg{commadelimitedlistofcomps}}
-Command for vector torque.
+\checkquantity{mass}
+\begin{docCommand}{mobility}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\torque{2.34} \\
-\torque{\mivector{3,2,-1}} \\
-\vectortorque{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkquantity{mobility}
\begin{docCommand}{momentofinertia}{\marg{magnitude}}
-Command for moment of inertia.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\momentofinertia{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{entropy}{\marg{magnitude}}
-Command for entropy.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\entropy{2.34}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{permittivity}{\marg{magnitude}}
-Command for permittivity.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\permittivity{9\timestento{-12}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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.
+\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}
-\electricdipolemoment{2\timestento{5}} \\
-\electricdipolemoment{\mivector{3,2,-1}} \\
-\vectorelectricdipolemoment{3,2,-1}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkquantity{numberdensity}
\begin{docCommand}{permeability}{\marg{magnitude}}
-Command for permeability.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\permeability{4\pi\timestento{-7}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{mobility}{\marg{magnitude}}
-Command for electron mobility.
+\checkquantity{permeability}
+\begin{docCommand}{permittivity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\areachargedensity{4.5\timestento{-3}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{numberdensity}{\marg{magnitude}}
-Command for electron number density.
+\checkquantity{permittivity}
+\begin{docCommand}{planeangle}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\numberdensity{2\timestento{18}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkquantity{planeangle}
\begin{docCommand}{polarizability}{\marg{magnitude}}
-Command for polarizability.
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\polarizability{1.96\timestento{-40}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{electricpotential}{\marg{magnitude}}
-Command for electric potential.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\electricpotential{1.5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{emf}{\marg{magnitude}}
-Command for emf.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\emf{1.5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{dielectricconstant}{\marg{magnitude}}
-Command for dielectric constant.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\dielectricconstant{1.5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{indexofrefraction}{\marg{magnitude}}
-Command for index of refraction.
+\checkquantity{polarizability}
+\begin{docCommand}{power}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\indexofrefraction{1.5}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{relativepermittivity}{\marg{magnitude}}
-Command for relative permittivity.
+\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}
-\relativepermittivity{0.9}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkquantity{pressure}
\begin{docCommand}{relativepermeability}{\marg{magnitude}}
-Command for relative permeability.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\relativepermeability{0.9}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{energydensity}{\marg{magnitude}}
-Command for energy density.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\energydensity{1.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{conventionalcurrent}{\marg{magnitude}}
-Command for conventional current.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\conventionalcurrent{0.003}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{electricflux}{\marg{magnitude}}
-Command for electric flux.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\electricflux{1.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{magneticflux}{\marg{magnitude}}
-Command for magnetic flux.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\magneticflux{1.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{capacitance}{\marg{magnitude}}
-Command for capacitance.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\capacitance{1.00}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{inductance}{\marg{magnitude}}
-Command for inductance.
+\checkquantity{relativepermeability}
+\begin{docCommand}{relativepermittivity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\inductance{1.00}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{conductivity}{\marg{magnitude}}
-Command for conductivity.
+\checkquantity{relativepermittivity}
+\begin{docCommand}{resistance}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\conductivity{1.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkquantity{resistance}
\begin{docCommand}{resistivity}{\marg{magnitude}}
-Command for resistivity.
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\resistivity{1.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{resistance}{\marg{magnitude}}
-Command for resistance.
+\checkquantity{resistivity}
+\begin{docCommand}{solidangle}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\resistance{1\timestento{6}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{conductance}{\marg{magnitude}}
-Command for conductance.
+\checkquantity{solidangle}
+\begin{docCommand}{specificheatcapacity}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\conductance{1\timestento{6}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{magneticcharge}{\marg{magnitude}}
-Command for magnetic charge, in case it actually exists.
+\checkquantity{specificheatcapacity}
+\begin{docCommand}{springstiffness}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\magneticcharge{1.25}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{springstiffness}
+\begin{docCommand}{springstretch}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\hereusebaseunit{\momentum{3}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{hereusedrvdunit}{\marg{magnitude}}
-Command for using derived units in place.
+\checkquantity{springstretch}
+\begin{docCommand}{stress}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\hereusedrvdunit{\momentum{3}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{hereusealtnunit}{\marg{magnitude}}
-Command for using alternate units in place.
+\checkquantity{stress}
+\begin{docCommand}{strain}{\marg{magnitude}}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\hereusealtnunit{\momentum{3}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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.
+\checkquantity{strain}
+\begin{docCommand}{temperature}{\marg{magnitude}}
\end{docCommand}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{perpusedrvdunit}{}
-Command for perpetually using derived units.
+\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}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{perpusealtnunit}{}
-Command for perpetually using alternate units.
+\checkquantity{volume}
+\begin{docCommand}{volumechargedensity}{\marg{magnitude}}
\end{docCommand}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{volumechargedensity}
+\begin{docCommand}{volumemassdensity}{\marg{magnitude}}
\end{docCommand}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{volumemassdensity}
+\begin{docCommand}{wavelength}{\marg{magnitude}}
\end{docCommand}
-%\iffalse
-%</example>
-%\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.
+\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}
-\( \frac{\emptyunit\squared}{\cubic\emptyunit} = \emptyunit^{-1} \)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkquantity{work}
+\begin{docCommand}{youngsmodulus}{\marg{magnitude}}
\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}
+\checkquantity{youngsmodulus}
%\iffalse
%</example>
%\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.
+% \subsubsection{Defining and Redefining Physical Quantities}
%
%\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}
+\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
%</example>
%\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}
+\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
%</example>
%\fi
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{oofpezcs}{}
-Alternate form of Coulomb constant.
-\end{docCommand}
-\begin{dispExample}
-\(\oofpezcsmathsymbol \approx \oofpezcs\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \subsubsection{Changing Units}\setplace{ssec:chgunits}
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{vacuumpermittivity}{}
-Vacuum permittivity.
-\end{docCommand}
-\begin{dispExample}
-\(\vacuumpermittivitymathsymbol \approx \vacuumpermittivity\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% 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}{mzofp}{}
-Biot-Savart constant.
-\end{docCommand}
-\begin{dispExample}
-\(\mzofpmathsymbol \approx \mzofp\)
-\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
%</example>
%\fi
@@ -3355,11 +1233,32 @@ Biot-Savart constant.
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{vacuumpermeability}{}
-Vacuum permeability.
-\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}
-\(\vacuumpermeabilitymathsymbol \approx \vacuumpermeability\)
+ \( \hereusebaseunits{\momentum{5}} \) \\
+ \( \hereusederivedunits{\momentum{5}} \) \\
+ \( \hereusealternateunits{\momentum{5}} \) \\
+ \( \hereusebaseunits{\oofpez} \) \\
+ \( \hereusederivedunits{\oofpez} \) \\
+ \( \hereusealternateunits{\oofpez} \)
\end{dispExample}
%\iffalse
%</example>
@@ -3368,3953 +1267,281 @@ Vacuum permeability.
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{boltzmann}{}
-Boltzmann constant.
-\end{docCommand}
+\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}
-\(\boltzmannmathsymbol \approx \boltzmann\)
+ \( \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
%</example>
%\fi
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{boltzmannineV}{}
-Alternate form of Boltlzmann constant.
-\end{docCommand}
-\begin{dispExample}
-\(\boltzmannineVmathsymbol \approx \boltzmannineV\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \subsection{Physical Constants}
+% \subsubsection{Typesetting Physical Constants}\setplace{ssec:physconsts}
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{stefan}{}
-Stefan-Boltzmann constant.
-\end{docCommand}
-\begin{dispExample}
-\(\stefanboltzmannmathsymbol \approx \stefanboltzmann\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% 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}{planck}{}
-Planck constant.
+\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}
-\(\planckmathsymbol \approx \planck\)
+ \( \oofpez \) \\
+ \( \oofpezapproximatevalue \) \\
+ \( \oofpezprecisevalue \) \\
+ \( \oofpezmathsymbol \) \\
+ \( \oofpezbaseunits \) \\
+ \( \oofpezderivedunits \) \\
+ \( \oofpezalternateunits \) \\
+ \( \oofpezonlybaseunits \) \\
+ \( \oofpezonlyderivedunits \) \\
+ \( \oofpezonlyalternateunits \)
\end{dispExample}
%\iffalse
%</example>
%\fi
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{planckineV}{}
-Alternate form of Planck constant.
-\end{docCommand}
-\begin{dispExample}
-\(\planckmathsymbol \approx \planckineV\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \subsubsection{Checking Physical Constants}
%
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{planckbar}{}
-Reduced Planck constant (Dirac constant).
+\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}
-\(\planckbarmathsymbol \approx \planckbar\)
-\end{dispExample}
%\iffalse
%</example>
%\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
-%</example>
-%\fi
+% \subsubsection{Predefined Physical Constants}
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{planckc}{}
-Planck constant times light speed.
-\end{docCommand}
-\begin{dispExample}
-\(\planckcmathsymbol \approx \planckc\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\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}{planckcineV}{}
-Alternate form of Planck constant times light speed.
+\begin{docCommand}[doc description = exact]{avogadro}{}
\end{docCommand}
-\begin{dispExample}
-\(\planckcineVmathsymbol \approx \planckcineV\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{rydberg}{}
-Rydberg constant.
+\checkconstant{avogadro}
+\begin{docCommand}[doc new = 2021-02-02]{biotsavartconstant}{}
\end{docCommand}
-\begin{dispExample}
-\(\rydbergmathsymbol \approx \rydberg\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
+\checkconstant{biotsavartconstant}
\begin{docCommand}{bohrradius}{}
-Bohr radius.
-\end{docCommand}
-\begin{dispExample}
-\(\bohrradiusmathsymbol \approx \bohrradius\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{finestructure}{}
-Fine structure constant.
-\end{docCommand}
-\begin{dispExample}
-\(\finestructuremathsymbol \approx \finestructure\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{avogadro}{}
-Avogadro constant.
-\end{docCommand}
-\begin{dispExample}
-\(\avogadromathsymbol \approx \avogadro\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{universalgrav}{}
-Universal gravitational constant.
-\end{docCommand}
-\begin{dispExample}
-\(\universalgravmathsymbol \approx \universalgrav\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{surfacegravfield}{}
-Earth's surface gravitational field strength.
-\end{docCommand}
-\begin{dispExample}
-\(\surfacegravfieldmathsymbol \approx \surfacegravfield\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{clight}{}
-Magnitude of light's velocity (photon constant).
-\end{docCommand}
-\begin{dispExample}
-\(\clightmathsymbol \approx \clight\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{Ratom}{}
-Approximate atomic radius.
-\end{docCommand}
-\begin{dispExample}
-\(\Ratommathsymbol \approx \Ratom\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{Mproton}{}
-Proton mass.
-\end{docCommand}
-\begin{dispExample}
-\(\Mprotonmathsymbol \approx \Mproton\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{Mneutron}{}
-Neutron mass.
-\end{docCommand}
-\begin{dispExample}
-\(\Mneutronmathsymbol \approx \Mneutron\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{Mhydrogen}{}
-Hydrogen atom mass.
-\end{docCommand}
-\begin{dispExample}
-\(\Mhydrogenmathsymbol \approx \Mhydrogen\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{Melectron}{}
-Electron mass.
-\end{docCommand}
-\begin{dispExample}
-\(\Melectronmathsymbol \approx \Melectron\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{echarge}{}
-Elementary charge quantum.
-\end{docCommand}
-\begin{dispExample}
-\(\echargemathsymbol \approx \echarge\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{MEarth}{}
-Earth's mass.
-\end{docCommand}
-\begin{dispExample}
-\(\MEarthmathsymbol \approx \MEarth\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{MMoon}{}
-Moon's mass.
-\end{docCommand}
-\begin{dispExample}
-\(\MMoonmathsymbol \approx \MMoon\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{MSun}{}
-Sun's mass.
-\end{docCommand}
-\begin{dispExample}
-\(\MSunmathsymbol \approx \MSun\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{REarth}{}
-Earth's radius.
-\end{docCommand}
-\begin{dispExample}
-\(\REarthmathsymbol \approx \REarth\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RMoon}{}
-Moon's radius.
-\end{docCommand}
-\begin{dispExample}
-\(\RMoonmathsymbol \approx \RMoon\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RSun}{}
-Sun's radius.
-\end{docCommand}
-\begin{dispExample}
-\(\RSunmathsymbol \approx \RSun\)
-\end{dispExample}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{TSun}{}
-Sun's effective temperature.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\TSunmathsymbol \approx \TSun\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{MagSun}{}
-Sun's absolute magnitude.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\MagSunmathsymbol \approx \MagSun\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{magSun}{}
-Sun's apparent magnitude.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\magSunmathsymbol \approx \magSun\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-% \subsubsection{Naming Conventions You Have Seen}
-% By now you probably understand that commands are named as closely as
-% possible to the way you would say or write what you want. Every time you
-% see |comp| you should think of a single component. Every time you see
-% |scomps| you should think of a set of symbolic components. Every time you
-% see |der| you should think derivative. Every time you see |dir| you should
-% think direction. I have tried to make the names simple both logically and
-% lexically.
-%
-% \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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-% \subsubsection{Basis Vectors and Bivectors}
-% If you use geometric algebra or tensors, eventually you will need
-% symbols for basis vectors and basis bivectors.
-%
-%\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}{}
+\checkconstant{bohrradius}
+\begin{docCommand}[doc description = exact]{boltzmann}{}
\end{docCommand}
-\begin{docCommand}{ethree}{}
+\checkconstant{boltzmann}
+\begin{docCommand}[doc new = 2021-02-02]{coulombconstant}{}
\end{docCommand}
-\begin{docCommand}{efour}{}
+\checkconstant{coulombconstant}
+\begin{docCommand}{earthmass}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\ezero, \eone, \etwo, \ethree, \efour
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{parallelto}{\marg{thing}}
-A better looking parallel symbol whose height is the same as the perpendicular
-symbol's height.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\vect{A}_{\parallelto\vect{B}}\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{perpendicularto}{\marg{thing}}
-An alias for the perpendicular symbol.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\(\vect{A}_{\perpendicularto\vect{B}}\)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{bra}{\marg{bra}}
-Typesets a Dirac bra.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\bra{\Psi^*} or \bra{\frac{1}{a}\Psi^*}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-% For line integrals, I have not employed the common \dx{\vect{\ell}} symbol.
-% Instead, I use \(\hat{t}\dx{\ell}\) for two main reason. The first is that
-% line integrals require the component of a vector that is tangent to a curve,
-% and I use \(\hat{t}\) to denote a unit tangent. The second is that the new
-% notation looks more like that for surface integrals.
-%
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{divergence}{}
-Gibbs' divergence operator.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\divergence
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{curl}{}
-Gibbs' curl operator.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\curl
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{taisvec}{}
-Tai's symbol for symbolic vector.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\taisvec
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{taidivg}{}
-Tai's symbol for divergence operator.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\taidivg
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{taicurl}{}
-Tai's symbol for curl operator.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\taicurl
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{laplacian}{}
-Laplacian operator.
+\checkconstant{earthmass}
+\begin{docCommand}{earthmoondistance}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\laplacian
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{dalembertian}{}
-D'Alembertian operator.
+\checkconstant{earthmoondistance}
+\begin{docCommand}{earthradius}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\dalembertian
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{seriesfofx}{}
-Series expansion of \(f(x)\) around \(x=a\).
+\checkconstant{earthradius}
+\begin{docCommand}{earthsundistance}{}
\end{docCommand}
-\begin{dispExample}
-\seriesfofx \\
-\seriesfofx[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{seriesexpx}{}
-Series expansion of \(e^x\).
+\checkconstant{earthsundistance}
+\begin{docCommand}{electroncharge}{}
\end{docCommand}
-\begin{dispExample}
-\seriesexpx \\
-\seriesexpx[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{seriessinx}{}
-Series expansion of \(\sin x\).
+\checkconstant{electroncharge}
+\begin{docCommand}{electronCharge}{}
\end{docCommand}
-\begin{dispExample}
-\seriessinx \\
-\seriessinx[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{seriescosx}{}
-Series expansion of \(\cos x\).
-\end{docCommand}
-\begin{dispExample}
-\seriescosx \\
-\seriescosx[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{seriestanx}{}
-Series expansion of \(\tan x\).
-\end{docCommand}
-\begin{dispExample}
-\seriestanx \\
-\seriestanx[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{seriesatox}{}
-Series expansion of \(a^x\).
+\checkconstant{electronCharge}
+\begin{docCommand}{electronmass}{}
\end{docCommand}
-\begin{dispExample}
-\seriesatox \\
-\seriesatox[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{serieslnoneplusx}{}
-Series expansion of \(\ln(1+x)\).
+\checkconstant{electronmass}
+\begin{docCommand}[doc description = exact]{elementarycharge}{}
\end{docCommand}
-\begin{dispExample}
-\serieslnoneplusx \\
-\serieslnoneplusx[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{binomialseries}{}
-Series expansion of \((1+x)^n\).
-\end{docCommand}
-\begin{dispExample}
-\binomialseries \\
-\binomialseries[z]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{diracdelta}{\marg{arg}}
-Dirac delta function.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\diracdelta{x}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{orderof}{\marg{arg}}
-Order of indicator.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\orderof{x^2}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{sgn}{\marg{arg}}
-Signum function.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\( \sgn \)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{dex}{}
-Decimal exponentiation function (used in astrophysics).
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\( \dex \)
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{newpi}{}
-Bob Palais' symbol for \(2\pi\).
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\newpi
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{Lagr}{}
-Command to get symbol for Lagrangian.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\Lagr
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{levicivita}{\marg{indices}}
-Command for Levi-Civita symbol.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\levicivita{ijk}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{kronecker}{\marg{indices}}
-Command for Kronecker delta symbol.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\kronecker{ij}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{fifthroot}{\marg{arg}}
-Command for fifth root of an argument.
+\checkconstant{elementarycharge}
+\begin{docCommand}{finestructure}{}
\end{docCommand}
-\begin{docCommand}{ffifthroot}{\marg{arg}}
-Command for fifth root of an argument as a fractional power.
+\checkconstant{finestructure}
+\begin{docCommand}{hydrogenmass}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\fifthroot{x} \\
-\ffifthroot{x}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{relgamma}{\marg{arg}}
-Expression for Lorentz factor.
+\checkconstant{hydrogenmass}
+\begin{docCommand}{moonearthdistance}{}
\end{docCommand}
-\begin{docCommand}{frelgamma}{\marg{arg}}
-Expression for Lorentz factor with a fractional power.
+\checkconstant{moonearthdistance}
+\begin{docCommand}{moonmass}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\begin{mysolution*}
- \gamma &= \relgamma{\magvect{v}} \\
- \gamma &= \frelgamma{\magvect{v}}
-\end{mysolution*}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkconstant{moonmass}
+\begin{docCommand}{moonradius}{}
\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.
+\checkconstant{moonradius}
+\begin{docCommand}{mzofp}{}
\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.
+\checkconstant{mzofp}
+\begin{docCommand}{neutronmass}{}
\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.
+\checkconstant{neutronmass}
+\begin{docCommand}{oofpez}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\oosqrtomxs{0.22} \\
-\oosqrtomx{0.22} \\
-\ooomx{0.22} \\
-\ooopx{0.11}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkconstant{oofpez}
+\begin{docCommand}{oofpezcs}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-5 \isequals 3
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
+\checkconstant{oofpezcs}
+\begin{docCommand}[doc description = exact]{planck}{}
\end{docCommand}
-\begin{docCommand}{pwordoperator}{\marg{firstline}\marg{secondline}}
-Like \refCom{wordoperator} but puts parentheses around the operator.
+\checkconstant{planck}
+\begin{docCommand}{planckbar}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\wordoperator{added}{to} \\
-\pwordoperator{added}{to}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{definedas}{}
-Operator representing a definition.
+\checkconstant{planckbar}
+\begin{docCommand}{planckc}{}
\end{docCommand}
-\begin{docCommand}{pdefinedas}{}
-Same as \refCom{definedas} but puts parentheses around the operator.
+\checkconstant{planckc}
+\begin{docCommand}{protoncharge}{}
\end{docCommand}
-\begin{docCommand}{earlierthan}{}
-Operator useful for comparing times and clock readings.
+\checkconstant{protoncharge}
+\begin{docCommand}{protonCharge}{}
\end{docCommand}
-\begin{docCommand}{pearlierthan}{}
-Same as \refCom{earlierthan} but puts parentheses around the operator.
+\checkconstant{protonCharge}
+\begin{docCommand}{protonmass}{}
\end{docCommand}
-\begin{docCommand}{laterthan}{}
-Operator useful for comparing times and clock readings.
+\checkconstant{protonmass}
+\begin{docCommand}{rydberg}{}
\end{docCommand}
-\begin{docCommand}{platerthan}{}
-Same as \refCom{laterthan} but puts parentheses around the operator.
+\checkconstant{rydberg}
+\begin{docCommand}[doc description = exact]{speedoflight}{}
\end{docCommand}
-\begin{docCommand}{adjustedby}{}
-Operator useful for comparing times and clock readings.
+\checkconstant{speedoflight}
+\begin{docCommand}{stefanboltzmann}{}
\end{docCommand}
-\begin{docCommand}{padjustedby}{}
-Same as \refCom{adjustedby} but puts parentheses around the operator.
+\checkconstant{stefanboltzmann}
+\begin{docCommand}{sunearthdistance}{}
\end{docCommand}
-\begin{docCommand}{forevery}{}
-Operator for conveying the idea of for every.
+\checkconstant{sunearthdistance}
+\begin{docCommand}{sunradius}{}
\end{docCommand}
-\begin{docCommand}{pforevery}{}
-Same as \refCom{forevery} but puts parentheses around the operator.
+\checkconstant{sunradius}
+\begin{docCommand}{surfacegravfield}{}
\end{docCommand}
-\begin{docCommand}{associated}{}
-Operator representing a conceptual association.
+\checkconstant{surfacegravfield}
+\begin{docCommand}{universalgrav}{}
\end{docCommand}
-\begin{docCommand}{passociated}{}
-Same as \refCom{associated} but puts parentheses around the operator.
+\checkconstant{universalgrav}
+\begin{docCommand}{vacuumpermeability}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\definedas \\
-\pdefinedas \\
-\earlierthan \\
-\pearlierthan \\
-\laterthan \\
-\platerthan \\
-\adjustedby \\
-\padjustedby \\
-\forevery \\
-\pforevery \\
-\associated \\
-\passociated
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{defines}{}
-Command for \emph{defines} or \emph{defined by} operator.
+\checkconstant{vacuumpermeability}
+\begin{docCommand}{vacuumpermittivity}{}
\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\vect{p} \defines \(\gamma m\)\vect{v}
-\end{dispExample*}
+\checkconstant{vacuumpermittivity}
%\iffalse
%</example>
%\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
-%</example>
-%\fi
+% \subsubsection{Defining and Redefining Physical Constants}
%
%\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*}
+\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
%</example>
%\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
-%</example>
-%\fi
+% \subsubsection{Changing Precision}
%
-%\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
-%</example>
-%\fi
+% \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{docCommand}{lrelatedto}{\marg{roperation}}
-Command for right-to-left relationship.
-\end{docCommand}
-\begin{dispExample}
-(flux ratio) \lrelatedto{exponentiation} (mag diff)
-\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
%</example>
%\fi
@@ -7322,3495 +1549,1327 @@ Command for right-to-left relationship.
%\iffalse
%<*example>
%\fi
-\begin{docCommand}{brelatedto}{\marg{leftoperation}\marg{roperation}}
-Command for bidirectional relationship.
-\end{docCommand}
+\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}
-(mag diff) \brelatedto{taking logarithm}{exponentiation}(flux ratio)
+ \( \hereuseapproximateconstants{\oofpez} \) \\
+ \( \hereusepreciseconstants{\oofpez} \)
\end{dispExample}
%\iffalse
%</example>
%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{gravitationalinteraction}{}
-Expression for gravitational interaction.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\gravitationalinteraction
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{electricinteraction}{}
-Expression for electric interaction.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\electricinteraction
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{springinteraction}{}
-Expression for spring interaction.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\springinteraction
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{ks}{}
-Symbol for spring stiffness.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\ks
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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
-%</example>
-%\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\begin{mysolution*}
- &\RHSmaxwellivintfree \\
- &\RHSmaxwellivintfree[S]
-\end{mysolution*}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\begin{mysolution*}
- &\maxwellivint \\
- &\maxwellivint[C][S]
-\end{mysolution*}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\begin{mysolution*}
- &\maxwellivinta \\
- &\maxwellivinta[C][S]
-\end{mysolution*}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\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.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\begin{mysolution*}
- &\maxwellivintfree \\
- &\maxwellivintfree[C][S]
-\end{mysolution*}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{LHSmaxwellidif}{}
-Left hand side of Maxwell's first equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \LHSmaxwellidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwellidif}{}
-Right hand side of Maxwell's first equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwellidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwellidiffree}{}
-Right hand side of Maxwell's first equation in differential form
-in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwellidiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwellidif}{}
-Maxwell's first equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwellidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwellidiffree}{}
-Maxwell's first equation in differential form in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwellidiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{LHSmaxwelliidif}{}
-Left hand side of Maxwell's second equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \LHSmaxwelliidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwelliidif}{}
-Right hand side of Maxwell's second equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwelliidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwelliidifm}{}
-Right hand side of Maxwell's second equation in differential
-form with magnetic monopoles.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwelliidifm \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwelliidiffree}{}
-Right hand side of Maxwell's second equation in differential
-form in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwelliidiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwelliidif}{}
-Maxwell's second equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwelliidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwelliidifm}{}
-Maxwell's second equation in differential form with magnetic
-monopoles.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwelliidifm \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwellidiiffree}{}
-Maxwell's second equation in differential form in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwelliidiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{LHSmaxwelliiidif}{}
-Left hand side of Maxwell's third equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \LHSmaxwelliiidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwelliiidif}{}
-Right hand side of Maxwell's third equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwelliiidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwelliiidifm}{}
-Right hand side of Maxwell's third equation in differential form
-with magnetic monopoles.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwelliiidifm \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwelliiidiffree}{}
-Right hand side of Maxwell's third equation in differential form
-in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwelliiidiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwelliiidif}{}
-Maxwell's third equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwelliiidif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwelliiidifm}{}
-Maxwell's third equation in differential form with magnetic
-monopoles.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwelliiidifm \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwelliiidiffree}{}
-Maxwell's third equation in differential form in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwelliiidiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{LHSmaxwellivdif}{}
-Left hand side of Maxwell's fourth equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \LHSmaxwellivdif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwellivdif}{}
-Right hand side of Maxwell's fourth equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwellivdif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSmaxwellivdiffree}{}
-Right hand side of Maxwell's fourth equation in differential form
-in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSmaxwellivdiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwellivdif}{}
-Maxwell's fourth equation in differential form.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwellivdif \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{maxwellivdiffree}{}
-Maxwell's fourth equation in differential form in free space.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \maxwellivdiffree \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{RHSlorentzforce}{}
-Right hand side of Lorentz force.
-\end{docCommand}
-\begin{dispExample*}{sidebyside, lefthand ratio=0.50}
-\[ \RHSlorentzforce \]
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-%
-%\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*}
-%\iffalse
-%</example>
-%\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.
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{vpythonline}{\marg{vpythoncode}}
-Command for a single line of VPython or GlowScript code used inline.
-\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}
-\vpythonline{from vpython import *}
+ \( \oofpez \) \\
+ \begin{useapproximateconstants}
+ \( \oofpez \) \\
+ \end{useapproximateconstants}
+ \begin{usepreciseconstants}
+ \( \oofpez \) \\
+ \end{usepreciseconstants}
+ \( \oofpez \)
\end{dispExample}
%\iffalse
%</example>
%\fi
%
-%\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{dispExample}
-\glowscriptline{xyplane = box(pos=vector(0,0,0),length=10,width=10,height=0.05)}
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \subsection{Predefined Units and Constructs}
%
-%\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{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}
-\end{dispExample}
-%\iffalse
-%</example>
-%\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}{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}.
-\end{docCommand}
+\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
+%</example>
+%\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}
-\vpythonfile{Program vdemo.py}{vlisting1}{vdemo.py}
+ \( \tento{-4} \) \\
+ \( 3\timestento{8} \) \\
+ \( 3\xtento{8} \)
\end{dispExample}
%\iffalse
%</example>
%\fi
%
-% \subsection{Boxes and Environments}
-%
%\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}{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}
-\emptyanswer[0.75][0.2]
+\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
%</example>
%\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
-%</example>
-%\fi
-%
-%\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
-%</example>
-%\fi
-%
-%\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.
-\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
-%</example>
-%\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.
-\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{answerbox}
- {\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}}
-Wrapper for \refCom{emptybox}.
-\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
-%</example>
-%\fi
-%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{adjanswerbox}
- {\oarg{txt}\oarg{bgclr}\oarg{frmclr}\oarg{txtclr}\oarg{wdth}\oarg{hght}}
-Wrapper for \refCom{adjemptybox}.
-\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
-%</example>
-%\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}.
-\end{docCommand}
-\begin{dispExample}
-\smallanswerbox[][red]
-\end{dispExample}
-%\iffalse
-%</example>
-%\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}.
-\end{docCommand}
-\begin{dispExample}
-\mediumanswerbox[][lightgray]
-\end{dispExample}
-%\iffalse
-%</example>
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\largeanswerbox[][lightgray]
-\end{dispListing}
-%\iffalse
-%</example>
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\largeranswerbox[][lightgray]
-\end{dispListing}
-%\iffalse
-%</example>
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\hugeanswerbox[][lightgray]
-\end{dispListing}
-%\iffalse
-%</example>
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\hugeranswerbox[][lightgray]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% \StopEventually{}
%
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\fullpageanswerbox[][lightgray]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% \newgeometry{left=0.50in,right=0.50in,top=1.00in,bottom=1.00in}
+% \subsection{\mandi\ Source Code}
%
-%\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.
-\end{docCommand}
-\begin{dispExample}
-\smallanswerform[a1][Type your response here.]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \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.
%
-%\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.
-\end{docCommand}
-\begin{dispExample}
-\mediumanswerform[a1][Type your response here.]
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \begin{macrocode}
+\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}
%
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\largeanswerform[a1][Type your response here.]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% Define a convenient package version command.
%
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\largeranswerform[a1][Type your response here.]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% \begin{macrocode}
+\newcommand*{\mandiversion}{v\mandi@version\space dated \mandi@date}
+% \end{macrocode}
%
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\hugeanswerform[a1][Type your response here.]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% Load third party packages, documenting why each one is needed.
%
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\hugeranswerform[a1][Type your response here.]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% \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}
%
-%\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).
-\end{docCommand}
-\begin{dispListing}
-\fullpageanswerform[a1][Type your response here.]
-\end{dispListing}
-%\iffalse
-%</example>
-%\fi
+% 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.
%
-%\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
-%</example>
-%\fi
+% Generic internal selectors.
%
-%\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
-%</example>
-%\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
-%</example>
-%\fi
+% \begin{macrocode}
+\newcommand*{\mandi@selectunits}{}
+\newcommand*{\mandi@selectprecision}{}
+% \end{macrocode}
%
-%\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
-%</example>
-%\fi
+% Specific internal selectors.
%
-%\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}
-%\iffalse
-%</example>
-%\fi
+% \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}
%
-%\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
-%</example>
-%\fi
+% Document level global switches.
%
-%\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}
-%\iffalse
-%</example>
-%\fi
+% \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}
%
-%\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}
-%\iffalse
-%</example>
-%\fi
+% Document level localized variants.
%
-%\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{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*}
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \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}
%
-%\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
-%</example>
-%\fi
+% Document level environments.
%
-%\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{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}
-\end{dispExample}
-%\iffalse
-%</example>
-%\fi
+% \begin{macrocode}
+\NewDocumentEnvironment{usebaseunits}{}{\alwaysusebaseunits}{}%
+\NewDocumentEnvironment{usederivedunits}{}{\alwaysusederivedunits}{}%
+\NewDocumentEnvironment{usealternateunits}{}{\alwaysusealternateunits}{}%
+\NewDocumentEnvironment{useapproximateconstants}{}{\alwaysuseapproximateconstants}{}%
+\NewDocumentEnvironment{usepreciseconstants}{}{\alwaysusepreciseconstants}{}%
+% \end{macrocode}
%
-% \newpage
-% \subsection{Miscellaneous Commands}
+% \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.
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{checkpoint}{}
-Centered checkpoint for student discussion.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\checkpoint
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
+% First, define the keys. The key handlers require certain commands defined
+% by the unit engine.
%
-%\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}
-%\iffalse
-%</example>
-%\fi
+% \begin{macrocode}
+\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}
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{sneakyone}{\marg{thing}}
-Shows argument as a sneaky one.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\sneakyone{\frac{\m}{\m}}
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
+% Process the options.
%
-%\iffalse
-%<*example>
-%\fi
-\begin{docCommand}{qed}{}
-Command for QED symbol.
-\end{docCommand}
-\begin{dispExample*}{sidebyside}
-\qed
-\end{dispExample*}
-%\iffalse
-%</example>
-%\fi
-% \StopEventually{}
+% \begin{macrocode}
+\ProcessPgfPackageOptions{/mandi/options}
+% \end{macrocode}
%
-% \newpage
-% \section{Source Code}
+% Write a banner to the console showing the options in use.
%
-% \iffalse
-%<*package>
-% \fi
-% Note the packages that must be present.
% \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
+\typeout{}%
+\typeout{mandi: You are using mandi \mandiversion.}%
+\typeout{mandi: This package requires LuaLaTeX.}%
+\typeout{mandi: Loadtime options...}
% \end{macrocode}
%
+% 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}
-\newcommand*{\mandiversion}{\ifmmode%
- 2.7.5\mbox{ dated }2019/01/12%
- \else%
- 2.7.5 dated 2019/01/12%
+\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{ }
-\typeout{mandi: You're using mandi version \mandiversion.}
+ \typeout{}%
+}%
+\mandi@do@setup
% \end{macrocode}
%
-% \noindent This block of code fixes a conflict with the amssymb package.
+% Define a setup command that overrides the loadtime options
+% when called with new options. A new banner is written to the console.
+%
% \begin{macrocode}
-\@ifpackageloaded{amssymb}{%
- \csundef{square}
- \typeout{mandi: Package amssymb detected. Its \protect\square\space
- has been redefined.}
-}{%
- \typeout{mandi: Package amssymb not detected.}
+\NewDocumentCommand{\mandisetup}{ m }{%
+ \IfValueT{#1}{%
+ \pgfqkeys{/mandi/options}{#1}
+ \typeout{}%
+ \typeout{mandi: mandisetup options...}
+ \mandi@do@setup
+ }%
}%
% \end{macrocode}
%
-% \noindent This block of code defines unit names and symbols.
-% \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}}
-% \end{macrocode}
+% 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.
%
-% \noindent Define a new named physics quantity or physical constant and
-% commands for selecting units. My thanks to Ulrich Diez for contributing
-% this code.
% \begin{macrocode}
-\newcommand*\mi@exchangeargs[2]{#2#1}%
-\newcommand*\mi@name{}%
-\long\def\mi@name#1#{\romannumeral0\mi@innername{#1}}%
-\newcommand*\mi@innername[2]{%
- \expandafter\mi@exchangeargs\expandafter{\csname#2\endcsname}{#1}}%
-\begingroup
-\@firstofone{%
- \endgroup
- \newcommand*\mi@forkifnull[3]{%
- \romannumeral\iffalse{\fi\expandafter\@secondoftwo\expandafter%
- {\expandafter{\string#1}\expandafter\@secondoftwo\string}%
- \expandafter\@firstoftwo\expandafter{\iffalse}\fi0 #3}{0 #2}}}%
-\newcommand*\selectbaseunit[3]{#1}
-\newcommand*\selectdrvdunit[3]{#2}
-\newcommand*\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}}}{}}%
+\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 This block of code processes the options.
% \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{ }
+\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 This is a utility command for picking constants. Do not use this
-% command manually.
-% \begin{macrocode}
-\ifthenelse{\boolean{@optapproxconsts}}
- {\newcommand*{\mi@p}[2]{#1}} % approximate value
- {\newcommand*{\mi@p}[2]{#2}} % precise value
-% \end{macrocode}
+% Redefining an existing scalar quantity.
%
-% \noindent SI base unit of length or spatial displacement
% \begin{macrocode}
-\newcommand*{\m}{\metre}
+\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 mass
-% \begin{macrocode}
-\newcommand*{\kg}{\kilogram}
-% \end{macrocode}
+% Defining a new vector quantity. Note that a corresponding scalar is also defined.
%
-% \noindent SI base unit of time or temporal displacement
% \begin{macrocode}
-\newcommand*{\s}{\second}
+\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 electric current
-% \begin{macrocode}
-\newcommand*{\A}{\ampere}
-% \end{macrocode}
+% Redefining an existing vector quantity. Note that a corresponding scalar is also redefined.
%
-% \noindent SI base unit of thermodynamic temperature
% \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}
+%
+% \refCom{mivector} is a workhorse command.
+% Orginal code provided by |@egreg|.\newline
+% See \url{https://tex.stackexchange.com/a/39054/218142}.
+%
%
-\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
+% \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
%</package>
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 <heafnerj@gmail.com>
-%% ---------------------------------------------------------------------------
-%% This work may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License, either version 1.3 of this license or (at
-%% your option) any later version. The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX version
-%% 2005/12/01 or later.
+%% Copyright (C) 2021 by Paul J. Heafner <heafnerj@gmail.com>
+%% ---------------------------------------------------------------------------
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3 of this license or (at
+%% your option) any later version. The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX version
+%% 2005/12/01 or later.
%%
-%% This work has the LPPL maintenance status `maintained'.
+%% 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 <heafnerj@gmail.com>
----------------------------------------------------------------------------
-This work may be distributed and/or modified under the conditions of the
-LaTeX Project Public License, either version 1.3 of this license or (at
-your option) any later version. The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX version
-2005/12/01 or later.
+ Copyright (C) 2021 by Paul J. Heafner <heafnerj@gmail.com>
+ ---------------------------------------------------------------------------
+ This work may be distributed and/or modified under the conditions of the
+ LaTeX Project Public License, either version 1.3 of this license or (at
+ your option) any later version. The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+ and version 1.3 or later is part of all distributions of LaTeX version
+ 2005/12/01 or later.
-This work has the LPPL maintenance status `maintained'.
+ 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
--- a/macros/latex/contrib/mandi/mandi.pdf
+++ b/macros/latex/contrib/mandi/mandi.pdf
Binary files 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 <heafnerj@gmail.com>
+% ---------------------------------------------------------------------------
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License, either version 1.3 of this license or (at
+% your option) any later version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX version
+% 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Paul J. Heafner.
+%
+% This work consists of the files mandi.dtx
+% 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>
+%
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%
+%<*internal>
+\usedir{tex/latex/mandi}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+%
+%<*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
+%</driver>
+% \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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</package>
+% \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 <heafnerj@gmail.com>
+% ---------------------------------------------------------------------------
+% This work may be distributed and/or modified under the conditions of the
+% LaTeX Project Public License, either version 1.3 of this license or (at
+% your option) any later version. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX version
+% 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Paul J. Heafner.
+%
+% This work consists of the files mandi.dtx
+% 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>
+%
+%<*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
+%</vdemo>
+%
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%
+%<*internal>
+\usedir{tex/latex/mandi}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+%
+%<*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
+%</driver>
+% \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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\fi
+%
+%\iffalse
+%<*example>
+%\fi
+\begin{docCommand}{changein}{}%
+ Semantic alias for |\Delta|.
+\end{docCommand}
+\begin{dispExample}
+ \( \changein t \) \\
+ \( \changein \vec{p} \)
+\end{dispExample}
+%\iffalse
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</example>
+%\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
+%</package>
+% \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
--- a/macros/latex/contrib/siunitx/siunitx-code.pdf
+++ b/macros/latex/contrib/siunitx/siunitx-code.pdf
Binary files 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
--- a/macros/latex/contrib/siunitx/siunitx.pdf
+++ b/macros/latex/contrib/siunitx/siunitx.pdf
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index fa30d2ee62..50e99bd5fd 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -133,6 +133,7 @@ $mirrors = {
'https://ctan.uib.no/' => 1,
},
'Poland' => {
+ 'https://ctan.gust.org.pl/tex-archive/' => 1,
'https://ctan.mirrors.tworzy.net/' => 1,
'https://repo.skni.umcs.pl/ctan/' => 1,
'https://sunsite.icm.edu.pl/pub/CTAN/' => 1,
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index ea94347bb4..418df9d0aa 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,11 +26,11 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2021
-depend revision/60289
+depend revision/60296
name 00texlive.image
category TLCore
-revision 60281
+revision 60294
shortdesc TeX Live files only in the source repository
longdesc The files here are not copied by the installer and containers
longdesc are not built for them; they exist only in the source
@@ -4448,7 +4448,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 60283
+revision 60291
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -52693,34 +52693,50 @@ catalogue-version 2.0.1
name charissil
category Package
-revision 60284
+revision 60294
shortdesc CharisSIL fonts with support for XeLaTeX or LuaLaTeX
relocated 1
longdesc This package provides the CharisSIL family of fonts adapted by
longdesc SIL International from Bitstream Charter in TrueType format,
longdesc with support for XeLaTeX or LuaLaTeX.
-containersize 1995500
-containerchecksum ec13084fc7d114312496cee63f53ecd802b8bb67228c2a36f0d7a61a4c175c4c6c1e7a1c7a13065f487b6a1779510e0fcdaa9da19ecd007955f4924494d3a813
-doccontainersize 9924
-doccontainerchecksum a402e11369b205051df19012498467c959f841e66b0f779d6c2246792fbbc41d7f3364d798307d524211c5b69eca389e8b7f49aec7c02c951c39a663e43d1bd0
-docfiles size=11
+containersize 902528
+containerchecksum 71c215dbbfc5d846ef00c9d4f40e22904dffb0b28587630527fddc7cf0cc40d4c68b7b913b8494a2fdb782e56048f5cc352ddc9b33ea2a2c9b7c3c97a4328507
+doccontainersize 433864
+doccontainerchecksum 74d9d178c12d85f91805d46bdd6fb07f1367a14ae75f00377b97455c904b1436b068abf3ae52a4d9c6e2e7886e2f2211f09a2733422c05eef4d71e7a8a925b38
+docfiles size=169
+ RELOC/doc/fonts/charissil/CharisSIL-samples.pdf details="Font samples"
RELOC/doc/fonts/charissil/CharisSIL-samples.tex
- RELOC/doc/fonts/charissil/CharisSILCompact-samples.tex
- RELOC/doc/fonts/charissil/FONTLOG.txt
RELOC/doc/fonts/charissil/OFL.txt
RELOC/doc/fonts/charissil/README details="Readme"
- RELOC/doc/fonts/charissil/README.TEXLIVE
-runfiles size=2176
+ RELOC/doc/fonts/charissil/about.md
+ RELOC/doc/fonts/charissil/about.pdf
+ RELOC/doc/fonts/charissil/announcement.md
+ RELOC/doc/fonts/charissil/charset.md
+ RELOC/doc/fonts/charissil/charset.pdf
+ RELOC/doc/fonts/charissil/design.md
+ RELOC/doc/fonts/charissil/design.pdf
+ RELOC/doc/fonts/charissil/developer.md
+ RELOC/doc/fonts/charissil/developer.pdf
+ RELOC/doc/fonts/charissil/faq.md
+ RELOC/doc/fonts/charissil/faq.pdf
+ RELOC/doc/fonts/charissil/features.md
+ RELOC/doc/fonts/charissil/features.pdf
+ RELOC/doc/fonts/charissil/history.md
+ RELOC/doc/fonts/charissil/history.pdf
+ RELOC/doc/fonts/charissil/index.md
+ RELOC/doc/fonts/charissil/index.pdf
+ RELOC/doc/fonts/charissil/resources.md
+ RELOC/doc/fonts/charissil/resources.pdf
+ RELOC/doc/fonts/charissil/support.md
+ RELOC/doc/fonts/charissil/support.pdf
+ RELOC/doc/fonts/charissil/versions.md
+ RELOC/doc/fonts/charissil/versions.pdf
+runfiles size=728
RELOC/fonts/truetype/SIL/charissil/CharisSIL-Bold.ttf
RELOC/fonts/truetype/SIL/charissil/CharisSIL-BoldItalic.ttf
RELOC/fonts/truetype/SIL/charissil/CharisSIL-Italic.ttf
RELOC/fonts/truetype/SIL/charissil/CharisSIL-Regular.ttf
- RELOC/fonts/truetype/SIL/charissil/CharisSILCompact-B.ttf
- RELOC/fonts/truetype/SIL/charissil/CharisSILCompact-BI.ttf
- RELOC/fonts/truetype/SIL/charissil/CharisSILCompact-I.ttf
- RELOC/fonts/truetype/SIL/charissil/CharisSILCompact-R.ttf
RELOC/tex/latex/charissil/CharisSIL.sty
- RELOC/tex/latex/charissil/CharisSILCompact.sty
catalogue-contact-home https://software.sil.org/charis/
catalogue-ctan /fonts/charissil
catalogue-license ofl lppl
@@ -275855,7 +275871,7 @@ catalogue-version 1.36
name siunitx
category Package
-revision 60258
+revision 60295
shortdesc A comprehensive (SI) units package
relocated 1
longdesc Typesetting values with units requires care to ensure that the
@@ -275880,17 +275896,17 @@ longdesc The package relies on LaTeX 3 support from the l3kernel and
longdesc l3packages bundles.
depend l3kernel
depend l3packages
-containersize 61936
-containerchecksum dc164e2483e2ffbbfac76590bbf1d3a3bffea5decd2cdaea850506a65c715d2f88dfd08fa86dcc33c1b9ea758297847d94027de067acd6c73b05e67a7a9a4a40
-doccontainersize 2029580
-doccontainerchecksum 5c52c52f145325effe9317d7e5090c81c50ecbc3b3f3b60dee2af60a4c1aee4a1448dbba2fddbdbc872c8c9c5cd6001069a0c0a58a772026505f12844b2e0718
-docfiles size=541
+containersize 62004
+containerchecksum 41a1a0dba7f27426ebe073a1da5659b1a1690facc8c49c8098f3abb4a277c890e425212d2f47116f2d635a12bb61886110242d75e1bc83f164477e1bafb812b2
+doccontainersize 2030320
+doccontainerchecksum aad7d9926a0014cd38357db24adddc2e63f37a93e85d0da735f7ebce49cd63e89d61a4a0acd5d44d96a426edb5b75733f29b986780f4a5dcc0413a79c6b172e9
+docfiles size=542
RELOC/doc/latex/siunitx/CHANGELOG.md
RELOC/doc/latex/siunitx/README.md details="Readme"
RELOC/doc/latex/siunitx/siunitx-code.pdf details="Code documentation"
RELOC/doc/latex/siunitx/siunitx.pdf details="User manual"
-srccontainersize 106664
-srccontainerchecksum 7c7155c72fd1764d71b3eaf89283f2749d6ec9e9c0bc772fcf68dc7835c846931b2b2305de6b15936e3f1d2a2c5fb1be3d2c16678400ea14181c69dda987308d
+srccontainersize 106824
+srccontainerchecksum cd03fdfa62bc702a3a3e7d7543f3919d67de3c5efb2a9d54b2fef7a796ef3f10f83b62580c5ee890541314cd08f8dd900fbbf3ba282b89ff7b623897ac37908a
srcfiles size=164
RELOC/source/latex/siunitx/siunitx-abbreviation.dtx
RELOC/source/latex/siunitx/siunitx-angle.dtx
@@ -275922,7 +275938,7 @@ catalogue-contact-repository https://github.com/josephwright/siunitx
catalogue-ctan /macros/latex/contrib/siunitx
catalogue-license lppl1.3c
catalogue-topics units scientific-docs expl3
-catalogue-version 3.0.25
+catalogue-version 3.0.26
name skak
category Package
@@ -301660,7 +301676,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 60283
+revision 60291
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -301668,10 +301684,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 108296
-containerchecksum 5521403a0febb576c3dd7aaa9d42b4065373b9c6083b6b241587336eee6e5fe0797b2703ab073839ece13b93e7b28a795184787464a2e751aabeb7e866554aa9
-doccontainersize 399648
-doccontainerchecksum 084e8fcdcdc9e1189d281f23c3535f3457d7a87885db9884563fc438949295757c461cc4ca82975b30e0ab09cc9b621b270d38842d0367dca2453bc892decb99
+containersize 108300
+containerchecksum 97b2569178e3a03e8b911d6776fb34ef2e92c5f41a27f9504c0aa9b832e08654ef75b099345d5f2b195bcccde883350c99a8009462f78b7258c14bddc1f2a757
+doccontainersize 399704
+doccontainerchecksum ec31953bfd8e0e033670f9e27aed9745898077f8ee9b84f5f08195740709a856d8efd0449f586f00d5f31eaf1924f6fdbab15ca577d0caab7e0de4bdb6ddee00
docfiles size=495
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 776235c659..9f6c43a37c 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-bb5dff707410f9d00f7fb821ec289e9a texlive.tlpdb
+9a6efdae5cf73c68c876a05cb132f917 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index 3ff6e110f2..2919416f45 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-3906971fce4da7edd1f1ba5c26a1ab3658f494d42f00b98e8118052db0e56015ac9c6d2f0b1c39d2e2fd4c302a163f8432ed238cdc645643270832f8ec7ede10 texlive.tlpdb
+a1141a2be06153f2635970ddca92c9664ce1ffb0a9c3917141a41f77e8212ae4086c1a8f678d8f8ec7845514794c96890f4771ed2968de087651da08bc35d5fe texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index cc68ac7fbc..3b85a4af2e 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJhIECWAAoJEEzhh34ZQ4xwSfgH/3Fl3VtK5fhftlwe9P6l+yf+
-bf4jyQLz3jIH+/LcZ5oQCzPfAZvtEAELf3VEBjWLDRNRkXAMtR4gkax515ZeqDCY
-142aDw2dQcCwfZ4BLQIFrNyLOnv2HdgWnqk9+4vvAO6NeKmXbDFgHpypz8id77+x
-9/HhZMTYQ0J7K5GSLZFCW2+4sA5DIeYp6nHYd+zAFY6rFby9PJCZNdgIv4GbhlmC
-wKNRZaQMYtdDe4DHDuY0w6woW9AIa9KKdW0PLhD1WV31+8VQqEUPhOe/0i5ulr7L
-MKiihddEjJJlnSZBpHgttTMSbjfEliOJaPjvy6A4WSR5GbLt4vcEK122b7pVHQc=
-=7tY8
+iQEcBAEBCgAGBQJhIZIxAAoJEEzhh34ZQ4xw4mgH/2bef3mtPLlv75qmHyt081/J
+qG5vUGM3/0Gq90Nw8Pe6C9ganTGeig91WIWevcyPwbxwRh/DI+G1z+1pbf3H9Jmd
+/UVobLI4GPdBGNFtHMHs91svfGIsaSIrW7UJC7Y3Kwq0uBwuNE8NU9JXU4qtQAQA
+OiBptLtwNkKtqA+9EFE8MtkeqFWwdJVEpvK2BOwoWgupZ8UZ0/cwtLneWU95qVT6
+2qWG836S+/dpXXM5Wp7s5K9U4i7P6UVUsUWcThM90+WkoJnM40iqehczguvmWVVR
+InieNu6IOaRT8XNzHz4q21Lkz04XLRIBX45MsLUYv9CNe85X8MxqOybeq4WfVGA=
+=Zqpc
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index d14a11d055..8e27188d0a 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 3798045294..43182ffe40 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1629490505
+date=1629576876
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=d865c77a3137df9761705768c678e7b1
+lstdigest=92c9fcb62d64c63ea659c384318cd11f
numpkg=4689
relstate=next
-version=7902
+version=7903
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: hG/M7hN0E/1uPibk/UkQDVwIlduypSvl/q4bwgoEc1a4mkpA5zva0+O+5gr+bkE8MLe/GWAFcmyKuDfQKr2+92dQ02fg3SAFBYxZaQf2kMGjQjJWGG4PFjDjWWQO8MXidq4ah7XXRBJaTjndxqvN763Bi1wiNfV0vqGVwdsIEA2E7K/Tbo9CkXtecdzGZW+iaG52Z4LyI0OGOjUaqWA9yXFmrNBg/hrxsE2iA8KHX5PwCyJttGn9DMEL7fyQHo5hURoSrbWZr5bSk4Et7wqRRYGCyy5r9zgjMLzt8oA4yYNkKR4oZQzvqPaB8AR21tZas/TDPhhU1sEWaH4j+CXbig==
+;;;; signature/miktex: QfvIeAp1zqjnJdj1a0oBENNjYfDErCuIk2pkSJXjIif2LJDfebAYHl5GR8084mW1cXp79G8syM+xLHCIR355xf04e2L4cluXaWMdTBAoDExfeNA2biTaZoW+kWoxvvqeEJf8SGHmLXAjV8cNW/00mPoIvpa+nnvnvnIKnsiOX0VP3e9JBxFD9X44naynJ6VnhAiNHzQ2UsHOPuS/v9Wn/ubiiwXlV4QYL8ZnFff4vvNOgOOsej33U+A/jd6zhErH6HU+51sP/NSRIfmSTjgvwgnAk3bbqEagpdIhDqMIFEC/NVaYYcBylfLko/NPpXZAhWWgbSuu6pyXNIX60QpURw==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index cfce07fc71..dab0cd04cf 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1629490301
+date=1629576693
lastupd=beamer-rl beamer-rl__doc beaulivre beaulivre__doc beaulivre__source bytefield bytefield__doc bytefield__source colorist colorist__doc colorist__source cryptocode cryptocode__doc cryptocode__source easybook easybook__doc easybook__source einfart einfart__doc einfart__source
-lstdigest=48a3f21518fb343aa469d179212a7fd3
+lstdigest=62045a965fdb539aac7a637db0cc2ab6
numpkg=4689
relstate=stable
-version=7902
+version=7903
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: EHv5MEwhSKgcn1bIqKFk2zjrQsSlXrZiSRsG15lB6sP3YXWH7UXzFPpj2r/S4UAJHAzVUSDAChlxddVrhHRKcf9X1s0CP8Q4XZFU/y+q1rQlX4Jxx9igKui5GzDK07FLWuHILfylHbbf7YyTp+qcEqgEj5jBDQwOYAEP52EyqsWDPGUT3G3hSLQacvtcGUF+xFDc+PflNdr9ptoVRHrPoJl3DBGmVSyxrDu6MHWPbNW4CPry2ikyzBkff8r5sn30996L6EyIsHOgEIsQF2SngcCFWFlp7dktXdfGenkoEMXcGlhpycanGzQ2N4otgadG5GUKiV4zmPuiMkYcEYtHEQ==
+;;;; signature/miktex: W6d6kUis3La01ZZAEsUHXc320qLL6zgTXFlY2C6fagIEiFlm1yKyHCNoYAK+ccaqvlM6S1MqvtSCBQ7jamAWy9pg+t0V6Cr0h+O4VfBWwbPq5wO5uarwG6icysRbE2fXGKECh7DU9sfBwGhjYW4o+lGejnQasYW2KIV5/d3a2Ct+lC80Xjna5SIcNbkKuhDbD7cp2+XOn5Z+Eblg5F4n2sYMN/Qnp0rI3T4lrdGviAlkfkGLzEzYe8DRPflZLRKLBerRl2edamBpSsWhlhLa0dLRq8cwSZye/D9fhiGKM7AT8I7xovyGqqaatGq7UOM7e67QUn5vN2wDjdGWdfkLMQ==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index 73d9021d69..1bcf075d9c 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2021-08-21-02-02
+2021-08-22-02-02