summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-01-28 03:01:26 +0000
committerNorbert Preining <norbert@preining.info>2020-01-28 03:01:26 +0000
commitfdd916a9e0d94bbf49f74c3b796e1bab88964d4c (patch)
tree606c1be4716998b353277312e85239fb2739d7c8 /macros/latex
parent685e467506870702d416d2317ce1d808e8f3fb60 (diff)
CTAN sync 202001280301
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdfbin440064 -> 437456 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdfbin443920 -> 441677 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdfbin438208 -> 435717 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx12
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdfbin533468 -> 532782 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdfbin443921 -> 441421 bytes
-rw-r--r--macros/latex/contrib/knowledge/README.md4
-rw-r--r--macros/latex/contrib/knowledge/knowledge-code.dtx44
-rw-r--r--macros/latex/contrib/knowledge/knowledge.pdfbin702619 -> 721136 bytes
-rw-r--r--macros/latex/contrib/knowledge/knowledge.tex173
-rw-r--r--macros/latex/contrib/media9/ChangeLog6
-rw-r--r--macros/latex/contrib/media9/doc/media9.pdfbin3735158 -> 3735214 bytes
-rw-r--r--macros/latex/contrib/media9/doc/media9.tex4
-rw-r--r--macros/latex/contrib/media9/media9.sty64
-rw-r--r--macros/latex/contrib/media9/pdfbase.sty16
-rw-r--r--macros/latex/contrib/physconst/CHANGELOG.md13
-rw-r--r--macros/latex/contrib/physconst/README.md80
-rw-r--r--macros/latex/contrib/physconst/makefile122
-rw-r--r--macros/latex/contrib/physconst/physconst.dtx6227
-rw-r--r--macros/latex/contrib/physconst/physconst.ins56
-rw-r--r--macros/latex/contrib/physconst/physconst.pdfbin135381 -> 135843 bytes
-rw-r--r--macros/latex/contrib/physconst/physconst.sty1235
-rw-r--r--macros/latex/contrib/physunits/CHANGELOG.md39
-rw-r--r--macros/latex/contrib/physunits/README.md81
-rw-r--r--macros/latex/contrib/physunits/makefile122
-rw-r--r--macros/latex/contrib/physunits/physunits.dtx1882
-rw-r--r--macros/latex/contrib/physunits/physunits.ins56
-rw-r--r--macros/latex/contrib/physunits/physunits.pdfbin0 -> 100908 bytes
29 files changed, 8860 insertions, 1378 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
index 09191692d9..ed2a550642 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/README.md
@@ -140,7 +140,7 @@ first two steps.
## Licence
-Copyright 2016–2019 Alex Ball.
+Copyright 2016–2020 Alex Ball.
This work consists of the documented LaTeX file oxref.dtx and a Makefile.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
index 9fe3522df5..3f59e63e6f 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxalph-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
index c96c75b863..bd6be94579 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnotes-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
index f03686a680..b9eb7e4649 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxnum-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
index 780f797327..5677b16828 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.dtx
@@ -1,6 +1,6 @@
% \iffalse
%<*internal|bbx|cbx|dbx|lbx|doc>
-\def\Version{2019/09/20 v2.0}
+\def\Version{2020/01/27 v2.0.1}
%</internal|bbx|cbx|dbx|lbx|doc>
%<*internal>
\iffalse
@@ -166,7 +166,7 @@ See: http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
-Copyright (C) 2016–2019 Alex Ball
+Copyright (C) 2016–2020 Alex Ball
\endpostamble
\usedir{tex/latex/\jobname}
@@ -842,7 +842,7 @@ first two steps.
## Licence
-Copyright 2016–2019 Alex Ball.
+Copyright 2016–2020 Alex Ball.
This work consists of the documented LaTeX file oxref.dtx and a Makefile.
@@ -14158,6 +14158,12 @@ reference,mvreference,inreference]{volume}{%
\DeclareDatamodelFields[type=field,datatype=literal]{datetype,origdatetype}
% \end{macrocode}
%
+% We add the |inaudio| entry type and friends.
+%
+% \begin{macrocode}
+\DeclareDatamodelEntrytypes{inaudio,inmusic,inmovie,invideo}
+% \end{macrocode}
+%
% The |authoraddon| and |editoraddon| fields are used for handling
% pseudonyms. The |serieseditor| field is used for the editor of a book series,
% as opposed to the editor of the particular cited work.
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
index c11d4bcf46..cd64e650b9 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
index 50b1d7d856..35e89356a7 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxyear-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/knowledge/README.md b/macros/latex/contrib/knowledge/README.md
index 81a9ddf7f8..398b3d74bf 100644
--- a/macros/latex/contrib/knowledge/README.md
+++ b/macros/latex/contrib/knowledge/README.md
@@ -3,8 +3,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.20
- date: 2019/12/03
+ version: v1.21
+ date: 2020/01/26
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://www.irif.fr/~colcombe/knowledge_en.html
diff --git a/macros/latex/contrib/knowledge/knowledge-code.dtx b/macros/latex/contrib/knowledge/knowledge-code.dtx
index d97ed2143a..92725e4d58 100644
--- a/macros/latex/contrib/knowledge/knowledge-code.dtx
+++ b/macros/latex/contrib/knowledge/knowledge-code.dtx
@@ -6,7 +6,7 @@
%
% meta-comment
%
-% Copyright (C) 2017-2019 by Thomas Colcombet
+% Copyright (C) 2017-2020 by Thomas Colcombet
% -----------------------------------
%
% This file may be distributed and/or modified under the
@@ -23,7 +23,7 @@
%
% \iffalse
%<head>\usepackage{expl3}
-%<head>\ProvidesExplPackage{knowledge}{2019/12/03}{1.20}{}
+%<head>\ProvidesExplPackage{knowledge}{2020/01/26}{1.21}{}
%<*driver>
\def\knowledgecode{active}
\input{knowledge.tex}
@@ -53,6 +53,7 @@
% \changes{1.18}{2019/10/03}{bug fix/improvement} %
% \changes{1.19}{2019/11/19}{bug fix} %
% \changes{1.20}{2019/12/03}{bug fix} %
+% \changes{1.21}{2020/01/26}{bug fix} %
% \GetFileInfo{knowledge.sty} %
% \DoNotIndex{}
%
@@ -72,8 +73,8 @@ This directory contains the package
name: knowledge
license: LaTeX Project Public License version 1.2 or above
- version: v1.20
- date: 2019/12/03
+ version: v1.21
+ date: 2020/01/26
author: Thomas Colcombet
mail: thomas.colcombet@irif.fr
web: https://www.irif.fr/~colcombe/knowledge_en.html
@@ -1291,8 +1292,8 @@ Content of the file knowledge-sources.zip:
\knowledge_scopetag_ensure:n{#1}
\bool_if:cTF{\knowledge_scopetag_tl[#1]_bool}
{}
- {\KAuxWriteX*{\exp_not:N\KAuxDeclaredScopeTag{#1}}
- \bool_gset_true:c{\knowledge_scopetag_tl[#1]_bool}}
+ {\bool_gset_true:c{\knowledge_scopetag_tl[#1]_bool}}
+ \KAuxWriteX*{\exp_not:N\KAuxDeclaredScopeTag{#1}}
}
% \end{macrocode}
% \AP The command \csintro{\knowledgescope} associates an "instance" to one or more "scopetags":
@@ -1321,22 +1322,22 @@ Content of the file knowledge-sources.zip:
\KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{patch~label}
\KnowledgeConfigureBooleanOption[\knowledge_configuration_label_autoscope_bool]{label~scope}
% \end{macrocode}
-% \noindent\AP\csintro{\knowledgelabel} implicitly adds a call to \cs{\knowledgescope} (if \cs{\knowledge_configuration_label_autoscope_bool} is set to true), and then calls the original \cs{\label} code.
+% One first changes the behavior of \cs\label\ in the preamble.
% \begin{macrocode}
-\NewDocumentCommand\knowledgelabel{m}{
- \kl_hide_begin:
- \bool_if:NTF
+\global\let\knowledge_label_before_loading_package:n\label
+\cs_gset:Npn\label{
+ \mode_if_preamble:TF
+ \knowledge_label_in_preamble:n
+ \knowledge_label_before_loading_package:n
+}
+\cs_new:Npn\knowledge_label_in_preamble:n{
+ \bool_if:NTF
\knowledge_configuration_label_autoscope_bool
\knowledge_knowledgescope_one:n
\use_none:n
- {#1}
- \kl_hide_end:
- \cs_if_exist:NTF\LaTeXlabel\LaTeXlabel\use_none:n{#1}
}
-\let\scopeLabel\knowledgelabel%for backward compatibility
-\let\label\knowledgelabel
% \end{macrocode}
-% \AP In order to cicumvent this overloading, the normal \cs{\label} command
+% \AP In order to circumvent this overloading, the normal \cs{\label} command
% can be used using \csintro{\knowledge_latex_label:n}:
% \begin{macrocode}
\cs_new:Npn\knowledge_latex_label:n{
@@ -1443,8 +1444,13 @@ Content of the file knowledge-sources.zip:
\scope_if_triggers_area:nTF{##1}
{\scope_area_pop:n{##1}}
{}}
- \kutils_secure_latex_command:N\label
- \let\label\knowledgelabel
+}
+\AtBeginDocument{
+ \kutils_secure_latex_command:N\label
+ \def\label#1{\bool_if:NT
+ \knowledge_configuration_label_autoscope_bool
+ {\knowledge_knowledgescope_one:n{#1}}
+ \LaTeXlabel{#1}}
}
% \end{macrocode}
%
@@ -1516,7 +1522,7 @@ Content of the file knowledge-sources.zip:
{\scope_area_pop:n{knowledge~import~internal}}
\NewDocumentEnvironment{knowledge~context}{m}
{\ScopeActivate\scope_area_push:n{knowledge~context~internal}
- \knowledgelabel{#1}}
+ \knowledgescope{#1}}
{\scope_area_pop:n{knowledge~context~internal}}
% \end{macrocode}
% \subsection{Files}
diff --git a/macros/latex/contrib/knowledge/knowledge.pdf b/macros/latex/contrib/knowledge/knowledge.pdf
index b2e551fbb9..f9d20e3e27 100644
--- a/macros/latex/contrib/knowledge/knowledge.pdf
+++ b/macros/latex/contrib/knowledge/knowledge.pdf
Binary files differ
diff --git a/macros/latex/contrib/knowledge/knowledge.tex b/macros/latex/contrib/knowledge/knowledge.tex
index d65b26a459..13b4240663 100644
--- a/macros/latex/contrib/knowledge/knowledge.tex
+++ b/macros/latex/contrib/knowledge/knowledge.tex
@@ -391,6 +391,7 @@
\knowledge{xparse}{package,url={https://www.ctan.org/pkg/xparse}}
\knowledge{amsmath}{package,url={https://www.ctan.org/pkg/amsmath}}
\knowledge{amssymb}{package,url={https://www.ctan.org/pkg/amssymb}}
+ \knowledge{mathcommand}{package,url={https://www.ctan.org/pkg/mathcommand}}
\end{scope}
@@ -599,11 +600,8 @@
\maketitle
\begin{abstract}\phantomintro(package){knowledge}%
-The "knowledge@@package" package offers automatic tools and commands
-for helping the writer of a (scientific) document to have all notions (hyper)linked
-to places where these are defined. Using the standard tools of \LaTeX{} for doing
-that would be extremely tedious.
-Eventually, it is intended to use the package for producing scientific semantic aware documents.
+The "knowledge@@package" package offers commands and notations for handling semantical notions in a (scientific) document.
+This allows to link the use of a notion to its definition, to add it to the index automatically, etc.
\end{abstract}
\ifcodeTF{\begin{quote}This version of the documentation includes a good part of the code. A casual user should \textit{a priori} not use this version of the documentation.\end{quote}}{}
@@ -636,8 +634,7 @@ This is essentially a list for personal referencing of what has to be done.
\begin{asparaitem}
\item deactivate quotation by default in the preamble in particular for avoiding clashes with commands such as \cs\DeclareMathDelimiter.
\item make knowledge compatible with beamer (request of Patrick Aiyao He), probably use hypertarget and hyperlink instead of hyperlabel and hyperref. Seems complicated because I do not know how to know if some material is going to be displayed, and this is necessary for a complete working solution.
-I have seen Till Tantau who explained me how to test whether a material is displayed. For this, one has to check that the material is displayed.
-This involves testing the counter |beamer@coveringdepth| which if higher than one when 'not displayed'.
+I have seen Till Tantau who explained me how to test whether a material is displayed. This involves testing the counter |beamer@coveringdepth| which if higher than one when 'not displayed'.
|beamer@slideinframe| could also be intersting.
\item make quotation work properly in the titles of section...,
\item allow to protect quotation in commands, and not only environments (for instance xymatrix)
@@ -739,8 +736,10 @@ This involves testing the counter |beamer@coveringdepth| which if higher than o
\item[2019-10-27] Bug correction and added the `\textbf{patch label}' configuration directive (thanks to \href{https://becca.ooo/}{Rebecca Turner}). V1.18.
\item[2019-11-19] Now the labels are evaluated before being written to the "kaux file" in a \cs\KAuxNewLinkScopetagInstance\ command (bug fix). V1.19.
\item[2019-11-29] Help added in the "diagnose file". \textbf{bar suggestion} (still working) renamed to "diagnose bar", and activated by default. \textbf{patch label} is renamed into "label scope".
-\item[2019-12-02] The "kaux file" is now checked for completeness befre being used. This should avoid errors when the previous compilation failed.
-\item[2019-12-03] Corrected bug in the scope access. V1.20
+\item[2019-12-02] The "kaux file" is now checked for completeness befor being used. This should avoid errors when the previous compilation failed.
+\item[2019-12-03] Corrected bug in the scope access. V1.20.
+\item[2020-01-25] Corrected bug when "knowledge@@package" is used without "hyperref@@package" (thanks to Rémi Nollet).
+\item[2020-01-25] Corrected bug that made the kaux file not stabilize (thanks to Rémi Nollet). V1.21 on CTAN.
\end{compactdesc}
\normalsize
%\restoregeometry
@@ -791,7 +790,7 @@ You may use other options like \kl(option){xcolor} for allowing debugging with c
\noindent or even better:
\begin{code}[8cm]
\cs\usepackage["hidelinks"]\{\kl(package){hyperref}\}\\
-\cs\usepackage[\kl(option){quotation}\footnote{If you want to use the \kl{"}$\cdots$\kl{"} notation.}]\{"knowledge@@package"\}
+\cs\usepackage[\kl(option){quotation}\footnote{If you want to use the \kl{"..."} notation.}]\{"knowledge@@package"\}
\end{code}
Then, in the preamble (or in an external file), one uses commands of the form:
@@ -804,8 +803,8 @@ which means an hyperreference to this address.
Finally in the body of the paper, the sole extra command \cs{\kl} (or the \kl"-symbol if the \kl(option){quotation} option is activated) is used,
with as parameter a text. This text is searched for, and the directives attached to it (here "url="),
-are used for formatting its printing\footnote{This resembles a lot a macro so far. It nevertheless differs in that: (a) if not defined, it does not make the compilation fail as a macro would, and thus does not interfere with the writing process, (b) any text can be used and not only alphabetic letters as in \TeX, (c) you do not have to care about the space after, and (d)
-in fact the machinery for resolving the meaning of a knowledge is much more powerful than simple macro execution.}.
+are used for formatting its printing\footnote{This resembles a lot a macro so far. It nevertheless differs in that: (a) if not defined, it does not make the compilation fail as a macro would, and thus does not interfere with the writing process, (b) any text can be used and not only alphabetic letters as in default \TeX, (c) you do not have to care about the space after, and (d)
+in fact the machinery for resolving the meaning of a knowledge is much more powerful than simple macro expansion.}.
Hence:
\marginpar{\begin{hint}
If the knowledge is not defined, this does not make the compilation fail.
@@ -914,10 +913,8 @@ makes it possible to use the notions in many contexts:
\begin{problem}
-I am writing a long scientific document with many notions tied together
-(typically, I have made all my best for clarifying but nevertheless
-it remains obscure,
-or it is a long survey involving many subfields, or a book, or a PhD thesis\footnote{Reviewers should appreciate...}).
+I am writing a scientific document with many different definitions, typically a journal article, a PhD thesis\footnote{Reviewers should appreciate...}, or a book.
+
I would like all the notions to be linked inside the document for being able
in one click, whenever something is used, to jump to its definition. I also want to easily write an index.
However, I do not want it to be a hassle when writing.
@@ -934,10 +931,10 @@ A solution is as follows. First load the "knowledge@@package" package in the pre
%
%
-Then write the document using \cs{\intro} (or \kl{""}$\cdots$\kl{""} if \kl(option){quotation} is activated) when a notion is defined/introduced, and
+Then write the document using \cs{\intro} (or \kl{""...""} if \kl(option){quotation} is activated) when a notion is defined/introduced, and
\marginpar{\begin{hint} Using an \cs{\AP} command is strongly advised,
and allows to control more precisely where the target of hyperreferences is: at the beginning of a paragraph is better than the beginning of the section several pages before...\end{hint}}
-\cs{\kl} (or \kl{"}$\cdots$\kl{"} if \kl(option){quotation} is activated) when it is used. For instance:
+\cs{\kl} (or \kl{"..."} if \kl(option){quotation} is activated) when it is used. For instance:
\begin{code}[12cm]
\cs\AP{}
A \cs\intro\{semigroup\} is an ordered pair \verb|$(S,\cdot)$| where \verb|$\cdot$| is an
@@ -998,7 +995,7 @@ with a neutral element~$1$.
\end{PDFoutput}
\knowledgeconfigure{visible anchor points=false}%
%
-Clicking on `semigroup' now jumps to the place it was introduced, and very precisely at the
+Clicking on `semigroup' now jumps to the place where it was introduced, and very precisely at the
location of the red corner depicting the presence of the \cs{\AP}-command.
If now one adds the option \kl{electronic} while loading the package, then the red corners disappear as well as the brownish undefined knowledges which become black. When using the option \kl{paper}, the links are still there, but all texts are in black.
@@ -1010,7 +1007,7 @@ So usually the lines added to the file look more like:
\cs\knowledge\{monoid\}[monoid\vbar Monoids]\{\kl{notion}\}
\end{code}
\noindent
-or, using the modre readable "`\vbar'-notation":
+or, using the more readable "`\vbar'-notation":
\begin{code}[10.7cm]
\cs\knowledge\{\kl{notion}\}\\
\indent~~~\klbn|~~semigroup\\
@@ -1040,6 +1037,9 @@ Then use it normally: putting \cs{\makeindex} in the preamble and \cs{\printinde
\indent~~~\vbar~~monoids\\
\indent~~~\vbar~~Monoids
\end{code}
+\noindent
+Now, the index (after running \texttt{makeidx}) contains all entries and references to the use of semigroups and monoids.
+
See Section~\ref{subsection:makeidx option} for more details on making an index.
%
%\subsection{Managing an index}
@@ -1141,7 +1141,7 @@ There are three ""writing modes"" usable when loading the package "knowledge@@pa
\begin{itemize}
\itemAP In ""paper"" mode, the paper is rendered as for printing: in particular, no informative colors are visible. Hyperlinks are nevertheless present.
\itemAP In ""electronic"" mode, the document has some colors witnessing the existence of the links for the reader to know that clicking is available.
-\itemAP In ""composition"" mode, the document has colors helping the writing: "undefined knowledges" appear explicitly, "anchor points" are displayed, and so on.
+\itemAP In ""composition"" mode (the default), the document has colors helping the writing: "undefined knowledges" appear explicitly, "anchor points" are displayed, and so on.
\end{itemize}
Activating the modes is obtained either at load time using one of:\\
\begin{tabular}[t]{ll}
@@ -1205,7 +1205,7 @@ In fact, the syntax when a package is loaded as an option of "knowledge@@package
\itemAP[\intro{active}] The package will be loaded, and all the capabilities that it triggers are activated.
This is the implicit meaning when nothing more is specified.
\item[\intro{inactive}] The package is not loaded, and no capabilities are activated (even if it had been loaded previously by another |\usepackage| command).
-\item[\intro{compatibility}] The package is not loaded. The directives it used do not cause any error, but have no effect.
+\item[\intro{compatibility}] The package is not loaded. The directives it uses do not cause any error, but have no effect.
\item[\intro{auto}] If the package was loaded before, then the associated capabilities are activated. This is the default behavior when the package is not named while loading.
\end{description}
Currently, the packages that can be loaded are:
@@ -1629,7 +1629,7 @@ For instance, one expects `\cs{\intro}*\cs{\kl}' to reduce to `\cs{\intro}'. For
\end{center}\AP
in which the ""stared sequence@@variant"" is of the form `\cs{variant1}*\cs{variant2}*\dots*\cs{variantk}'.
This sequence is declared to reduce to \cs{\variant}.
-For instance, \smallcode{\cs{\knowledgevariantmodifier}\{\cs\intro*\cs\kl\}\cs\intro} declares `\cs{\intro}*\cs{\kl}' to reduce to `\cs{\intro}'.
+For instance, \smallcode{\cs{\knowledgevariantmodifier}\{\cs{\intro*}\cs\kl\}\cs\intro} declares `\cs{\intro}*\cs{\kl}' to reduce to `\cs{\intro}'.
\subsubsection{Examples of \kl{variants of \cs{\kl}}}
@@ -1657,7 +1657,7 @@ and \cs{\csintro}.
~~~~"unknown style cont=@@variant" "intro unknown cont@@style",\par
~~~~"style directive=@@variant" "intro style@intro style="\par
\}\par
-\cs\knowledgevariantmodifier\{\cs\intro*\cs\kl\}\cs\intro
+\cs\knowledgevariantmodifier\{\cs{\intro*}\cs\kl\}\cs\intro
\end{code}
Note that \cs{\reintro} and \cs{\phantomintro} are defined using similar code.
@@ -1699,7 +1699,7 @@ following semantics:
~~~~"unknown style=@@variant"csintro unknown,\par
~~~~"unknown style cont=@@variant"csintro unknown,\par
\}\par
-\cs\knowledgevariantmodifier\{\cs\intro*\cs\cs\}\cs\csintro\par
+\cs\knowledgevariantmodifier\{\cs{\intro*}\cs\cs\}\cs\csintro\par
\cs\knowledgevariantmodifier\{\cs\csintro*\cs\cs\}\cs\csintro\par
\cs\knowledgevariantmodifier\{\cs\cs*\cs\kl\}\cs\cs\par
\cs\knowledgevariantmodifier\{\cs\csintro*\cs\kl\}\cs\csintro
@@ -2138,6 +2138,7 @@ hyperlink to this location.
than simply the \kl{autoref} directive. Its use it already configured. \end{hint}}
\phantomintro{""}
The \intro{autoref} \kl[\knowledge directives]{directive} is among the most useful offered by the "knowledge@@package" package.
+It is very often used indirectly through directives like "notion".
When set, the \kl{knowledge} should be used with both \csintro{\intro} (exactly once) --
or the \kl{""...""} and \kl{""...@...""} notations (and variants) if \kl(option){quotation} is active -- and \cs{\kl} (possibly several times) -- or the \kl{"..."} notation if \kl(option){quotation} is active. The use of \cs{\kl}
will hyperlink to the location of the \cs{\intro}. The syntax of \cs{\intro} is the same as
@@ -2356,9 +2357,115 @@ The following \kl[\knowledge directives]{directives} are to be used:
\subsection{Dealing with math}
\label{subsection:math}
-This part is under development.
+There are essentially two ways in which one would like to use "knowledge@@package" with mathematics:
+\begin{description}
+\item[Single introduction] Some mathematical objects are introduced once and for all in the paper. In this case, all the use of the object
+should point to the same introduction location.
+\item[Variables] The more advanced case is when one wants to track variables. For instance, a macro variable~\cs\x\ could have a different meaning in two distinct theorems. This case is more similar to variables in a programming language, that have a scope.
+Here the situation is slightly more complicated since a variable could be introduced in a theorem, and then used many pages later in a proof section for instance.
+\end{description}
+The first use is fairly easy. The second one requires a bit more care. We review them one after the other.
+
+\subsubsection{Defining macros for math}
+
+Defining macros is standard in \TeX, and it should be used systematically in writing scientific documents, in particular
+when using the "knowledge@@package" package.
+The standard way in \LaTeX\ for defining macros is to use \cs\newcommand. However, the resulting macro, if it has
+no optional parameters, is then expandable, and it is better to avoid it using instead \cs\newrobustcmd\ from the "etoolbox@@package"
+package (it has the same syntax).
+
+Another package "mathcommand@@package" has been designed to be used in conjunction with "knowledge@@package".
+We shall use it in the advanced examples below
+It allows:
+\begin{itemize}
+\item to define/redefine commands to be used in math mode only. This allows for instance to use the macro \cs\c\ for producing as usual a cedilla in text mode, and at the same time some variable $\mathbf c$ in math mode. This is achieved using for instance:
+ \smallcode{\cs\renewmathcommand\cs\c\{\cs\mathbf\{c\}\}}.
+\item When redefining a command, it automatically stores the original command \cs\macro\ as \cs\LaTeXmacro. So for instance, if one wants to introduce the constant~$\pi$ in a document and have it linked, one can use:
+ \begin{code}
+ \cs\renewmathcommand\cs\pi\{\cs\kl[\cs\pi]\{\cs\LaTeXpi\}\}\\
+ \cs\knowledge\cs\pi\{notion\}\\
+ {[...]}\\
+ \cs\AP\ Let \$\cs{\intro*}\cs\pi=3.1415\$.\\
+ {[...]}\\
+ Now \$\cs\pi\$ points to the above sentence.
+ \end{code}
+ This code works because a different name \cs\LaTeXpi\ stores the original macro. Using~\cs\pi\ instead would yield an infinite loop.
+\item The package also gives access to the exponents and indices as well as primes that follow a command (see the documentation).
+\item It also has some facilities for disabling \LaTeX\ commands and provide suggestions of replacement (useful for remembering the macros and working with colleagues).
+\end{itemize}
+
+\subsubsection{Mathematical objects that are singly introduced}
+
+In this case, this is essentially as in text mode.
+Four points have to be kept in mind:
+\begin{itemize}
+\item Do not use the "quotation notation" in math mode and in macros. Indeed,
+ some packages, like "tikzcd@@package" use the double-quote symbol in their
+ (math) syntax. In this context, quotes have to be deactivated, and hence macros
+ that would use the "quotation notation" would suddenly not have the expected result.
+\item Do not mix the "knowledge" concerning math commands and normal text. It is in practice
+ difficult to maintain.
+\item Use the control sequence of the macro itself as the "knowledge" name.
+ This does not cause problems and is easier to maintain.
+\item Use the \cs{\intro*} notation for introducing macros.
+\end{itemize}
+These four points are illustrated in the following code:
+\begin{code}
+\cs\newrobustcmd\cs\myFunction\{\cs\kl[\cs\myFunction]\{\cs\rho\}\}\\
+\cs\knowledge\cs\myFunction\{notion\}\\
+{[...]}\\
+\AP Let \$\cs{\intro*}\cs\myFunction(x)=[...]\$\\
+{[...]}\\
+Now, each use of \$\cs\myFunction\$ points to its introduction.
+\end{code}
+
+Two variation may be comfortable to use.
+
+\paragraph{Disabling commands}
+When writing a paper, in particular with coauthors, one may be tempted to not always use the macros designed for each case.
+For helping to remember the macro, one can use instead (using the "mathcommand@@package" package):
+\begin{code}
+\cs\disablecommand\cs\rho\\
+\cs\suggestcommand\cs\rho\{Use \cs\myFunction.\}\\
+\cs\newrobustcmd\cs\myFunction\{\cs\kl[\cs\myFunction]\{\cs\LaTeXrho\}\}\\
+\cs\knowledge\cs\myFunction\{notion\}\\
+{[...]}\\
+\AP Let \$\cs{\intro*}\cs\myFunction(x)=[...]\$\\
+{[...]}\\
+Now, each use of \$\cs\myFunction\$ points to its introduction.
+\end{code}
+\noindent The result is that if one uses \cs\rho\ in the code, an error will be issued, and \cs\myFunction\ be suggested as a replacement.
+Note that more than one suggestions can be attached to the macro (if several macros use the symbol~$\rho$). Note also
+that in the definition of \cs\myFunction, \cs\LaTeXrho\ is used instead of~\cs\rho. Indeed, \cs\rho\ has been deactivated,
+but~\cs\LaTeXrho\ gives access to its original meaning.
+
+\paragraph{Redefining the original \TeX\ macro}
+Another situation is that one would like to use the \cs\rho\ control sequence for accessing our function instead \cs\myFunction. Smply because this is more convenient and easy to remember.
+In this case, the "mathcommand@@package" package can also be of some help:
+\begin{code}
+\cs\renewmathcommand\cs\rho\{\cs\kl[\cs\rho]\{\cs\LaTeXrho\}\}\\
+\cs\knowledge\cs\rho\{notion\}\\
+{[...]}\\
+\AP Let \$\cs{\intro*}\cs\rho(x)=[...]\$\\
+{[...]}\\
+Now, each use of \$\cs\rho\$ points to its introduction.
+\end{code}
+\noindent
+The effect of \cs\renewmathcommand\ is that it sets~\cs\LaTeXrho\ to have the same effect as the original \cs\rho\ command,
+and then redefines~\cs\rho.
+
+\subsection{Context dependent variables}
+
+We enter now a more advanced situation. We want to track all the variables in a mathematic document...
+the first thing to do is to give access to the "knowledge@@package" package to the scope of the document.
+The easiest way to do that is to declare in the preamble what are the environments that we want to use.
+\begin{code}
+\cs\knowledgeconfigureenvironment\{theorem,lemma,proof\}\{\}\par\noindent
+\end{code}
\iffalse
+
+%\iffalse
The "knowledge@@package" package offers several tools for dealing with mathematics. It is mostly still experimental.
The essential goal is to be able to track the identity variables and to point each of them to its introduction.
For obtaining this, this requires:
@@ -2389,7 +2496,7 @@ I do not know to which extend it is compatible with various classes...
\smallcode{\cs\knowledgeconfigure\{\kl(option){notion}\}}
\end{center}\noindent
\AP It automatically configures a \kl[\knowledge directives]{directive} \intro{notion}
-which is an \kl{autoref} displayed properly:
+which is an \kl{autoref} configured to be displayed in a configurable way:
\begin{itemize}
\item In \kl{paper mode}, the \cs{\intro} commands (not in math mode) are emphasized, while the \cs{\kl} commands are displayed as normal. It has the aspect of a normal paper.
\item In "electronic mode" and \kl{composition mode} (with the "xcolor@@package" package), notions are furthermore typeset in blue when introduced, and in dark blue when used. Without the \kl(package){xcolor} package, underlining draw the attention to the knowledges (not in math mode).
@@ -2454,7 +2561,7 @@ The notation \kl{"..."} does not have this issue.
\cs\end\{document\}
\end{code}\end{center}\noindent
will result in that both \kl{knowledges} are considered unknown in the table of contents.
-For the first one, this is due to the expansion of~$\texttt{\robustdisplay\Ltwo}$. For the second, this is due to an implicit translation of the accentuated letter into an internal sequence of commands (for instance `\'e' is translated into the internal sequence `\verb|\IeC {\'e}|'). Some solutions are as follows:
+For the first one, this is due to the expansion of~\cs\Ltwo. For the second, this is due to an implicit translation of the accentuated letter into an internal sequence of commands (for instance `\'e' is translated into the internal sequence `\verb|\IeC {\'e}|'). Some solutions are as follows:
\begin{itemize}
\item Make the macros non-expandable, for instance using \cs{\newrobustcmd} (of the \kl(package){etoolbox} package) or \cs{\NewDocumentCommand} (of the \kl(package){xparse} package, with a different handling of arguments) instead of \cs{\newcommand}. Hence:
\begin{code}
@@ -2500,7 +2607,7 @@ Do not use \cs{\intro} in titles, but rather \cs{\reintro}. If you want the sect
\label{section:tikzcd}
The package "tikzcd@@package" uses (heavily) the quotes. Thus, it conflicts with the "quotation notation".
-Some other packages may do the same. For solving this issue, the only thingd to do are:
+Some other packages may do the same. For solving this issue, the only things to do are:
\begin{itemize}
\item be sure to load these packages before "knowledge@@package", or at least be sure that the "quotation notation" is not
active when you do so, and
@@ -2536,7 +2643,7 @@ the incriminated environment using \cs\phantomsection, and then use \cs{\reintro
does not work&&works\\
\begin{code}[5cm]
\cs\begin\{\kl{align*}\}\\
- \cs\intro*\texttt{\robustdisplay{\SomeCommand}}\\
+ \cs{\intro*}\texttt{\robustdisplay{\SomeCommand}}\\
\cs\end\{\kl{align*}\}\\
\end{code}
&&
@@ -2578,7 +2685,11 @@ This is an annoying feature of the "hyperref@@package" package to surround all l
\cs\usepackage{["hidelinks"]}\{"hyperref@@package"\}\par\noindent
\cs\usepackage\{\kl(package){knowledge}\}\par\noindent
\end{code}
-
+If the package "hyperref@@package" is loaded indirectly (maybe by the class), then the "hidelinks" option can be activated
+at any moment, as soon as "hyperref@@package" is loaded, using \cs\hypersetup:
+\begin{code}[9cm]
+\cs\hypersetup\{"hidelinks"\}
+\end{code}
\subsection{Problems with scope}
\subsubsection{Problems in combination with \cs{\bibitem} and "thebibliography@@env"}
diff --git a/macros/latex/contrib/media9/ChangeLog b/macros/latex/contrib/media9/ChangeLog
index e82b6ab017..e69d741450 100644
--- a/macros/latex/contrib/media9/ChangeLog
+++ b/macros/latex/contrib/media9/ChangeLog
@@ -1,3 +1,9 @@
+2020-01-27
+ * v1.05 : media9.sty
+ * v0.36 : pdfbase.sty
+ * fix : dependency on pdftexcmds.sty removed; deprecated l3 functions
+ replaced
+
2019-11-04
* v1.04 : media9.sty
* v0.35 : pdfbase.sty
diff --git a/macros/latex/contrib/media9/doc/media9.pdf b/macros/latex/contrib/media9/doc/media9.pdf
index 691819ce4b..982d811758 100644
--- a/macros/latex/contrib/media9/doc/media9.pdf
+++ b/macros/latex/contrib/media9/doc/media9.pdf
Binary files differ
diff --git a/macros/latex/contrib/media9/doc/media9.tex b/macros/latex/contrib/media9/doc/media9.tex
index 715faca371..202fc0bd58 100644
--- a/macros/latex/contrib/media9/doc/media9.tex
+++ b/macros/latex/contrib/media9/doc/media9.tex
@@ -17,7 +17,7 @@
\usepackage{fancyvrb}
\usepackage{float}
\usepackage{amssymb}
-\usepackage[UKenglish]{babel}
+\usepackage[main=UKenglish,nil]{babel}
\usepackage{graphicx}
\usepackage{color}
\usepackage[T1]{fontenc}
@@ -90,7 +90,7 @@
\begin{abstract}\noindent
A \LaTeX{} package for embedding interactive Adobe Flash (SWF) and 3D files (Adobe U3D \& PRC) as well as video and sound files or streams (FLV, MP4/H.246, MP3) into PDF documents with Adobe Reader-9/X compatibility.\\[0.2\baselineskip]
-\begin{sloppypar}\foreignlanguage{nohyphenation}{\noindent\emph{Keywords}: \keywords}\end{sloppypar}
+\begin{sloppypar}\foreignlanguage{nil}{\noindent\emph{Keywords}: \keywords}\end{sloppypar}
\end{abstract}
\tableofcontents
diff --git a/macros/latex/contrib/media9/media9.sty b/macros/latex/contrib/media9/media9.sty
index 7d34986484..14ba62ef41 100644
--- a/macros/latex/contrib/media9/media9.sty
+++ b/macros/latex/contrib/media9/media9.sty
@@ -37,8 +37,8 @@
\RequirePackage{xparse}
\RequirePackage{atbegshi}
-\def\g@mix@date@tl{2019/11/04}
-\def\g@mix@version@tl{1.04}
+\def\g@mix@date@tl{2020/01/27}
+\def\g@mix@version@tl{1.05}
\ProvidesExplPackage{media9}{\g@mix@date@tl}{\g@mix@version@tl}
{acrobat-9/X compatible media}
@@ -339,25 +339,6 @@
Line~\msg_line_number: :~
File~`#1'~not~found.}{Make~sure~file~`#1'~exists~and~is~readable!}
-\sys_if_engine_pdftex:TF{
- %\pdfmdfivesum is used for hashing object references of embedded files
- \cs_new:Nn\mix_filemdfivesum:n{\pdfmdfivesum~file~{#1}}
- \cs_new:Nn\mix_unescapehex:n{(\pdfunescapehex{#1})}
-}{
- \sys_if_engine_luatex:TF{
- \RequirePackage{pdftexcmds}
- \cs_new_nopar:Nn\mix_filemdfivesum:n{\pdf@filemdfivesum{#1}}
- %\cs_new:Nn\mix_unescapehex:n{<#1>}
- \cs_new_nopar:Nn\mix_unescapehex:n{(\pdf@unescapehex{#1})}
- }{
- \cs_if_exist:NTF\mdfivesum{
- \cs_new_nopar:Nn\mix_filemdfivesum:n{\mdfivesum file {#1}}
- }{
- \cs_new_nopar:Nn\mix_filemdfivesum:n{#1}
- }
- }
-}
-
%creating global definitions
\cs_new:Npn\mix@newkey#1#2{\tl_gset:cx{#1}{#2}}
\AtBeginDocument{
@@ -503,23 +484,22 @@
\tl_gset:Nx\g_mix_btnocg_tl{\ocgbase_last_ocg:}
}
-%output mode dependent command definitions
-\sys_if_output_pdf:TF{
- \cs_new:Nn\mix_ndname:n{%#1:HEX encoded string
- %converted to binary UTF16BE using \pdfunescapehex (pdfTeX only)
- \tl_set:Nn\l_mix_ndname_tl{\mix_unescapehex:n{#1}}
- }
-}{
- \bool_if:NTF\g_mix_dvipdfmx_bool{ %dvipdfmx/XeTeX
- \cs_new:Nn\mix_ndname:n{%#1:HEX encoded UTF16BE string
- \tl_set:Nn\l_mix_ndname_tl{<#1>}
+%output mode/engine dependent command definitions
+\cs_new:Nn\mix_ndname:n{%#1:HEX encoded UTF16BE string
+ \sys_if_output_pdf:TF{
+ \sys_if_engine_pdftex:TF{ %convert to binary UTF16BE as by \pdfunescapehex
+ \str_set_convert:Nnnn\l_mix_ndname_tl{feff#1}{utf16/hex}{utf16}
+ \tl_set:Nx\l_mix_ndname_tl{(\l_mix_ndname_tl)}
+ }{ %luatex
+ \tl_set:Nn\l_mix_ndname_tl{<feff#1>}
}
}{
- %3DNode name
- \cs_new:Nn\mix_ndname:n{%#1:HEX encoded unicode string
+ \bool_if:NTF\g_mix_dvipdfmx_bool{ %dvipdfmx/XeTeX
+ \tl_set:Nn\l_mix_ndname_tl{<feff#1>}
+ }{ %dvips
\special{ps:~
/mix@unicode~65535~string~def~
- (#1)~/ASCIIHexDecode~filter~mix@unicode~readstring~pop~
+ (feff#1)~/ASCIIHexDecode~filter~mix@unicode~readstring~pop~
/mix@unicode~exch~def~
}
%converted to binary UTF16BE by ps2pdf
@@ -536,7 +516,7 @@
}
\filename@parse{#1}
\tl_set:Nx\l_mix_base_tl{\filename@base}
- \tl_set:Nx\l_mix_ext_tl{\tl_lower_case:n{\filename@ext}}
+ \tl_set:Nx\l_mix_ext_tl{\text_lowercase:n{\filename@ext}}
\bool_if:NTF\l_mix_url_bool{
\cs_if_exist:cF{url_#1}{
\mix_pdfobj:nnn{}{dict}{/FS/URL/F(#1)}
@@ -568,16 +548,16 @@
|| \str_if_eq_p:Vn\l_mix_ext_tl{pdf}
)
}{
- \cs_if_exist:cF{imgXobj_\mix_filemdfivesum:n{\l_mix_file_tl}}{
+ \cs_if_exist:cF{imgXobj_\file_mdfive_hash:n{\l_mix_file_tl}}{
\mix_pdfximage:n{\l_mix_file_tl}
- \tl_gset:cx{imgXobj_\mix_filemdfivesum:n{\l_mix_file_tl}}{
+ \tl_gset:cx{imgXobj_\file_mdfive_hash:n{\l_mix_file_tl}}{
\mix_pdflastximage:
}
}
%create fake FileSpec for current file name if not yet existent
\cs_if_exist:cF{ImgFileSpecFor3D_#1}{
\tl_gset:cx{ImgFileSpecFor3D_#1}{
- \tl_use:c{imgXobj_\mix_filemdfivesum:n{\l_mix_file_tl}}
+ \tl_use:c{imgXobj_\file_mdfive_hash:n{\l_mix_file_tl}}
}
}
%add FileSpec to assets tree of current annot
@@ -589,9 +569,9 @@
}{
%remaining file types in 3D context and any file type in case of Flash
%context will be embedded as ordinary fstreams;
- \cs_if_exist:cF{fileEmb_\mix_filemdfivesum:n{\l_mix_file_tl}}{
+ \cs_if_exist:cF{fileEmb_\file_mdfive_hash:n{\l_mix_file_tl}}{
\mix_pdfobj:nnn{}{fstream}{{}{\l_mix_file_tl}}
- \tl_gset:cx{fileEmb_\mix_filemdfivesum:n{\l_mix_file_tl}}{
+ \tl_gset:cx{fileEmb_\file_mdfive_hash:n{\l_mix_file_tl}}{
\mix_pdflastobj:
}
}
@@ -599,7 +579,7 @@
\cs_if_exist:cF{fileSpec_#1}{
\mix_pdfobj:nnn{}{dict}{
/Type/Filespec/F~(#1)%/UF~(#1)
- /EF~<</F~\tl_use:c{fileEmb_\mix_filemdfivesum:n{\l_mix_file_tl}}>>
+ /EF~<</F~\tl_use:c{fileEmb_\file_mdfive_hash:n{\l_mix_file_tl}}>>
}
\tl_gset:cx{fileSpec_#1}{\mix_pdflastobj:}
\bool_if:NT\g_mix_usrattach_bool{
@@ -1913,7 +1893,7 @@
{\g_mix_vfile_tl}{\int_use:N\l_mix_lineno_int}
}
\bool_set_false:N\l_mix_blankndname_bool
- \mix_ndname:n{feff#1}
+ \mix_ndname:n{#1}
},
UTFNAME .default:n = {},
diff --git a/macros/latex/contrib/media9/pdfbase.sty b/macros/latex/contrib/media9/pdfbase.sty
index 6e84cf4f91..a791da1eee 100644
--- a/macros/latex/contrib/media9/pdfbase.sty
+++ b/macros/latex/contrib/media9/pdfbase.sty
@@ -159,8 +159,8 @@
\RequirePackage{expl3}
\RequirePackage{l3keys2e}
-\def\g@pbs@date@tl{2019/11/04}
-\def\g@pbs@version@tl{0.35}
+\def\g@pbs@date@tl{2020/01/27}
+\def\g@pbs@version@tl{0.36}
\ProvidesExplPackage{pdfbase}{\g@pbs@date@tl}{\g@pbs@version@tl}
{driver independent access to low-level PDF features}
@@ -171,7 +171,7 @@
Get~an~up~to~date~version~of~`#1'.\\
Aborting.
}
-\@ifpackagelater{expl3}{2019/05/09}{}{
+\@ifpackagelater{expl3}{2019/09/03}{}{
\msg_error:nnn{pdfbase}{support~outdated}{expl3.sty}
\tex_endinput:D
}
@@ -434,7 +434,7 @@
\cs_new_protected_nopar:Nn\pbs_pdfximage:n{
\filename@parse{#1}
- \tl_set:Nx\l_pbs_ext_tl{\tl_lower_case:n{\filename@ext}}
+ \tl_set:Nx\l_pbs_ext_tl{\text_lowercase:n{\filename@ext}}
\bool_if:nTF{
\str_if_eq_p:Vn\l_pbs_ext_tl{png}
||\str_if_eq_p:Vn\l_pbs_ext_tl{jpg}
@@ -676,7 +676,7 @@
\cs_new_protected_nopar:Nn\pbs_pdfximage:n{
\filename@parse{#1}
- \tl_set:Nx\l_pbs_ext_tl{\tl_lower_case:n{\filename@ext}}
+ \tl_set:Nx\l_pbs_ext_tl{\text_lowercase:n{\filename@ext}}
\bool_if:nTF{
\str_if_eq_p:Vn\l_pbs_ext_tl{png}
||\str_if_eq_p:Vn\l_pbs_ext_tl{jpg}
@@ -768,12 +768,10 @@
\@ifclassloaded{powerdot}{\bool_gset_true:N\g_pbs_powerdot_bool}{}
\sys_if_engine_pdftex:TF{
- \cs_new_nopar:Nn\pbs_filesize:n{\pdffilesize{#1}}
\cs_new_nopar:Nn\pbs_filedump:nnn{\pdffiledump~offset~#1~length~#2~{#3}}
}{
\sys_if_engine_luatex:T{
\RequirePackage{pdftexcmds}
- \cs_new_nopar:Nn\pbs_filesize:n{\pdf@filesize{#1}}
\cs_new_nopar:Nn\pbs_filedump:nnn{\pdf@filedump{#1}{#2}{#3}}
}
}
@@ -893,7 +891,7 @@
}}
{fstream}{
\tl_set:Nn\l_pbs_offset_tl{0}
- \tl_set:Nx\l_pbs_fsize_tl{\pbs_filesize:n{\use_ii:nn#3}}
+ \tl_set:Nx\l_pbs_fsize_tl{\file_size:n{\use_ii:nn#3}}
\message{<\use_ii:nn#3}
%embed file in chunks of 32768 Bytes into PS as chunks of
%65536 Bytes of HEX code
@@ -1221,7 +1219,7 @@
\cs_new_protected_nopar:Nn\pbs_pdfximage:n{
\filename@parse{#1}
- \tl_set:Nx\l_pbs_ext_tl{\tl_lower_case:n{\filename@ext}}
+ \tl_set:Nx\l_pbs_ext_tl{\text_lowercase:n{\filename@ext}}
\bool_if:nTF{
\str_if_eq_p:Vn\l_pbs_ext_tl{ps}
||\str_if_eq_p:Vn\l_pbs_ext_tl{eps}
diff --git a/macros/latex/contrib/physconst/CHANGELOG.md b/macros/latex/contrib/physconst/CHANGELOG.md
index 964bf35aa6..059256090c 100644
--- a/macros/latex/contrib/physconst/CHANGELOG.md
+++ b/macros/latex/contrib/physconst/CHANGELOG.md
@@ -23,5 +23,18 @@
## [1.0.2] - 2020/01/25
### Changed
- Switch compression of tarball to gzip to match requirement for CTAN
+## [1.0.2.a] - 2020/01/25
+- Same as 1.0.2
+## [1.0.2.b] - 2020/01/25
+### Added
+- Add changelog to distribution
+- Add disribution specific readme
+- Add disribution specific makefile
+### Changed
+- Update README to have clearer build, distribute, install, and uninstall instructions.
+- Distribute with .dtx instead of .sty
+- Reordered build, install, distribute, and uninstall sections of the README
+- Pulled build up one level of headings in the README
+- fix some typos in README
diff --git a/macros/latex/contrib/physconst/README.md b/macros/latex/contrib/physconst/README.md
index 67dd9a8073..8a43c78f49 100644
--- a/macros/latex/contrib/physconst/README.md
+++ b/macros/latex/contrib/physconst/README.md
@@ -16,57 +16,69 @@ and version 1.3c or later is part of all distributions of LaTeX
version 2006/05/20 or later.
# Dependencies
-- [`physunits` package](https://github.com/astrobit/physunits)
+- [`physunits` package](https://github.com/astrobit/physunits) also available at [CTAN](https://ctan.org)
# Build Dependencies
-- the `xastro-1` library (part of [xlibs][https://github.com/astrobit/xlibs])
-- some LaTeX distribution with `xelatex`. The makefile assumes you have texlive.
-- `pkg-config`
-- GNU c++ compiler (`g++`) with at least c++11
+- some LaTeX distribution.
- `hyperref` package for LaTeX
- `xcolor` package for LaTeX
- `mdframed` package for LaTeX
- `imakeidx` package for LaTeX
-- GNU `make`
# Files
```
+ makefile GNU makefile to simplify building and installation on linux
README.md This file.
CHANGELOG.md List of changes
physconst.ins The installer file
- makefile GNU makefile to create and install the package
- generator/makefile GNU makefile to create the generator
- generator/physconst.cpp c++ source code that will generate the .dtx for the
- package
+ physconst.dtx The package code and documentation
+ physconst.pdf The package user manual
```
-# Distributable Files
-The following distributable files can be created as described below.
-```
- physconst.sty The actual package
- physconst.pdf Usage documentation
- physconst.tar.bz2 Tarball containing package, documentation, and
- this README
- physconst.zip Zip file containing package, documentation, and
- this README
-```
-To create a disribution on linux (or mac?)
-- `make dist`
+# Building the Package
+## Linux / Mac using make and xelatex
+1. `make`
+
+## Otherwise
+1. Run `latex` on `physconst.ins` to create the `.sty` file. e.g. `latex physconst.ins`.
+1. The following steps apply only if you want the documentation (recommended).
+ 1. Run `latex` on `physconst.dtx` to create the `.pdf` file. e.g. `xelatex physconst.pdf`.
+ 1. Run `makeindex` to create the index, e.g. `makeindex -s gind.ist -o physconst.ind physconst.idx`.
+ 1. Run `makeindex` to create the change log, e.g. `makeindex -s gglo.ist -o physconst.gls physconst.glo`.
+ 1. Run `latex` on `physconst.dtx` to create the `.pdf` file with index and change log. e.g. `xelatex physconst.pdf`.
+ 1. Run `latex` on `physconst.dtx` to get the labels sorted out. e.g. `xelatex physconst.pdf`.
+
+Instructions that might help can be for windows can be found at [this post on StackExchange](https://tex.stackexchange.com/questions/369921/loading-packages-with-ins-and-dtx-files).
# Installation
-For linux, run `make` to generate the package (.sty file) and documentation.
-If you are using texlive (most modern linux distributions use texlive), you may
-then run `sudo make localinstall` to install the package to your latex
-distribution. If you are not using texlive, you will need to manually
-copy the .sty file into either the folder where your .tex files reside that
-require the package, or manually install the package in your latex distribution.
+First build the project as described above.
+
+## For a single project
+1. Copy the `physconst.sty` into your project where your `.tex` files are located.
+
+## for all users and projects
+### Linux / Mac using make and xelatex
+1. `make localinstall`
+
+### Otherwise
+Instructions that might help can be for windows can be found at [this post on StackExchange](https://tex.stackexchange.com/questions/369921/loading-packages-with-ins-and-dtx-files).
+1. Figure out where your LaTeX local packages are installed.
+1. Create a directory named `physconst` in that location.
+1. Copy the `.sty` file into the directory you just created.
+1. Figure out where your LaTeX local package documentation is installed.
+1. Create a directory named `physconst` in that location.
+1. Copy the `.pdf` file into the directory you just created.
+1. Run `texhash` or the equivalent to let LaTeX know the package is there.
-For mac, the instructions above for linux might work. Otherwise you're sort of
-on your own. Most likely your latex disrubution is somewhere in /usr/share.
-You will need to figure out the name and where the package files are stored,
-then run `texhash` so that latex knows that they are there.
-For windows, you're kind of on your own. Instructions that might help can be
-found at [this post on StackExchange](https://tex.stackexchange.com/questions/369921/loading-packages-with-ins-and-dtx-files).
+# Uninstallation
+### Linux / Mac using make
+1. `make localuninstall`
+### Otherwise
+1. Figure out where your LaTeX local packages are installed.
+1. Delete the directory named `physconst` in that location.
+1. Figure out where your LaTeX local package documentation is installed.
+1. Delete the directory named `physconst` in that location.
+1. Run `texhash` or the equivalent to let LaTeX know the package is gone.
diff --git a/macros/latex/contrib/physconst/makefile b/macros/latex/contrib/physconst/makefile
new file mode 100644
index 0000000000..ca48c701ec
--- /dev/null
+++ b/macros/latex/contrib/physconst/makefile
@@ -0,0 +1,122 @@
+pkgname=$(patsubst %.ins,%,$(wildcard *.ins))
+TEXMFLOCAL = $(shell kpsewhich -var-value TEXMFLOCAL)
+TEXMFDIST = $(shell kpsewhich -var-value TEXMFDIST)
+
+.PHONY: all clean localinstall localuninstall localinstallcheck distinstall distuninstall distinstallcheck installcheck
+
+all: $(pkgname).pdf
+
+.PRECIOUS: %.sty %.dtx %.pdf
+.DELETE_ON_ERROR:
+.NOTPARALLEL:
+
+%.sty: %.dtx %.ins
+ latex $(pkgname).ins
+
+%.pdf: %.sty
+ xelatex $(pkgname).dtx
+ makeindex -s gind.ist -o $(pkgname).ind $(pkgname).idx
+ makeindex -s gglo.ist -o $(pkgname).gls $(pkgname).glo
+ xelatex $(pkgname).dtx
+ xelatex $(pkgname).dtx
+
+clean:
+ -rm *.pdf
+ -rm *.log
+ -rm *.out
+ -rm *.aux
+ -rm *.bib
+ -rm *.snm
+ -rm *.toc
+ -rm *.nav
+ -rm *.idx
+ -rm *.sty
+ -rm *.gls
+ -rm *.ilg
+ -rm *.ind
+ -rm *.glo
+ -rm $(pkgname).zip
+ -rm $(pkgname).tar
+ -rm $(pkgname).tar.gz
+ -rm -r $(pkgname)
+ -rm -r tmptar
+ -rm -r tmpzip
+
+$(TEXMFLOCAL)/tex/latex/$(pkgname):
+ mkdir -p $(TEXMFLOCAL)/tex/latex/$(pkgname)
+
+$(TEXMFLOCAL)/doc/latex/$(pkgname):
+ mkdir -p $(TEXMFLOCAL)/doc/latex/$(pkgname)
+
+$(TEXMFLOCAL)/tex/latex/$(pkgname)/$(pkgname).sty: $(pkgname).sty $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ cp $(pkgname).sty $(TEXMFLOCAL)/tex/latex/$(pkgname)/.
+
+$(TEXMFLOCAL)/doc/latex/$(pkgname)/$(pkgname).pdf: $(pkgname).pdf $(TEXMFLOCAL)/doc/latex/$(pkgname)
+ cp $(pkgname).pdf $(TEXMFLOCAL)/doc/latex/$(pkgname)/.
+
+localinstall: $(pkgname).pdf $(pkgname).sty $(TEXMFLOCAL)/tex/latex/$(pkgname) $(TEXMFLOCAL)/doc/latex/$(pkgname) $(TEXMFLOCAL)/tex/latex/$(pkgname)/$(pkgname).sty $(TEXMFLOCAL)/doc/latex/$(pkgname)/$(pkgname).pdf
+ @echo Installing to $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ texhash
+ make localinstallcheck
+
+localuninstall:
+ @echo Removing from $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFLOCAL)/doc/latex/$(pkgname)
+ texhash
+
+
+$(TEXMFDIST)/tex/latex/$(pkgname):
+ mkdir -p $(TEXMFDIST)/tex/latex/$(pkgname)
+
+$(TEXMFDIST)/doc/latex/$(pkgname):
+ mkdir -p $(TEXMFDIST)/doc/latex/$(pkgname)
+
+$(TEXMFDIST)/tex/latex/$(pkgname)/$(pkgname).sty: $(pkgname).sty $(TEXMFDIST)/tex/latex/$(pkgname)
+ cp $(pkgname).sty $(TEXMFDIST)/tex/latex/$(pkgname)/.
+
+$(TEXMFDIST)/doc/latex/$(pkgname)/$(pkgname).pdf: $(pkgname).pdf $(TEXMFDIST)/doc/latex/$(pkgname)
+ cp $(pkgname).pdf $(TEXMFDIST)/doc/latex/$(pkgname)/.
+
+distinstall: $(pkgname).pdf $(pkgname).sty $(TEXMFDIST)/tex/latex/$(pkgname) $(TEXMFDIST)/doc/latex/$(pkgname) $(TEXMFDIST)/tex/latex/$(pkgname)/$(pkgname).sty $(TEXMFDIST)/doc/latex/$(pkgname)/$(pkgname).pdf
+ @echo Installing to $(TEXMFDIST)/tex/latex/$(pkgname)
+ texhash
+ make distinstallcheck
+
+distuninstall:
+ @echo Removing from $(TEXMFDIST)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFDIST)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFDIST)/doc/latex/$(pkgname)
+ texhash
+
+#######################################################
+# checks - will be called recursively
+#######################################################
+
+localinstallcheck:
+ifeq (0,$(shell test -d $(TEXMFLOCAL)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as local: $(TEXMFLOCAL)/tex/latex/$(pkgname)
+else
+ $(error $(pkgname) is not installed as local)
+endif
+
+distinstallcheck:
+ifeq (0,$(shell test -d $(TEXMFDIST)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as dist: $(TEXMFDIST)/tex/latex/$(pkgname)
+else
+ $(error $(pkgname) is not installed as dist)
+endif
+
+installcheck:
+ifeq (0,$(shell test -d $(TEXMFDIST)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as dist: $(TEXMFDIST)/tex/latex/$(pkgname)
+else
+ifeq (0,$(shell test -d $(TEXMFLOCAL)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as local: $(TEXMFLOCAL)/tex/latex/$(pkgname)
+else
+ $(error $(pkgname) is not installed)
+endif
+endif
+
+
+
diff --git a/macros/latex/contrib/physconst/physconst.dtx b/macros/latex/contrib/physconst/physconst.dtx
new file mode 100644
index 0000000000..691a5fd901
--- /dev/null
+++ b/macros/latex/contrib/physconst/physconst.dtx
@@ -0,0 +1,6227 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+% -----------------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+% version 2006/05/20 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{physconst.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+%<package> \ProvidesPackage{physconst}
+%<*package>
+ [2020/01/26 v1.0.2 physconst package]
+%</package>
+%<package>\RequirePackage{physunits}
+%<package>\DeclareOption{shortconst}{ \typeout{physconst: reduced precision}%
+%<package> \DeclareRobustCommand{\shortconst}{1} }
+%<package>\DeclareOption{cgs}{ \typeout{physconst: using cgs instead of SI}%
+%<package> \DeclareRobustCommand{\cgsunits}{1} }
+%<package>\DeclareOption{unseparatedecimals}{ \typeout{physconst:%
+%<package> long decimals are printed as x.xxxxxx instead of x.xxx~xxx}%
+%<package> \DeclareRobustCommand{\unseparatedecimals}{1} }
+%<package>\ProcessOptions\relax
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{xcolor}
+\usepackage{mdframed}
+\usepackage{physconst}
+\usepackage{imakeidx}
+\makeindex[columns=2]
+\usepackage[backref]{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\OnlyDescription
+\begin{document}
+\DocInput{physconst.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \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 \~}
+%
+% \changes{v1.0.0}{2020/01/25}{Initial version.}
+% \changes{v1.0.1}{2020/01/25}{Add options section and fix formatting.}
+% \changes{v1.0.2}{2020/01/26}{External changes for distribution.}
+%
+% \GetFileInfo{physconst.dtx}
+% \DeclareRobustCommand{\fileversion}{v1.0.2}
+% \DeclareRobustCommand{\filedate}{2020/01/26}
+%
+% \DoNotIndex{\DeclareRobustCommand,\newenvironment,\DeclareRobustCommand%
+% ,\left,\right,\textbf,\mathrm}
+%
+% \title{The \textsf{physconst} package\thanks{This document corresponds to %
+% \textsf{physconst}~\fileversion, dated \filedate.}}
+% \author{Brian W. Mulligan \\ \texttt{bwmulligan@astronaos.com}}
+%
+% \maketitle
+% \setlength{\parindent}{0em}
+% \setlength{\parskip}{1em}
+%
+% \section{Introduction}
+%
+%
+% This package consists of several macros that are shorthand for a variety of
+% physical constants, e.g. the speed of light.
+% The package developed out of physics and astronomy classes that I have
+% taught and wanted to ensure that I had correct values for each constant
+% and did not wish to retype them every time I use them.
+% The constants can be used in two forms, the most accurate available values,
+% or versions that are rounded to 3 significant digits for use in typical
+% classroom settings, homework assignments, etc.
+%
+% Most constants are taken from CODATA 2018, with the exception of the
+% astronomical objects, whose values are taken from their current wikipedia
+% entries. If you have an interest and/or need for more reliable data,
+% please contact me.
+%
+%\subsection{Options}
+%
+% There are three options available: |shortconst|, |cgs|, and
+% |unseparatedecimals|.
+% They can be invoked when the package is declared, e.g.\\
+% |\usepackage[shortconst]{physconst}|.
+%
+% |shortconst| will reduce the precision to 3 digits for all constants. This
+% is intended when you don't want to have the details of the constants, just
+% the general value (e.g. $1.60\times10^{-19}\Coulomb$ instead of
+% $1.602\,176\,634\times10^{-19}\Coulomb$).
+%
+% |cgs| will provide all constants in cgs, i.e. the units used in astronomy.
+%
+% |unseparatedecimals| is for situations when you don't want spaces in the
+% decimal portion of full precision constants. E.g. the elementary charge
+% would appear as $1.602176634\times10^{-19}\Coulomb$ instead of
+% $1.602\,176\,634\times10^{-19}\Coulomb$. (notice the gaps between digits
+% in the latter.
+%
+%\subsection{Macros}
+%
+%
+%\subsection{Normal Macros}
+%
+% The normal macros are the ones that you will typically use, whose values are
+% determined by the choice of options when the package is invoked.
+%
+% \subsection{Naming Convention}
+%
+% Each macro starts with a lower case `k' to indicate that it is a constant.
+% If the macro is of special units, e.g. eV, those units will be specified next.
+% If the macro is part of a fundamental unit group, it then gets the name of the
+% group, e.g. Mass, Charge, etc.
+% Finally is the details or name of the constants, e.g. Proton, Planck, etc.
+%
+%\subsubsection{Mass}
+%
+%
+%\index{Mass|usage}
+%
+% \DescribeMacro{\kMassElectron}
+% \index{Mass>Electron|usage}
+% |\kMassElectron| is the mass of an electron.
+%
+% \DescribeMacro{\keVMassElectron}
+% \index{Mass>Electron>in eV|usage}
+% |\keVMassElectron| is the mass of an electron.
+%
+% \DescribeMacro{\kMassProton}
+% \index{Mass>Proton|usage}
+% |\kMassProton| is the mass of a proton.
+%
+% \DescribeMacro{\keVMassProton}
+% \index{Mass>Proton>in eV|usage}
+% |\keVMassProton| is the mass of a proton.
+%
+% \DescribeMacro{\kMassHydrogen}
+% \index{Mass>Hydrogen atom|usage}
+% |\kMassHydrogen| is the mass of a neutral hydrogen atom.
+%
+% \DescribeMacro{\keVMassHydrogen}
+% \index{Mass>Hydrogen atom>in eV|usage}
+% |\keVMassHydrogen| is the mass of a neutral hydrogen atom.
+%
+% \DescribeMacro{\kMassSun}
+% \index{Mass>Sun|usage}
+% |\kMassSun| is the mass of the Sun.
+%
+% \DescribeMacro{\kMassAMU}
+% \index{Mass>amu|usage}
+% |\kMassAMU| is the mass of an atomic mass unit.
+%
+% \DescribeMacro{\keVMassAMU}
+% \index{Mass>amu>in eV|usage}
+% |\keVMassAMU| is the mass of an atomic mass unit.
+%
+%
+%\subsubsection{Charge}
+%
+%
+%\index{Charge|usage}
+%
+% \DescribeMacro{\kChargeFundamental}
+% \index{Charge>Elementary|usage}
+% |\kChargeFundamental| is the fundamental charge.
+%
+% \DescribeMacro{\kChargeElectron}
+% \index{Charge>Electron|usage}
+% |\kChargeElectron| is the charge of an electron.
+%
+% \DescribeMacro{\kChargeProton}
+% \index{Charge>Proton|usage}
+% |\kChargeProton| is the charge of a proton.
+%
+%
+%\subsubsection{Distances and Lengths}
+%
+%
+%\index{Distances and Lengths|usage}
+%
+% \DescribeMacro{\kRadiusBohr}
+% \index{Distances and Lengths>Bohr Radius|usage}
+% |\kRadiusBohr| is Bohr radius of an atom.
+%
+% \DescribeMacro{\kAstronomicalUnit}
+% \index{Distances and Lengths>Astronomical Unit|usage}
+% |\kAstronomicalUnit| is the astronomical unit (the average distance between
+% the Earth and the Sun).
+%
+% \DescribeMacro{\kParsec}
+% \index{Distances and Lengths>Parsec|usage}
+% |\kParsec| is the length of a parsec ($\frac{648000\au}{\pi}$).
+%
+% \DescribeMacro{\kRadiusSun}
+% \index{Distances and Lengths>Solar Radius|usage}
+% |\kRadiusSun| is the mean radius of the Sun.
+%
+%
+%\subsubsection{Energy, Power, and Luminosity}
+%
+%
+%\index{Energy, Power, and Luminosity|usage}
+%
+% \DescribeMacro{\kRydberg}
+% \index{Energy, Power, and Luminosity>Rydberg|usage}
+% |\kRydberg| is the Rydberg energy (the binding energy of Hydrogen).
+%
+% \DescribeMacro{\keVRydberg}
+% \index{Energy, Power, and Luminosity>Rydberg>in eV|usage}
+% |\keVRydberg| is the Rydberg energy (the binding energy of Hydrogen).
+%
+% \DescribeMacro{\kLuminositySun}
+% \index{Energy, Power, and Luminosity>Solar Luminosity|usage}
+% |\kLuminositySun| is the luminosity of the Sun.
+%
+%
+%\subsubsection{Pressure}
+%
+%
+%\index{Pressure|usage}
+%
+% \DescribeMacro{\kPressureAtmosphere}
+% \index{Pressure>Standard Atmosphere|usage}
+% |\kPressureAtmosphere| is the standard atmospheric pressure.
+%
+% \DescribeMacro{\kPressureStandard}
+% \index{Pressure>Standard Pressure|usage}
+% |\kPressureStandard| is the standard atmospheric pressure.
+%
+%
+%\subsubsection{Velocity, Speed and Acceleration}
+%
+%
+%\index{Velocity, Speed and Acceleration|usage}
+%
+% \DescribeMacro{\kSpeedLight}
+% \index{Velocity, Speed and Acceleration>Speed of Light|usage}
+% |\kSpeedLight| is the speed of light.
+%
+% \DescribeMacro{\kAccelGravity}
+% \index{Velocity, Speed and Acceleration>Acceleration due to Gravity|usage}
+% |\kAccelGravity| is the accelertion due to gravity at the surface of the
+% Earth.
+%
+%
+%\subsubsection{Other Constants}
+%
+%
+%\index{Other Constants|usage}
+%
+% \DescribeMacro{\kCoulomb}
+% \index{Other Constants>Coulomb Constant|usage}
+% |\kCoulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$).
+%
+% \DescribeMacro{\kVacuumPermittivity}
+% \index{Other Constants>Vacuum Permittivity|usage}
+% |\kVacuumPermittivity| is the electric permittivity of the vacuum.
+%
+% \DescribeMacro{\kVacuumPermeability}
+% \index{Other Constants>Vacuum Permeability|usage}
+% |\kVacuumPermeability| is the magnetic permeability of the vacuum.
+%
+% \DescribeMacro{\kVacuumImpedance}
+% \index{Other Constants>Vacuum Impedance|usage}
+% |\kVacuumImpedance| is the characteristic impedance of the vacuum.
+%
+% \DescribeMacro{\kBoltzmann}
+% \index{Other Constants>Boltzmann|usage}
+% |\kBoltzmann| is the Boltzmann constant.
+%
+% \DescribeMacro{\keVBoltzmann}
+% \index{Other Constants>Boltzmann>in eV|usage}
+% |\keVBoltzmann| is the Boltzmann constant.
+%
+% \DescribeMacro{\kPlanck}
+% \index{Other Constants>Planck|usage}
+% |\kPlanck| is the Planck constant.
+%
+% \DescribeMacro{\keVPlanck}
+% \index{Other Constants>Planck>in eV|usage}
+% |\keVPlanck| is the Planck constant.
+%
+% \DescribeMacro{\kPlanckReduced}
+% \index{Other Constants>Reduced Planck|usage}
+% |\kPlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$.
+%
+% \DescribeMacro{\keVPlanckReduced}
+% \index{Other Constants>Reduced Planck>in eV|usage}
+% |\keVPlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$.
+%
+% \DescribeMacro{\kGravity}
+% \index{Other Constants>Newton's Gravitational Constant|usage}
+% |\kGravity| is Newton's gravitational constant.
+%
+% \DescribeMacro{\kStefanBoltzmann}
+% \index{Other Constants>Stefan-Boltzmann|usage}
+% |\kStefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$.
+%
+% \DescribeMacro{\kRadiation}
+% \index{Other Constants>Radiation|usage}
+% |\kRadiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$.
+%
+% \DescribeMacro{\kFineStructure}
+% \index{Other Constants>Fine Structure|usage}
+% |\kFineStructure| is the fine structure constant.
+%
+% \DescribeMacro{\kFineStructureReciprocal}
+% \index{Other Constants>Fine Structure>Reciprocal|usage}
+% |\kFineStructureReciprocal| is the reciprocal of the fine structure constant.
+%
+% \DescribeMacro{\kAvogadro}
+% \index{Other Constants>Avogadro's Number|usage}
+% |\kAvogadro| is Avogadro's Number (the number of particles in a mole).
+%
+%
+%\subsection{Detailed Macros}
+%
+% These macros are used to access the constants with specific units and
+% precision. They require use of \textbackslash makeatletter and
+% \textbackslash makeatother in order to be used. They are used internally
+% by physconst to define the macros that are normally used (those described
+% above.
+%
+% \subsection{NamingConvention}
+% The detailed macros are named like \k@units@precision@name. The units
+% specify which units the constant is in (SI, cgs, or eV). For constants that
+% are independent of the unit system (e.g. Avogadro's number and the fine
+% structure constant), the units are omitted. The precision is either `short'
+% or `full' to indicate how much precision is included in the number. All short
+% precision constants have 3 significant figures. The precision of full
+% precision constants vary by their definition and/or inputs. Finally, the
+% name or description of the constant appears.
+%
+%\subsubsection{Mass}
+%
+% \DescribeMacro{\k@SI@short@MassElectron}
+% |\k@SI@short@MassElectron| is the mass of an electron in SI units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@MassElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@MassElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@MassElectron}
+% |\k@SI@full@MassElectron| is the mass of an electron in SI units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@MassElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@MassElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@MassElectron}
+% |\k@cgs@short@MassElectron| is the mass of an electron in cgs units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@MassElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@MassElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@MassElectron}
+% |\k@cgs@full@MassElectron| is the mass of an electron in cgs units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@MassElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@MassElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@MassElectron}
+% |\k@eV@short@MassElectron| is the mass of an electron in eV with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@MassElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@MassElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@MassElectron}
+% |\k@eV@full@MassElectron| is the mass of an electron in eV with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@MassElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@MassElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@MassProton}
+% |\k@SI@short@MassProton| is the mass of a proton in SI units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@MassProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@MassProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@MassProton}
+% |\k@SI@full@MassProton| is the mass of a proton in SI units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@MassProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@MassProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@MassProton}
+% |\k@cgs@short@MassProton| is the mass of a proton in cgs units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@MassProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@MassProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@MassProton}
+% |\k@cgs@full@MassProton| is the mass of a proton in cgs units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@MassProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@MassProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@MassProton}
+% |\k@eV@short@MassProton| is the mass of a proton in eV with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@MassProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@MassProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@MassProton}
+% |\k@eV@full@MassProton| is the mass of a proton in eV with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@MassProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@MassProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@MassHydrogen}
+% |\k@SI@short@MassHydrogen| is the mass of a neutral hydrogen atom in SI units
+% with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@MassHydrogen\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@MassHydrogen}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@MassHydrogen}
+% |\k@SI@full@MassHydrogen| is the mass of a neutral hydrogen atom in SI units
+% with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@MassHydrogen\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@MassHydrogen}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@MassHydrogen}
+% |\k@cgs@short@MassHydrogen| is the mass of a neutral hydrogen atom in cgs
+% units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@MassHydrogen\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@MassHydrogen}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@MassHydrogen}
+% |\k@cgs@full@MassHydrogen| is the mass of a neutral hydrogen atom in cgs
+% units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@MassHydrogen\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@MassHydrogen}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@MassHydrogen}
+% |\k@eV@short@MassHydrogen| is the mass of a neutral hydrogen atom in eV with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@MassHydrogen\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@MassHydrogen}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@MassHydrogen}
+% |\k@eV@full@MassHydrogen| is the mass of a neutral hydrogen atom in eV with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@MassHydrogen\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@MassHydrogen}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@MassSun}
+% |\k@SI@short@MassSun| is the mass of the Sun in SI units with reduced
+% precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@MassSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@MassSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@MassSun}
+% |\k@SI@full@MassSun| is the mass of the Sun in SI units with full precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@MassSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@MassSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@MassSun}
+% |\k@cgs@short@MassSun| is the mass of the Sun in cgs units with reduced
+% precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@MassSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@MassSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@MassSun}
+% |\k@cgs@full@MassSun| is the mass of the Sun in cgs units with full precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@MassSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@MassSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@MassAMU}
+% |\k@SI@short@MassAMU| is the mass of an atomic mass unit in SI units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@MassAMU\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@MassAMU}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@MassAMU}
+% |\k@SI@full@MassAMU| is the mass of an atomic mass unit in SI units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@MassAMU\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@MassAMU}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@MassAMU}
+% |\k@cgs@short@MassAMU| is the mass of an atomic mass unit in cgs units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@MassAMU\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@MassAMU}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@MassAMU}
+% |\k@cgs@full@MassAMU| is the mass of an atomic mass unit in cgs units with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@MassAMU\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@MassAMU}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@MassAMU}
+% |\k@eV@short@MassAMU| is the mass of an atomic mass unit in eV with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@MassAMU\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@MassAMU}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@MassAMU}
+% |\k@eV@full@MassAMU| is the mass of an atomic mass unit in eV with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@MassAMU\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@MassAMU}\end{mdframed}
+% \makeatother
+%
+%
+%\subsubsection{Charge}
+%
+% \DescribeMacro{\k@SI@short@ChargeFundamental}
+% |\k@SI@short@ChargeFundamental| is the fundamental charge in SI units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@ChargeFundamental\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@ChargeFundamental}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@ChargeFundamental}
+% |\k@SI@full@ChargeFundamental| is the fundamental charge in SI units with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@ChargeFundamental\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@ChargeFundamental}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@ChargeFundamental}
+% |\k@cgs@short@ChargeFundamental| is the fundamental charge in cgs units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@ChargeFundamental\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@ChargeFundamental}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@ChargeFundamental}
+% |\k@cgs@full@ChargeFundamental| is the fundamental charge in cgs units with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@ChargeFundamental\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@ChargeFundamental}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@ChargeElectron}
+% |\k@SI@short@ChargeElectron| is the charge of an electron in SI units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@ChargeElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@ChargeElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@ChargeElectron}
+% |\k@SI@full@ChargeElectron| is the charge of an electron in SI units with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@ChargeElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@ChargeElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@ChargeElectron}
+% |\k@cgs@short@ChargeElectron| is the charge of an electron in cgs units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@ChargeElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@ChargeElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@ChargeElectron}
+% |\k@cgs@full@ChargeElectron| is the charge of an electron in cgs units with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@ChargeElectron\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@ChargeElectron}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@ChargeProton}
+% |\k@SI@short@ChargeProton| is the charge of a proton in SI units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@ChargeProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@ChargeProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@ChargeProton}
+% |\k@SI@full@ChargeProton| is the charge of a proton in SI units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@ChargeProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@ChargeProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@ChargeProton}
+% |\k@cgs@short@ChargeProton| is the charge of a proton in cgs units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@ChargeProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@ChargeProton}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@ChargeProton}
+% |\k@cgs@full@ChargeProton| is the charge of a proton in cgs units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@ChargeProton\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@ChargeProton}\end{mdframed}
+% \makeatother
+%
+%
+%\subsubsection{Distances and Lengths}
+%
+% \DescribeMacro{\k@SI@short@RadiusBohr}
+% |\k@SI@short@RadiusBohr| is Bohr radius of an atom in SI units with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@RadiusBohr\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@RadiusBohr}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@RadiusBohr}
+% |\k@SI@full@RadiusBohr| is Bohr radius of an atom in SI units with full
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@RadiusBohr\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@RadiusBohr}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@RadiusBohr}
+% |\k@cgs@short@RadiusBohr| is Bohr radius of an atom in cgs units with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@RadiusBohr\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@RadiusBohr}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@RadiusBohr}
+% |\k@cgs@full@RadiusBohr| is Bohr radius of an atom in cgs units with full
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@RadiusBohr\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@RadiusBohr}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@AstronomicalUnit}
+% |\k@SI@short@AstronomicalUnit| is the astronomical unit (the average distance
+% between the Earth and the Sun) in SI units with reduced precision.
+% (IAU~Resolution~B2~2012)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@AstronomicalUnit\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@AstronomicalUnit}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@AstronomicalUnit}
+% |\k@SI@full@AstronomicalUnit| is the astronomical unit (the average distance
+% between the Earth and the Sun) in SI units with full precision.
+% (IAU~Resolution~B2~2012)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@AstronomicalUnit\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@AstronomicalUnit}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@AstronomicalUnit}
+% |\k@cgs@short@AstronomicalUnit| is the astronomical unit (the average
+% distance between the Earth and the Sun) in cgs units with reduced precision.
+% (IAU~Resolution~B2~2012)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@AstronomicalUnit\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@AstronomicalUnit}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@AstronomicalUnit}
+% |\k@cgs@full@AstronomicalUnit| is the astronomical unit (the average distance
+% between the Earth and the Sun) in cgs units with full precision.
+% (IAU~Resolution~B2~2012)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@AstronomicalUnit\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@AstronomicalUnit}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@Parsec}
+% |\k@SI@short@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in
+% SI units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Parsec\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Parsec}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Parsec}
+% |\k@SI@full@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in SI
+% units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Parsec\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Parsec}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Parsec}
+% |\k@cgs@short@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in
+% cgs units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Parsec\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Parsec}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Parsec}
+% |\k@cgs@full@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in
+% cgs units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Parsec\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Parsec}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@RadiusSun}
+% |\k@SI@short@RadiusSun| is the mean radius of the Sun in SI units with
+% reduced precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@RadiusSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@RadiusSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@RadiusSun}
+% |\k@SI@full@RadiusSun| is the mean radius of the Sun in SI units with full
+% precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@RadiusSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@RadiusSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@RadiusSun}
+% |\k@cgs@short@RadiusSun| is the mean radius of the Sun in cgs units with
+% reduced precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@RadiusSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@RadiusSun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@RadiusSun}
+% |\k@cgs@full@RadiusSun| is the mean radius of the Sun in cgs units with full
+% precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@RadiusSun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@RadiusSun}\end{mdframed}
+% \makeatother
+%
+%
+%\subsubsection{Energy, Power, and Luminosity}
+%
+% \DescribeMacro{\k@SI@short@Rydberg}
+% |\k@SI@short@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in SI units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Rydberg\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Rydberg}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Rydberg}
+% |\k@SI@full@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in SI units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Rydberg\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Rydberg}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Rydberg}
+% |\k@cgs@short@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in cgs units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Rydberg\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Rydberg}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Rydberg}
+% |\k@cgs@full@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in cgs units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Rydberg\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Rydberg}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@Rydberg}
+% |\k@eV@short@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in eV with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@Rydberg\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@Rydberg}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@Rydberg}
+% |\k@eV@full@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in eV with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@Rydberg\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@Rydberg}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@LuminositySun}
+% |\k@SI@short@LuminositySun| is the luminosity of the Sun in SI units with
+% reduced precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@LuminositySun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@LuminositySun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@LuminositySun}
+% |\k@SI@full@LuminositySun| is the luminosity of the Sun in SI units with full
+% precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@LuminositySun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@LuminositySun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@LuminositySun}
+% |\k@cgs@short@LuminositySun| is the luminosity of the Sun in cgs units with
+% reduced precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@LuminositySun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@LuminositySun}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@LuminositySun}
+% |\k@cgs@full@LuminositySun| is the luminosity of the Sun in cgs units with
+% full precision.
+% (IAU~Resolution~B3~2015)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@LuminositySun\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@LuminositySun}\end{mdframed}
+% \makeatother
+%
+%
+%\subsubsection{Pressure}
+%
+% \DescribeMacro{\k@SI@short@PressureAtmosphere}
+% |\k@SI@short@PressureAtmosphere| is the standard atmospheric pressure in SI
+% units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@PressureAtmosphere\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@PressureAtmosphere}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@PressureAtmosphere}
+% |\k@SI@full@PressureAtmosphere| is the standard atmospheric pressure in SI
+% units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@PressureAtmosphere\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@PressureAtmosphere}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@PressureAtmosphere}
+% |\k@cgs@short@PressureAtmosphere| is the standard atmospheric pressure in cgs
+% units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@PressureAtmosphere\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@PressureAtmosphere}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@PressureAtmosphere}
+% |\k@cgs@full@PressureAtmosphere| is the standard atmospheric pressure in cgs
+% units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@PressureAtmosphere\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@PressureAtmosphere}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@PressureStandard}
+% |\k@SI@short@PressureStandard| is the standard atmospheric pressure in SI
+% units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@PressureStandard\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@PressureStandard}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@PressureStandard}
+% |\k@SI@full@PressureStandard| is the standard atmospheric pressure in SI
+% units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@PressureStandard\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@PressureStandard}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@PressureStandard}
+% |\k@cgs@short@PressureStandard| is the standard atmospheric pressure in cgs
+% units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@PressureStandard\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@PressureStandard}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@PressureStandard}
+% |\k@cgs@full@PressureStandard| is the standard atmospheric pressure in cgs
+% units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@PressureStandard\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@PressureStandard}\end{mdframed}
+% \makeatother
+%
+%
+%\subsubsection{Velocity, Speed and Acceleration}
+%
+% \DescribeMacro{\k@SI@short@SpeedLight}
+% |\k@SI@short@SpeedLight| is the speed of light in SI units with reduced
+% precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@SpeedLight\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@SpeedLight}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@SpeedLight}
+% |\k@SI@full@SpeedLight| is the speed of light in SI units with full precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@SpeedLight\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@SpeedLight}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@SpeedLight}
+% |\k@cgs@short@SpeedLight| is the speed of light in cgs units with reduced
+% precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@SpeedLight\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@SpeedLight}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@SpeedLight}
+% |\k@cgs@full@SpeedLight| is the speed of light in cgs units with full
+% precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@SpeedLight\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@SpeedLight}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@AccelGravity}
+% |\k@SI@short@AccelGravity| is the accelertion due to gravity at the surface
+% of the Earth in SI units with reduced precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@AccelGravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@AccelGravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@AccelGravity}
+% |\k@SI@full@AccelGravity| is the accelertion due to gravity at the surface of
+% the Earth in SI units with full precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@AccelGravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@AccelGravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@AccelGravity}
+% |\k@cgs@short@AccelGravity| is the accelertion due to gravity at the surface
+% of the Earth in cgs units with reduced precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@AccelGravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@AccelGravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@AccelGravity}
+% |\k@cgs@full@AccelGravity| is the accelertion due to gravity at the surface
+% of the Earth in cgs units with full precision.
+% (CODATA 2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@AccelGravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@AccelGravity}\end{mdframed}
+% \makeatother
+%
+%
+%\subsubsection{Other Constants}
+%
+% \DescribeMacro{\k@SI@short@Coulomb}
+% |\k@SI@short@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$) in
+% SI units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Coulomb\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Coulomb}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Coulomb}
+% |\k@SI@full@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$) in
+% SI units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Coulomb\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Coulomb}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Coulomb}
+% |\k@cgs@short@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$)
+% in cgs units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Coulomb\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Coulomb}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Coulomb}
+% |\k@cgs@full@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$) in
+% cgs units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Coulomb\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Coulomb}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@VacuumPermittivity}
+% |\k@SI@short@VacuumPermittivity| is the electric permittivity of the vacuum
+% in SI units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@VacuumPermittivity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@VacuumPermittivity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@VacuumPermittivity}
+% |\k@SI@full@VacuumPermittivity| is the electric permittivity of the vacuum in
+% SI units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@VacuumPermittivity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@VacuumPermittivity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@VacuumPermittivity}
+% |\k@cgs@short@VacuumPermittivity| is the electric permittivity of the vacuum
+% in cgs units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@VacuumPermittivity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@VacuumPermittivity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@VacuumPermittivity}
+% |\k@cgs@full@VacuumPermittivity| is the electric permittivity of the vacuum
+% in cgs units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@VacuumPermittivity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@VacuumPermittivity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@VacuumPermeability}
+% |\k@SI@short@VacuumPermeability| is the magnetic permeability of the vacuum
+% in SI units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@VacuumPermeability\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@VacuumPermeability}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@VacuumPermeability}
+% |\k@SI@full@VacuumPermeability| is the magnetic permeability of the vacuum in
+% SI units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@VacuumPermeability\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@VacuumPermeability}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@VacuumPermeability}
+% |\k@cgs@short@VacuumPermeability| is the magnetic permeability of the vacuum
+% in cgs units with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@VacuumPermeability\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@VacuumPermeability}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@VacuumPermeability}
+% |\k@cgs@full@VacuumPermeability| is the magnetic permeability of the vacuum
+% in cgs units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@VacuumPermeability\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@VacuumPermeability}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@short@VacuumImpedance}
+% |\k@short@VacuumImpedance| is the characteristic impedance of the vacuum with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@short@VacuumImpedance\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@short@VacuumImpedance}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@full@VacuumImpedance}
+% |\k@full@VacuumImpedance| is the characteristic impedance of the vacuum with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@full@VacuumImpedance\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@full@VacuumImpedance}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@Boltzmann}
+% |\k@SI@short@Boltzmann| is the Boltzmann constant in SI units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Boltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Boltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Boltzmann}
+% |\k@SI@full@Boltzmann| is the Boltzmann constant in SI units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Boltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Boltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Boltzmann}
+% |\k@cgs@short@Boltzmann| is the Boltzmann constant in cgs units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Boltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Boltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Boltzmann}
+% |\k@cgs@full@Boltzmann| is the Boltzmann constant in cgs units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Boltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Boltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@Boltzmann}
+% |\k@eV@short@Boltzmann| is the Boltzmann constant in eV with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@Boltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@Boltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@Boltzmann}
+% |\k@eV@full@Boltzmann| is the Boltzmann constant in eV with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@Boltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@Boltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@Planck}
+% |\k@SI@short@Planck| is the Planck constant in SI units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Planck\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Planck}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Planck}
+% |\k@SI@full@Planck| is the Planck constant in SI units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Planck\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Planck}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Planck}
+% |\k@cgs@short@Planck| is the Planck constant in cgs units with reduced
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Planck\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Planck}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Planck}
+% |\k@cgs@full@Planck| is the Planck constant in cgs units with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Planck\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Planck}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@Planck}
+% |\k@eV@short@Planck| is the Planck constant in eV with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@Planck\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@Planck}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@Planck}
+% |\k@eV@full@Planck| is the Planck constant in eV with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@Planck\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@Planck}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@PlanckReduced}
+% |\k@SI@short@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in SI units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@PlanckReduced\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@PlanckReduced}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@PlanckReduced}
+% |\k@SI@full@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in SI units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@PlanckReduced\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@PlanckReduced}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@PlanckReduced}
+% |\k@cgs@short@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in cgs units with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@PlanckReduced\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@PlanckReduced}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@PlanckReduced}
+% |\k@cgs@full@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in cgs units with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@PlanckReduced\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@PlanckReduced}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@short@PlanckReduced}
+% |\k@eV@short@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in eV with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@short@PlanckReduced\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@short@PlanckReduced}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@eV@full@PlanckReduced}
+% |\k@eV@full@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in eV with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@eV@full@PlanckReduced\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@eV@full@PlanckReduced}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@Gravity}
+% |\k@SI@short@Gravity| is Newton's gravitational constant in SI units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Gravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Gravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Gravity}
+% |\k@SI@full@Gravity| is Newton's gravitational constant in SI units with full
+% precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Gravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Gravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Gravity}
+% |\k@cgs@short@Gravity| is Newton's gravitational constant in cgs units with
+% reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Gravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Gravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Gravity}
+% |\k@cgs@full@Gravity| is Newton's gravitational constant in cgs units with
+% full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Gravity\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Gravity}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@StefanBoltzmann}
+% |\k@SI@short@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in SI units with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@StefanBoltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@StefanBoltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@StefanBoltzmann}
+% |\k@SI@full@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in SI units with full
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@StefanBoltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@StefanBoltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@StefanBoltzmann}
+% |\k@cgs@short@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in cgs units with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@StefanBoltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@StefanBoltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@StefanBoltzmann}
+% |\k@cgs@full@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in cgs units with full
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@StefanBoltzmann\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@StefanBoltzmann}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@short@Radiation}
+% |\k@SI@short@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in SI units with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@short@Radiation\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@short@Radiation}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@SI@full@Radiation}
+% |\k@SI@full@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in SI units with full
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@SI@full@Radiation\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@SI@full@Radiation}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@short@Radiation}
+% |\k@cgs@short@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in cgs units with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@short@Radiation\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@short@Radiation}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@cgs@full@Radiation}
+% |\k@cgs@full@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in cgs units with full
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@cgs@full@Radiation\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@cgs@full@Radiation}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@short@FineStructure}
+% |\k@short@FineStructure| is the fine structure constant with reduced
+% precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@short@FineStructure\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@short@FineStructure}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@full@FineStructure}
+% |\k@full@FineStructure| is the fine structure constant with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@full@FineStructure\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@full@FineStructure}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@short@FineStructureReciprocal}
+% |\k@short@FineStructureReciprocal| is the reciprocal of the fine structure
+% constant with reduced precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@short@FineStructureReciprocal\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@short@FineStructureReciprocal}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@full@FineStructureReciprocal}
+% |\k@full@FineStructureReciprocal| is the reciprocal of the fine structure
+% constant with full precision.
+% (Calculated)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@full@FineStructureReciprocal\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@full@FineStructureReciprocal}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@short@Avogadro}
+% |\k@short@Avogadro| is Avogadro's Number (the number of particles in a mole)
+% with reduced precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@short@Avogadro\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@short@Avogadro}\end{mdframed}
+% \makeatother
+%
+% \DescribeMacro{\k@full@Avogadro}
+% |\k@full@Avogadro| is Avogadro's Number (the number of particles in a mole)
+% with full precision.
+% (CODATA~2018)
+%
+% The macro can be invoked by (e.g.)
+% \begin{mdframed}[backgroundcolor=orange!25]%
+% {\small\texttt{\textbackslash makeatletter\\ The value is
+% \textbackslash k@full@Avogadro\\
+% \textbackslash makeatother}}\end{mdframed}
+% \makeatletter
+% Resulting in
+% \begin{mdframed}[backgroundcolor=blue!25]%
+% {The value is \k@full@Avogadro}\end{mdframed}
+% \makeatother
+%
+\makeatletter
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+% \subsection{Special}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\physconst@decimalsseparator}
+% |\physconst@decimalsseparator| is the a special macro used to separate digits
+% in the decimal portion of the constants. If the option unseparatedecimals is
+% not specified, decimals will be printed as 1.234\,567\,890. If the option
+% is specified, decimals will be printed as 1.234567890. This macro should
+% note be used outside of this package.
+%
+% \begin{macrocode}
+\ifx\unseparatedecimals\undefined
+\DeclareRobustCommand{\physconst@decimalsseparator}{\,}
+\else
+\DeclareRobustCommand{\physconst@decimalsseparator}{ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Mass}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@MassElectron}
+% |\k@SI@short@MassElectron| is the mass of an electron in SI units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@MassElectron}{%
+\ensuremath{%
+9.11%
+\times 10^{-34}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@MassElectron}
+% |\k@SI@full@MassElectron| is the mass of an electron in SI units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@MassElectron}{%
+\ensuremath{%
+9.108\expandafter\physconst@decimalsseparator%
+980\expandafter\physconst@decimalsseparator%
+087\expandafter\physconst@decimalsseparator%
+382%
+\times 10^{-34}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@MassElectron}
+% |\k@cgs@short@MassElectron| is the mass of an electron in cgs units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@MassElectron}{%
+\ensuremath{%
+9.11%
+\times 10^{-31}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@MassElectron}
+% |\k@cgs@full@MassElectron| is the mass of an electron in cgs units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@MassElectron}{%
+\ensuremath{%
+9.108\expandafter\physconst@decimalsseparator%
+980\expandafter\physconst@decimalsseparator%
+087\expandafter\physconst@decimalsseparator%
+382%
+\times 10^{-31}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@MassElectron}
+% |\k@eV@short@MassElectron| is the mass of an electron in eV with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@MassElectron}{%
+\ensuremath{%
+5.69%
+\times 10^{-19}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@MassElectron}
+% |\k@eV@full@MassElectron| is the mass of an electron in eV with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@MassElectron}{%
+\ensuremath{%
+5.685\expandafter\physconst@decimalsseparator%
+378\expandafter\physconst@decimalsseparator%
+187\expandafter\physconst@decimalsseparator%
+448%
+\times 10^{-19}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kMassElectron}
+% |\kMassElectron| is the mass of an electron.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassElectron}{%
+\k@SI@short@MassElectron}
+\else
+\DeclareRobustCommand {\kMassElectron}{%
+\k@SI@full@MassElectron}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassElectron}{%
+\k@cgs@short@MassElectron}
+\else
+\DeclareRobustCommand {\kMassElectron}{%
+\k@cgs@full@MassElectron}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVMassElectron}
+% |\keVMassElectron| is the mass of an electron.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVMassElectron}{%
+\k@eV@short@MassElectron}
+\else
+\DeclareRobustCommand {\keVMassElectron}{%
+\k@eV@full@MassElectron}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@MassProton}
+% |\k@SI@short@MassProton| is the mass of a proton in SI units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@MassProton}{%
+\ensuremath{%
+1.67%
+\times 10^{-30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@MassProton}
+% |\k@SI@full@MassProton| is the mass of a proton in SI units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@MassProton}{%
+\ensuremath{%
+1.672\expandafter\physconst@decimalsseparator%
+547\expandafter\physconst@decimalsseparator%
+813\expandafter\physconst@decimalsseparator%
+969%
+\times 10^{-30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@MassProton}
+% |\k@cgs@short@MassProton| is the mass of a proton in cgs units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@MassProton}{%
+\ensuremath{%
+1.67%
+\times 10^{-27}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@MassProton}
+% |\k@cgs@full@MassProton| is the mass of a proton in cgs units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@MassProton}{%
+\ensuremath{%
+1.672\expandafter\physconst@decimalsseparator%
+547\expandafter\physconst@decimalsseparator%
+813\expandafter\physconst@decimalsseparator%
+969%
+\times 10^{-27}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@MassProton}
+% |\k@eV@short@MassProton| is the mass of a proton in eV with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@MassProton}{%
+\ensuremath{%
+1.04%
+\times 10^{-15}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@MassProton}
+% |\k@eV@full@MassProton| is the mass of a proton in eV with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@MassProton}{%
+\ensuremath{%
+1.043\expandafter\physconst@decimalsseparator%
+922\expandafter\physconst@decimalsseparator%
+235\expandafter\physconst@decimalsseparator%
+836%
+\times 10^{-15}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kMassProton}
+% |\kMassProton| is the mass of a proton.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassProton}{%
+\k@SI@short@MassProton}
+\else
+\DeclareRobustCommand {\kMassProton}{%
+\k@SI@full@MassProton}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassProton}{%
+\k@cgs@short@MassProton}
+\else
+\DeclareRobustCommand {\kMassProton}{%
+\k@cgs@full@MassProton}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVMassProton}
+% |\keVMassProton| is the mass of a proton.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVMassProton}{%
+\k@eV@short@MassProton}
+\else
+\DeclareRobustCommand {\keVMassProton}{%
+\k@eV@full@MassProton}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@MassHydrogen}
+% |\k@SI@short@MassHydrogen| is the mass of a neutral hydrogen atom in SI units
+% with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@MassHydrogen}{%
+\ensuremath{%
+1.67%
+\times 10^{-30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@MassHydrogen}
+% |\k@SI@full@MassHydrogen| is the mass of a neutral hydrogen atom in SI units
+% with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@MassHydrogen}{%
+\ensuremath{%
+1.673\expandafter\physconst@decimalsseparator%
+458\expandafter\physconst@decimalsseparator%
+687\expandafter\physconst@decimalsseparator%
+724%
+\times 10^{-30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@MassHydrogen}
+% |\k@cgs@short@MassHydrogen| is the mass of a neutral hydrogen atom in cgs
+% units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@MassHydrogen}{%
+\ensuremath{%
+1.67%
+\times 10^{-27}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@MassHydrogen}
+% |\k@cgs@full@MassHydrogen| is the mass of a neutral hydrogen atom in cgs
+% units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@MassHydrogen}{%
+\ensuremath{%
+1.673\expandafter\physconst@decimalsseparator%
+458\expandafter\physconst@decimalsseparator%
+687\expandafter\physconst@decimalsseparator%
+724%
+\times 10^{-27}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@MassHydrogen}
+% |\k@eV@short@MassHydrogen| is the mass of a neutral hydrogen atom in eV with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@MassHydrogen}{%
+\ensuremath{%
+1.04%
+\times 10^{-15}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@MassHydrogen}
+% |\k@eV@full@MassHydrogen| is the mass of a neutral hydrogen atom in eV with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@MassHydrogen}{%
+\ensuremath{%
+1.044\expandafter\physconst@decimalsseparator%
+490\expandafter\physconst@decimalsseparator%
+758\expandafter\physconst@decimalsseparator%
+517%
+\times 10^{-15}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kMassHydrogen}
+% |\kMassHydrogen| is the mass of a neutral hydrogen atom.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassHydrogen}{%
+\k@SI@short@MassHydrogen}
+\else
+\DeclareRobustCommand {\kMassHydrogen}{%
+\k@SI@full@MassHydrogen}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassHydrogen}{%
+\k@cgs@short@MassHydrogen}
+\else
+\DeclareRobustCommand {\kMassHydrogen}{%
+\k@cgs@full@MassHydrogen}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVMassHydrogen}
+% |\keVMassHydrogen| is the mass of a neutral hydrogen atom.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVMassHydrogen}{%
+\k@eV@short@MassHydrogen}
+\else
+\DeclareRobustCommand {\keVMassHydrogen}{%
+\k@eV@full@MassHydrogen}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@MassSun}
+% |\k@SI@short@MassSun| is the mass of the Sun in SI units with reduced
+% precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@MassSun}{%
+\ensuremath{%
+1.99%
+\times 10^{30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@MassSun}
+% |\k@SI@full@MassSun| is the mass of the Sun in SI units with full precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@MassSun}{%
+\ensuremath{%
+1.988\expandafter\physconst@decimalsseparator%
+409\expandafter\physconst@decimalsseparator%
+9%
+\times 10^{30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@MassSun}
+% |\k@cgs@short@MassSun| is the mass of the Sun in cgs units with reduced
+% precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@MassSun}{%
+\ensuremath{%
+1.99%
+\times 10^{33}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@MassSun}
+% |\k@cgs@full@MassSun| is the mass of the Sun in cgs units with full precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@MassSun}{%
+\ensuremath{%
+1.988\expandafter\physconst@decimalsseparator%
+409\expandafter\physconst@decimalsseparator%
+9%
+\times 10^{33}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kMassSun}
+% |\kMassSun| is the mass of the Sun.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassSun}{%
+\k@SI@short@MassSun}
+\else
+\DeclareRobustCommand {\kMassSun}{%
+\k@SI@full@MassSun}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassSun}{%
+\k@cgs@short@MassSun}
+\else
+\DeclareRobustCommand {\kMassSun}{%
+\k@cgs@full@MassSun}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@MassAMU}
+% |\k@SI@short@MassAMU| is the mass of an atomic mass unit in SI units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@MassAMU}{%
+\ensuremath{%
+1.66%
+\times 10^{-30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@MassAMU}
+% |\k@SI@full@MassAMU| is the mass of an atomic mass unit in SI units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@MassAMU}{%
+\ensuremath{%
+1.660\expandafter\physconst@decimalsseparator%
+465\expandafter\physconst@decimalsseparator%
+492\expandafter\physconst@decimalsseparator%
+239%
+\times 10^{-30}\kg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@MassAMU}
+% |\k@cgs@short@MassAMU| is the mass of an atomic mass unit in cgs units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@MassAMU}{%
+\ensuremath{%
+1.66%
+\times 10^{-27}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@MassAMU}
+% |\k@cgs@full@MassAMU| is the mass of an atomic mass unit in cgs units with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@MassAMU}{%
+\ensuremath{%
+1.660\expandafter\physconst@decimalsseparator%
+465\expandafter\physconst@decimalsseparator%
+492\expandafter\physconst@decimalsseparator%
+239%
+\times 10^{-27}\gm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@MassAMU}
+% |\k@eV@short@MassAMU| is the mass of an atomic mass unit in eV with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@MassAMU}{%
+\ensuremath{%
+1.04%
+\times 10^{-15}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@MassAMU}
+% |\k@eV@full@MassAMU| is the mass of an atomic mass unit in eV with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@MassAMU}{%
+\ensuremath{%
+1.036\expandafter\physconst@decimalsseparator%
+381\expandafter\physconst@decimalsseparator%
+043\expandafter\physconst@decimalsseparator%
+764%
+\times 10^{-15}\eV\,c^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kMassAMU}
+% |\kMassAMU| is the mass of an atomic mass unit.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassAMU}{%
+\k@SI@short@MassAMU}
+\else
+\DeclareRobustCommand {\kMassAMU}{%
+\k@SI@full@MassAMU}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kMassAMU}{%
+\k@cgs@short@MassAMU}
+\else
+\DeclareRobustCommand {\kMassAMU}{%
+\k@cgs@full@MassAMU}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVMassAMU}
+% |\keVMassAMU| is the mass of an atomic mass unit.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVMassAMU}{%
+\k@eV@short@MassAMU}
+\else
+\DeclareRobustCommand {\keVMassAMU}{%
+\k@eV@full@MassAMU}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Charge}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@ChargeFundamental}
+% |\k@SI@short@ChargeFundamental| is the fundamental charge in SI units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@ChargeFundamental}{%
+\ensuremath{%
+1.60%
+\times 10^{-19}\Coulomb}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@ChargeFundamental}
+% |\k@SI@full@ChargeFundamental| is the fundamental charge in SI units with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@ChargeFundamental}{%
+\ensuremath{%
+1.602\expandafter\physconst@decimalsseparator%
+176\expandafter\physconst@decimalsseparator%
+634%
+\times 10^{-19}\Coulomb}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@ChargeFundamental}
+% |\k@cgs@short@ChargeFundamental| is the fundamental charge in cgs units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@ChargeFundamental}{%
+\ensuremath{%
+4.80%
+\times 10^{-10}\esu}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@ChargeFundamental}
+% |\k@cgs@full@ChargeFundamental| is the fundamental charge in cgs units with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@ChargeFundamental}{%
+\ensuremath{%
+4.803\expandafter\physconst@decimalsseparator%
+204\expandafter\physconst@decimalsseparator%
+713%
+\times 10^{-10}\esu}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kChargeFundamental}
+% |\kChargeFundamental| is the fundamental charge.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kChargeFundamental}{%
+\k@SI@short@ChargeFundamental}
+\else
+\DeclareRobustCommand {\kChargeFundamental}{%
+\k@SI@full@ChargeFundamental}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kChargeFundamental}{%
+\k@cgs@short@ChargeFundamental}
+\else
+\DeclareRobustCommand {\kChargeFundamental}{%
+\k@cgs@full@ChargeFundamental}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@ChargeElectron}
+% |\k@SI@short@ChargeElectron| is the charge of an electron in SI units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@ChargeElectron}{%
+\ensuremath{%
+-1.60%
+\times 10^{-19}\Coulomb}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@ChargeElectron}
+% |\k@SI@full@ChargeElectron| is the charge of an electron in SI units with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@ChargeElectron}{%
+\ensuremath{%
+-1.602\expandafter\physconst@decimalsseparator%
+176\expandafter\physconst@decimalsseparator%
+634%
+\times 10^{-19}\Coulomb}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@ChargeElectron}
+% |\k@cgs@short@ChargeElectron| is the charge of an electron in cgs units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@ChargeElectron}{%
+\ensuremath{%
+-4.80%
+\times 10^{-10}\esu}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@ChargeElectron}
+% |\k@cgs@full@ChargeElectron| is the charge of an electron in cgs units with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@ChargeElectron}{%
+\ensuremath{%
+-4.803\expandafter\physconst@decimalsseparator%
+204\expandafter\physconst@decimalsseparator%
+713%
+\times 10^{-10}\esu}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kChargeElectron}
+% |\kChargeElectron| is the charge of an electron.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kChargeElectron}{%
+\k@SI@short@ChargeElectron}
+\else
+\DeclareRobustCommand {\kChargeElectron}{%
+\k@SI@full@ChargeElectron}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kChargeElectron}{%
+\k@cgs@short@ChargeElectron}
+\else
+\DeclareRobustCommand {\kChargeElectron}{%
+\k@cgs@full@ChargeElectron}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@ChargeProton}
+% |\k@SI@short@ChargeProton| is the charge of a proton in SI units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@ChargeProton}{%
+\ensuremath{%
+1.60%
+\times 10^{-19}\Coulomb}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@ChargeProton}
+% |\k@SI@full@ChargeProton| is the charge of a proton in SI units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@ChargeProton}{%
+\ensuremath{%
+1.602\expandafter\physconst@decimalsseparator%
+176\expandafter\physconst@decimalsseparator%
+634%
+\times 10^{-19}\Coulomb}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@ChargeProton}
+% |\k@cgs@short@ChargeProton| is the charge of a proton in cgs units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@ChargeProton}{%
+\ensuremath{%
+4.80%
+\times 10^{-10}\esu}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@ChargeProton}
+% |\k@cgs@full@ChargeProton| is the charge of a proton in cgs units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@ChargeProton}{%
+\ensuremath{%
+4.803\expandafter\physconst@decimalsseparator%
+204\expandafter\physconst@decimalsseparator%
+713%
+\times 10^{-10}\esu}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kChargeProton}
+% |\kChargeProton| is the charge of a proton.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kChargeProton}{%
+\k@SI@short@ChargeProton}
+\else
+\DeclareRobustCommand {\kChargeProton}{%
+\k@SI@full@ChargeProton}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kChargeProton}{%
+\k@cgs@short@ChargeProton}
+\else
+\DeclareRobustCommand {\kChargeProton}{%
+\k@cgs@full@ChargeProton}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Distances and Lengths}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@RadiusBohr}
+% |\k@SI@short@RadiusBohr| is Bohr radius of an atom in SI units with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@RadiusBohr}{%
+\ensuremath{%
+5.29%
+\times 10^{-8}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@RadiusBohr}
+% |\k@SI@full@RadiusBohr| is Bohr radius of an atom in SI units with full
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@RadiusBohr}{%
+\ensuremath{%
+5.292\expandafter\physconst@decimalsseparator%
+006\expandafter\physconst@decimalsseparator%
+59%
+\times 10^{-8}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@RadiusBohr}
+% |\k@cgs@short@RadiusBohr| is Bohr radius of an atom in cgs units with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@RadiusBohr}{%
+\ensuremath{%
+5.29%
+\times 10^{-6}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@RadiusBohr}
+% |\k@cgs@full@RadiusBohr| is Bohr radius of an atom in cgs units with full
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@RadiusBohr}{%
+\ensuremath{%
+5.292\expandafter\physconst@decimalsseparator%
+006\expandafter\physconst@decimalsseparator%
+59%
+\times 10^{-6}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kRadiusBohr}
+% |\kRadiusBohr| is Bohr radius of an atom.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRadiusBohr}{%
+\k@SI@short@RadiusBohr}
+\else
+\DeclareRobustCommand {\kRadiusBohr}{%
+\k@SI@full@RadiusBohr}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRadiusBohr}{%
+\k@cgs@short@RadiusBohr}
+\else
+\DeclareRobustCommand {\kRadiusBohr}{%
+\k@cgs@full@RadiusBohr}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@AstronomicalUnit}
+% |\k@SI@short@AstronomicalUnit| is the astronomical unit (the average distance
+% between the Earth and the Sun) in SI units with reduced precision.
+% Source: IAU~Resolution~B2~2012
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@AstronomicalUnit}{%
+\ensuremath{%
+1.50%
+\times 10^{11}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@AstronomicalUnit}
+% |\k@SI@full@AstronomicalUnit| is the astronomical unit (the average distance
+% between the Earth and the Sun) in SI units with full precision.
+% Source: IAU~Resolution~B2~2012
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@AstronomicalUnit}{%
+\ensuremath{%
+1.495\expandafter\physconst@decimalsseparator%
+978\expandafter\physconst@decimalsseparator%
+707%
+\times 10^{11}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@AstronomicalUnit}
+% |\k@cgs@short@AstronomicalUnit| is the astronomical unit (the average
+% distance between the Earth and the Sun) in cgs units with reduced precision.
+% Source: IAU~Resolution~B2~2012
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@AstronomicalUnit}{%
+\ensuremath{%
+1.50%
+\times 10^{13}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@AstronomicalUnit}
+% |\k@cgs@full@AstronomicalUnit| is the astronomical unit (the average distance
+% between the Earth and the Sun) in cgs units with full precision.
+% Source: IAU~Resolution~B2~2012
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@AstronomicalUnit}{%
+\ensuremath{%
+1.495\expandafter\physconst@decimalsseparator%
+978\expandafter\physconst@decimalsseparator%
+707%
+\times 10^{13}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kAstronomicalUnit}
+% |\kAstronomicalUnit| is the astronomical unit (the average distance between
+% the Earth and the Sun).
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kAstronomicalUnit}{%
+\k@SI@short@AstronomicalUnit}
+\else
+\DeclareRobustCommand {\kAstronomicalUnit}{%
+\k@SI@full@AstronomicalUnit}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kAstronomicalUnit}{%
+\k@cgs@short@AstronomicalUnit}
+\else
+\DeclareRobustCommand {\kAstronomicalUnit}{%
+\k@cgs@full@AstronomicalUnit}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Parsec}
+% |\k@SI@short@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in
+% SI units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Parsec}{%
+\ensuremath{%
+3.09%
+\times 10^{16}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Parsec}
+% |\k@SI@full@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in SI
+% units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Parsec}{%
+\ensuremath{%
+3.085\expandafter\physconst@decimalsseparator%
+677\expandafter\physconst@decimalsseparator%
+581%
+\times 10^{16}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Parsec}
+% |\k@cgs@short@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in
+% cgs units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Parsec}{%
+\ensuremath{%
+3.09%
+\times 10^{18}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Parsec}
+% |\k@cgs@full@Parsec| is the length of a parsec ($\frac{648000\au}{\pi}$) in
+% cgs units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Parsec}{%
+\ensuremath{%
+3.085\expandafter\physconst@decimalsseparator%
+677\expandafter\physconst@decimalsseparator%
+581%
+\times 10^{18}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kParsec}
+% |\kParsec| is the length of a parsec ($\frac{648000\au}{\pi}$).
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kParsec}{%
+\k@SI@short@Parsec}
+\else
+\DeclareRobustCommand {\kParsec}{%
+\k@SI@full@Parsec}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kParsec}{%
+\k@cgs@short@Parsec}
+\else
+\DeclareRobustCommand {\kParsec}{%
+\k@cgs@full@Parsec}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@RadiusSun}
+% |\k@SI@short@RadiusSun| is the mean radius of the Sun in SI units with
+% reduced precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@RadiusSun}{%
+\ensuremath{%
+6.96%
+\times 10^{8}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@RadiusSun}
+% |\k@SI@full@RadiusSun| is the mean radius of the Sun in SI units with full
+% precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@RadiusSun}{%
+\ensuremath{%
+6.957%
+\times 10^{8}\m}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@RadiusSun}
+% |\k@cgs@short@RadiusSun| is the mean radius of the Sun in cgs units with
+% reduced precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@RadiusSun}{%
+\ensuremath{%
+6.96%
+\times 10^{10}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@RadiusSun}
+% |\k@cgs@full@RadiusSun| is the mean radius of the Sun in cgs units with full
+% precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@RadiusSun}{%
+\ensuremath{%
+6.957%
+\times 10^{10}\cm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kRadiusSun}
+% |\kRadiusSun| is the mean radius of the Sun.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRadiusSun}{%
+\k@SI@short@RadiusSun}
+\else
+\DeclareRobustCommand {\kRadiusSun}{%
+\k@SI@full@RadiusSun}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRadiusSun}{%
+\k@cgs@short@RadiusSun}
+\else
+\DeclareRobustCommand {\kRadiusSun}{%
+\k@cgs@full@RadiusSun}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Energy, Power, and Luminosity}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Rydberg}
+% |\k@SI@short@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in SI units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Rydberg}{%
+\ensuremath{%
+2.18%
+\times 10^{-21}\Joule}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Rydberg}
+% |\k@SI@full@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in SI units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Rydberg}{%
+\ensuremath{%
+2.179\expandafter\physconst@decimalsseparator%
+775\expandafter\physconst@decimalsseparator%
+77%
+\times 10^{-21}\Joule}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Rydberg}
+% |\k@cgs@short@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in cgs units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Rydberg}{%
+\ensuremath{%
+2.18%
+\times 10^{-14}\erg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Rydberg}
+% |\k@cgs@full@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in cgs units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Rydberg}{%
+\ensuremath{%
+2.179\expandafter\physconst@decimalsseparator%
+775\expandafter\physconst@decimalsseparator%
+77%
+\times 10^{-14}\erg}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@Rydberg}
+% |\k@eV@short@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in eV with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@Rydberg}{%
+\ensuremath{%
+1.36%
+\times 10^{-2}\eV}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@Rydberg}
+% |\k@eV@full@Rydberg| is the Rydberg energy (the binding energy of Hydrogen)
+% in eV with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@Rydberg}{%
+\ensuremath{%
+1.360\expandafter\physconst@decimalsseparator%
+509\expandafter\physconst@decimalsseparator%
+03%
+\times 10^{-2}\eV}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kRydberg}
+% |\kRydberg| is the Rydberg energy (the binding energy of Hydrogen).
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRydberg}{%
+\k@SI@short@Rydberg}
+\else
+\DeclareRobustCommand {\kRydberg}{%
+\k@SI@full@Rydberg}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRydberg}{%
+\k@cgs@short@Rydberg}
+\else
+\DeclareRobustCommand {\kRydberg}{%
+\k@cgs@full@Rydberg}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVRydberg}
+% |\keVRydberg| is the Rydberg energy (the binding energy of Hydrogen).
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVRydberg}{%
+\k@eV@short@Rydberg}
+\else
+\DeclareRobustCommand {\keVRydberg}{%
+\k@eV@full@Rydberg}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@LuminositySun}
+% |\k@SI@short@LuminositySun| is the luminosity of the Sun in SI units with
+% reduced precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@LuminositySun}{%
+\ensuremath{%
+3.83%
+\times 10^{26}\Watt}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@LuminositySun}
+% |\k@SI@full@LuminositySun| is the luminosity of the Sun in SI units with full
+% precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@LuminositySun}{%
+\ensuremath{%
+3.828%
+\times 10^{26}\Watt}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@LuminositySun}
+% |\k@cgs@short@LuminositySun| is the luminosity of the Sun in cgs units with
+% reduced precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@LuminositySun}{%
+\ensuremath{%
+3.83%
+\times 10^{33}\erg\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@LuminositySun}
+% |\k@cgs@full@LuminositySun| is the luminosity of the Sun in cgs units with
+% full precision.
+% Source: IAU~Resolution~B3~2015
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@LuminositySun}{%
+\ensuremath{%
+3.828%
+\times 10^{33}\erg\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kLuminositySun}
+% |\kLuminositySun| is the luminosity of the Sun.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kLuminositySun}{%
+\k@SI@short@LuminositySun}
+\else
+\DeclareRobustCommand {\kLuminositySun}{%
+\k@SI@full@LuminositySun}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kLuminositySun}{%
+\k@cgs@short@LuminositySun}
+\else
+\DeclareRobustCommand {\kLuminositySun}{%
+\k@cgs@full@LuminositySun}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Pressure}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@PressureAtmosphere}
+% |\k@SI@short@PressureAtmosphere| is the standard atmospheric pressure in SI
+% units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@PressureAtmosphere}{%
+\ensuremath{%
+1.01%
+\times 10^{5}\Pa}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@PressureAtmosphere}
+% |\k@SI@full@PressureAtmosphere| is the standard atmospheric pressure in SI
+% units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@PressureAtmosphere}{%
+\ensuremath{%
+1.013\expandafter\physconst@decimalsseparator%
+25%
+\times 10^{5}\Pa}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@PressureAtmosphere}
+% |\k@cgs@short@PressureAtmosphere| is the standard atmospheric pressure in cgs
+% units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@PressureAtmosphere}{%
+\ensuremath{%
+1.01\barP[m]}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@PressureAtmosphere}
+% |\k@cgs@full@PressureAtmosphere| is the standard atmospheric pressure in cgs
+% units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@PressureAtmosphere}{%
+\ensuremath{%
+1.013\expandafter\physconst@decimalsseparator%
+25\barP[m]}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kPressureAtmosphere}
+% |\kPressureAtmosphere| is the standard atmospheric pressure.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPressureAtmosphere}{%
+\k@SI@short@PressureAtmosphere}
+\else
+\DeclareRobustCommand {\kPressureAtmosphere}{%
+\k@SI@full@PressureAtmosphere}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPressureAtmosphere}{%
+\k@cgs@short@PressureAtmosphere}
+\else
+\DeclareRobustCommand {\kPressureAtmosphere}{%
+\k@cgs@full@PressureAtmosphere}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@PressureStandard}
+% |\k@SI@short@PressureStandard| is the standard atmospheric pressure in SI
+% units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@PressureStandard}{%
+\ensuremath{%
+1.00%
+\times 10^{5}\Pa}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@PressureStandard}
+% |\k@SI@full@PressureStandard| is the standard atmospheric pressure in SI
+% units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@PressureStandard}{%
+\ensuremath{%
+1.000\expandafter\physconst@decimalsseparator%
+00%
+\times 10^{5}\Pa}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@PressureStandard}
+% |\k@cgs@short@PressureStandard| is the standard atmospheric pressure in cgs
+% units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@PressureStandard}{%
+\ensuremath{%
+1.00\barP[m]}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@PressureStandard}
+% |\k@cgs@full@PressureStandard| is the standard atmospheric pressure in cgs
+% units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@PressureStandard}{%
+\ensuremath{%
+1.000\expandafter\physconst@decimalsseparator%
+00\barP[m]}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kPressureStandard}
+% |\kPressureStandard| is the standard atmospheric pressure.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPressureStandard}{%
+\k@SI@short@PressureStandard}
+\else
+\DeclareRobustCommand {\kPressureStandard}{%
+\k@SI@full@PressureStandard}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPressureStandard}{%
+\k@cgs@short@PressureStandard}
+\else
+\DeclareRobustCommand {\kPressureStandard}{%
+\k@cgs@full@PressureStandard}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Velocity, Speed and Acceleration}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@SpeedLight}
+% |\k@SI@short@SpeedLight| is the speed of light in SI units with reduced
+% precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@SpeedLight}{%
+\ensuremath{%
+3.00%
+\times 10^{8}\m\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@SpeedLight}
+% |\k@SI@full@SpeedLight| is the speed of light in SI units with full precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@SpeedLight}{%
+\ensuremath{%
+2.997\expandafter\physconst@decimalsseparator%
+924\expandafter\physconst@decimalsseparator%
+58%
+\times 10^{8}\m\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@SpeedLight}
+% |\k@cgs@short@SpeedLight| is the speed of light in cgs units with reduced
+% precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@SpeedLight}{%
+\ensuremath{%
+3.00%
+\times 10^{10}\cm\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@SpeedLight}
+% |\k@cgs@full@SpeedLight| is the speed of light in cgs units with full
+% precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@SpeedLight}{%
+\ensuremath{%
+2.997\expandafter\physconst@decimalsseparator%
+924\expandafter\physconst@decimalsseparator%
+58%
+\times 10^{10}\cm\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kSpeedLight}
+% |\kSpeedLight| is the speed of light.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kSpeedLight}{%
+\k@SI@short@SpeedLight}
+\else
+\DeclareRobustCommand {\kSpeedLight}{%
+\k@SI@full@SpeedLight}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kSpeedLight}{%
+\k@cgs@short@SpeedLight}
+\else
+\DeclareRobustCommand {\kSpeedLight}{%
+\k@cgs@full@SpeedLight}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@AccelGravity}
+% |\k@SI@short@AccelGravity| is the accelertion due to gravity at the surface
+% of the Earth in SI units with reduced precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@AccelGravity}{%
+\ensuremath{%
+6.67%
+\times 10^{-11}\N\kg^{-2}\m^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@AccelGravity}
+% |\k@SI@full@AccelGravity| is the accelertion due to gravity at the surface of
+% the Earth in SI units with full precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@AccelGravity}{%
+\ensuremath{%
+6.674\expandafter\physconst@decimalsseparator%
+30%
+\times 10^{-11}\N\kg^{-2}\m^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@AccelGravity}
+% |\k@cgs@short@AccelGravity| is the accelertion due to gravity at the surface
+% of the Earth in cgs units with reduced precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@AccelGravity}{%
+\ensuremath{%
+6.67%
+\times 10^{-8}\dyne\gm^{-2}\cm^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@AccelGravity}
+% |\k@cgs@full@AccelGravity| is the accelertion due to gravity at the surface
+% of the Earth in cgs units with full precision.
+% Source: CODATA 2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@AccelGravity}{%
+\ensuremath{%
+6.674\expandafter\physconst@decimalsseparator%
+30%
+\times 10^{-8}\dyne\gm^{-2}\cm^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kAccelGravity}
+% |\kAccelGravity| is the accelertion due to gravity at the surface of the
+% Earth.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kAccelGravity}{%
+\k@SI@short@AccelGravity}
+\else
+\DeclareRobustCommand {\kAccelGravity}{%
+\k@SI@full@AccelGravity}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kAccelGravity}{%
+\k@cgs@short@AccelGravity}
+\else
+\DeclareRobustCommand {\kAccelGravity}{%
+\k@cgs@full@AccelGravity}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%
+%\subsection{Other Constants}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Coulomb}
+% |\k@SI@short@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$) in
+% SI units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Coulomb}{%
+\ensuremath{%
+8.99%
+\times 10^{13}\N\m^2\Coulomb^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Coulomb}
+% |\k@SI@full@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$) in
+% SI units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Coulomb}{%
+\ensuremath{%
+8.987\expandafter\physconst@decimalsseparator%
+551\expandafter\physconst@decimalsseparator%
+79%
+\times 10^{13}\N\m^2\Coulomb^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Coulomb}
+% |\k@cgs@short@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$)
+% in cgs units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Coulomb}{%
+\ensuremath{%
+1.00}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Coulomb}
+% |\k@cgs@full@Coulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$) in
+% cgs units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Coulomb}{%
+\ensuremath{%
+1.000\expandafter\physconst@decimalsseparator%
+000\expandafter\physconst@decimalsseparator%
+00}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kCoulomb}
+% |\kCoulomb| is the Coulomb constant ($\frac{1}{4\pi\epsilon_0}$).
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kCoulomb}{%
+\k@SI@short@Coulomb}
+\else
+\DeclareRobustCommand {\kCoulomb}{%
+\k@SI@full@Coulomb}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kCoulomb}{%
+\k@cgs@short@Coulomb}
+\else
+\DeclareRobustCommand {\kCoulomb}{%
+\k@cgs@full@Coulomb}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@VacuumPermittivity}
+% |\k@SI@short@VacuumPermittivity| is the electric permittivity of the vacuum
+% in SI units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@VacuumPermittivity}{%
+\ensuremath{%
+8.85%
+\times 10^{-12}\Farad\m^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@VacuumPermittivity}
+% |\k@SI@full@VacuumPermittivity| is the electric permittivity of the vacuum in
+% SI units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@VacuumPermittivity}{%
+\ensuremath{%
+8.854\expandafter\physconst@decimalsseparator%
+187\expandafter\physconst@decimalsseparator%
+812\expandafter\physconst@decimalsseparator%
+8%
+\times 10^{-12}\Farad\m^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@VacuumPermittivity}
+% |\k@cgs@short@VacuumPermittivity| is the electric permittivity of the vacuum
+% in cgs units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@VacuumPermittivity}{%
+\ensuremath{%
+7.96%
+\times 10^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@VacuumPermittivity}
+% |\k@cgs@full@VacuumPermittivity| is the electric permittivity of the vacuum
+% in cgs units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@VacuumPermittivity}{%
+\ensuremath{%
+7.957\expandafter\physconst@decimalsseparator%
+747\expandafter\physconst@decimalsseparator%
+154\expandafter\physconst@decimalsseparator%
+6%
+\times 10^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kVacuumPermittivity}
+% |\kVacuumPermittivity| is the electric permittivity of the vacuum.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kVacuumPermittivity}{%
+\k@SI@short@VacuumPermittivity}
+\else
+\DeclareRobustCommand {\kVacuumPermittivity}{%
+\k@SI@full@VacuumPermittivity}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kVacuumPermittivity}{%
+\k@cgs@short@VacuumPermittivity}
+\else
+\DeclareRobustCommand {\kVacuumPermittivity}{%
+\k@cgs@full@VacuumPermittivity}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@VacuumPermeability}
+% |\k@SI@short@VacuumPermeability| is the magnetic permeability of the vacuum
+% in SI units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@VacuumPermeability}{%
+\ensuremath{%
+8.85%
+\times 10^{-12}\N\Amp^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@VacuumPermeability}
+% |\k@SI@full@VacuumPermeability| is the magnetic permeability of the vacuum in
+% SI units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@VacuumPermeability}{%
+\ensuremath{%
+8.854\expandafter\physconst@decimalsseparator%
+187\expandafter\physconst@decimalsseparator%
+812\expandafter\physconst@decimalsseparator%
+8%
+\times 10^{-12}\N\Amp^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@VacuumPermeability}
+% |\k@cgs@short@VacuumPermeability| is the magnetic permeability of the vacuum
+% in cgs units with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@VacuumPermeability}{%
+\ensuremath{%
+1.26%
+\times 10^{1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@VacuumPermeability}
+% |\k@cgs@full@VacuumPermeability| is the magnetic permeability of the vacuum
+% in cgs units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@VacuumPermeability}{%
+\ensuremath{%
+1.256\expandafter\physconst@decimalsseparator%
+637\expandafter\physconst@decimalsseparator%
+061\expandafter\physconst@decimalsseparator%
+4%
+\times 10^{1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kVacuumPermeability}
+% |\kVacuumPermeability| is the magnetic permeability of the vacuum.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kVacuumPermeability}{%
+\k@SI@short@VacuumPermeability}
+\else
+\DeclareRobustCommand {\kVacuumPermeability}{%
+\k@SI@full@VacuumPermeability}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kVacuumPermeability}{%
+\k@cgs@short@VacuumPermeability}
+\else
+\DeclareRobustCommand {\kVacuumPermeability}{%
+\k@cgs@full@VacuumPermeability}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@short@VacuumImpedance}
+% |\k@short@VacuumImpedance| is the characteristic impedance of the vacuum with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@short@VacuumImpedance}{%
+\ensuremath{%
+3.77%
+\times 10^{2}\Ohm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@full@VacuumImpedance}
+% |\k@full@VacuumImpedance| is the characteristic impedance of the vacuum with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@full@VacuumImpedance}{%
+\ensuremath{%
+3.767\expandafter\physconst@decimalsseparator%
+303\expandafter\physconst@decimalsseparator%
+136\expandafter\physconst@decimalsseparator%
+68%
+\times 10^{2}\Ohm}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kVacuumImpedance}
+% |\kVacuumImpedance| is the characteristic impedance of the vacuum.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kVacuumImpedance}{%
+\k@short@VacuumImpedance}
+\else
+\DeclareRobustCommand {\kVacuumImpedance}{%
+\k@full@VacuumImpedance}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Boltzmann}
+% |\k@SI@short@Boltzmann| is the Boltzmann constant in SI units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Boltzmann}{%
+\ensuremath{%
+1.38%
+\times 10^{-23}\J\K^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Boltzmann}
+% |\k@SI@full@Boltzmann| is the Boltzmann constant in SI units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Boltzmann}{%
+\ensuremath{%
+1.380\expandafter\physconst@decimalsseparator%
+649%
+\times 10^{-23}\J\K^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Boltzmann}
+% |\k@cgs@short@Boltzmann| is the Boltzmann constant in cgs units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Boltzmann}{%
+\ensuremath{%
+1.38%
+\times 10^{-16}\erg\K^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Boltzmann}
+% |\k@cgs@full@Boltzmann| is the Boltzmann constant in cgs units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Boltzmann}{%
+\ensuremath{%
+1.380\expandafter\physconst@decimalsseparator%
+649%
+\times 10^{-16}\erg\K^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@Boltzmann}
+% |\k@eV@short@Boltzmann| is the Boltzmann constant in eV with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@Boltzmann}{%
+\ensuremath{%
+8.62%
+\times 10^{-5}\eV\K^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@Boltzmann}
+% |\k@eV@full@Boltzmann| is the Boltzmann constant in eV with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@Boltzmann}{%
+\ensuremath{%
+8.617\expandafter\physconst@decimalsseparator%
+333%
+\times 10^{-5}\eV\K^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kBoltzmann}
+% |\kBoltzmann| is the Boltzmann constant.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kBoltzmann}{%
+\k@SI@short@Boltzmann}
+\else
+\DeclareRobustCommand {\kBoltzmann}{%
+\k@SI@full@Boltzmann}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kBoltzmann}{%
+\k@cgs@short@Boltzmann}
+\else
+\DeclareRobustCommand {\kBoltzmann}{%
+\k@cgs@full@Boltzmann}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVBoltzmann}
+% |\keVBoltzmann| is the Boltzmann constant.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVBoltzmann}{%
+\k@eV@short@Boltzmann}
+\else
+\DeclareRobustCommand {\keVBoltzmann}{%
+\k@eV@full@Boltzmann}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Planck}
+% |\k@SI@short@Planck| is the Planck constant in SI units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Planck}{%
+\ensuremath{%
+6.63%
+\times 10^{-34}\J\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Planck}
+% |\k@SI@full@Planck| is the Planck constant in SI units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Planck}{%
+\ensuremath{%
+6.626\expandafter\physconst@decimalsseparator%
+070\expandafter\physconst@decimalsseparator%
+15%
+\times 10^{-34}\J\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Planck}
+% |\k@cgs@short@Planck| is the Planck constant in cgs units with reduced
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Planck}{%
+\ensuremath{%
+6.63%
+\times 10^{-27}\erg\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Planck}
+% |\k@cgs@full@Planck| is the Planck constant in cgs units with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Planck}{%
+\ensuremath{%
+6.626\expandafter\physconst@decimalsseparator%
+070\expandafter\physconst@decimalsseparator%
+15%
+\times 10^{-27}\erg\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@Planck}
+% |\k@eV@short@Planck| is the Planck constant in eV with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@Planck}{%
+\ensuremath{%
+4.14%
+\times 10^{-15}\eV\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@Planck}
+% |\k@eV@full@Planck| is the Planck constant in eV with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@Planck}{%
+\ensuremath{%
+4.135\expandafter\physconst@decimalsseparator%
+667\expandafter\physconst@decimalsseparator%
+70%
+\times 10^{-15}\eV\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kPlanck}
+% |\kPlanck| is the Planck constant.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPlanck}{%
+\k@SI@short@Planck}
+\else
+\DeclareRobustCommand {\kPlanck}{%
+\k@SI@full@Planck}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPlanck}{%
+\k@cgs@short@Planck}
+\else
+\DeclareRobustCommand {\kPlanck}{%
+\k@cgs@full@Planck}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVPlanck}
+% |\keVPlanck| is the Planck constant.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVPlanck}{%
+\k@eV@short@Planck}
+\else
+\DeclareRobustCommand {\keVPlanck}{%
+\k@eV@full@Planck}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@PlanckReduced}
+% |\k@SI@short@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in SI units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@PlanckReduced}{%
+\ensuremath{%
+1.05%
+\times 10^{-34}\J\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@PlanckReduced}
+% |\k@SI@full@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in SI units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@PlanckReduced}{%
+\ensuremath{%
+1.054\expandafter\physconst@decimalsseparator%
+571\expandafter\physconst@decimalsseparator%
+82%
+\times 10^{-34}\J\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@PlanckReduced}
+% |\k@cgs@short@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in cgs units with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@PlanckReduced}{%
+\ensuremath{%
+1.05%
+\times 10^{-27}\erg\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@PlanckReduced}
+% |\k@cgs@full@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in cgs units with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@PlanckReduced}{%
+\ensuremath{%
+1.054\expandafter\physconst@decimalsseparator%
+571\expandafter\physconst@decimalsseparator%
+82%
+\times 10^{-27}\erg\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@short@PlanckReduced}
+% |\k@eV@short@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in eV with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@short@PlanckReduced}{%
+\ensuremath{%
+6.58%
+\times 10^{-16}\eV\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@eV@full@PlanckReduced}
+% |\k@eV@full@PlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$ in eV with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@eV@full@PlanckReduced}{%
+\ensuremath{%
+6.582\expandafter\physconst@decimalsseparator%
+119\expandafter\physconst@decimalsseparator%
+57%
+\times 10^{-16}\eV\Sec}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kPlanckReduced}
+% |\kPlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPlanckReduced}{%
+\k@SI@short@PlanckReduced}
+\else
+\DeclareRobustCommand {\kPlanckReduced}{%
+\k@SI@full@PlanckReduced}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kPlanckReduced}{%
+\k@cgs@short@PlanckReduced}
+\else
+\DeclareRobustCommand {\kPlanckReduced}{%
+\k@cgs@full@PlanckReduced}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keVPlanckReduced}
+% |\keVPlanckReduced| is the Reduced Planck constant
+% $\left(\frac{h}{2\pi}\right)$.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\keVPlanckReduced}{%
+\k@eV@short@PlanckReduced}
+\else
+\DeclareRobustCommand {\keVPlanckReduced}{%
+\k@eV@full@PlanckReduced}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Gravity}
+% |\k@SI@short@Gravity| is Newton's gravitational constant in SI units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Gravity}{%
+\ensuremath{%
+6.67%
+\times 10^{-15}\N\kg^{-2}\m^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Gravity}
+% |\k@SI@full@Gravity| is Newton's gravitational constant in SI units with full
+% precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Gravity}{%
+\ensuremath{%
+6.674\expandafter\physconst@decimalsseparator%
+30%
+\times 10^{-15}\N\kg^{-2}\m^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Gravity}
+% |\k@cgs@short@Gravity| is Newton's gravitational constant in cgs units with
+% reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Gravity}{%
+\ensuremath{%
+6.67%
+\times 10^{-8}\dyne\gm^{-2}\cm^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Gravity}
+% |\k@cgs@full@Gravity| is Newton's gravitational constant in cgs units with
+% full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Gravity}{%
+\ensuremath{%
+6.674\expandafter\physconst@decimalsseparator%
+30%
+\times 10^{-8}\dyne\gm^{-2}\cm^2}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kGravity}
+% |\kGravity| is Newton's gravitational constant.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kGravity}{%
+\k@SI@short@Gravity}
+\else
+\DeclareRobustCommand {\kGravity}{%
+\k@SI@full@Gravity}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kGravity}{%
+\k@cgs@short@Gravity}
+\else
+\DeclareRobustCommand {\kGravity}{%
+\k@cgs@full@Gravity}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@StefanBoltzmann}
+% |\k@SI@short@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in SI units with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@StefanBoltzmann}{%
+\ensuremath{%
+5.67%
+\times 10^{-6}\J\Kelvin^{-4}\m^{-2}\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@StefanBoltzmann}
+% |\k@SI@full@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in SI units with full
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@StefanBoltzmann}{%
+\ensuremath{%
+5.670\expandafter\physconst@decimalsseparator%
+374%
+\times 10^{-6}\J\Kelvin^{-4}\m^{-2}\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@StefanBoltzmann}
+% |\k@cgs@short@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in cgs units with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@StefanBoltzmann}{%
+\ensuremath{%
+5.67%
+\times 10^{-5}\erg\Kelvin^{-4}\cm^{-2}\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@StefanBoltzmann}
+% |\k@cgs@full@StefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$ in cgs units with full
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@StefanBoltzmann}{%
+\ensuremath{%
+5.670\expandafter\physconst@decimalsseparator%
+374%
+\times 10^{-5}\erg\Kelvin^{-4}\cm^{-2}\Sec^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kStefanBoltzmann}
+% |\kStefanBoltzmann| is the Stefan-Boltzmann blackbody constant
+% $\left(\frac{2\pi^5k_\mathrm{B}}{15h^3c^2}\right)$.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kStefanBoltzmann}{%
+\k@SI@short@StefanBoltzmann}
+\else
+\DeclareRobustCommand {\kStefanBoltzmann}{%
+\k@SI@full@StefanBoltzmann}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kStefanBoltzmann}{%
+\k@cgs@short@StefanBoltzmann}
+\else
+\DeclareRobustCommand {\kStefanBoltzmann}{%
+\k@cgs@full@StefanBoltzmann}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@short@Radiation}
+% |\k@SI@short@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in SI units with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@short@Radiation}{%
+\ensuremath{%
+7.57%
+\times 10^{-16}\Joule\m^{-3}\Kelvin^{-4}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@SI@full@Radiation}
+% |\k@SI@full@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in SI units with full
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@SI@full@Radiation}{%
+\ensuremath{%
+7.565\expandafter\physconst@decimalsseparator%
+733%
+\times 10^{-16}\Joule\m^{-3}\Kelvin^{-4}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@short@Radiation}
+% |\k@cgs@short@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in cgs units with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@short@Radiation}{%
+\ensuremath{%
+7.57%
+\times 10^{-15}\erg\cm^{-3}\Kelvin^{-4}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@cgs@full@Radiation}
+% |\k@cgs@full@Radiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$ in cgs units with full
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@cgs@full@Radiation}{%
+\ensuremath{%
+7.565\expandafter\physconst@decimalsseparator%
+733%
+\times 10^{-15}\erg\cm^{-3}\Kelvin^{-4}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kRadiation}
+% |\kRadiation| is the radiation constant, $a
+% \left(\frac{8\pi^5k_\mathrm{B}^4}{15c^3h^3}\right)$.
+%
+% \begin{macrocode}
+\ifx\cgsunits\undefined
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRadiation}{%
+\k@SI@short@Radiation}
+\else
+\DeclareRobustCommand {\kRadiation}{%
+\k@SI@full@Radiation}
+\fi
+\else
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kRadiation}{%
+\k@cgs@short@Radiation}
+\else
+\DeclareRobustCommand {\kRadiation}{%
+\k@cgs@full@Radiation}
+\fi
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@short@FineStructure}
+% |\k@short@FineStructure| is the fine structure constant with reduced
+% precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@short@FineStructure}{%
+\ensuremath{%
+7.30%
+\times 10^{-3}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@full@FineStructure}
+% |\k@full@FineStructure| is the fine structure constant with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@full@FineStructure}{%
+\ensuremath{%
+7.297\expandafter\physconst@decimalsseparator%
+352\expandafter\physconst@decimalsseparator%
+57%
+\times 10^{-3}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kFineStructure}
+% |\kFineStructure| is the fine structure constant.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kFineStructure}{%
+\k@short@FineStructure}
+\else
+\DeclareRobustCommand {\kFineStructure}{%
+\k@full@FineStructure}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@short@FineStructureReciprocal}
+% |\k@short@FineStructureReciprocal| is the reciprocal of the fine structure
+% constant with reduced precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@short@FineStructureReciprocal}{%
+\ensuremath{%
+1.37%
+\times 10^{2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@full@FineStructureReciprocal}
+% |\k@full@FineStructureReciprocal| is the reciprocal of the fine structure
+% constant with full precision.
+% Source: Calculated
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@full@FineStructureReciprocal}{%
+\ensuremath{%
+1.370\expandafter\physconst@decimalsseparator%
+359\expandafter\physconst@decimalsseparator%
+99%
+\times 10^{2}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kFineStructureReciprocal}
+% |\kFineStructureReciprocal| is the reciprocal of the fine structure constant.
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kFineStructureReciprocal}{%
+\k@short@FineStructureReciprocal}
+\else
+\DeclareRobustCommand {\kFineStructureReciprocal}{%
+\k@full@FineStructureReciprocal}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@short@Avogadro}
+% |\k@short@Avogadro| is Avogadro's Number (the number of particles in a mole)
+% with reduced precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@short@Avogadro}{%
+\ensuremath{%
+6.02%
+\times 10^{23}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\k@full@Avogadro}
+% |\k@full@Avogadro| is Avogadro's Number (the number of particles in a mole)
+% with full precision.
+% Source: CODATA~2018
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\k@full@Avogadro}{%
+\ensuremath{%
+6.022\expandafter\physconst@decimalsseparator%
+407\expandafter\physconst@decimalsseparator%
+60%
+\times 10^{23}}}
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kAvogadro}
+% |\kAvogadro| is Avogadro's Number (the number of particles in a mole).
+%
+% \begin{macrocode}
+\ifx\shortconst\undefined
+\DeclareRobustCommand {\kAvogadro}{%
+\k@short@Avogadro}
+\else
+\DeclareRobustCommand {\kAvogadro}{%
+\k@full@Avogadro}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%\iffalse
+%</package>
+%\fi
+% \CheckSum{0}
+% \Finale
+\makeatother
diff --git a/macros/latex/contrib/physconst/physconst.ins b/macros/latex/contrib/physconst/physconst.ins
new file mode 100644
index 0000000000..a35d6f42eb
--- /dev/null
+++ b/macros/latex/contrib/physconst/physconst.ins
@@ -0,0 +1,56 @@
+%%
+%% Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+%% -----------------------------------------------------------
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+%% version 2006/05/20 or later.
+%%
+%%
+
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/physconst}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+version 2006/05/20 or later.
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{physconst.sty}{\from{physconst.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* physconst.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file physconst.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/physconst/physconst.pdf b/macros/latex/contrib/physconst/physconst.pdf
index b894900528..67867850bc 100644
--- a/macros/latex/contrib/physconst/physconst.pdf
+++ b/macros/latex/contrib/physconst/physconst.pdf
Binary files differ
diff --git a/macros/latex/contrib/physconst/physconst.sty b/macros/latex/contrib/physconst/physconst.sty
deleted file mode 100644
index 062d4927eb..0000000000
--- a/macros/latex/contrib/physconst/physconst.sty
+++ /dev/null
@@ -1,1235 +0,0 @@
-%%
-%% This is file `physconst.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% physconst.dtx (with options: `package')
-%%
-%% This is a generated file.
-%%
-%% Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
-%%
-%% This file may be distributed and/or modified under the conditions of
-%% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
-%% version 2006/05/20 or later.
-%%
-\NeedsTeXFormat{LaTeX2e}[1994/06/01]
- \ProvidesPackage{physconst}
- [2020/01/25 v1.0.1 physconst package]
-\RequirePackage{physunits}
-\DeclareOption{shortconst}{ \typeout{physconst: reduced precision}%
- \DeclareRobustCommand{\shortconst}{1} }
-\DeclareOption{cgs}{ \typeout{physconst: using cgs instead of SI}%
- \DeclareRobustCommand{\cgsunits}{1} }
-\DeclareOption{unseparatedecimals}{ \typeout{physconst:%
- long decimals are printed as x.xxxxxx instead of x.xxx~xxx}%
- \DeclareRobustCommand{\unseparatedecimals}{1} }
-\ProcessOptions\relax
-\makeatletter
-\ifx\unseparatedecimals\undefined
-\DeclareRobustCommand{\physconst@decimalsseparator}{\,}
-\else
-\DeclareRobustCommand{\physconst@decimalsseparator}{ }
-\fi
-\DeclareRobustCommand{\k@SI@short@MassElectron}{%
-\ensuremath{%
-9.11%
-\times 10^{-34}\kg}}
-\DeclareRobustCommand{\k@SI@full@MassElectron}{%
-\ensuremath{%
-9.108\expandafter\physconst@decimalsseparator%
-980\expandafter\physconst@decimalsseparator%
-087\expandafter\physconst@decimalsseparator%
-382%
-\times 10^{-34}\kg}}
-\DeclareRobustCommand{\k@cgs@short@MassElectron}{%
-\ensuremath{%
-9.11%
-\times 10^{-31}\gm}}
-\DeclareRobustCommand{\k@cgs@full@MassElectron}{%
-\ensuremath{%
-9.108\expandafter\physconst@decimalsseparator%
-980\expandafter\physconst@decimalsseparator%
-087\expandafter\physconst@decimalsseparator%
-382%
-\times 10^{-31}\gm}}
-\DeclareRobustCommand{\k@eV@short@MassElectron}{%
-\ensuremath{%
-5.69%
-\times 10^{-19}\eV\,c^{-2}}}
-\DeclareRobustCommand{\k@eV@full@MassElectron}{%
-\ensuremath{%
-5.685\expandafter\physconst@decimalsseparator%
-378\expandafter\physconst@decimalsseparator%
-187\expandafter\physconst@decimalsseparator%
-448%
-\times 10^{-19}\eV\,c^{-2}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassElectron}{%
-\k@SI@short@MassElectron}
-\else
-\DeclareRobustCommand {\kMassElectron}{%
-\k@SI@full@MassElectron}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassElectron}{%
-\k@cgs@short@MassElectron}
-\else
-\DeclareRobustCommand {\kMassElectron}{%
-\k@cgs@full@MassElectron}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVMassElectron}{%
-\k@eV@short@MassElectron}
-\else
-\DeclareRobustCommand {\keVMassElectron}{%
-\k@eV@full@MassElectron}
-\fi
-\DeclareRobustCommand{\k@SI@short@MassProton}{%
-\ensuremath{%
-1.67%
-\times 10^{-30}\kg}}
-\DeclareRobustCommand{\k@SI@full@MassProton}{%
-\ensuremath{%
-1.672\expandafter\physconst@decimalsseparator%
-547\expandafter\physconst@decimalsseparator%
-813\expandafter\physconst@decimalsseparator%
-969%
-\times 10^{-30}\kg}}
-\DeclareRobustCommand{\k@cgs@short@MassProton}{%
-\ensuremath{%
-1.67%
-\times 10^{-27}\gm}}
-\DeclareRobustCommand{\k@cgs@full@MassProton}{%
-\ensuremath{%
-1.672\expandafter\physconst@decimalsseparator%
-547\expandafter\physconst@decimalsseparator%
-813\expandafter\physconst@decimalsseparator%
-969%
-\times 10^{-27}\gm}}
-\DeclareRobustCommand{\k@eV@short@MassProton}{%
-\ensuremath{%
-1.04%
-\times 10^{-15}\eV\,c^{-2}}}
-\DeclareRobustCommand{\k@eV@full@MassProton}{%
-\ensuremath{%
-1.043\expandafter\physconst@decimalsseparator%
-922\expandafter\physconst@decimalsseparator%
-235\expandafter\physconst@decimalsseparator%
-836%
-\times 10^{-15}\eV\,c^{-2}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassProton}{%
-\k@SI@short@MassProton}
-\else
-\DeclareRobustCommand {\kMassProton}{%
-\k@SI@full@MassProton}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassProton}{%
-\k@cgs@short@MassProton}
-\else
-\DeclareRobustCommand {\kMassProton}{%
-\k@cgs@full@MassProton}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVMassProton}{%
-\k@eV@short@MassProton}
-\else
-\DeclareRobustCommand {\keVMassProton}{%
-\k@eV@full@MassProton}
-\fi
-\DeclareRobustCommand{\k@SI@short@MassHydrogen}{%
-\ensuremath{%
-1.67%
-\times 10^{-30}\kg}}
-\DeclareRobustCommand{\k@SI@full@MassHydrogen}{%
-\ensuremath{%
-1.673\expandafter\physconst@decimalsseparator%
-458\expandafter\physconst@decimalsseparator%
-687\expandafter\physconst@decimalsseparator%
-724%
-\times 10^{-30}\kg}}
-\DeclareRobustCommand{\k@cgs@short@MassHydrogen}{%
-\ensuremath{%
-1.67%
-\times 10^{-27}\gm}}
-\DeclareRobustCommand{\k@cgs@full@MassHydrogen}{%
-\ensuremath{%
-1.673\expandafter\physconst@decimalsseparator%
-458\expandafter\physconst@decimalsseparator%
-687\expandafter\physconst@decimalsseparator%
-724%
-\times 10^{-27}\gm}}
-\DeclareRobustCommand{\k@eV@short@MassHydrogen}{%
-\ensuremath{%
-1.04%
-\times 10^{-15}\eV\,c^{-2}}}
-\DeclareRobustCommand{\k@eV@full@MassHydrogen}{%
-\ensuremath{%
-1.044\expandafter\physconst@decimalsseparator%
-490\expandafter\physconst@decimalsseparator%
-758\expandafter\physconst@decimalsseparator%
-517%
-\times 10^{-15}\eV\,c^{-2}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassHydrogen}{%
-\k@SI@short@MassHydrogen}
-\else
-\DeclareRobustCommand {\kMassHydrogen}{%
-\k@SI@full@MassHydrogen}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassHydrogen}{%
-\k@cgs@short@MassHydrogen}
-\else
-\DeclareRobustCommand {\kMassHydrogen}{%
-\k@cgs@full@MassHydrogen}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVMassHydrogen}{%
-\k@eV@short@MassHydrogen}
-\else
-\DeclareRobustCommand {\keVMassHydrogen}{%
-\k@eV@full@MassHydrogen}
-\fi
-\DeclareRobustCommand{\k@SI@short@MassSun}{%
-\ensuremath{%
-1.99%
-\times 10^{30}\kg}}
-\DeclareRobustCommand{\k@SI@full@MassSun}{%
-\ensuremath{%
-1.988\expandafter\physconst@decimalsseparator%
-409\expandafter\physconst@decimalsseparator%
-9%
-\times 10^{30}\kg}}
-\DeclareRobustCommand{\k@cgs@short@MassSun}{%
-\ensuremath{%
-1.99%
-\times 10^{33}\gm}}
-\DeclareRobustCommand{\k@cgs@full@MassSun}{%
-\ensuremath{%
-1.988\expandafter\physconst@decimalsseparator%
-409\expandafter\physconst@decimalsseparator%
-9%
-\times 10^{33}\gm}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassSun}{%
-\k@SI@short@MassSun}
-\else
-\DeclareRobustCommand {\kMassSun}{%
-\k@SI@full@MassSun}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassSun}{%
-\k@cgs@short@MassSun}
-\else
-\DeclareRobustCommand {\kMassSun}{%
-\k@cgs@full@MassSun}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@MassAMU}{%
-\ensuremath{%
-1.66%
-\times 10^{-30}\kg}}
-\DeclareRobustCommand{\k@SI@full@MassAMU}{%
-\ensuremath{%
-1.660\expandafter\physconst@decimalsseparator%
-465\expandafter\physconst@decimalsseparator%
-492\expandafter\physconst@decimalsseparator%
-239%
-\times 10^{-30}\kg}}
-\DeclareRobustCommand{\k@cgs@short@MassAMU}{%
-\ensuremath{%
-1.66%
-\times 10^{-27}\gm}}
-\DeclareRobustCommand{\k@cgs@full@MassAMU}{%
-\ensuremath{%
-1.660\expandafter\physconst@decimalsseparator%
-465\expandafter\physconst@decimalsseparator%
-492\expandafter\physconst@decimalsseparator%
-239%
-\times 10^{-27}\gm}}
-\DeclareRobustCommand{\k@eV@short@MassAMU}{%
-\ensuremath{%
-1.04%
-\times 10^{-15}\eV\,c^{-2}}}
-\DeclareRobustCommand{\k@eV@full@MassAMU}{%
-\ensuremath{%
-1.036\expandafter\physconst@decimalsseparator%
-381\expandafter\physconst@decimalsseparator%
-043\expandafter\physconst@decimalsseparator%
-764%
-\times 10^{-15}\eV\,c^{-2}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassAMU}{%
-\k@SI@short@MassAMU}
-\else
-\DeclareRobustCommand {\kMassAMU}{%
-\k@SI@full@MassAMU}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kMassAMU}{%
-\k@cgs@short@MassAMU}
-\else
-\DeclareRobustCommand {\kMassAMU}{%
-\k@cgs@full@MassAMU}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVMassAMU}{%
-\k@eV@short@MassAMU}
-\else
-\DeclareRobustCommand {\keVMassAMU}{%
-\k@eV@full@MassAMU}
-\fi
-\DeclareRobustCommand{\k@SI@short@ChargeFundamental}{%
-\ensuremath{%
-1.60%
-\times 10^{-19}\Coulomb}}
-\DeclareRobustCommand{\k@SI@full@ChargeFundamental}{%
-\ensuremath{%
-1.602\expandafter\physconst@decimalsseparator%
-176\expandafter\physconst@decimalsseparator%
-634%
-\times 10^{-19}\Coulomb}}
-\DeclareRobustCommand{\k@cgs@short@ChargeFundamental}{%
-\ensuremath{%
-4.80%
-\times 10^{-10}\esu}}
-\DeclareRobustCommand{\k@cgs@full@ChargeFundamental}{%
-\ensuremath{%
-4.803\expandafter\physconst@decimalsseparator%
-204\expandafter\physconst@decimalsseparator%
-713%
-\times 10^{-10}\esu}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kChargeFundamental}{%
-\k@SI@short@ChargeFundamental}
-\else
-\DeclareRobustCommand {\kChargeFundamental}{%
-\k@SI@full@ChargeFundamental}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kChargeFundamental}{%
-\k@cgs@short@ChargeFundamental}
-\else
-\DeclareRobustCommand {\kChargeFundamental}{%
-\k@cgs@full@ChargeFundamental}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@ChargeElectron}{%
-\ensuremath{%
--1.60%
-\times 10^{-19}\Coulomb}}
-\DeclareRobustCommand{\k@SI@full@ChargeElectron}{%
-\ensuremath{%
--1.602\expandafter\physconst@decimalsseparator%
-176\expandafter\physconst@decimalsseparator%
-634%
-\times 10^{-19}\Coulomb}}
-\DeclareRobustCommand{\k@cgs@short@ChargeElectron}{%
-\ensuremath{%
--4.80%
-\times 10^{-10}\esu}}
-\DeclareRobustCommand{\k@cgs@full@ChargeElectron}{%
-\ensuremath{%
--4.803\expandafter\physconst@decimalsseparator%
-204\expandafter\physconst@decimalsseparator%
-713%
-\times 10^{-10}\esu}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kChargeElectron}{%
-\k@SI@short@ChargeElectron}
-\else
-\DeclareRobustCommand {\kChargeElectron}{%
-\k@SI@full@ChargeElectron}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kChargeElectron}{%
-\k@cgs@short@ChargeElectron}
-\else
-\DeclareRobustCommand {\kChargeElectron}{%
-\k@cgs@full@ChargeElectron}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@ChargeProton}{%
-\ensuremath{%
-1.60%
-\times 10^{-19}\Coulomb}}
-\DeclareRobustCommand{\k@SI@full@ChargeProton}{%
-\ensuremath{%
-1.602\expandafter\physconst@decimalsseparator%
-176\expandafter\physconst@decimalsseparator%
-634%
-\times 10^{-19}\Coulomb}}
-\DeclareRobustCommand{\k@cgs@short@ChargeProton}{%
-\ensuremath{%
-4.80%
-\times 10^{-10}\esu}}
-\DeclareRobustCommand{\k@cgs@full@ChargeProton}{%
-\ensuremath{%
-4.803\expandafter\physconst@decimalsseparator%
-204\expandafter\physconst@decimalsseparator%
-713%
-\times 10^{-10}\esu}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kChargeProton}{%
-\k@SI@short@ChargeProton}
-\else
-\DeclareRobustCommand {\kChargeProton}{%
-\k@SI@full@ChargeProton}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kChargeProton}{%
-\k@cgs@short@ChargeProton}
-\else
-\DeclareRobustCommand {\kChargeProton}{%
-\k@cgs@full@ChargeProton}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@RadiusBohr}{%
-\ensuremath{%
-5.29%
-\times 10^{-8}\m}}
-\DeclareRobustCommand{\k@SI@full@RadiusBohr}{%
-\ensuremath{%
-5.292\expandafter\physconst@decimalsseparator%
-006\expandafter\physconst@decimalsseparator%
-59%
-\times 10^{-8}\m}}
-\DeclareRobustCommand{\k@cgs@short@RadiusBohr}{%
-\ensuremath{%
-5.29%
-\times 10^{-6}\cm}}
-\DeclareRobustCommand{\k@cgs@full@RadiusBohr}{%
-\ensuremath{%
-5.292\expandafter\physconst@decimalsseparator%
-006\expandafter\physconst@decimalsseparator%
-59%
-\times 10^{-6}\cm}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRadiusBohr}{%
-\k@SI@short@RadiusBohr}
-\else
-\DeclareRobustCommand {\kRadiusBohr}{%
-\k@SI@full@RadiusBohr}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRadiusBohr}{%
-\k@cgs@short@RadiusBohr}
-\else
-\DeclareRobustCommand {\kRadiusBohr}{%
-\k@cgs@full@RadiusBohr}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@AstronomicalUnit}{%
-\ensuremath{%
-1.50%
-\times 10^{11}\m}}
-\DeclareRobustCommand{\k@SI@full@AstronomicalUnit}{%
-\ensuremath{%
-1.495\expandafter\physconst@decimalsseparator%
-978\expandafter\physconst@decimalsseparator%
-707%
-\times 10^{11}\m}}
-\DeclareRobustCommand{\k@cgs@short@AstronomicalUnit}{%
-\ensuremath{%
-1.50%
-\times 10^{13}\cm}}
-\DeclareRobustCommand{\k@cgs@full@AstronomicalUnit}{%
-\ensuremath{%
-1.495\expandafter\physconst@decimalsseparator%
-978\expandafter\physconst@decimalsseparator%
-707%
-\times 10^{13}\cm}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kAstronomicalUnit}{%
-\k@SI@short@AstronomicalUnit}
-\else
-\DeclareRobustCommand {\kAstronomicalUnit}{%
-\k@SI@full@AstronomicalUnit}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kAstronomicalUnit}{%
-\k@cgs@short@AstronomicalUnit}
-\else
-\DeclareRobustCommand {\kAstronomicalUnit}{%
-\k@cgs@full@AstronomicalUnit}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@Parsec}{%
-\ensuremath{%
-3.09%
-\times 10^{16}\m}}
-\DeclareRobustCommand{\k@SI@full@Parsec}{%
-\ensuremath{%
-3.085\expandafter\physconst@decimalsseparator%
-677\expandafter\physconst@decimalsseparator%
-581%
-\times 10^{16}\m}}
-\DeclareRobustCommand{\k@cgs@short@Parsec}{%
-\ensuremath{%
-3.09%
-\times 10^{18}\cm}}
-\DeclareRobustCommand{\k@cgs@full@Parsec}{%
-\ensuremath{%
-3.085\expandafter\physconst@decimalsseparator%
-677\expandafter\physconst@decimalsseparator%
-581%
-\times 10^{18}\cm}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kParsec}{%
-\k@SI@short@Parsec}
-\else
-\DeclareRobustCommand {\kParsec}{%
-\k@SI@full@Parsec}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kParsec}{%
-\k@cgs@short@Parsec}
-\else
-\DeclareRobustCommand {\kParsec}{%
-\k@cgs@full@Parsec}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@RadiusSun}{%
-\ensuremath{%
-6.96%
-\times 10^{8}\m}}
-\DeclareRobustCommand{\k@SI@full@RadiusSun}{%
-\ensuremath{%
-6.957%
-\times 10^{8}\m}}
-\DeclareRobustCommand{\k@cgs@short@RadiusSun}{%
-\ensuremath{%
-6.96%
-\times 10^{10}\cm}}
-\DeclareRobustCommand{\k@cgs@full@RadiusSun}{%
-\ensuremath{%
-6.957%
-\times 10^{10}\cm}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRadiusSun}{%
-\k@SI@short@RadiusSun}
-\else
-\DeclareRobustCommand {\kRadiusSun}{%
-\k@SI@full@RadiusSun}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRadiusSun}{%
-\k@cgs@short@RadiusSun}
-\else
-\DeclareRobustCommand {\kRadiusSun}{%
-\k@cgs@full@RadiusSun}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@Rydberg}{%
-\ensuremath{%
-2.18%
-\times 10^{-21}\Joule}}
-\DeclareRobustCommand{\k@SI@full@Rydberg}{%
-\ensuremath{%
-2.179\expandafter\physconst@decimalsseparator%
-775\expandafter\physconst@decimalsseparator%
-77%
-\times 10^{-21}\Joule}}
-\DeclareRobustCommand{\k@cgs@short@Rydberg}{%
-\ensuremath{%
-2.18%
-\times 10^{-14}\erg}}
-\DeclareRobustCommand{\k@cgs@full@Rydberg}{%
-\ensuremath{%
-2.179\expandafter\physconst@decimalsseparator%
-775\expandafter\physconst@decimalsseparator%
-77%
-\times 10^{-14}\erg}}
-\DeclareRobustCommand{\k@eV@short@Rydberg}{%
-\ensuremath{%
-1.36%
-\times 10^{-2}\eV}}
-\DeclareRobustCommand{\k@eV@full@Rydberg}{%
-\ensuremath{%
-1.360\expandafter\physconst@decimalsseparator%
-509\expandafter\physconst@decimalsseparator%
-03%
-\times 10^{-2}\eV}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRydberg}{%
-\k@SI@short@Rydberg}
-\else
-\DeclareRobustCommand {\kRydberg}{%
-\k@SI@full@Rydberg}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRydberg}{%
-\k@cgs@short@Rydberg}
-\else
-\DeclareRobustCommand {\kRydberg}{%
-\k@cgs@full@Rydberg}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVRydberg}{%
-\k@eV@short@Rydberg}
-\else
-\DeclareRobustCommand {\keVRydberg}{%
-\k@eV@full@Rydberg}
-\fi
-\DeclareRobustCommand{\k@SI@short@LuminositySun}{%
-\ensuremath{%
-3.83%
-\times 10^{26}\Watt}}
-\DeclareRobustCommand{\k@SI@full@LuminositySun}{%
-\ensuremath{%
-3.828%
-\times 10^{26}\Watt}}
-\DeclareRobustCommand{\k@cgs@short@LuminositySun}{%
-\ensuremath{%
-3.83%
-\times 10^{33}\erg\Sec^{-1}}}
-\DeclareRobustCommand{\k@cgs@full@LuminositySun}{%
-\ensuremath{%
-3.828%
-\times 10^{33}\erg\Sec^{-1}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kLuminositySun}{%
-\k@SI@short@LuminositySun}
-\else
-\DeclareRobustCommand {\kLuminositySun}{%
-\k@SI@full@LuminositySun}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kLuminositySun}{%
-\k@cgs@short@LuminositySun}
-\else
-\DeclareRobustCommand {\kLuminositySun}{%
-\k@cgs@full@LuminositySun}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@PressureAtmosphere}{%
-\ensuremath{%
-1.01%
-\times 10^{5}\Pa}}
-\DeclareRobustCommand{\k@SI@full@PressureAtmosphere}{%
-\ensuremath{%
-1.013\expandafter\physconst@decimalsseparator%
-25%
-\times 10^{5}\Pa}}
-\DeclareRobustCommand{\k@cgs@short@PressureAtmosphere}{%
-\ensuremath{%
-1.01\barP[m]}}
-\DeclareRobustCommand{\k@cgs@full@PressureAtmosphere}{%
-\ensuremath{%
-1.013\expandafter\physconst@decimalsseparator%
-25\barP[m]}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPressureAtmosphere}{%
-\k@SI@short@PressureAtmosphere}
-\else
-\DeclareRobustCommand {\kPressureAtmosphere}{%
-\k@SI@full@PressureAtmosphere}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPressureAtmosphere}{%
-\k@cgs@short@PressureAtmosphere}
-\else
-\DeclareRobustCommand {\kPressureAtmosphere}{%
-\k@cgs@full@PressureAtmosphere}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@PressureStandard}{%
-\ensuremath{%
-1.00%
-\times 10^{5}\Pa}}
-\DeclareRobustCommand{\k@SI@full@PressureStandard}{%
-\ensuremath{%
-1.000\expandafter\physconst@decimalsseparator%
-00%
-\times 10^{5}\Pa}}
-\DeclareRobustCommand{\k@cgs@short@PressureStandard}{%
-\ensuremath{%
-1.00\barP[m]}}
-\DeclareRobustCommand{\k@cgs@full@PressureStandard}{%
-\ensuremath{%
-1.000\expandafter\physconst@decimalsseparator%
-00\barP[m]}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPressureStandard}{%
-\k@SI@short@PressureStandard}
-\else
-\DeclareRobustCommand {\kPressureStandard}{%
-\k@SI@full@PressureStandard}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPressureStandard}{%
-\k@cgs@short@PressureStandard}
-\else
-\DeclareRobustCommand {\kPressureStandard}{%
-\k@cgs@full@PressureStandard}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@SpeedLight}{%
-\ensuremath{%
-3.00%
-\times 10^{8}\m\Sec^{-1}}}
-\DeclareRobustCommand{\k@SI@full@SpeedLight}{%
-\ensuremath{%
-2.997\expandafter\physconst@decimalsseparator%
-924\expandafter\physconst@decimalsseparator%
-58%
-\times 10^{8}\m\Sec^{-1}}}
-\DeclareRobustCommand{\k@cgs@short@SpeedLight}{%
-\ensuremath{%
-3.00%
-\times 10^{10}\cm\Sec^{-1}}}
-\DeclareRobustCommand{\k@cgs@full@SpeedLight}{%
-\ensuremath{%
-2.997\expandafter\physconst@decimalsseparator%
-924\expandafter\physconst@decimalsseparator%
-58%
-\times 10^{10}\cm\Sec^{-1}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kSpeedLight}{%
-\k@SI@short@SpeedLight}
-\else
-\DeclareRobustCommand {\kSpeedLight}{%
-\k@SI@full@SpeedLight}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kSpeedLight}{%
-\k@cgs@short@SpeedLight}
-\else
-\DeclareRobustCommand {\kSpeedLight}{%
-\k@cgs@full@SpeedLight}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@AccelGravity}{%
-\ensuremath{%
-6.67%
-\times 10^{-11}\N\kg^{-2}\m^2}}
-\DeclareRobustCommand{\k@SI@full@AccelGravity}{%
-\ensuremath{%
-6.674\expandafter\physconst@decimalsseparator%
-30%
-\times 10^{-11}\N\kg^{-2}\m^2}}
-\DeclareRobustCommand{\k@cgs@short@AccelGravity}{%
-\ensuremath{%
-6.67%
-\times 10^{-8}\dyne\gm^{-2}\cm^2}}
-\DeclareRobustCommand{\k@cgs@full@AccelGravity}{%
-\ensuremath{%
-6.674\expandafter\physconst@decimalsseparator%
-30%
-\times 10^{-8}\dyne\gm^{-2}\cm^2}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kAccelGravity}{%
-\k@SI@short@AccelGravity}
-\else
-\DeclareRobustCommand {\kAccelGravity}{%
-\k@SI@full@AccelGravity}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kAccelGravity}{%
-\k@cgs@short@AccelGravity}
-\else
-\DeclareRobustCommand {\kAccelGravity}{%
-\k@cgs@full@AccelGravity}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@Coulomb}{%
-\ensuremath{%
-8.99%
-\times 10^{13}\N\m^2\Coulomb^{-2}}}
-\DeclareRobustCommand{\k@SI@full@Coulomb}{%
-\ensuremath{%
-8.987\expandafter\physconst@decimalsseparator%
-551\expandafter\physconst@decimalsseparator%
-79%
-\times 10^{13}\N\m^2\Coulomb^{-2}}}
-\DeclareRobustCommand{\k@cgs@short@Coulomb}{%
-\ensuremath{%
-1.00}}
-\DeclareRobustCommand{\k@cgs@full@Coulomb}{%
-\ensuremath{%
-1.000\expandafter\physconst@decimalsseparator%
-000\expandafter\physconst@decimalsseparator%
-00}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kCoulomb}{%
-\k@SI@short@Coulomb}
-\else
-\DeclareRobustCommand {\kCoulomb}{%
-\k@SI@full@Coulomb}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kCoulomb}{%
-\k@cgs@short@Coulomb}
-\else
-\DeclareRobustCommand {\kCoulomb}{%
-\k@cgs@full@Coulomb}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@VacuumPermittivity}{%
-\ensuremath{%
-8.85%
-\times 10^{-12}\Farad\m^{-1}}}
-\DeclareRobustCommand{\k@SI@full@VacuumPermittivity}{%
-\ensuremath{%
-8.854\expandafter\physconst@decimalsseparator%
-187\expandafter\physconst@decimalsseparator%
-812\expandafter\physconst@decimalsseparator%
-8%
-\times 10^{-12}\Farad\m^{-1}}}
-\DeclareRobustCommand{\k@cgs@short@VacuumPermittivity}{%
-\ensuremath{%
-7.96%
-\times 10^{-2}}}
-\DeclareRobustCommand{\k@cgs@full@VacuumPermittivity}{%
-\ensuremath{%
-7.957\expandafter\physconst@decimalsseparator%
-747\expandafter\physconst@decimalsseparator%
-154\expandafter\physconst@decimalsseparator%
-6%
-\times 10^{-2}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kVacuumPermittivity}{%
-\k@SI@short@VacuumPermittivity}
-\else
-\DeclareRobustCommand {\kVacuumPermittivity}{%
-\k@SI@full@VacuumPermittivity}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kVacuumPermittivity}{%
-\k@cgs@short@VacuumPermittivity}
-\else
-\DeclareRobustCommand {\kVacuumPermittivity}{%
-\k@cgs@full@VacuumPermittivity}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@VacuumPermeability}{%
-\ensuremath{%
-8.85%
-\times 10^{-12}\N\Amp^{-2}}}
-\DeclareRobustCommand{\k@SI@full@VacuumPermeability}{%
-\ensuremath{%
-8.854\expandafter\physconst@decimalsseparator%
-187\expandafter\physconst@decimalsseparator%
-812\expandafter\physconst@decimalsseparator%
-8%
-\times 10^{-12}\N\Amp^{-2}}}
-\DeclareRobustCommand{\k@cgs@short@VacuumPermeability}{%
-\ensuremath{%
-1.26%
-\times 10^{1}}}
-\DeclareRobustCommand{\k@cgs@full@VacuumPermeability}{%
-\ensuremath{%
-1.256\expandafter\physconst@decimalsseparator%
-637\expandafter\physconst@decimalsseparator%
-061\expandafter\physconst@decimalsseparator%
-4%
-\times 10^{1}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kVacuumPermeability}{%
-\k@SI@short@VacuumPermeability}
-\else
-\DeclareRobustCommand {\kVacuumPermeability}{%
-\k@SI@full@VacuumPermeability}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kVacuumPermeability}{%
-\k@cgs@short@VacuumPermeability}
-\else
-\DeclareRobustCommand {\kVacuumPermeability}{%
-\k@cgs@full@VacuumPermeability}
-\fi
-\fi
-\DeclareRobustCommand{\k@short@VacuumImpedance}{%
-\ensuremath{%
-3.77%
-\times 10^{2}\Ohm}}
-\DeclareRobustCommand{\k@full@VacuumImpedance}{%
-\ensuremath{%
-3.767\expandafter\physconst@decimalsseparator%
-303\expandafter\physconst@decimalsseparator%
-136\expandafter\physconst@decimalsseparator%
-68%
-\times 10^{2}\Ohm}}
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kVacuumImpedance}{%
-\k@short@VacuumImpedance}
-\else
-\DeclareRobustCommand {\kVacuumImpedance}{%
-\k@full@VacuumImpedance}
-\fi
-\DeclareRobustCommand{\k@SI@short@Boltzmann}{%
-\ensuremath{%
-1.38%
-\times 10^{-23}\J\K^{-1}}}
-\DeclareRobustCommand{\k@SI@full@Boltzmann}{%
-\ensuremath{%
-1.380\expandafter\physconst@decimalsseparator%
-649%
-\times 10^{-23}\J\K^{-1}}}
-\DeclareRobustCommand{\k@cgs@short@Boltzmann}{%
-\ensuremath{%
-1.38%
-\times 10^{-16}\erg\K^{-1}}}
-\DeclareRobustCommand{\k@cgs@full@Boltzmann}{%
-\ensuremath{%
-1.380\expandafter\physconst@decimalsseparator%
-649%
-\times 10^{-16}\erg\K^{-1}}}
-\DeclareRobustCommand{\k@eV@short@Boltzmann}{%
-\ensuremath{%
-8.62%
-\times 10^{-5}\eV\K^{-1}}}
-\DeclareRobustCommand{\k@eV@full@Boltzmann}{%
-\ensuremath{%
-8.617\expandafter\physconst@decimalsseparator%
-333%
-\times 10^{-5}\eV\K^{-1}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kBoltzmann}{%
-\k@SI@short@Boltzmann}
-\else
-\DeclareRobustCommand {\kBoltzmann}{%
-\k@SI@full@Boltzmann}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kBoltzmann}{%
-\k@cgs@short@Boltzmann}
-\else
-\DeclareRobustCommand {\kBoltzmann}{%
-\k@cgs@full@Boltzmann}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVBoltzmann}{%
-\k@eV@short@Boltzmann}
-\else
-\DeclareRobustCommand {\keVBoltzmann}{%
-\k@eV@full@Boltzmann}
-\fi
-\DeclareRobustCommand{\k@SI@short@Planck}{%
-\ensuremath{%
-6.63%
-\times 10^{-34}\J\Sec}}
-\DeclareRobustCommand{\k@SI@full@Planck}{%
-\ensuremath{%
-6.626\expandafter\physconst@decimalsseparator%
-070\expandafter\physconst@decimalsseparator%
-15%
-\times 10^{-34}\J\Sec}}
-\DeclareRobustCommand{\k@cgs@short@Planck}{%
-\ensuremath{%
-6.63%
-\times 10^{-27}\erg\Sec}}
-\DeclareRobustCommand{\k@cgs@full@Planck}{%
-\ensuremath{%
-6.626\expandafter\physconst@decimalsseparator%
-070\expandafter\physconst@decimalsseparator%
-15%
-\times 10^{-27}\erg\Sec}}
-\DeclareRobustCommand{\k@eV@short@Planck}{%
-\ensuremath{%
-4.14%
-\times 10^{-15}\eV\Sec}}
-\DeclareRobustCommand{\k@eV@full@Planck}{%
-\ensuremath{%
-4.135\expandafter\physconst@decimalsseparator%
-667\expandafter\physconst@decimalsseparator%
-70%
-\times 10^{-15}\eV\Sec}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPlanck}{%
-\k@SI@short@Planck}
-\else
-\DeclareRobustCommand {\kPlanck}{%
-\k@SI@full@Planck}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPlanck}{%
-\k@cgs@short@Planck}
-\else
-\DeclareRobustCommand {\kPlanck}{%
-\k@cgs@full@Planck}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVPlanck}{%
-\k@eV@short@Planck}
-\else
-\DeclareRobustCommand {\keVPlanck}{%
-\k@eV@full@Planck}
-\fi
-\DeclareRobustCommand{\k@SI@short@PlanckReduced}{%
-\ensuremath{%
-1.05%
-\times 10^{-34}\J\Sec}}
-\DeclareRobustCommand{\k@SI@full@PlanckReduced}{%
-\ensuremath{%
-1.054\expandafter\physconst@decimalsseparator%
-571\expandafter\physconst@decimalsseparator%
-82%
-\times 10^{-34}\J\Sec}}
-\DeclareRobustCommand{\k@cgs@short@PlanckReduced}{%
-\ensuremath{%
-1.05%
-\times 10^{-27}\erg\Sec}}
-\DeclareRobustCommand{\k@cgs@full@PlanckReduced}{%
-\ensuremath{%
-1.054\expandafter\physconst@decimalsseparator%
-571\expandafter\physconst@decimalsseparator%
-82%
-\times 10^{-27}\erg\Sec}}
-\DeclareRobustCommand{\k@eV@short@PlanckReduced}{%
-\ensuremath{%
-6.58%
-\times 10^{-16}\eV\Sec}}
-\DeclareRobustCommand{\k@eV@full@PlanckReduced}{%
-\ensuremath{%
-6.582\expandafter\physconst@decimalsseparator%
-119\expandafter\physconst@decimalsseparator%
-57%
-\times 10^{-16}\eV\Sec}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPlanckReduced}{%
-\k@SI@short@PlanckReduced}
-\else
-\DeclareRobustCommand {\kPlanckReduced}{%
-\k@SI@full@PlanckReduced}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kPlanckReduced}{%
-\k@cgs@short@PlanckReduced}
-\else
-\DeclareRobustCommand {\kPlanckReduced}{%
-\k@cgs@full@PlanckReduced}
-\fi
-\fi
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\keVPlanckReduced}{%
-\k@eV@short@PlanckReduced}
-\else
-\DeclareRobustCommand {\keVPlanckReduced}{%
-\k@eV@full@PlanckReduced}
-\fi
-\DeclareRobustCommand{\k@SI@short@Gravity}{%
-\ensuremath{%
-6.67%
-\times 10^{-15}\N\kg^{-2}\m^2}}
-\DeclareRobustCommand{\k@SI@full@Gravity}{%
-\ensuremath{%
-6.674\expandafter\physconst@decimalsseparator%
-30%
-\times 10^{-15}\N\kg^{-2}\m^2}}
-\DeclareRobustCommand{\k@cgs@short@Gravity}{%
-\ensuremath{%
-6.67%
-\times 10^{-8}\dyne\gm^{-2}\cm^2}}
-\DeclareRobustCommand{\k@cgs@full@Gravity}{%
-\ensuremath{%
-6.674\expandafter\physconst@decimalsseparator%
-30%
-\times 10^{-8}\dyne\gm^{-2}\cm^2}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kGravity}{%
-\k@SI@short@Gravity}
-\else
-\DeclareRobustCommand {\kGravity}{%
-\k@SI@full@Gravity}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kGravity}{%
-\k@cgs@short@Gravity}
-\else
-\DeclareRobustCommand {\kGravity}{%
-\k@cgs@full@Gravity}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@StefanBoltzmann}{%
-\ensuremath{%
-5.67%
-\times 10^{-6}\J\Kelvin^{-4}\m^{-2}\Sec^{-1}}}
-\DeclareRobustCommand{\k@SI@full@StefanBoltzmann}{%
-\ensuremath{%
-5.670\expandafter\physconst@decimalsseparator%
-374%
-\times 10^{-6}\J\Kelvin^{-4}\m^{-2}\Sec^{-1}}}
-\DeclareRobustCommand{\k@cgs@short@StefanBoltzmann}{%
-\ensuremath{%
-5.67%
-\times 10^{-5}\erg\Kelvin^{-4}\cm^{-2}\Sec^{-1}}}
-\DeclareRobustCommand{\k@cgs@full@StefanBoltzmann}{%
-\ensuremath{%
-5.670\expandafter\physconst@decimalsseparator%
-374%
-\times 10^{-5}\erg\Kelvin^{-4}\cm^{-2}\Sec^{-1}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kStefanBoltzmann}{%
-\k@SI@short@StefanBoltzmann}
-\else
-\DeclareRobustCommand {\kStefanBoltzmann}{%
-\k@SI@full@StefanBoltzmann}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kStefanBoltzmann}{%
-\k@cgs@short@StefanBoltzmann}
-\else
-\DeclareRobustCommand {\kStefanBoltzmann}{%
-\k@cgs@full@StefanBoltzmann}
-\fi
-\fi
-\DeclareRobustCommand{\k@SI@short@Radiation}{%
-\ensuremath{%
-7.57%
-\times 10^{-16}\Joule\m^{-3}\Kelvin^{-4}}}
-\DeclareRobustCommand{\k@SI@full@Radiation}{%
-\ensuremath{%
-7.565\expandafter\physconst@decimalsseparator%
-733%
-\times 10^{-16}\Joule\m^{-3}\Kelvin^{-4}}}
-\DeclareRobustCommand{\k@cgs@short@Radiation}{%
-\ensuremath{%
-7.57%
-\times 10^{-15}\erg\cm^{-3}\Kelvin^{-4}}}
-\DeclareRobustCommand{\k@cgs@full@Radiation}{%
-\ensuremath{%
-7.565\expandafter\physconst@decimalsseparator%
-733%
-\times 10^{-15}\erg\cm^{-3}\Kelvin^{-4}}}
-\ifx\cgsunits\undefined
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRadiation}{%
-\k@SI@short@Radiation}
-\else
-\DeclareRobustCommand {\kRadiation}{%
-\k@SI@full@Radiation}
-\fi
-\else
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kRadiation}{%
-\k@cgs@short@Radiation}
-\else
-\DeclareRobustCommand {\kRadiation}{%
-\k@cgs@full@Radiation}
-\fi
-\fi
-\DeclareRobustCommand{\k@short@FineStructure}{%
-\ensuremath{%
-7.30%
-\times 10^{-3}}}
-\DeclareRobustCommand{\k@full@FineStructure}{%
-\ensuremath{%
-7.297\expandafter\physconst@decimalsseparator%
-352\expandafter\physconst@decimalsseparator%
-57%
-\times 10^{-3}}}
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kFineStructure}{%
-\k@short@FineStructure}
-\else
-\DeclareRobustCommand {\kFineStructure}{%
-\k@full@FineStructure}
-\fi
-\DeclareRobustCommand{\k@short@FineStructureReciprocal}{%
-\ensuremath{%
-1.37%
-\times 10^{2}}}
-\DeclareRobustCommand{\k@full@FineStructureReciprocal}{%
-\ensuremath{%
-1.370\expandafter\physconst@decimalsseparator%
-359\expandafter\physconst@decimalsseparator%
-99%
-\times 10^{2}}}
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kFineStructureReciprocal}{%
-\k@short@FineStructureReciprocal}
-\else
-\DeclareRobustCommand {\kFineStructureReciprocal}{%
-\k@full@FineStructureReciprocal}
-\fi
-\DeclareRobustCommand{\k@short@Avogadro}{%
-\ensuremath{%
-6.02%
-\times 10^{23}}}
-\DeclareRobustCommand{\k@full@Avogadro}{%
-\ensuremath{%
-6.022\expandafter\physconst@decimalsseparator%
-407\expandafter\physconst@decimalsseparator%
-60%
-\times 10^{23}}}
-\ifx\shortconst\undefined
-\DeclareRobustCommand {\kAvogadro}{%
-\k@short@Avogadro}
-\else
-\DeclareRobustCommand {\kAvogadro}{%
-\k@full@Avogadro}
-\fi
-\makeatother
-\endinput
-%%
-%% End of file `physconst.sty'.
diff --git a/macros/latex/contrib/physunits/CHANGELOG.md b/macros/latex/contrib/physunits/CHANGELOG.md
new file mode 100644
index 0000000000..5ccb30dc10
--- /dev/null
+++ b/macros/latex/contrib/physunits/CHANGELOG.md
@@ -0,0 +1,39 @@
+# Changes
+## [1.0.0] - 2020/01/22
+- Initial version
+## [1.0.1] - 2020/01/25
+### Added
+- A changelog
+- A readme
+- Code for changelog into physconst.cpp
+- `make dist` to create distributable tarball and zip
+- line in .ins to force generation of the .sty
+- nicer index entries (and some associated code in .cpp to generate them)
+- added localuninstall and distuninstall targets to the makefile
+### Changed
+- Modified the makefile to split up generation of the .sty, and .pdf
+- Added a newline in the middle of the title declaration (in .cpp)
+- Added a newline in the middle of the \DoNotIndex declaration (in .cpp)
+- fixed makefile install options to correctly find TEXMF path
+## [1.0.2] - 2020/01/25
+### Changed
+- Switch compression of tarball to gzip to match requirement for CTAN
+## [1.0.3] - 2020/01/26
+### Added
+- uninstall instructions in README.md
+- installcheck in makefile
+- force makefile to be run serial
+### Changed
+- Switch tarball/zip to include .dtx instead of .sty per CTAN requirement
+- Clean up installation instructions in README.md
+- Made some changes in the makefile to take better advantage of make
+## [1.0.3a] - 2020/01/26
+### Added
+- Created a separate readme for the distribution
+- Created a separate makefile for the distribution
+### Changed
+- modify the makefile to include .ins in the package files
+- modify the makefile to include the new distrubution readme and makefile
+- give instructions on using makefile for distribution
+- Did a little more reformatting in the README.
+
diff --git a/macros/latex/contrib/physunits/README.md b/macros/latex/contrib/physunits/README.md
new file mode 100644
index 0000000000..ce400e3487
--- /dev/null
+++ b/macros/latex/contrib/physunits/README.md
@@ -0,0 +1,81 @@
+# physunits
+A LaTeX package that includes macros for SI, cgs, and some imperial units.
+
+# License
+Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+-----------------------------------------------------------
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+version 2006/05/20 or later.
+
+# Dependencies
+None.
+
+# Build Dependencies
+- some LaTeX distribution.
+- `hyperref` package for LaTeX
+
+# Files
+```
+ makefile GNU makefile to simplify building and installation on linux
+ README.md This file.
+ CHANGELOG.md List of changes
+ physunits.ins The installer file
+ physunits.dtx The package code and documentation
+ physunits.pdf The package user manual
+```
+
+# Building the Package
+## Linux / Mac using make and xelatex
+1. `make`
+
+## Otherwise
+1. Run `latex` on `physunits.ins` to create the `.sty` file. e.g. `latex physunits.ins`.
+1. The following steps apply only if you want the documentation (recommended).
+ 1. Run `latex` on `physunits.dtx` to create the `.pdf` file. e.g. `xelatex physunits.pdf`.
+ 1. Run `makeindex` to create the index, e.g. `makeindex -s gind.ist -o physunits.ind physunits.idx`.
+ 1. Run `makeindex` to create the change log, e.g. `makeindex -s gglo.ist -o physunits.gls physunits.glo`.
+ 1. Run `latex` on `physunits.dtx` to create the `.pdf` file with index and change log. e.g. `xelatex physunits.pdf`.
+ 1. Run `latex` on `physunits.dtx` to get the labels sorted out. e.g. `xelatex physunits.pdf`.
+
+Instructions that might help can be for windows can be found at [this post on StackExchange](https://tex.stackexchange.com/questions/369921/loading-packages-with-ins-and-dtx-files).
+
+# Installation
+First build the project as described above.
+
+## For a single project
+1. Copy the `physunits.sty` into your project where your `.tex` files are located.
+
+## for all users and projects
+### Linux / Mac using make and xelatex
+1. `make localinstall`
+
+### Otherwise
+Instructions that might help can be for windows can be found at [this post on StackExchange](https://tex.stackexchange.com/questions/369921/loading-packages-with-ins-and-dtx-files).
+1. Figure out where your LaTeX local packages are installed.
+1. Create a directory named `physunits` in that location.
+1. Copy the `.sty` file into the directory you just created.
+1. Figure out where your LaTeX local package documentation is installed.
+1. Create a directory named `physunits` in that location.
+1. Copy the `.pdf` file into the directory you just created.
+1. Run `texhash` or the equivalent to let LaTeX know the package is there.
+
+
+# Uninstallation
+
+### Linux / Mac using make
+1. `make localuninstall`
+### Otherwise
+1. Figure out where your LaTeX local packages are installed.
+1. Delete the directory named `physunits` in that location.
+1. Figure out where your LaTeX local package documentation is installed.
+1. Delete the directory named `physunits` in that location.
+1. Run `texhash` or the equivalent to let LaTeX know the package is gone.
+
diff --git a/macros/latex/contrib/physunits/makefile b/macros/latex/contrib/physunits/makefile
new file mode 100644
index 0000000000..ca48c701ec
--- /dev/null
+++ b/macros/latex/contrib/physunits/makefile
@@ -0,0 +1,122 @@
+pkgname=$(patsubst %.ins,%,$(wildcard *.ins))
+TEXMFLOCAL = $(shell kpsewhich -var-value TEXMFLOCAL)
+TEXMFDIST = $(shell kpsewhich -var-value TEXMFDIST)
+
+.PHONY: all clean localinstall localuninstall localinstallcheck distinstall distuninstall distinstallcheck installcheck
+
+all: $(pkgname).pdf
+
+.PRECIOUS: %.sty %.dtx %.pdf
+.DELETE_ON_ERROR:
+.NOTPARALLEL:
+
+%.sty: %.dtx %.ins
+ latex $(pkgname).ins
+
+%.pdf: %.sty
+ xelatex $(pkgname).dtx
+ makeindex -s gind.ist -o $(pkgname).ind $(pkgname).idx
+ makeindex -s gglo.ist -o $(pkgname).gls $(pkgname).glo
+ xelatex $(pkgname).dtx
+ xelatex $(pkgname).dtx
+
+clean:
+ -rm *.pdf
+ -rm *.log
+ -rm *.out
+ -rm *.aux
+ -rm *.bib
+ -rm *.snm
+ -rm *.toc
+ -rm *.nav
+ -rm *.idx
+ -rm *.sty
+ -rm *.gls
+ -rm *.ilg
+ -rm *.ind
+ -rm *.glo
+ -rm $(pkgname).zip
+ -rm $(pkgname).tar
+ -rm $(pkgname).tar.gz
+ -rm -r $(pkgname)
+ -rm -r tmptar
+ -rm -r tmpzip
+
+$(TEXMFLOCAL)/tex/latex/$(pkgname):
+ mkdir -p $(TEXMFLOCAL)/tex/latex/$(pkgname)
+
+$(TEXMFLOCAL)/doc/latex/$(pkgname):
+ mkdir -p $(TEXMFLOCAL)/doc/latex/$(pkgname)
+
+$(TEXMFLOCAL)/tex/latex/$(pkgname)/$(pkgname).sty: $(pkgname).sty $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ cp $(pkgname).sty $(TEXMFLOCAL)/tex/latex/$(pkgname)/.
+
+$(TEXMFLOCAL)/doc/latex/$(pkgname)/$(pkgname).pdf: $(pkgname).pdf $(TEXMFLOCAL)/doc/latex/$(pkgname)
+ cp $(pkgname).pdf $(TEXMFLOCAL)/doc/latex/$(pkgname)/.
+
+localinstall: $(pkgname).pdf $(pkgname).sty $(TEXMFLOCAL)/tex/latex/$(pkgname) $(TEXMFLOCAL)/doc/latex/$(pkgname) $(TEXMFLOCAL)/tex/latex/$(pkgname)/$(pkgname).sty $(TEXMFLOCAL)/doc/latex/$(pkgname)/$(pkgname).pdf
+ @echo Installing to $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ texhash
+ make localinstallcheck
+
+localuninstall:
+ @echo Removing from $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFLOCAL)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFLOCAL)/doc/latex/$(pkgname)
+ texhash
+
+
+$(TEXMFDIST)/tex/latex/$(pkgname):
+ mkdir -p $(TEXMFDIST)/tex/latex/$(pkgname)
+
+$(TEXMFDIST)/doc/latex/$(pkgname):
+ mkdir -p $(TEXMFDIST)/doc/latex/$(pkgname)
+
+$(TEXMFDIST)/tex/latex/$(pkgname)/$(pkgname).sty: $(pkgname).sty $(TEXMFDIST)/tex/latex/$(pkgname)
+ cp $(pkgname).sty $(TEXMFDIST)/tex/latex/$(pkgname)/.
+
+$(TEXMFDIST)/doc/latex/$(pkgname)/$(pkgname).pdf: $(pkgname).pdf $(TEXMFDIST)/doc/latex/$(pkgname)
+ cp $(pkgname).pdf $(TEXMFDIST)/doc/latex/$(pkgname)/.
+
+distinstall: $(pkgname).pdf $(pkgname).sty $(TEXMFDIST)/tex/latex/$(pkgname) $(TEXMFDIST)/doc/latex/$(pkgname) $(TEXMFDIST)/tex/latex/$(pkgname)/$(pkgname).sty $(TEXMFDIST)/doc/latex/$(pkgname)/$(pkgname).pdf
+ @echo Installing to $(TEXMFDIST)/tex/latex/$(pkgname)
+ texhash
+ make distinstallcheck
+
+distuninstall:
+ @echo Removing from $(TEXMFDIST)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFDIST)/tex/latex/$(pkgname)
+ -rm -r $(TEXMFDIST)/doc/latex/$(pkgname)
+ texhash
+
+#######################################################
+# checks - will be called recursively
+#######################################################
+
+localinstallcheck:
+ifeq (0,$(shell test -d $(TEXMFLOCAL)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as local: $(TEXMFLOCAL)/tex/latex/$(pkgname)
+else
+ $(error $(pkgname) is not installed as local)
+endif
+
+distinstallcheck:
+ifeq (0,$(shell test -d $(TEXMFDIST)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as dist: $(TEXMFDIST)/tex/latex/$(pkgname)
+else
+ $(error $(pkgname) is not installed as dist)
+endif
+
+installcheck:
+ifeq (0,$(shell test -d $(TEXMFDIST)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as dist: $(TEXMFDIST)/tex/latex/$(pkgname)
+else
+ifeq (0,$(shell test -d $(TEXMFLOCAL)/tex/latex/$(pkgname); echo $$?))
+ @echo $(pkgname) installed as local: $(TEXMFLOCAL)/tex/latex/$(pkgname)
+else
+ $(error $(pkgname) is not installed)
+endif
+endif
+
+
+
diff --git a/macros/latex/contrib/physunits/physunits.dtx b/macros/latex/contrib/physunits/physunits.dtx
new file mode 100644
index 0000000000..103f97c0c8
--- /dev/null
+++ b/macros/latex/contrib/physunits/physunits.dtx
@@ -0,0 +1,1882 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+% -----------------------------------------------------------
+%
+% This file may be distributed and/or modified under the conditions of
+% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+% version 2006/05/20 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{physunits.dtx}
+%</driver>
+%<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01]
+%<package> \ProvidesPackage{physunits}
+%<*package>
+ [2020/01/26 v1.0.3 Physical units package]
+%</package>
+%<package>\ProcessOptions\relax
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{physunits}
+\usepackage[backref]{hyperref}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+%\OnlyDescription
+\begin{document}
+\DocInput{physunits.dtx}
+\PrintChanges
+\PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{486}
+%
+% \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 \~}
+%
+% \changes{v1.0}{2020/01/23}{Initial version}
+% \changes{v1.0.1}{2020/01/25}{Clean up formatting, fix index}
+% \changes{v1.0.2}{2020/01/25}{External changes in makefile}
+% \changes{v1.0.3}{2020/01/26}{External changes in makefile}
+%
+% \GetFileInfo{physunits.dtx}
+% \DeclareRobustCommand{\fileversion}{v1.0}
+% \DeclareRobustCommand{\filedate}{2020/01/26}
+%
+% \DoNotIndex{\DeclareRobustCommand,\newenvironment,\DeclareRobustCommand,
+% \left,\right,\textbf,\mathrm,\ensuremath,\units@separator,\expandafter,\,}
+%
+% \title{The \textsf{physunits} package\thanks{This document corresponds to%
+% \textsf{physunits}~\fileversion, dated \filedate.}}
+% \author{Brian W. Mulligan \\ \texttt{bwmulligan@astronaos.com}}
+%
+% \maketitle
+% \setlength{\parindent}{0em}
+% \setlength{\parskip}{1em}
+%
+% \section{Introduction}
+%
+%
+% This package consists of several macros that are shorthand for a variety of
+% physical units that are commonly used in introductory level physics and
+% astronomy classes.
+%
+% \section{Naming Convention}
+%
+% most macros consist of just the commonly used letter or unit, e.g.
+% \textbackslash m for
+% meters. In cases where the simple form of the unit conflicts with an existing
+% \LaTeX~macro, then the full word is used, starting with a upper-case letter,
+% e.g. \textbackslash Coulomb.
+%
+% One notable exception to the above naming convention is the use of
+% \textbackslash gm for
+% grams, instead of \textbackslash g or \textbackslash Gram.
+%
+% \section{Base and Prefixes}
+%
+% Most units are in the base unit only, but some very commonly used prefixes
+% are available as part of the macro, e.g. \textbackslash kg for kilogram,
+% \textbackslash cm for centimeter.
+% For base units, each macro accepts one option that can be used to specify
+% the prefix, for example \textbackslash m[n] will result in nm. The macros
+% enforce math
+% mode, so \textbackslash m[\textbackslash micro] will result in
+% $\mathrm{\mu m}$.
+%
+%
+% \section{Macro Usage}
+%
+%
+% \subsection{Special Macros}
+%
+%
+% \DescribeMacro{\units@separator}
+% |\units@separator| is a special macro used to set the spacing between a
+% quantity and the associated units.
+%
+% \DescribeMacro{\micro}
+% |\micro| is a special macro that can be used for the prefix $\mathrm{\mu}$
+% (micro-). Internally it just uses \textbackslash mu.
+%
+% \subsection{Electricity \& Magnetism}
+% \index{Electricity \& Magnetism|usage(}
+%
+% \DescribeMacro{\V}
+% \index{Electricity \& Magnetism>Volts|usage}
+% |\V| is a macro for Volts (V).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Volt}
+% \index{Electricity \& Magnetism>Volts|usage}
+% |\Volt| is a macro for Volts (V).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Coulomb}
+% \index{Electricity \& Magnetism>Coulomb|usage}
+% |\Coulomb| is a macro for Coulombs (C).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\esu}
+% \index{Electricity \& Magnetism>esu|usage}
+% |\esu| is a macro for electrostatic units (esu), the units of charge in
+% Gaussian cgs.
+%
+% \DescribeMacro{\Ohm}
+% \index{Electricity \& Magnetism>Ohm|usage}
+% |\Ohm| is a macro for Ohms ($\Omega$).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Amp}
+% \index{Electricity \& Magnetism>Amperes|usage}
+% |\Amp| is a macro for Amperes (A).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Farad}
+% \index{Electricity \& Magnetism>Farad|usage}
+% |\Farad| is a macro for Farads (F).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Tesla}
+% \index{Electricity \& Magnetism>Tesla|usage}
+% |\Tesla| is a macro for Teslas (T).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Gauss}
+% \index{Electricity \& Magnetism>Gauss|usage}
+% |\Gauss| is a macro for Gauss (G), the units for magnetic field strength in
+% Gaussian cgs.
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Henry}
+% \index{Electricity \& Magnetism>Henry|usage}
+% |\Henry| is a macro for Henrys (H).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+% \index{Electricity \& Magnetism|usage)}
+%
+% \subsection{Energy}
+% \index{Energy|usage(}
+%
+% \DescribeMacro{\eV}
+% \index{Energy>eV|usage}
+% |\eV| is a macro for electron Volts (eV).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\keV}
+% \index{Energy>eV|usage}
+% |\keV| is a macro for kilo-electron Volts (keV).
+%
+% \DescribeMacro{\MeV}
+% \index{Energy>eV|usage}
+% |\MeV| is a macro for mega-electron Volts (MeV).
+%
+% \DescribeMacro{\J}
+% \index{Energy>Joules|usage}
+% |\J| is a macro for Joules (J).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Joule}
+% \index{Energy>Joules|usage}
+% |\Joule| is a macro for Joules (J).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\erg}
+% \index{Energy>erg|usage}
+% |\erg| is a macro for ergs (erg), the unit of energy in cgs.
+%
+% \DescribeMacro{\kcal}
+% \index{Energy>kcal|usage}
+% \index{Energy>Calories|usage}
+% \index{Energy>calories|usage}
+% |\kcal| is a macro for kilo-calories (kcal).
+%
+% \DescribeMacro{\Cal}
+% \index{Energy>kcal|usage}
+% \index{Energy>Calories|usage}
+% \index{Energy>calories|usage}
+% |\Cal| is a macro for kilo=calories (Cal).
+%
+% \DescribeMacro{\calorie}
+% \index{Energy>kcal|usage}
+% \index{Energy>Calories|usage}
+% \index{Energy>calories|usage}
+% |\calorie| is a macro for calories (cal).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\BTU}
+% \index{Energy>BTU|usage}
+% |\BTU| is a macro for British Thermal Units (BTU).
+%
+% \DescribeMacro{\tnt}
+% \index{Energy>TNT|usage}
+% |\tnt| is a macro for tons of TNT.
+% \index{Energy|usage)}
+%
+% \subsection{Power}
+% \index{Power|usage(}
+%
+% \DescribeMacro{\Watt}
+% \index{Power>Watts|usage}
+% |\Watt| is a macro for Watts (W).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\hpi}
+% \index{Power>Horsepower|usage}
+% \index{Power>Horsepower>Imperial|usage}
+% |\hpi| is a macro for Imperial Horsepower (hp(I)).
+%
+% \DescribeMacro{\hpi}
+% \index{Power>Horsepower|usage}
+% \index{Power>Horsepower>Metric|usage}
+% |\hpi| is a macro for Metric Horsepower (hp(M)).
+%
+% \DescribeMacro{\hp}
+% \index{Power>Horsepower|usage}
+% |\hp| is a macro for Horsepower (hp).
+% \index{Power|usage)}
+%
+% \subsection{Distance}
+% \index{Distance|usage)}
+%
+% \DescribeMacro{\meter}
+% \index{Distance>Meter|usage}
+% |\meter| is a macro for meters (m).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\m}
+% \index{Distance>Meter|usage}
+% |\m| is a macro for meters (m).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\km}
+% \index{Distance>Meter>Kilometer|usage}
+% |\km| is a macro for kilometers (km).
+%
+% \DescribeMacro{\au}
+% \index{Distance>Astronomical Unit|usage}
+% |\au| is a macro for astronmical units (au).
+%
+% \DescribeMacro{\pc}
+% \index{Distance>Parsec|usage}
+% |\pc| is a macro for parsecs (pc).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\ly}
+% \index{Distance>Light Years|usage}
+% |\ly| is a macro for light-years (ly).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\cm}
+% \index{Distance>Meter>Centimeter|usage}
+% |\cm| is a macro for centimeters (cm).
+%
+% \DescribeMacro{\nm}
+% \index{Distance>Meter>Nanometer|usage}
+% |\nm| is a macro for nanometers (nm).
+%
+% \DescribeMacro{\ft}
+% \index{Distance>Imperial>Feet|usage}
+% |\ft| is a macro for feet (ft).
+%
+% \DescribeMacro{\inch}
+% \index{Distance>Imperial>Inch|usage}
+% |\inch| is a macro for inches (in).
+%
+% \DescribeMacro{\mi}
+% \index{Distance>Imperial>Mile|usage}
+% |\mi| is a macro for miles (mi).
+%
+% \index{Distance|usage)}
+%
+% \subsection{Time}
+% \index{Time|usage(}
+%
+% \DescribeMacro{\s}
+% \index{Time>Seconds|usage}
+% |\s| is a macro for seconds (s).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Sec}
+% \index{Time>Seconds|usage}
+% |\Sec| is a macro for seconds (s).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Min}
+% \index{Time>Minutes|usage}
+% |\Min| is a macro for minutes (m).
+%
+% \DescribeMacro{\h}
+% \index{Time>Hours|usage}
+% |\h| is a macro for hours (h).
+%
+% \DescribeMacro{\y}
+% \index{Time>Years|usage}
+% |\y| is a macro for years (y).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Day}
+% \index{Time>Days|usage}
+% |\Day| is a macro for days (d).
+%
+% \index{Time|usage)}
+%
+% \subsection{Mass}
+%
+% \index{Mass|usage(}
+%
+% \DescribeMacro{\gm}
+% \index{Mass>Grams|usage}
+% |\gm| is a macro for grams (g).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\kg}
+% \index{Mass>Gram>Kilograms|usage}
+% |\kg| is a macro for kilograms (kg).
+%
+% \DescribeMacro{\lb}
+% \index{Mass>Pounds|usage}
+% |\lb| is a macro for pounds (weight) (lb).
+%
+% \DescribeMacro{\amu}
+% \index{Mass>AMU|usage}
+% \index{Mass>Dalton|usage}
+% |\amu| is a macro for atomic mass units (amu).
+%
+% \index{Mass|usage)}
+%
+% \subsection{Force}
+%
+% \index{Force|usage(}
+%
+% \DescribeMacro{\N}
+% \index{Force>Newton|usage}
+% |\N| is a macro for Newtons (N).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Newton}
+% \index{Force>Newton|usage}
+% |\Newton| is a macro for Newtons (N).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\dyne}
+% \index{Force>Dyne|usage}
+% |\dyne| is a macro for dynes (dyn).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\lbf}
+% \index{Force>Pounds|usage}
+% |\lbf| is a macro for pounds of force (lbf).
+%
+% \index{Force|usage)}
+%
+% \subsection{Velocity}
+%
+% \index{Velocity|usage(}
+%
+% \DescribeMacro{\kmps}
+% \index{Velocity>Kilometers per Second|usage}
+% |\kmps| is a macro for kilometers per second ($\kmps$).
+%
+% \DescribeMacro{\kmph}
+% \index{Velocity>Kilometers per Hour|usage}
+% |\kmph| is a macro for kilometers per hour ($\kmph$).
+%
+% \DescribeMacro{\mps}
+% \index{Velocity>Meters per Second|usage}
+% |\mps| is a macro for meters per second ($\mps$).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\miph}
+% \index{Velocity>Miles per Hour|usage}
+% |\miph| is a macro for miles per hour ($\miph$).
+%
+% \DescribeMacro{\kts}
+% \index{Velocity>Knots|usage}
+% \index{Velocity>Nautical Miles per Hour|usage}
+% |\kts| is a macro for knots ($\kts$)., i.e. nautical miles per hour
+%
+% \index{Velocity|usage)}
+%
+% \subsection{Acceleration}
+%
+% \index{Acceleration|usage(}
+%
+% \DescribeMacro{\mpss}
+% \index{Acceleration>Meters per Second squared|usage}
+% |\mpss| is a macro for acceleration in meters per second squared ($\mpss$).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\gacc}
+% \index{Acceleration>Gravity|usage}
+% |\gacc| is a macro for acceleration due to gravity ($\gacc$).
+%
+% \DescribeMacro{\ftpss}
+% \index{Acceleration>Feet per Second squared|usage}
+% |\ftpss| is a macro for acceleration in feet per second squared ($\ftpss$).
+%
+% \index{Velocity|usage)}
+%
+%
+% \subsection{Temperature}
+%
+% \index{Temperature|usage(}
+%
+% \DescribeMacro{\K}
+% \index{Temperature>Kelvin|usage}
+% |\K| is a macro for Kelvin (K).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Kelvin}
+% \index{Temperature>Kelvin|usage}
+% |\Kelvin| is a macro for Kelvin (K).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Celcius}
+% \index{Temperature>Celcius|usage}
+% |\Celcius| is a macro for degrees Celcius $(\Celcius)$.
+%
+% \DescribeMacro{\Rankine}
+% \index{Temperature>Rankine|usage}
+% |\Rankine| is a macro for degrees Rankine $(\Rankine)$.
+%
+% \DescribeMacro{\Fahrenheit}
+% \index{Temperature>Fahrenheit|usage}
+% |\Fahrenheit| is a macro for degrees Fahrenheit $(\Fahrenheit)$.
+%
+% \index{Temperature|usage)}
+%
+% \subsection{Angular Velocity}
+%
+% \index{Angular Velocity|usage(}
+%
+% \DescribeMacro{\rpm}
+% \index{Angular Velocity>RPM|usage}
+% |\rpm| is a macro for revolutions per minute $(\rpm)$.
+%
+% \index{Angular Velocity|usage)}
+%
+% \subsection{Frequency}
+%
+% \index{Frequency|usage(}
+%
+% \DescribeMacro{\Hz}
+% \index{Frequency>Hertz|usage}
+% |\Hz| is a macro for Hertz (Hz).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \index{Frequency|usage)}
+%
+%
+% \subsection{Pressure}
+%
+% \index{Pressure|usage(}
+%
+% \DescribeMacro{\barP}
+% \index{Pressure>bar|usage}
+% |\barP| is a macro for bar (bar). (The use of barP instead of just bar is due
+% the \LaTeX~command \textbackslash bar.)
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\atm}
+% \index{Pressure>atmosphere|usage}
+% |\atm| is a macro for atmosphere (atm).
+%
+% \DescribeMacro{\Pa}
+% \index{Pressure>Pascal|usage}
+% |\Pa| is a macro for Pascals (Pa).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\mmHg}
+% \index{Pressure>mm Hg|usage}
+% |\mmHg| is a macro for millimeters of mercury (mmHg).
+%
+% \DescribeMacro{\inHg}
+% \index{Pressure>in Hg|usage}
+% |\inHg| is a macro for inches of mercury (inHg).
+%
+% \DescribeMacro{\lbsi}
+% \index{Pressure>psi|usage}
+% \index{Pressure>Pound per square inch|usage}
+% |\lbsi| is a macro for pounds per square inch (psi). (Note that \textbackslash
+% psi is a latex command for the greek letter $\psi$).
+%
+% \DescribeMacro{\lbsf}
+% \index{Pressure>psf|usage}
+% \index{Pressure>Pound per square foot|usage}
+% |\lbsf| is a macro for pounds per square foot (psf).
+%
+% \DescribeMacro{\Ba}
+% \index{Pressure>Barre|usage}
+% |\Ba| is a macro for Barre (Ba).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \DescribeMacro{\Torr}
+% \index{Pressure>Torr|usage}
+% |\Torr| is a macro for Torr (Torr).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \index{Pressure|usage)}
+%
+% \subsection{Other}
+%
+% \index{Other|usage(}
+%
+% \DescribeMacro{\mol}
+% \index{Other>mole|usage(}
+% \index{mole|usage(}
+% |\mol| is a macro for moles (mol).
+%
+% \index{Other|usage)}
+
+% \StopEventually{}
+%
+
+\makeatletter
+% \section{Implementation}
+%
+% \subsection{Special}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\units@separator}
+% |\units@separator| is a special macro used to set the spacing between a
+% quantity and the associated units.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\units@separator}{\,}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\units@separator}
+% |\units@separator| is a special macro used to set the spacing between a
+% quantity and the associated units.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\micro}{\ensuremath{%
+\mu}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Electricity \& Magnetism}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\V}
+% |\V| is a macro for Volts (V).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\V}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1V}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Volt}
+% |\Volt| is a macro for Volts (V).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Volt}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1V}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Coulomb}
+% |\Coulomb| is a macro for Coulombs (C).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Coulomb}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1C}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\esu}
+% |\esu| is a macro for electrostatic units (esu).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\esu}{\ensuremath{%
+\expandafter\units@separator\mathrm{esu}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Ohm}
+% |\Ohm| is a macro for Ohms ($\Omega$).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Ohm}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1\Omega}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Amp}
+% |\Amp| is a macro for Amperes (A).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Amp}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1A}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Farad}
+% |\Farad| is a macro for Farads (F).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Farad}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1F}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Tesla}
+% |\Tesla| is a macro for Teslas (T).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Tesla}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1T}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Gauss}
+% |\Gauss| is a macro for Gauss (G).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Gauss}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1G}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Henry}
+% |\Henry| is a macro for Henrys (H).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Henry}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1H}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+% \subsection{Energy}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\eV}
+% |\eV| is a macro for electron Volts (eV).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\eV}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1eV}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\keV}
+% |\keV| is a macro for kilo-electron Volts (keV).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\keV}{\ensuremath{%
+\expandafter\units@separator\mathrm{keV}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\MeV}
+% |\MeV| is a macro for mega-electron Volts (MeV).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\MeV}{\ensuremath{%
+\expandafter\units@separator\mathrm{MeV}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\J}
+% |\J| is a macro for Joules (J).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\J}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1J}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Joule}
+% |\Joule| is a macro for Joules (J).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Joule}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1J}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\erg}
+% |\erg| is a macro for ergs (erg).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\erg}{\ensuremath{%
+\expandafter\units@separator\mathrm{erg}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kcal}
+% |\kcal| is a macro for kilo-calories (kcal).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\kcal}[1]{\ensuremath{%
+\expandafter\units@separator\mathrm{kcal}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Cal}
+% |\Cal| is a macro for kilo=calories (Cal).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Cal}{\ensuremath{%
+\expandafter\units@separator\mathrm{Cal}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\calorie}
+% |\calorie| is a macro for calories (cal).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\calorie}[1][ ]{%
+\ensuremath{%
+\expandafter\units@separator\mathrm{#1cal}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\BTU}
+% |\BTU| is a macro for British Thermal Units (BTU).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\BTU}{\ensuremath{%
+\expandafter\units@separator\mathrm{BTU}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\tnt}
+% |\tnt| is a macro for tons of TNT).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\tnt}{\ensuremath{%
+\expandafter\units@separator\mathrm{ton%
+\expandafter\units@separator of%
+\expandafter\units@separator TNT}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Power}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Watt}
+% |\Watt| is a macro for Watts (W).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Watt}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1W}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\hpi}
+% |\hpi| is a macro for Imperial Horsepower (hp(I)).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\hpi}{\ensuremath{%
+\expandafter\units@separator\mathrm{hp(I)}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\hpi}
+% |\hpi| is a macro for Metric Horsepower (hp(M)).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\hpm}{\ensuremath{%
+\expandafter\units@separator\mathrm{hp(M)}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\hp}
+% |\hp| is a macro for Horsepower (hp).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\hp}{\ensuremath{%
+\expandafter\units@separator\mathrm{hp}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Distance}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\meter}
+% |\meter| is a macro for meters (m).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\meter}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1m}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\m}
+% |\m| is a macro for meters (m).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\m}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1m}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\km}
+% |\km| is a macro for kilometers (km).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\km}{\ensuremath{%
+\expandafter\units@separator\mathrm{km}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\au}
+% |\au| is a macro for astronmical units (au).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\au}{\ensuremath{%
+\expandafter\units@separator\mathrm{au}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\pc}
+% |\pc| is a macro for parsecs (pc).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\pc}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1pc}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\ly}
+% |\ly| is a macro for light-years (ly).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\ly}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1ly}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\cm}
+% |\cm| is a macro for centimeters (cm).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\cm}{\ensuremath{%
+\expandafter\units@separator\mathrm{cm}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\nm}
+% |\nm| is a macro for nanometers (nm).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\nm}{\ensuremath{%
+\expandafter\units@separator\mathrm{nm}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\ft}
+% |\ft| is a macro for feet (ft).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\ft}{\ensuremath{%
+\expandafter\units@separator\mathrm{ft}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\inch}
+% |\inch| is a macro for inches (in).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\inch}{\ensuremath{%
+\expandafter\units@separator\mathrm{in}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\mi}
+% |\mi| is a macro for miles (mi).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\mi}{\ensuremath{%
+\expandafter\units@separator\mathrm{mi}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Time}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\s}
+% |\s| is a macro for seconds (s).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\s}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1s}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Sec}
+% |\Sec| is a macro for seconds (s).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Sec}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1s}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Min}
+% |\Min| is a macro for minutes (m).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Min}{\ensuremath{%
+\expandafter\units@separator\mathrm{min}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\h}
+% |\h| is a macro for hours (h).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\h}{\ensuremath{%
+\expandafter\units@separator\mathrm{h}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\y}
+% |\y| is a macro for years (y).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\y}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1y}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Day}
+% |\Day| is a macro for days (d).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Day}{\ensuremath{%
+\expandafter\units@separator\mathrm{d}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Mass}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\gm}
+% |\gm| is a macro for grams (g).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+
+\DeclareRobustCommand{\gm}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1g}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kg}
+% |\kg| is a macro for kilograms (kg).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\kg}{\ensuremath{%
+\expandafter\units@separator\mathrm{kg}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\lb}
+% |\lb| is a macro for pounds (weight) (lb).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\lb}{\ensuremath{%
+\expandafter\units@separator\mathrm{lb}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\amu}
+% |\amu| is a macro for atomic mass units (amu).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\amu}{\ensuremath{%
+\expandafter\units@separator\mathrm{amu}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Force}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\N}
+% |\N| is a macro for Newtons (N).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\N}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1N}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Newton}
+% |\Newton| is a macro for Newtons (N).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Newton}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1N}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\dyne}
+% |\dyne| is a macro for dynes (dyn).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\dyne}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1dyn}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\lbf}
+% |\lbf| is a macro for pounds of force (lbf).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\lbf}{\ensuremath{%
+\expandafter\units@separator\mathrm{lbf}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Velocity}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kmps}
+% |\kmps| is a macro for kilometers per second ($\kmps$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\kmps}{\ensuremath{%
+\expandafter\units@separator\mathrm{km}%
+\expandafter\units@separator\mathrm{s}^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kmph}
+% |\kmph| is a macro for kilometers per hour ($\kmph$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\kmph}{\ensuremath{%
+\expandafter\units@separator\mathrm{km}%
+\expandafter\units@separator\mathrm{h}^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\mps}
+% |\mps| is a macro for meters per second ($\mps$).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\mps}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1m}%
+\expandafter\units@separator\mathrm{s}^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\miph}
+% |\miph| is a macro for miles per hour ($\miph$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\miph}{\ensuremath{%
+\expandafter\units@separator\mathrm{mi}%
+\expandafter\units@separator\mathrm{h}^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\kts}
+% |\kts| is a macro for knots ($\kts$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\kts}{\ensuremath{%
+\expandafter\units@separator\mathrm{kts}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Acceleration}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\mpss}
+% |\mpss| is a macro for acceleration in meters per second squared ($\mpss$).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+
+\DeclareRobustCommand{\mpss}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1m}%
+\expandafter\units@separator\mathrm{s}^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\gacc}
+% |\gacc| is a macro for acceleration due to gravity ($\gacc$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\gacc}{\ensuremath{%
+\expandafter\units@separator\mathrm{g}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\ftpss}
+% |\ftpss| is a macro for acceleration in feet per second squared ($\ftpss$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\ftpss}{\ensuremath{%
+\expandafter\units@separator\mathrm{ft}%
+\expandafter\units@separator\mathrm{s}^{-2}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Temperature}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\K}
+% |\K| is a macro for Kelvin (K).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\K}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1K}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Kelvin}
+% |\Kelvin| is a macro for Kelvin (K).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Kelvin}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1K}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Celcius}
+% |\Celcius| is a macro for degrees Celcius $(\Celcius)$.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Celcius}{^\circ\ensuremath{%
+\expandafter\units@separator\mathrm{C}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Rankine}
+% |\Rankine| is a macro for degrees Rankine $(\Rankine)$.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Rankine}{^\circ\ensuremath{%
+\expandafter\units@separator\mathrm{R}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Fahrenheit}
+% |\Fahrenheit| is a macro for degrees Fahrenheit $(\Fahrenheit)$.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Fahrenheit}{^\circ\ensuremath{%
+\expandafter\units@separator\mathrm{F}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Angular Velocity}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\rpm}
+% |\rpm| is a macro for revolutions per minute $(\rpm)$.
+%
+% \begin{macrocode}
+
+\DeclareRobustCommand{\rpm}{\ensuremath{%
+\expandafter\units@separator\mathrm{rev}%
+\expandafter\units@separator\Min^{-1}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+% \subsection{Frequency}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Hz}
+% |\Hz| is a macro for Hertz (Hz).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+
+\DeclareRobustCommand{\Hz}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1Hz}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Pressure}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\barP}
+% |\barP| is a macro for bar (bar). (The use of barP instead of just bar is due
+% the \LaTeX~command \textbackslash bar.)
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\barP}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1bar}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\atm}
+% |\atm| is a macro for atmosphere (atm).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\atm}{\ensuremath{%
+\expandafter\units@separator\mathrm{atm}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Pa}
+% |\Pa| is a macro for Pascals (Pa).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Pa}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1Pa}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\mmHg}
+% |\mmHg| is a macro for millimeters of mercury (mmHg).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\mmHg}{\ensuremath{%
+\expandafter\units@separator\mathrm{mmHg}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\inHg}
+% |\inHg| is a macro for inches of mercury (inHg).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\inHg}{\ensuremath{%
+\expandafter\units@separator\mathrm{inHg}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\lbsi}
+% |\lbsi| is a macro for pounds per square inch (psi). (Note that \textbackslash
+% psi is a latex command for the greek letter $\psi$).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\lbsi}{\ensuremath{%
+\expandafter\units@separator\mathrm{psi}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\lbsf}
+% |\lbsf| is a macro for pounds per square foot (psf).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\lbsf}{\ensuremath{%
+\expandafter\units@separator\mathrm{psf}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Ba}
+% |\Ba| is a macro for Barre (Ba).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Ba}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1Ba}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\Torr}
+% |\Torr| is a macro for Torr (Torr).
+% This macro accepts an optional argument for a prefix. If no option is
+% supplied, no prefix will be prepended.
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\Torr}[1][ ]{\ensuremath{%
+\expandafter\units@separator\mathrm{#1Torr}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+%
+% \subsection{Other}
+%
+%\iffalse
+%<*package>
+%\fi
+% \begin{macro}{\mol}
+% |\mol| is a macro for moles (mol).
+%
+% \begin{macrocode}
+\DeclareRobustCommand{\mol}{\ensuremath{%
+\expandafter\units@separator\mathrm{mol}}}
+% \end{macrocode}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+%
+\makeatother
+
+%
+% \Finale
+%
diff --git a/macros/latex/contrib/physunits/physunits.ins b/macros/latex/contrib/physunits/physunits.ins
new file mode 100644
index 0000000000..36b01a112d
--- /dev/null
+++ b/macros/latex/contrib/physunits/physunits.ins
@@ -0,0 +1,56 @@
+%%
+%% Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+%% -----------------------------------------------------------
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+%% version 2006/05/20 or later.
+%%
+%%
+
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/physunits}
+
+\preamble
+
+This is a generated file.
+
+Copyright (C) 2020 by Brian W. Mulligan <bwmulligan@astronaos.com>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
+version 2006/05/20 or later.
+
+\endpreamble
+\askforoverwritefalse
+\generate{\file{physunits.sty}{\from{physunits.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* file into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* physunits.sty *}
+\Msg{* *}
+\Msg{* To produce the documentation run the file physunits.dtx *}
+\Msg{* through LaTeX. *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/physunits/physunits.pdf b/macros/latex/contrib/physunits/physunits.pdf
new file mode 100644
index 0000000000..090dfa7d83
--- /dev/null
+++ b/macros/latex/contrib/physunits/physunits.pdf
Binary files differ