diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty | 668 |
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 }% + }% +}{} |