summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/hepparticles
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-12-02 22:29:54 +0000
committerKarl Berry <karl@freefriends.org>2014-12-02 22:29:54 +0000
commit266efb5b56bfff0a45604b72ac4afde874c06217 (patch)
tree3b3196f003439a6dddfd2c50b4dfae406d22320f /Master/texmf-dist/tex/latex/hepparticles
parenta0fcd95ea13d2003d89e4c9c992fea57041d40f7 (diff)
hepparticles (2dec14)
git-svn-id: svn://tug.org/texlive/trunk@35723 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/hepparticles')
-rw-r--r--Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty668
1 files changed, 353 insertions, 315 deletions
diff --git a/Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty b/Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty
index 7ef144e6141..67a8f7b3c67 100644
--- a/Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty
+++ b/Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty
@@ -1,82 +1,12 @@
-\def\fileversion{1.4}
-\def\filedate{2005/02/22}
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{hepparticles}[\filedate\space HEP particle typesetting (v\fileversion)]
-\RequirePackage{maybemath}
-%\RequirePackage{xspace}
-
-%% Package options
-\def\@italicNames{}%
-\def\@forceItalic{}%
-\def\@maybeSansSerif{yes}% default is ON
-\def\@emptyOption{}%
-\def\@empty{}%
-
-%% Make particle symbols behave as for generic math mode
-\DeclareOption{italic}{%
- \def\@italicNames{yes}%
-}
-%% Force particle symbols to behave as for italic math mode
-\DeclareOption{itforce}{%
- \def\@italicNames{yes}%
- \def\@forceItalic{yes}%
-}
-%% Force upright particle names (default)
-\DeclareOption{notitalic}{%
- \def\@italicNames{}%
- \def\@forceItalic{}%
-}
-%% Allow particle names to be sans-serif in context (no italics, even for generic particles)
-\DeclareOption{maybess}{%
- \def\@maybeSansSerif{yes}%
-}
-\DeclareOption{noss}{%
- \def\@maybeSansSerif{}%
-}
-\ProcessOptions
-
-%% A set of macros for typesetting high energy particle names, to
-%% meet the following criteria:
-%%
-%% 1. The main particle name is a Roman or Greek symbol, to be
-%% typeset in upright font in normal contexts. Note that this
-%% follows from the mathematical convention that italics are
-%% only used to designate *variables* and that concrete particle
-%% names are not variables. However, if a symbol is being used
-%% to represent a whole class of possible concrete particles then
-%% that symbol should be italicised as befits a genuine variable.
-%%
-%% 2. Additionally a superscript and/or subscript may follow the
-%% main symbol.
-%%
-%% 3. Particle resonances may also have a resonance mass specifier
-%% which is typeset in parentheses following the main symbol
-%% e.g. (1440) and a spectroscopic term, e.g. P_11.
-%% In general these may also be followed by sub- and
-%% super-scripts.
-%%
-%% 4. The particle names are expected to be used both in and out
-%% of mathematical contexts.
-%%
-%% 5. If the surrounding text is bold or italic then the particle
-%% name should adapt to that context as best as possible (this
-%% may not be possible for Greek symbols).
-%%
-%% 6. Over-lines and over-tildes are used to indicate anti-particles
-%% and supersymmetric (SUSY) particles respectively. The line and/or
-%% tilde are only placed above the main symbol, NOT the accompanying
-%% sub- and super-scripts.
-%%
-%% 7. Sub- and super-scripts should be at the same heights for particles,
-%% anti-particles, SUSY particles and SUSY-anti-particles.
+%% hepparticles --- flexible elementary particle symbols
+%% Author: Andy Buckley <andy@insectnation.org>
%%
-%% A consequence of point 5 is that the well-known problems with
-%% boldness of particle names in section titles, headers and
-%% tables of contents automatically disappear if these macros are
-%% used.
+%% This material is subject to the LaTeX Project Public License.
+%% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+%% for the details of that license.
%%
%%
-%% The macros provided are as follows:
+%% The macros provided are:
%%
%% For generic particle names e.g. all positively charged leptons:
%% \HepGenParticle{main}{subscript}{superscript}
@@ -91,13 +21,13 @@
%% \HepGenSusyParticle{main}{subscript}{superscript}
%% \HepSusyAntiParticle{main}{subscript}{superscript}
%% \HepGenSusyAntiParticle{main}{subscript}{superscript}
-%%
+%%
%% For resonance specifiers (just the extra terms):
%% \HepResonanceMassTerm{mainTermInParenths}{subscript}{superscript}
%% \HepResonanceSpecTerm{mainSpecTerm}{subscript}{superscript}
-%%
+%%
%% For the total particle name and resonance specifications: the
-%% ``formal'' definitions include the spectroscopic term and the
+%% ``formal'' definitions include the spectroscopic term and the
%% ``full'' versions pf each require the main particle name to be
%% explicitly specified rather than just pass a \HepParticle as the first arg:
%% \HepParticleResonance{name}{mass}{massSub}{massSup}
@@ -107,294 +37,399 @@
%% \HepParticleResonanceFormalFull{name}{sub}{sup}\
%% {mass}{massSub}{massSup}\
%% {spec}{specSub}{specSup}
-%%
-%% And finally, for containing processes describing the evolution
+%%
+%% And finally, for containing processes describing the evolution
%% of these particles:
-%% \HepProcess{iParticles \HepTo fParticles}
-%% where \HepTo is a normal \to arrow with a bit of extra space.
-%% Help on increasing horizontal math spacing in this environment
-%% would be welcome!
-%%
+%% \HepProcess{iParticles \to fParticles}
+%% where \to is re-defined to have a bit of extra space.
+%%
%% There are probably some missing cases but they can be handled
%% as explicit exceptions. You might also be interested in the
-%% ``heppennames'' package, which updates the "pennames" set of
+%% ``hepnames'' package, which updates the "pennames" set of
%% typeset concrete particle names to use this more flexible scheme.
+
+%% TODO:
%%
+%% * Make the bold math only occur within particle macros
%%
-%% This material is subject to the LaTeX Project Public License.
-%% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
-%% for the details of that license.
+%% * Distinction between italic main symbol and italic main+scripts
%%
-%% Author: Andy Buckley <andy@insectnation.org>
+%% * Optionally include Greek letters (lower and upper) in upright/italic
+%% forcing (and sans/bold context sensitivity)
+%%
+%% * Use maybemath again? (A new version, using NFSS properly)
+
+%% Admin
+\def\fileversion{2.0}
+\def\filedate{2014/12/01}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hepparticles}[\filedate\space HEP particle typesetting (v\fileversion)]
+% \RequirePackage{xspace}
+% \RequirePackage{etoolbox}
-%% -----------------------------------------------------------------------
-%% Styling commands (exported)
-%% -----------------------------------------------------------------------
+%% Package options
+\def\@italicNames{}%
-%% Undecorated particle style (boldness and sans-serif handling)
-\DeclareRobustCommand{\HepNormStyle}[1]{%
- \ifx\@maybeSansSerif\@emptyOption%
- {\ensuremath{\maybebm{#1}}}%
- %{\ensuremath{#1}}% lots of problems with the bold math nesting... cocks up in italic mode
- \else%
- {\ensuremath{\maybebm{\maybesf{#1}}}}%
- \fi%
+%% Use italic particle symbols
+\DeclareOption{italic}{%
+ \def\@italicNames{yes}%
}
+% %% Force particle symbols to behave as for italic math mode
+% % TODO: clarify... means that text super/sub scripts are italic not rm?
+% \DeclareOption{itforce}{%
+% \def\@italicNames{yes}%
+% \def\@forceItalic{yes}%
+% }
+% %% Force upright particle names (default)
+% \DeclareOption{notitalic}{%
+% \def\@italicNames{}%
+% \def\@forceItalic{}%
+% }
+% %% Allow particle names to be sans-serif in context (no italics, even for generic particles)
+% \DeclareOption{maybess}{%
+% \def\@maybeSansSerif{yes}%
+% }
+% \DeclareOption{noss}{%
+% \def\@maybeSansSerif{}%
+% }
+
+% TODO: Add options to force upright Greek lower-case / italic Greek upper-case?
-%% Generic particle style (normal style with optional forced italics)
-\DeclareRobustCommand{\HepGenStyle}[1]{%
- \ifx\@forceItalic\@emptyOption%
- {\HepNormStyle{#1}}%
- \else%
- {\HepNormStyle{\mathit{#1}}}%
- \fi%
-}
+\ProcessOptions
-%% Concrete particle style (normal style with upright and forced italic handling)
-%% HepNormStyle can't be used in the first portion as it's important that sf be the
-%% innermost operator and that bm is the outermost so the rm must be sandwiched.
-%% The choice has been made to have forced-italics override the sf option, as you
-%% presumably have no sense of style if you use forced-it anyway :P
-\DeclareRobustCommand{\HepConStyle}[1]{%
- \ifx\@forceItalic\@emptyOption%
- \ifx\@maybeSansSerif\@emptyOption%
- {\ensuremath{\maybebm{\mayberm{#1}}}}%
- \else%
- {\ensuremath{\maybebm{\mayberm{\maybesf{#1}}}}}%
- \fi%
- \else%
- {\HepNormStyle{\maybeitrm{#1}}}%
- \fi%
-}
+%% Force all sub/superscripts to the same height
+\RequirePackage{subdepth}
+\RequirePackage{amsmath}
+
+%% Automatically bolden math mode symbols in a bold text context
+% TODO: only apply to particles? Redefine \bfseries inside hepparticles macros and restore at end? Or is there a simpler scoping?
+\g@addto@macro\bfseries{\boldmath}
+
+\DeclareMathAlphabet{\mathup}{OT1}{\familydefault}{m}{n}
+\SetMathAlphabet{\mathup}{bold}{\encodingdefault}{\familydefault}{bx}{n}
+
+\DeclareMathAlphabet{\mathsfup}{OT1}{\sfdefault}{m}{n}
+\SetMathAlphabet{\mathsfup}{bold}{\encodingdefault}{\sfdefault}{bx}{n}
+
+\DeclareMathAlphabet{\mathsfit}{\encodingdefault}{\sfdefault}{m}{sl}
+\SetMathAlphabet{\mathsfit}{bold}{\encodingdefault}{\sfdefault}{bx}{sl}
+
+% \DeclareMathAlphabet{\mathbfsfit}{\encodingdefault}{\sfdefault}{bx}{sl} % why doesn't this work (no italic)?
+% \DeclareMathAlphabet{\mathbfsf} {\encodingdefault}{\sfdefault}{bx}{sl}
+
+% TODO: Use fixmath to force italic/upright upper/lower Greek characters -- only in particles
-%\setcounter{errorcontextlines}{10}
%% -----------------------------------------------------------------------
-%% Internal commands
+%% Styling commands
%% -----------------------------------------------------------------------
-%% Spacer used for filling in superscripts to stabilise placement
-\DeclareRobustCommand{\@dummysuper}{{\vphantom{\ast}}}
-%\DeclareRobustCommand{\@dummysuper}{\ast}
+%% Generic particle style (normal style with optional forced italics)
+\DeclareRobustCommand{\@HepGenStyle}[1]{%
+ \ensuremath{%
+ \edef\@itcode{\itdefault}%
+ \edef\@slcode{\sldefault}%
+ \edef\@sfcode{\sfdefault}%
+ \edef\@upcode{\updefault}%
+ \edef\@bfcode{\bfdefault}%
+ %
+ \ifx\f@family\@sfcode%
+ % \ifx\f@shape\@itcode%
+ % \ifx\f@series\@bfcode\bm{\mathsfit{#1}}\else\mathsfit{#1}\fi%
+ % \fi%
+ % \ifx\f@shape\@slcode%
+ % \mathsfit{#1}%
+ % \fi%
+ % \ifx\f@shape\@upcode%
+ % \mathsfup{#1}%
+ % \fi%
+%
+ % \ifx\f@series\@bfcode\mathbfsf{#1}\else\mathsfit{#1}\fi%
+%
+ \mathsfit{#1}%
+ \else%
+ % \ifx\f@shape\@itcode%
+ % \mathit{#1}%
+ % \fi%
+ % \ifx\f@shape\@slcode%
+ % \mathit{#1}%
+ % \fi%
+ % \ifx\f@shape\@upcode%
+ % {#1}%
+ % \fi%
+%
+ % \ifx\f@series\@bfcode\bm{\mathit{#1}}\else\mathit{#1}\fi%
+%
+ \mathit{#1}%
+ \fi%
+ }%
+}
+
-%% Internal command for typesetting conditionally-bold terms with optional
-%% following sub- and super-scripts. Used by most other commands
-\DeclareRobustCommand{\@HepMainSubSupTerm}[3]{%
- {\def\myargtwo{#2}}%
- {\def\myargthree{#3}}%
+%% Concrete particle style (normal style with upright and forced italic handling)
+\DeclareRobustCommand{\@HepConStyle}[1]{%
\ensuremath{%
- \ifx\myargtwo\@empty%
- \ifx\myargthree\@empty%
- {#1}%
- \else%
- {{#1}^{#3}}%
+ \edef\@itcode{\itdefault}%
+ \edef\@slcode{\sldefault}%
+ \edef\@sfcode{\sfdefault}%
+ \edef\@upcode{\updefault}%
+ %
+ \ifx\f@family\@sfcode%
+ \ifx\f@shape\@itcode%
+ \mathsfit{#1}%
+ \fi%
+ \ifx\f@shape\@slcode%
+ \mathsfit{#1}%
+ \fi%
+ \ifx\f@shape\@upcode%
+ \mathsfup{#1}% <--- difference from gen style
\fi%
\else%
- \ifx\myargthree\@empty%
- {{#1}_{#2}}%
- \else%
- {{#1}_{#2}^{#3}}%
+ \ifx\f@shape\@itcode%
+ \mathit{#1}%
+ \fi%
+ \ifx\f@shape\@slcode%
+ \mathit{#1}%
+ \fi%
+ \ifx\f@shape\@upcode%
+ \mathup{#1}% <--- difference from gen style
\fi%
\fi%
- \mspace{-0.6mu}% I don't know why, but a 0.6mu space was arising compared to pure text names
}%
}
-\DeclareRobustCommand{\@HepGenericSubSupTerm}[3]{%
- {\def\myargtwo{#2}}%
- \ifx\myargtwo\@empty%
- {\HepGenStyle{\@HepMainSubSupTerm{#1}{}{#3}}}%
- \else%
- {\HepGenStyle{\@HepMainSubSupTerm{#1}{\mspace{-2mu}{#2}}{#3}}}%
- \fi%
-}
-\DeclareRobustCommand{\@HepConcreteSubSupTerm}[3]{%
- {\def\myargtwo{#2}}%
- \ifx\myargtwo\@empty%
- {\HepConStyle{\@HepMainSubSupTerm{#1}{}{#3}}}%
- \else%
- {\HepConStyle{\@HepMainSubSupTerm{#1}{\maybeitsubscript{#2}}{#3}}}%
- \fi%
-}
+%% -----------------------------------------------------------------------
+%% Conditional horizontal shifting and kerning for sub/superscripts
+%% -----------------------------------------------------------------------
-%% Internal command for shifting sub- and super-scripts vertically to counter the effects of overlines etc.
-\DeclareRobustCommand{\@VerticalScriptShift}[2]{%
- {\raisebox{#1}{\HepNormStyle{\scriptstyle{#2}}}}%
+\DeclareRobustCommand{\@itmkern}[1]{%
+ \ensuremath{%
+ \edef\@itcode{\itdefault}%
+ \edef\@slcode{\sldefault}%
+ %
+ \ifx\f@shape\@itcode%
+ \mkern#1%
+ \fi%
+ \ifx\f@shape\@slcode%
+ \mkern#1%
+ \fi%
+ }%
}
-%% Generic version of the above
-\DeclareRobustCommand{\@GenericVerticalScriptShift}[2]{%
- {\@VerticalScriptShift{#1}{\HepGenStyle{#2}}}%
+\DeclareRobustCommand{\@itsfshift}[2]{%
+ \ensuremath{%
+ \edef\@itcode{\itdefault}%
+ \edef\@slcode{\sldefault}%
+ \edef\@sfcode{\sfdefault}%
+ \edef\@upcode{\updefault}%
+ \edef\@bfcode{\bfdefault}%
+ %
+ \ifx\f@family\@sfcode%
+ \ifx\f@shape\@itcode%
+ \mspace{#2}
+ \fi%
+ \ifx\f@shape\@slcode%
+ \mspace{#2}%
+ \fi%
+ \ifx\f@shape\@upcode%
+ \relax%
+ \fi%
+ \else%
+ \ifx\f@shape\@itcode%
+ \mspace{#1}
+ \fi%
+ \ifx\f@shape\@slcode%
+ \mspace{#1}
+ \fi%
+ \ifx\f@shape\@upcode%
+ \relax%
+ \fi%
+ \fi%
+ }%
}
-%% Concrete version of the above
-\DeclareRobustCommand{\@ConcreteVerticalScriptShift}[2]{%
- {\@VerticalScriptShift{#1}{\HepConStyle{#2}}}%
+\DeclareRobustCommand{\@sfshift}[2]{%
+ \ensuremath{%
+ \edef\@sfcode{\sfdefault}%
+ %
+ \ifx\f@family\@sfcode%
+ \mspace{#2}
+ \else%
+ \mspace{#1}
+ \fi%
+ }%
}
%% -----------------------------------------------------------------------
-%% Exported (public) commands
+%% Public commands for particle typesetting
%% -----------------------------------------------------------------------
-%% Alias for the internal particle (main-sub-sup) structure
-\DeclareRobustCommand{\HepParticleStruct}[3]{\@HepMainSubSupTerm{#1}{#2}{#3}}
-
-
%% For generic particles like "lepton", "quark" etc (no upright font)
+\def\@shiftlen@norm@gen@rmsub{-3mu}
+\def\@shiftlen@norm@gen@sfsub{-2mu}
+\def\@shiftlen@norm@gen@rmsup{-1mu}
+\def\@shiftlen@norm@gen@sfsup{0mu}
+%
\DeclareRobustCommand{\HepGenParticle}[3]{%
- {\def\myargthree{#3}}%
- \ifx\myargthree\@empty%
- {\@HepGenericSubSupTerm{#1}{#2}{\@dummysuper}}% unmatched subscripts are very unstable
- \else%
- {\@HepGenericSubSupTerm{#1}{#2}{#3}}%
- \fi%
-}
-
-%% For concrete HEP particle names like "B", "J/psi" etc
-\DeclareRobustCommand{\HepParticle}[3]{%
- \ifx\@italicNames\@emptyOption%
- {\def\myargthree{#3}}%
- \ifx\myargthree\@empty%
- {\@HepConcreteSubSupTerm{#1}{#2}{\@dummysuper}}% unmatched subscripts are very unstable
- \else%
- {\@HepConcreteSubSupTerm{#1}{#2}{#3}}%
- \fi%
- \else%
- {\HepGenParticle{#1}{#2}{#3}}%
- \fi%
+ \@HepGenStyle{{#1}{}%
+ _{\@sfshift{\@shiftlen@norm@gen@rmsub}{\@shiftlen@norm@gen@sfsub}\scriptstyle{#2}}%
+ ^{\@sfshift{\@shiftlen@norm@gen@rmsup}{\@shiftlen@norm@gen@sfsup}\scriptstyle{#3}}}%
}
%% For generic antiparticles
+\def\@shiftlen@anti@gen@bar{4mu}
+\def\@shiftlen@anti@gen@rmsub{-2mu}
+\def\@shiftlen@anti@gen@sfsub{-1mu}
+\def\@shiftlen@anti@gen@rmsup{0mu}
+\def\@shiftlen@anti@gen@sfsup{1mu}
+%
\DeclareRobustCommand{\HepGenAntiParticle}[3]{%
- {\def\myargtwo{#2}}%
- {\def\myargthree{#3}}%
- \ifx\myargtwo\@empty%
- \HepGenParticle%
- {\overline{#1}}%
- {}%
- {\mspace{1mu}\@GenericVerticalScriptShift{-0.6ex}{#3}}%
- \else%
- \ifx\myargthree\@empty%
- {\HepGenParticle%
- {\overline{#1}}%
- {\mspace{0mu}{#2}}%
- {\mspace{1mu}\@GenericVerticalScriptShift{-0.55ex}{\@dummysuper}}}%
- \else%
- {\HepGenParticle%
- {\overline{#1}}%
- {\mspace{1mu}{#2}}%
- {\mspace{1mu}\@GenericVerticalScriptShift{-0.55ex}{#3}}}%
- \fi%
- \fi%
+ \@HepGenStyle{{\mkern\@shiftlen@anti@gen@bar\overline{\mkern-\@shiftlen@anti@gen@bar{#1}}}{}%
+ _{\@sfshift{\@shiftlen@anti@gen@rmsub}{\@shiftlen@anti@gen@sfsub}\scriptstyle{#2}}%
+ ^{\@sfshift{\@shiftlen@anti@gen@rmsup}{\@shiftlen@anti@gen@sfsup}\scriptstyle{#3}}}%
+}
+
+%% For generic SUSY particles e.g. slepton, squark
+% cm/lmodern
+\def\@shiftlen@susy@gen@til{2mu}
+\def\@shiftlen@susy@gen@rmsub{-2.5mu}
+\def\@shiftlen@susy@gen@sfsub{-2mu}
+\def\@shiftlen@susy@gen@rmsup{-0.5mu}
+\def\@shiftlen@susy@gen@sfsup{0mu}
+% mathpazo
+% \def\@shiftlen@susy@gen@til{2mu}
+% \def\@shiftlen@susy@gen@rmsub{-1.5mu}
+% \def\@shiftlen@susy@gen@sfsub{-2mu}
+% \def\@shiftlen@susy@gen@rmsup{0.5mu}
+% \def\@shiftlen@susy@gen@sfsup{0mu}
+%
+\DeclareRobustCommand{\HepGenSusyParticle}[3]{%
+ \@HepGenStyle{{\mkern\@shiftlen@susy@gen@til\widetilde{\mkern-\@shiftlen@susy@gen@til{#1}}}{}%
+ _{\@sfshift{\@shiftlen@susy@gen@rmsub}{\@shiftlen@susy@gen@sfsub}\scriptstyle{#2}}%
+ ^{\@sfshift{\@shiftlen@susy@gen@rmsup}{\@shiftlen@susy@gen@sfsup}\scriptstyle{#3}}}%
}
+%% For generic SUSY anti-particles e.g. slepton, squark
+% cm/lmodern
+\def\@shiftlen@antisusy@gen@bar{3.5mu}
+\def\@shiftlen@antisusy@gen@til{2mu}
+\def\@shiftlen@antisusy@gen@rmsub{-4mu}
+\def\@shiftlen@antisusy@gen@sfsub{-3mu}
+\def\@shiftlen@antisusy@gen@rmsup{-2mu}
+\def\@shiftlen@antisusy@gen@sfsup{0mu}
+% mathpazo
+% \def\@shiftlen@antisusy@gen@bar{3.5mu}
+% \def\@shiftlen@antisusy@gen@til{2mu}
+% \def\@shiftlen@antisusy@gen@rmsub{-2mu}
+% \def\@shiftlen@antisusy@gen@sfsub{-3mu}
+% \def\@shiftlen@antisusy@gen@rmsup{0.7mu}
+% \def\@shiftlen@antisusy@gen@sfsup{0mu}
+%
+\DeclareRobustCommand{\HepGenSusyAntiParticle}[3]{%
+ %\@HepGenStyle{{\mkern3.5mu\overline{\mkern-1.5mu\widetilde{\mkern-2mu{#1}}}}{}%
+ \@HepGenStyle{{\mkern\@shiftlen@antisusy@gen@bar\overline{\mkern-\@shiftlen@antisusy@gen@bar\mkern\@shiftlen@antisusy@gen@til\widetilde{\mkern-\@shiftlen@antisusy@gen@til{#1}}}}{}%
+ _{\@sfshift{\@shiftlen@antisusy@gen@rmsub}{\@shiftlen@antisusy@gen@sfsub}\scriptstyle{#2}}%
+ ^{\@sfshift{\@shiftlen@antisusy@gen@rmsup}{\@shiftlen@antisusy@gen@sfsup}\scriptstyle{#3}}}%
+}
-%% For antiparticles
-\DeclareRobustCommand{\HepAntiParticle}[3]{%
- \ifx\@italicNames\@emptyOption%
- {\def\myargtwo{#2}}%
- {\def\myargthree{#2}}%
- \ifx\myargtwo\@empty%
- {\HepParticle%
- {\overline{#1}}%
- {}%
- {\mspace{1mu}\@ConcreteVerticalScriptShift{-0.6ex}{#3}}}%
- \else%
- \ifx\myargthree\@empty%
- {\HepParticle%
- {\overline{#1}}%
- {\mspace{1mu}#2}%
- {\mspace{1mu}\@ConcreteVerticalScriptShift{-0.55ex}{\@dummysuper}}}%
- \else%
- {\HepParticle%
- {\overline{#1}}%
- {\mspace{1mu}#2}%
- {\mspace{1mu}\@ConcreteVerticalScriptShift{-0.55ex}{#3}}}%
- \fi%
- \fi%
+
+
+%% For concrete HEP particle names like "B", "J/psi" etc
+% cm/lmodern
+\def\@shiftlen@norm@con@rmsub{-2mu}
+\def\@shiftlen@norm@con@sfsub{-1.5mu}
+\def\@shiftlen@norm@con@rmsup{0mu}
+\def\@shiftlen@norm@con@sfsup{0mu}
+% mathpazo
+% \def\@shiftlen@norm@con@rmsub{-3mu}
+% \def\@shiftlen@norm@con@sfsub{-2mu}
+% \def\@shiftlen@norm@con@rmsup{-1mu}
+% \def\@shiftlen@norm@con@sfsup{0mu}
+%
+\DeclareRobustCommand{\HepParticle}[3]{%
+ \ifx\@italicNames\@empty%
+ \@HepConStyle{{{#1}}{}%
+ _{\@itsfshift{\@shiftlen@norm@con@rmsub}{\@shiftlen@norm@con@sfsub}\scriptstyle{#2}}%
+ ^{\@itsfshift{\@shiftlen@norm@con@rmsup}{\@shiftlen@norm@con@sfsup}\scriptstyle{#3}}}%
\else%
- {\HepGenAntiParticle{#1}{#2}{#3}}%
+ \HepGenParticle{#1}{#2}{#3}%
\fi%
}
-%% For generic SUSY particles e.g. slepton, squark
-\DeclareRobustCommand{\HepGenSusyParticle}[3]{%
- {\def\myargtwo{#2}}%
- {\def\myargthree{#3}}%
- \ifx\myargtwo\@empty%
- {\HepGenParticle%
- {\widetilde{#1}}%
- {}%
- {\mspace{1mu}{#3}}}%
+%% For concrete antiparticles
+\def\@shiftlen@anti@con@bar{3.5mu}
+\def\@shiftlen@anti@con@rmsub{-3mu}
+\def\@shiftlen@anti@con@sfsub{-3mu}
+\def\@shiftlen@anti@con@rmsup{1mu}
+\def\@shiftlen@anti@con@sfsup{1mu}
+%
+\DeclareRobustCommand{\HepAntiParticle}[3]{%
+ \ifx\@italicNames\@empty%
+ \@HepConStyle{{\@itmkern{\@shiftlen@anti@con@bar}\overline{\@itmkern{-\@shiftlen@anti@con@bar}{#1}}}{}%
+ _{\@itsfshift{\@shiftlen@anti@con@rmsub}{\@shiftlen@anti@con@sfsub}\scriptstyle{#2}}%
+ ^{\@itsfshift{\@shiftlen@anti@con@rmsup}{\@shiftlen@anti@con@sfsup}\scriptstyle{#3}}}%
\else%
- \ifx\myargthree\@empty%
- {\HepGenParticle%
- {\widetilde{#1}}%
- {\mspace{0mu}\@GenericVerticalScriptShift{0.0ex}{#2}}%
- {}}%
- \else%
- {\HepGenParticle%
- {\widetilde{#1}}%
- {\mspace{0mu}#2}%
- {\mspace{1mu}\@GenericVerticalScriptShift{-0.02ex}{#3}}}%
- \fi%
+ \HepGenAntiParticle{#1}{#2}{#3}%
\fi%
}
%% For SUSY particles
+% cm/lmodern
+\def\@shiftlen@susy@con@til{2mu}
+\def\@shiftlen@susy@con@rmsub{-3mu}
+\def\@shiftlen@susy@con@sfsub{-3mu}
+\def\@shiftlen@susy@con@rmsup{0mu}
+\def\@shiftlen@susy@con@sfsup{0mu}
+% mathpazo
+% \def\@shiftlen@susy@con@til{2mu}
+% \def\@shiftlen@susy@con@rmsub{-1mu}
+% \def\@shiftlen@susy@con@sfsub{-2mu}
+% \def\@shiftlen@susy@con@rmsup{1mu}
+% \def\@shiftlen@susy@con@sfsup{0.5mu}
+%
\DeclareRobustCommand{\HepSusyParticle}[3]{%
- \ifx\@italicNames\@emptyOption%
- {\def\myargtwo{#2}}%
- {\def\myargthree{#3}}%
- \ifx\myargtwo\@empty%
- {\HepParticle%
- {\widetilde{#1}}%
- {}%
- {\mspace{1mu}{#3}}}%
- \else%
- \ifx\myargthree\@empty%
- {\HepParticle%
- {\widetilde{#1}}%
- {\mspace{1mu}{#2}}%
- {\mspace{1mu}{\@dummysuper}}}%
- \else%
- {\HepParticle%
- {\widetilde{#1}}%
- {\mspace{1mu}{#2}}%
- {\mspace{1mu}{#3}}}%
- \fi%
- \fi%
+ \ifx\@italicNames\@empty%
+ \@HepConStyle{{\@itmkern{\@shiftlen@susy@con@til}\widetilde{\@itmkern{-\@shiftlen@susy@con@til}{#1}}}{}%
+ _{\@itsfshift{\@shiftlen@susy@con@rmsub}{\@shiftlen@susy@con@sfsub}\scriptstyle{#2}}%
+ ^{\@itsfshift{\@shiftlen@susy@con@rmsup}{\@shiftlen@susy@con@sfsup}\scriptstyle{#3}}}%
\else%
- {\HepGenSusyParticle{#1}{#2}{#3}}%
+ \HepGenSusyParticle{#1}{#2}{#3}%
\fi%
}
-%% For generic SUSY anti-particles e.g. slepton, squark
-\DeclareRobustCommand{\HepGenSusyAntiParticle}[3]{%
- {\HepGenParticle%
- {\overline{\widetilde{#1}}}%
- {\mspace{0mu}{#2}}%
- {\mspace{1mu}\@GenericVerticalScriptShift{-1.25ex}{#3}}}%
-}
-
%% For SUSY anti-particles
+% cm/lmodern
+\def\@shiftlen@antisusy@con@bar{3.5mu}
+\def\@shiftlen@antisusy@con@til{2mu}
+\def\@shiftlen@antisusy@con@rmsub{-2.5mu}
+\def\@shiftlen@antisusy@con@sfsub{-2mu}
+\def\@shiftlen@antisusy@con@rmsup{0mu}
+\def\@shiftlen@antisusy@con@sfsup{0mu}
+% mathpazo
+% \def\@shiftlen@antisusy@con@bar{3.5mu}
+% \def\@shiftlen@antisusy@con@til{2mu}
+% \def\@shiftlen@antisusy@con@rmsub{-2.5mu}
+% \def\@shiftlen@antisusy@con@sfsub{-3mu}
+% \def\@shiftlen@antisusy@con@rmsup{0mu}
+% \def\@shiftlen@antisusy@con@sfsup{0mu}
+%
\DeclareRobustCommand{\HepSusyAntiParticle}[3]{%
- \ifx\@italicNames\@emptyOption%
- {\HepParticle%
- {\overline{\widetilde{#1}}}%
- {\mspace{0mu}{#2}}%
- {\mspace{1mu}\@ConcreteVerticalScriptShift{-1.25ex}{#3}}}%
+ \ifx\@italicNames\@empty%
+ \@HepConStyle{{\@itmkern{\@shiftlen@antisusy@con@bar}\overline{\@itmkern{-\@shiftlen@antisusy@con@bar}%
+ \@itmkern{\@shiftlen@antisusy@con@til}\widetilde{\@itmkern{-\@shiftlen@antisusy@con@til}{#1}}}}{}%
+ _{\@itsfshift{\@shiftlen@antisusy@con@rmsub}{\@shiftlen@antisusy@con@sfsub}\scriptstyle{#2}}%
+ ^{\@itsfshift{\@shiftlen@antisusy@con@rmsup}{\@shiftlen@antisusy@con@sfsup}\scriptstyle{#3}}}%
\else%
- {\HepGenSusyAntiParticle{#1}{#2}{#3}}%
+ \HepGenSusyAntiParticle{#1}{#2}{#3}%
\fi%
}
-%% Resonances and other such structures. These are actually pretty
-%% complicated since the most general structure has a main particle
+%% Resonances and other such structures. These are actually pretty
+%% complicated since the most general structure has a main particle
%% term, a mass term and a spectroscopic term: in total 9 possible arguments
%% if we let each main term have optional following sub- and super-scripts!
%% The mass and spectroscopic terms seem to be mixed up quite often... *sigh*
@@ -404,19 +439,19 @@
%% For resonance mass specifications like the bracket in "J/psi(1S)"
\DeclareRobustCommand{\HepResonanceMassTerm}[3]{%
- \ifx\@italicNames\@emptyOption%
- \@HepConcreteSubSupTerm{\left({#1}\right)}{#2}{#3}%
+ \ifx\@italicNames\@empty%
+ \@HepConStyle{{\left({#1}\right)}{}_{#2}^{\scriptstyle{#3}}}%
\else%
- \@HepGenericSubSupTerm{\left({#1}\right)}{#2}{#3}%
+ \@HepGenStyle{{\left({#1}\right)}{}_{#2}^{\scriptstyle{#3}}}%
\fi%
}
%% For resonance spectroscopic specifications like the P_11 in "N(1440)P_11"
\DeclareRobustCommand{\HepResonanceSpecTerm}[3]{%
- \ifx\@italicNames\@emptyOption%
- \@HepConcreteSubSupTerm{#1}{#2}{#3}%
+ \ifx\@italicNames\@empty%
+ \@HepConStyle{{#1}{}_{#2}^{#3}}%
\else%
- \@HepGenericSubSupTerm{#1}{#2}{#3}%
+ \@HepGenStyle{{#1}{}_{#2}^{#3}}%
\fi%
}
@@ -434,33 +469,36 @@
}%
}
-%% For resonances like "J/psi(1S)" (all arguments ``spelt out'')
+%% For resonances like "J/psi(1S)" (all arguments ``spelled out'')
\DeclareRobustCommand{\HepParticleResonanceFull}[6]{%
\HepParticleResonance{\HepParticle{#1}{#2}{#3}}{#4}{#5}{#6}%
}
-%% For resonances like "N(1440)P_11" (all arguments ``spelt out'')
+%% For resonances like "N(1440)P_11" (all arguments ``spelled out'')
\DeclareRobustCommand{\HepParticleResonanceFormalFull}[9]{%
\HepParticleResonanceFormal{\HepParticle{#1}{#2}{#3}}{#4}{#5}{#6}{#7}{#8}{#9}%
}
%% For typesetting HEP processes with these particle names.
-%% Help on how to widen the math spacing would be nice: I always
+%% TODO: Help on how to widen the math spacing would be nice: I always
%% find myself putting \, between particle names to make it look good.
\let\@HepOldto\to
-\DeclareRobustCommand{\HepTo}{\ensuremath{\to}}%
\DeclareRobustCommand{\HepProcess}[1]{%
-\ifx\pdfoutput\@empty%
\begingroup%
- \renewcommand{\to}{\mspace{2mu}\@HepOldto\mspace{2mu}}% %this defn makes PDFTeX do bad things
+ \renewcommand{\to}{\mspace{1mu}\@HepOldto\mspace{1mu}}%
\ensuremath{#1}%
\renewcommand{\to}{\@HepOldto}%
\endgroup%
-\else%
- \ensuremath{#1}%
-\fi%
}
-%% For reference purposes :-)
-%\DeclareRobustCommand{\hepparticles}{\texttt{hepparticles}\xspace}
+
+%% Typesetting tweaks (-> becomes "to", remove mspace) from hyperref labels in PDFTeX
+%% Thanks to Heiko Oberdiek and Donald Arseneau for assistance via comp.text.tex
+\@ifpackageloaded{hyperref}{
+ \pdfstringdefDisableCommands{%
+ \DeclareRobustCommand{\HepProcess}[1]{#1}
+ \let\mspace\@gobble
+ \def\to{to }%
+ }%
+}{}