From a77b88f2b97d4d2363865d5d14c9a82634972fd4 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 11 Apr 2020 22:24:37 +0000 Subject: hepunits (10apr20) git-svn-id: svn://tug.org/texlive/trunk@54660 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/hepunits/hepunits.sty | 217 +++++++++------------- 1 file changed, 91 insertions(+), 126 deletions(-) (limited to 'Master/texmf-dist/tex/latex/hepunits') diff --git a/Master/texmf-dist/tex/latex/hepunits/hepunits.sty b/Master/texmf-dist/tex/latex/hepunits/hepunits.sty index 50b8adcd48c..6cb68abfa72 100644 --- a/Master/texmf-dist/tex/latex/hepunits/hepunits.sty +++ b/Master/texmf-dist/tex/latex/hepunits/hepunits.sty @@ -9,164 +9,129 @@ %% Please let me know if you use hepunits and what you think of it. %% I'll try to implement any suggested options that seem sensible! -\def\fileversion{1.1.1} -\def\filedate{2007/09/27} +\def\fileversion{2.0.0} +\def\filedate{2020/04/10} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{hepunits}[\filedate\space High-energy physics units by Andy Buckley (v\fileversion)] -%% Now-redundant wrapper for declaring new units -\DeclareRobustCommand{\@NewUnit}[2]{\addunit{#1}{#2}} -%% Option handling variables -\def\@empty{} +%% Option handling \def\@yes{yes} \def\@HEPopt@noprefixcmds{} -\def\@SIopt@cdot{} -\def\@SIopt@space{mediumspace} -\def\@SIopt@qspace{thickqspace} -\def\@SIopt@amssquare{squaren} -\def\@SIopt@pstricks{} -\def\@SIopt@Gray{} -\def\@SIopt@italian{} -\def\@SIopt@textstyle{yes} -\def\@SIopt@binary{} -\def\@SIopt@noams{} -\def\@SIopt@derivedinbase{} -\def\@SIopt@derived{} - -%% Option for turning off explicit SI prefix commands +\def\@HEPopt@sicmds{} +\def\@HEPopt@freestanding{} +\DeclareOption{sicmds}{\def\@HEPopt@sicmds{yes}} \DeclareOption{noprefixcmds}{\def\@HEPopt@noprefixcmds{yes}} - -%% Options for passing to SIunits -\DeclareOption{cdot}{\def\@SIopt@cdot{yes}} -\DeclareOption{thickspace}{\def\@SIopt@space{thickspace}} -\DeclareOption{mediumspace}{\def\@SIopt@space{mediumspace}} -\DeclareOption{thinspace}{\def\@SIopt@space{thinspace}} -\DeclareOption{thickqspace}{\def\@SIopt@qspace{thickqspace}} -\DeclareOption{mediumqspace}{\def\@SIopt@qspace{mediumqspace}} -\DeclareOption{thinqspace}{\def\@SIopt@qspace{thinqspace}} -\DeclareOption{noamssquareissue}{\def\@SIopt@amssquare{}} -\DeclareOption{amssymb}{\def\@SIopt@amssquare{amssymb}} -\DeclareOption{squaren}{\def\@SIopt@amssquare{squaren}} -\DeclareOption{pstricks}{\def\@SIopt@pstricks{yes}} -\DeclareOption{Gray}{\def\@SIopt@Gray{yes}} -\DeclareOption{italian}{\def\@SIopt@italian{yes}} -\DeclareOption{textstyle}{\def\@SIopt@textstyle{yes}} -\DeclareOption{notextstyle}{\def\@SIopt@textstyle{}} -\DeclareOption{binary}{\def\@SIopt@binary{yes}} -\DeclareOption{noams}{\def\@SIopt@noams{yes}} -\DeclareOption{derivedinbase}{\def\@SIopt@derivedinbase{yes}} -\DeclareOption{derived}{\def\@SIopt@derived{yes}} -%\DeclareOption{noderived}{\def\@SIopt@derived{}} - +\DeclareOption{freestanding}{\def\@HEPopt@freestanding{yes}} \ProcessOptions +\ifx\@HEPopt@noprefixcmds\@yes\def\@HEPopt@sicmds\@empty\fi + -%% Pass the SIunits yes/no options -\ifx\@SIopt@cdot\@yes\PassOptionsToPackage{cdot}{SIunits}\fi -\ifx\@SIopt@pstricks\@yes\PassOptionsToPackage{pstricks}{SIunits}\fi -\ifx\@SIopt@Gray\@yes\PassOptionsToPackage{Gray}{SIunits}\fi -\ifx\@SIopt@italian\@yes\PassOptionsToPackage{italian}{SIunits}\fi -\ifx\@SIopt@textstyle\@yes\PassOptionsToPackage{textstyle}{SIunits}\fi -\ifx\@SIopt@binary\@yes\PassOptionsToPackage{binary}{SIunits}\fi -\ifx\@SIopt@noams\@yes\PassOptionsToPackage{noams}{SIunits}\fi -\ifx\@SIopt@derivedinbase\@yes\PassOptionsToPackage{derivedinbase}{SIunits}\fi -\ifx\@SIopt@derived\@yes\PassOptionsToPackage{derived}{SIunits}\fi -%% Pass the SIunits "choice" options -\ifx\@SIopt@space\@empty\else\PassOptionsToPackage{\@SIopt@space}{SIunits}\fi -\ifx\@SIopt@qspace\@empty\else\PassOptionsToPackage{\@SIopt@qspace}{SIunits}\fi -\ifx\@SIopt@amssquare\@empty\else\PassOptionsToPackage{\@SIopt@amssquare}{SIunits}\fi - -%% Get the dependancy packages, now that the options -%% have been processed +%% Get the dependency packages \RequirePackage{amsmath} -\RequirePackage{xspace} -\RequirePackage{SIunits} +\RequirePackage{ifthen} +\RequirePackage{siunitx} + +%% Pass default config to siunitx +\sisetup{detect-all, detect-display-math, mode=text} +\ifx\@HEPopt@freestanding\@yes +\sisetup{free-standing-units=true} +\fi + %% ------------------------------------------------- %% Units defined below here %% ------------------------------------------------- -\@NewUnit{\Hz}{\hertz} -\ifx\@HEPopt@noprefixcmds\@empty +\DeclareSIUnit{\Hz}{\hertz} + +\ifx\@HEPopt@sicmds\@yes %% Lengths -\@NewUnit{\nm}{\nano\metre} -\@NewUnit{\micron}{\micro\metre} -\@NewUnit{\mm}{\milli\metre} -\@NewUnit{\cm}{\centi\metre} +\DeclareSIUnit{\fermi}{\femto\metre} +\DeclareSIUnit{\nm}{\nano\metre} +\DeclareSIUnit{\micron}{\micro\metre} +\DeclareSIUnit{\um}{\micro\metre} +\DeclareSIUnit{\mm}{\milli\metre} +\DeclareSIUnit{\cm}{\centi\metre} %% Angles -\@NewUnit{\mrad}{\milli\rad} +\DeclareSIUnit{\mrad}{\milli\radian} %% Times -\@NewUnit{\as}{\atto\second} -\@NewUnit{\fs}{\femto\second} -\@NewUnit{\ps}{\pico\second} -\@NewUnit{\ns}{\nano\second} +\DeclareSIUnit{\as}{\atto\second} +\DeclareSIUnit{\fs}{\femto\second} +\DeclareSIUnit{\ps}{\pico\second} +\DeclareSIUnit{\ns}{\nano\second} %% Rates -\@NewUnit{\mHz}{\milli\hertz} -\@NewUnit{\kHz}{\kilo\hertz} -\@NewUnit{\MHz}{\mega\hertz} -\@NewUnit{\GHz}{\giga\hertz} -\@NewUnit{\THz}{\tera\hertz} +\DeclareSIUnit{\mHz}{\milli\hertz} +\DeclareSIUnit{\kHz}{\kilo\hertz} +\DeclareSIUnit{\MHz}{\mega\hertz} +\DeclareSIUnit{\GHz}{\giga\hertz} +\DeclareSIUnit{\THz}{\tera\hertz} \fi + %% Fields -\@NewUnit{\gauss}{G} +\DeclareSIUnit{\gauss}{G} %% Luminosity -\@NewUnit{\invcmsqpersecond}{\rpsquare{\centi\metre}\usk\reciprocal{\second}} -\@NewUnit{\invcmsqpersec}{\invcmsqpersecond} -\DeclareRobustCommand{\lumiunits}{\invcmsqpersecond} +\DeclareSIUnit{\invcmsq}{\centi\metre\tothe{-2}} +\DeclareSIUnit{\invcmsqpersecond}{\invcmsq\second\tothe{-1}} +\DeclareSIUnit{\invcmsqpersec}{\invcmsqpersecond} %% (Inverse) cross-sections -\@NewUnit{\invbarn}{\reciprocal\barn\xspace} +\DeclareSIUnit{\invbarn}{\barn\tothe{-1}} \ifx\@HEPopt@noprefixcmds\@empty -\@NewUnit{\nanobarn}{\nano\barn\xspace} -\@NewUnit{\picobarn}{\pico\barn\xspace} -\@NewUnit{\femtobarn}{\femto\barn\xspace} -\@NewUnit{\attobarn}{\atto\barn\xspace} -\@NewUnit{\zeptobarn}{\zepto\barn\xspace} -\@NewUnit{\yoctobarn}{\yocto\barn\xspace} -\@NewUnit{\invnanobarn}{\nano\invbarn\xspace} -\@NewUnit{\invpicobarn}{\pico\invbarn\xspace} -\@NewUnit{\invfemtobarn}{\femto\invbarn\xspace} -\@NewUnit{\invattobarn}{\atto\invbarn\xspace} -\@NewUnit{\invzeptobarn}{\zepto\invbarn\xspace} -\@NewUnit{\invyoctobarn}{\yocto\invbarn\xspace} -\@NewUnit{\invnb}{\invnanobarn} -\@NewUnit{\invpb}{\invpicobarn} -\@NewUnit{\invfb}{\invfemtobarn} -\@NewUnit{\invab}{\invattobarn} -\@NewUnit{\invzb}{\invzeptobarn} -\@NewUnit{\invyb}{\invyoctobarn} +\DeclareSIUnit{\millibarn}{\milli\barn} +\DeclareSIUnit{\microbarn}{\micro\barn} +\DeclareSIUnit{\nanobarn}{\nano\barn} +\DeclareSIUnit{\picobarn}{\pico\barn} +\DeclareSIUnit{\femtobarn}{\femto\barn} +\DeclareSIUnit{\attobarn}{\atto\barn} +\DeclareSIUnit{\zeptobarn}{\zepto\barn} +\DeclareSIUnit{\yoctobarn}{\yocto\barn} +\DeclareSIUnit{\invnanobarn}{\nano\invbarn} +\DeclareSIUnit{\invpicobarn}{\pico\invbarn} +\DeclareSIUnit{\invfemtobarn}{\femto\invbarn} +\DeclareSIUnit{\invattobarn}{\atto\invbarn} +\DeclareSIUnit{\invzeptobarn}{\zepto\invbarn} +\DeclareSIUnit{\invyoctobarn}{\yocto\invbarn} +\DeclareSIUnit{\invnb}{\invnanobarn} +\DeclareSIUnit{\invpb}{\invpicobarn} +\DeclareSIUnit{\invfb}{\invfemtobarn} +\DeclareSIUnit{\invab}{\invattobarn} +\DeclareSIUnit{\invzb}{\invzeptobarn} +\DeclareSIUnit{\invyb}{\invyoctobarn} \fi %% HEP energy, momentum and mass units -\DeclareRobustCommand{\clight}{\ensuremath{c}} -\@NewUnit{\eV}{\electronvolt\xspace} -\@NewUnit{\inveV}{\reciprocal\electronvolt\xspace} -\@NewUnit{\eVoverc}{\ensuremath{\eV\!/\clight}\xspace} -\@NewUnit{\eVovercsq}{\ensuremath{\eV\!/\clight^{2}}\xspace} +% \DeclareSIUnit{\electronvolt}{\text{e\kern-1.2\scriptspace V}} +\DeclareSIUnit{\electronvolt}{\text{e\kern-0.15ex V}} +\DeclareSIUnit{\eV}{\electronvolt} +\newcommand{\@eVoverc}[1][]{\ensuremath{ + \eV + \ifthenelse{\equal{\f@series}{\bfdefault}}{/}{\mkern-\medmuskip/\mkern-\thinmuskip} + \text{\ensuremath{c#1}} + }} +\DeclareSIUnit{\electronvoltc}{\@eVoverc} +\DeclareSIUnit{\electronvoltcsq}{\@eVoverc[^2]} +\DeclareSIUnit{\eVc}{\@eVoverc} +\DeclareSIUnit{\eVcsq}{\@eVoverc[^2]} \ifx\@HEPopt@noprefixcmds\@empty -\@NewUnit{\meV}{\milli\eV} -\@NewUnit{\keV}{\kilo\eV} -\@NewUnit{\MeV}{\mega\eV} -\@NewUnit{\GeV}{\giga\eV} -\@NewUnit{\TeV}{\tera\eV} -\@NewUnit{\minveV}{\milli\inveV} -\@NewUnit{\kinveV}{\kilo\inveV} -\@NewUnit{\MinveV}{\mega\inveV} -\@NewUnit{\GinveV}{\giga\inveV} -\@NewUnit{\TinveV}{\tera\inveV} -\@NewUnit{\meVoverc}{\ensuremath{\milli\eVoverc}\xspace} -\@NewUnit{\keVoverc}{\ensuremath{\kilo\eVoverc}\xspace} -\@NewUnit{\MeVoverc}{\ensuremath{\mega\eVoverc}\xspace} -\@NewUnit{\GeVoverc}{\ensuremath{\giga\eVoverc}\xspace} -\@NewUnit{\TeVoverc}{\ensuremath{\tera\eVoverc}\xspace} -\@NewUnit{\meVovercsq}{\ensuremath{\milli\eVovercsq}\xspace} -\@NewUnit{\keVovercsq}{\ensuremath{\kilo\eVovercsq}\xspace} -\@NewUnit{\MeVovercsq}{\ensuremath{\mega\eVovercsq}\xspace} -\@NewUnit{\GeVovercsq}{\ensuremath{\giga\eVovercsq}\xspace} -\@NewUnit{\TeVovercsq}{\ensuremath{\tera\eVovercsq}\xspace} +\DeclareSIUnit{\meV}{\milli\eV} +\DeclareSIUnit{\keV}{\kilo\eV} +\DeclareSIUnit{\MeV}{\mega\eV} +\DeclareSIUnit{\GeV}{\giga\eV} +\DeclareSIUnit{\TeV}{\tera\eV} +\DeclareSIUnit{\meVc}{\milli\eVc} +\DeclareSIUnit{\keVc}{\kilo\eVc} +\DeclareSIUnit{\MeVc}{\mega\eVc} +\DeclareSIUnit{\GeVc}{\giga\eVc} +\DeclareSIUnit{\TeVc}{\tera\eVc} +\DeclareSIUnit{\meVcsq}{\milli\eVcsq} +\DeclareSIUnit{\keVcsq}{\kilo\eVcsq} +\DeclareSIUnit{\MeVcsq}{\mega\eVcsq} +\DeclareSIUnit{\GeVcsq}{\giga\eVcsq} +\DeclareSIUnit{\TeVcsq}{\tera\eVcsq} \fi -- cgit v1.2.3