summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/hepparticles/ChangeLog58
-rw-r--r--Master/texmf-dist/doc/latex/hepparticles/README50
-rw-r--r--Master/texmf-dist/doc/latex/hepparticles/hepparticles.pdfbin102006 -> 39760 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hepparticles/hepparticles.tex220
-rw-r--r--Master/texmf-dist/doc/latex/hepparticles/testhepparticles.pdfbin71250 -> 40741 bytes
-rw-r--r--Master/texmf-dist/doc/latex/hepparticles/testhepparticles.tex180
-rw-r--r--Master/texmf-dist/tex/latex/hepparticles/hepparticles.sty668
7 files changed, 639 insertions, 537 deletions
diff --git a/Master/texmf-dist/doc/latex/hepparticles/ChangeLog b/Master/texmf-dist/doc/latex/hepparticles/ChangeLog
new file mode 100644
index 00000000000..ee01e17cc1b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/hepparticles/ChangeLog
@@ -0,0 +1,58 @@
+2014-12-01 Andy Buckley <andy.buckley@cern.ch>
+
+ * Version 2.0 released.
+
+ * hepparticles.pdf/.tex documentation updated to v2.
+
+ * Remove pdflatex exclusion from \to spacing modification.
+
+2014-07-15 Andy Buckley <andy.buckley@cern.ch>
+
+ * Adding \@shiftlen@norm@con@rmsub and other macros to allow
+ customization of particle bar, tilde and sub/super-script
+ horizontal corrections without hacking the style file. In general
+ these corrections will be font-specific.
+
+2014-07-13 Andy Buckley <andy.buckley@cern.ch>
+
+ * Remove \HepTo macro -- surely no-one was using it? Just use \to
+
+2014-07-08 Andy Buckley <andy.buckley@cern.ch>
+
+ * Italic kerning corrections now applied (in a sf/rm-dependent
+ way) to overlines and tildes, making them more appropriately
+ aligned with the underlying symbol.
+
+ * Remove the sans and force-italic package options -- sans context
+ will now always be used (why would it not?) and mathit style is
+ applied in all italic or slanted shape contexts.
+
+ * Rewrite to use subdepth to get uniform subscript and superscript
+ heights and to use the font specification much more intelligently
+ -- this is now done without using the maybemath package.
+
+2013-07-17 Andy Buckley <andy.buckley@cern.ch>
+
+ * Replacing use of \maybebm with Donald Arseneau's trick to append
+ \boldmath to the \bfseries definition.
+
+2005-07-28 Andy Buckley <andy.buckley@durham.ac.uk>
+
+ * Remove \mspace from hyperref labels in PDFTeX and provide
+ alternative form ("to ") for \HepTo and \to. Thanks to
+ Heiko Oberdiek and Donald Arseneau for providing the solution
+ via comp.text.tex.
+
+ * Tidying/removal of the redundant documentation in the
+ hepparticles.sty file.
+
+2005-02-22 Andy Buckley <andy.buckley@durham.ac.uk>
+
+ * Version 1.4 released: much more flexible symbol construction
+ model. Note syntax changes have been required and the package
+ will not be backwards compatible. The current syntax should be
+ stable.
+
+2004-12-02 Andy Buckley <andy.buckley@durham.ac.uk>
+
+ * First public version released.
diff --git a/Master/texmf-dist/doc/latex/hepparticles/README b/Master/texmf-dist/doc/latex/hepparticles/README
index f7071fa3894..f67cfcbd6aa 100644
--- a/Master/texmf-dist/doc/latex/hepparticles/README
+++ b/Master/texmf-dist/doc/latex/hepparticles/README
@@ -2,32 +2,36 @@ hepparticles --- for typesetting high energy particle names
by Andy Buckley <andy@insectnation.org>
-----------------------------------------------------------
-hepparticles is a set of macros for typesetting high energy
-particle names. It provides a robust (?) and consistent structure
-within which to typeset the names and along the way solves many
-problems with alignment and text styles which otherwise make
-themselves known.
+hepparticles is a set of macros for typesetting high energy particle names. It
+provides a robust and consistent structure within which to typeset the names and
+along the way solves many problems with alignment and text styles which
+otherwise make themselves known.
-Chief amongst the problems solved by hepparticles is that the
-problems with boldness of particle names typeset in math mode
-when used in section titles, headers and tables of contents
-disappear. The typesetting convention by default uses upright
-names for "concrete" particles and italic type for generic
-particle labels but the convention can be specified at
-package-include time, making this package suitable for journal
-use.
+Chief amongst the problems solved by hepparticles is that the boldness of
+particle names typeset in math mode when used in section titles, headers and
+tables of contents disappears. hepparticles ensures that particle names remain
+bold, italic, or in sans-serif font to match the surrounding font context. The
+typesetting convention by default uses upright names for "concrete" particles
+and italic type for generic particle labels but the convention can be specified
+at package-include time, making this package suitable for use with journals
+which require alternative styles.
+
+hepparticles also applies small but significant horizontal shifts to sub- and
+super-scripts and overlines and tildes for antiparticles and supersymmetric
+particles respectively (as well as the extremely rarely used SUSY
+antiparticles!) and makes use of the subdepth package to ensure that all particle
+name sub- and super-scripts are typeset at the same heights.
Fuller documentation for this package can be found in the files
-hepparticles.{ps,pdf}, distributed with the package and some
-examples (used for debugging) are in testhepparticles.{ps,pdf},
-with source code in testhepparticles.tex.
+hepparticles.{ps,pdf}, distributed with the package and some examples (used for
+debugging) are in testhepparticles.{ps,pdf}, with source code in
+testhepparticles.tex.
-You may also be interested in the heppennames and hepnicenames
-packages, which use this package to define a large set of
-common particle names.
+You may also be interested in the hepnames package, which uses this one to
+define a large set of standard particle names.
-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.
+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.
-Author: Andy Buckley <andy@insectnation.org> \ No newline at end of file
+Author: Andy Buckley <andy@insectnation.org>
diff --git a/Master/texmf-dist/doc/latex/hepparticles/hepparticles.pdf b/Master/texmf-dist/doc/latex/hepparticles/hepparticles.pdf
index fecc35cc67a..3a39cfc6b49 100644
--- a/Master/texmf-dist/doc/latex/hepparticles/hepparticles.pdf
+++ b/Master/texmf-dist/doc/latex/hepparticles/hepparticles.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hepparticles/hepparticles.tex b/Master/texmf-dist/doc/latex/hepparticles/hepparticles.tex
index 8b3a5176e63..354de33cee8 100644
--- a/Master/texmf-dist/doc/latex/hepparticles/hepparticles.tex
+++ b/Master/texmf-dist/doc/latex/hepparticles/hepparticles.tex
@@ -2,22 +2,27 @@
\usepackage{setspace}
\usepackage{a4wide}
\usepackage{xspace, amsmath}
-\usepackage[maybess]{hepparticles}
+\usepackage{relsize}
+\usepackage{hepparticles}
\onehalfspacing
\newcommand{\hepparticles}{\texttt{hepparticles}\xspace}
\author{Andy Buckley, \texttt{andy@insectnation.org}}
-\title{The \hepparticles package for \LaTeX\footnote{This document describes \hepparticles as of version 1.4}}
+\title{The \hepparticles package for \LaTeX\\ \smaller[2] Describing \hepparticles version 2.0}
\begin{document}
\maketitle
\begin{abstract}
-This package provides macros for typesetting high energy physics particle names
-in a consistent, semantic and aesthetically pleasing manner, as well as fixing
-problems with math-mode boldness problems in section titles. You may also be
-interested in the \texttt{heppennames} and \texttt{hepnicenames} packages, which
-use this one to provide a large set of pre-existing particle names.
+ This package provides macros for typesetting high energy physics particle
+ names in a consistent, semantic and aesthetically pleasing manner, as well as
+ fixing problems with math-mode boldness problems in section titles. You may
+ also be interested in the \texttt{heppennames} and \texttt{hepnicenames}
+ packages, which
+ use this one to provide a large set of pre-existing particle names.\\
+ This document describes version 2.0, which significantly improves the output
+ quality over versions 1.x, removes several macros \& package options, and
+ changes dependencies.
\end{abstract}
\section{Motivation}
@@ -39,7 +44,7 @@ composites) is well-defined by a set of rules:
(though the use of symbols to represent them is currently uncommon) may be
written with a bar above the tilde.
\item Resonant states may sport an extra resonance specifier consisting of a
- value in parentheses and optinal following sub- and super-scripts. This
+ value in parentheses and optional following sub- and super-scripts. This
follows the main particle name.
\end{itemize}
@@ -50,16 +55,17 @@ surrounding text context for boldness and italicism: this has been fixed in this
specific case by use of the \texttt{maybemath} package. Secondly, the positions
of super-scripts with overlines and tildes are affected: this is also corrected
by this package. By request, the particle typesetting conventions may be
-specified as a package option.
+specified as a package option. All the \hepparticles commands may be used either
+in or out of math mode.
\section{Commands}
-The commands available are divided into two groups: those which provide
-appropriate typeset output for a given semantic description and those which are
-purely designed to implement that typesetting, several of which are exposed to
-public use for convenience.
+% The commands available are divided into two groups: those which provide
+% appropriate typeset output for a given semantic description and those which are
+% purely designed to implement that typesetting, several of which are exposed to
+% public use for convenience.
-\subsection{Semantic commands}
+% \subsection{Semantic commands}
\begin{itemize}
\item For generic particle names e.g. all positively charged leptons:\\
\texttt{$\backslash{}$HepGenParticle\{\textit{main}\}\{\textit{subscript}\}\{\textit{superscript}\}}\\
@@ -85,111 +91,135 @@ public use for convenience.
\texttt{$\backslash{}$HepParticleResonanceFormal\{\textit{name}\}$\backslash{}$\\\{\textit{mass}\}\{\textit{massSub}\}\{\textit{massSup}\}\{\textit{spec}\}\{\textit{specSub}\}\{\textit{specSup}\}}\\
\texttt{$\backslash{}$HepParticleResonanceFormalFull\{\textit{main}\}\{\textit{sub}\}\{\textit{sup}\}$\backslash{}$\\\{\textit{mass}\}\{\textit{massSub}\}\{\textit{massSup}\}\{\textit{spec}\}\{\textit{specSub}\}\{\textit{specSup}\}}\\
(hurrah, we hit the \TeX{} 9-argument limit!)
-
-\item And finally, for containing processes describing particle evolution;\\
- \texttt{$\backslash{}$HepProcess\{\textit{iParticles} $\backslash$HepTo \textit{fParticles}\}}\\
- where \texttt{$\backslash$HepTo} is a normal \texttt{$\backslash$to} arrow
- with a bit of extra space.\footnote{In fact, this space will only be added
- when not compiling via PDF\TeX{}. This is due to a conflict not yet understood *sigh*.}
+
+\item And finally, for containing processes describing particle evolution:\\
+ \texttt{$\backslash{}$HepProcess\{\textit{iParticles} $\backslash$to \textit{fParticles}\}}.\\
\end{itemize}
-\noindent giving typeset particle names as follows:
+% \vspace{-0.5em}
+\noindent These commands respectively typeset particle names like this:\\[-1ex]
\begin{itemize}
\item Normal particles: \HepParticle{B}{d}{0}, \HepAntiParticle{B}{d}{0}
\item Generic particles: \HepGenParticle{q}{d}{}, \HepGenAntiParticle{\ell}{\mu}{}
\item SUSY particles: \HepSusyParticle{\chi}{1}{}, \HepGenSusyParticle{q}{2}{}
\item Resonances: \HepParticleResonance{J\!/\psi}{1S}{}{\star}
-\item Process: \HepProcess{\HepParticle{B}{d}{0} \HepTo \HepParticle{K}{}{-} \HepParticle{\pi}{}{+}}.
+\item Process: \HepProcess{\HepParticle{B}{d}{0} \to \HepParticle{K}{}{-} \HepParticle{\pi}{}{+}}.
\end{itemize}
-\subsection{Primitive commands}
-A primitive command, \texttt{$\backslash{}$HepParticleStruct}, is provided for
-typesetting particle-like structures with a main term and super and sub-scripts
-with appropriate automatic changing of the text style into bold, italic and
-upright fonts. It also accounts for most vertical spacing problems in the sub-
-and super-scripts, largely due to empty script boxes. In addition, three
-``styles'': the wrapper macros that apply appropriate text stylings are
-available publically. The implementation of the semantic commands is built round
-conditionally using these styles within the structure macro.
-
-These macros can be used for implementing particle-like structures with custom
-requirements and it's advised that you take a look at the internals of
-\texttt{hepparticles.sty} if you're planning on using them.
-
-\begin{itemize}
-\item Style which only applies conditional boldness:\\
-\texttt{$\backslash{}$HepNormStyle\{\textit{text}\}}
-\item Style appropriate for generic particle names:\\
-\texttt{$\backslash{}$HepGenStyle\{\textit{text}\}}
-\item Style appropriate for concrete particle names:\\
-\texttt{$\backslash{}$HepConStyle\{\textit{text}\}}
-\item Particle structure:\\
-\texttt{$\backslash{}$HepParticleStruct\{\textit{main}\}\{\textit{sub}\}\{\textit{sup}\}}
-\end{itemize}
+% \subsection{Primitive commands}
+% A primitive command, \texttt{$\backslash{}$HepParticleStruct}, is provided for
+% typesetting particle-like structures with a main term and super and sub-scripts
+% with appropriate automatic changing of the text style into bold, italic and
+% upright fonts. It also accounts for most vertical spacing problems in the sub-
+% and super-scripts, largely due to empty script boxes. In addition, three
+% ``styles'': the wrapper macros that apply appropriate text styling are available
+% publicly. The implementation of the semantic commands is built round
+% conditionally using these styles within the structure macro.
+
+% These macros can be used for implementing particle-like structures with custom
+% requirements and it's advised that you take a look at the internals of
+% \texttt{hepparticles.sty} if you're planning on using them.
+
+% \begin{itemize}
+% \item Style which only applies conditional boldness:\\
+% \texttt{$\backslash{}$HepNormStyle\{\textit{text}\}}
+% \item Style appropriate for generic particle names:\\
+% \texttt{$\backslash{}$HepGenStyle\{\textit{text}\}}
+% \item Style appropriate for concrete particle names:\\
+% \texttt{$\backslash{}$HepConStyle\{\textit{text}\}}
+% \item Particle structure:\\
+% \texttt{$\backslash{}$HepParticleStruct\{\textit{main}\}\{\textit{sub}\}\{\textit{sup}\}}
+% \end{itemize}
\section{Package options}
-By request, the package now typesets particles in italic as well as upright
+By request, the package can typeset particles in italic as well as upright
convention. The choice of convention can be made when the package is loaded with
-the \texttt{italic} and \texttt{notitalic} options, e.g.\\
+the \texttt{italic} %and \texttt{notitalic}
+option, i.e.\\
\texttt{$\backslash{}$usepackage[italic]\{hepparticles\}}.
-The default mode is upright (i.e. \texttt{notitalic}).
-
-In addition, the \texttt{forceit} option will force \emph{everything} in particle names
-to be italic, even if they aren't normally italic in math mode (such as Arabic
-numerals). Note that the italic font that will appear here is that used by
-\texttt{$\backslash{}$mathit} and so will appear more script-like than normal
-math mode. I can't say that I recommend using this option, but it's there for
-flexibility's sake.
-
-Finally, a pair of options, \texttt{maybess} and \texttt{noss}, are available:
-using \texttt{maybess} will allow particle names to be typeset in sans-serif if
-the surrounding context is sans-serif and \texttt{noss} has the converse effect.
-Note that since there is no italic sans-serif math font in LaTeX, generic
-particle names will not be typeset in italic sans font. Maybe this behaviour
-will change in future if there's lots of enthusiasm for a fix. However, it looks
-pretty good at the moment and I suspect most people will want sans-serif
-particle names in sans documents, so \texttt{maybess} is set by default.
-
-\section{Known problems}
-Since this package messes around quite a bit with the sub- and super-scripts,
-not everything you might want to do can be done. Sorry\dots
-
-\begin{itemize}
-\item To make the macros a bit ``safer'', the output is wrapped in a pair of
- braces --- i.e. it's intended as a packaged unit. Hence you can't add new
- indices using math mode scripting\dots this example hopefully illustrates what
- I mean in that it doesn't accomplish the intended effect of placing the $i$
- subscript directly underneath the \HepParticle{B}{}{} meson superscript.\\
- \texttt{\$$\backslash{}$HepParticle\{B\}\{\}\{+\}\_i\$} $\quad \Rightarrow
- \quad \HepParticle{B}{}{+}_i$ \\
- I don't consider this a problem --- the package structures already manoeuver
- the vertical positioning if the scripts so much that compliance with
- externally applied indices is pretty much guaranteed not to happen. If you
- want this sort of effect then you should use the
- \texttt{$\backslash{}$HepParticleStruct} macro.
-\item When putting particle names in sub or superscripts it's a good idea to
- wrap them in braces. I'd like to be able to avoid this requirement but
- wrapping everything in braces, despite removing compile errors, hasn't done
- the trick of actually making the sub/sup-script work as intended. Please let
- me know how to do it, should the answer spring to mind\dots
-\end{itemize}
+The default mode is upright. % (i.e. \texttt{notitalic}).
+
+The \texttt{forceit}, \texttt{maybess} and \texttt{noss} options have been removed in version 2.0.
+
+% In addition, the \texttt{forceit} option will force \emph{everything} in particle names
+% to be italic, even if they aren't normally italic in math mode (such as Arabic
+% numerals). Note that the italic font that will appear here is that used by
+% \texttt{$\backslash{}$mathit} and so will appear more script-like than normal
+% math mode. I can't say that I recommend using this option, but it's there for
+% flexibility's sake.
+
+% Finally, a pair of options, \texttt{maybess} and \texttt{noss}, are available:
+% using \texttt{maybess} will allow particle names to be typeset in sans-serif if
+% the surrounding context is sans-serif and \texttt{noss} has the converse effect.
+% Note that since there is no italic sans-serif math font in LaTeX, generic
+% particle names will not be typeset in italic sans font. Maybe this behaviour
+% will change in future if there's lots of enthusiasm for a fix. However, it looks
+% pretty good at the moment and I suspect most people will want sans-serif
+% particle names in sans documents, so \texttt{maybess} is set by default.
+
+
+% \section{Known problems}
+% Since this package messes around quite a bit with the sub- and super-scripts,
+% not everything you might want to do can be done. Sorry\dots
+
+% \begin{itemize}
+% \item To make the macros a bit ``safer'', the output is wrapped in a pair of
+% braces --- i.e. it's intended as a packaged unit. Hence you can't add new
+% indices using math mode scripting\dots this example hopefully illustrates what
+% I mean in that it doesn't accomplish the intended effect of placing the $i$
+% subscript directly underneath the \HepParticle{B}{}{} meson superscript.\\
+% \texttt{\$$\backslash{}$HepParticle\{B\}\{\}\{+\}\_i\$} $\quad \Rightarrow
+% \quad \HepParticle{B}{}{+}_i$ \\
+% I don't consider this a problem --- the package structures already manoeuver
+% the vertical positioning of the scripts so much that compliance with
+% externally applied indices is pretty much guaranteed not to happen. If you
+% want this sort of effect then you should use the
+% \texttt{$\backslash{}$HepParticleStruct} macro.
+% \item When putting particle names in sub or superscripts it's a good idea to
+% wrap them in braces. I'd like to be able to avoid this requirement but
+% wrapping everything in braces, despite removing compile errors, hasn't done
+% the trick of actually making the sub/sup-script work as intended. Please let
+% me know how to do it, should the answer spring to mind\dots
+% \end{itemize}
\section{Installation}
\textbf{Requirements:} You will need to be using a \LaTeXe{} system to use
\hepparticles. Hopefully this isn't a problem --- I wasn't feeling up to writing
-a Plain \TeX{} version! In addition, you'll need the \texttt{maybemath} package
-(get a recent version: the first release has bugs which were only discovered
-when writing the 1.4 version of this package).
+a Plain \TeX{} version! \hepparticles 2.0 requires the \texttt{subdepth} package.
+% In addition, you'll need the \texttt{maybemath} package
+% (get a recent version: the first release has bugs which were only discovered
+% when writing the 1.4 version of this package).
To install, simply copy the \texttt{hepparticles.sty} file into a location in
your \texttt{LATEXINPUTS} path. Tada!
+
+\section{Credit where it's due\dots}
+Thanks to Viet-Trung Luu for providing the initial ``way forward'' when writing
+this package: his solution, in expanded form, made its way into what is now
+the \texttt{maybemath} package. Thanks also to Heiko Oberdiek and Donald Arseneau
+for showing how to stop the \texttt{$\backslash{}$mspace}s from turning up in PDF
+bookmarks generated by \texttt{hyperref}. Philip Ratcliffe provided the hack
+that moves over-lines slightly to the right for use with italic particle symbols.
+In version 2.0 I owe a great deal to the subdepth package
+
+
\vspace{2cm}
-\centering
-\noindent Any feedback is appreciated! Email to \texttt{andy@insectnation.org}, please.
+\begin{center}
+\noindent \textbf{Any feedback is appreciated! Email to \texttt{andy@insectnation.org}, please.}
+\end{center}
+
+% In particular, robust solutions for the following would be extremely useful:
+
+% \begin{itemize}
+% \item Upright Greek lower case letters (without using e.g. \texttt{pxfonts})
+% \item Slightly increase horizontal spacing between particles in
+% \texttt{$\backslash{}$HepProcess} (at present, \texttt{$\backslash{}$,} ends
+% up getting used a lot to keep different particles apart)
+% \end{itemize}
-\end{document} \ No newline at end of file
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.pdf b/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.pdf
index 4b1c890b712..fbabcfa9e00 100644
--- a/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.pdf
+++ b/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.tex b/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.tex
index 5ac51c37c9d..b137dece758 100644
--- a/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.tex
+++ b/Master/texmf-dist/doc/latex/hepparticles/testhepparticles.tex
@@ -1,126 +1,86 @@
-\documentclass[12pt]{article}
-\usepackage{hepparticles}
-%\usepackage[italic]{hepparticles}
-\usepackage{booktabs,xspace}
+\documentclass[12pt,a4paper]{article}
+\usepackage[T1]{fontenc}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0cm}
-\newcommand{\hepparticles}{\texttt{hepparticles}\xspace}
+\usepackage{lmodern}
+% \usepackage{mathpazo}
+% \usepackage{euler}
-\title{Testing \hepparticles}
-\author{Generated by \texttt{buckley}}
+\usepackage{hepparticles}
+%\usepackage[italic]{hepparticles}
\newcommand{\pd}{\HepParticle{d}{}{}}
\newcommand{\pB}{\HepParticle{B}{}{}}
\newcommand{\pBd}{\HepParticle{\pB}{d}{0}}
-\setlength{\parindent}{0cm}
-
-
-\begin{document}
-\maketitle
-\section{Sub- and super-script alignment}
-\subsection{Concrete names}
-
-\subsubsection{Normal}
-\textrm{
-\begin{tabular}{llll}
+\usepackage{booktabs}
+\newcommand{\testconc}{\begin{tabular}{llll}
\toprule
-\HepParticle{B}{}{} & \HepAntiParticle{B}{}{} & \HepSusyParticle{B}{}{} & \HepSusyAntiParticle{B}{}{} \\
+\HepParticle{B}{}{} & \HepAntiParticle{B}{}{} & \HepSusyParticle{B}{}{} & \HepSusyAntiParticle{B}{}{} \\
\HepParticle{B}{\pd}{} & \HepAntiParticle{B}{\pd}{} & \HepSusyParticle{B}{\pd}{} & \HepSusyAntiParticle{B}{\pd}{} \\
-\HepParticle{B}{}{0} & \HepAntiParticle{B}{}{0} & \HepSusyParticle{B}{}{0} & \HepSusyAntiParticle{B}{}{0} \\
+\HepParticle{B}{}{0} & \HepAntiParticle{B}{}{0} & \HepSusyParticle{B}{}{0} & \HepSusyAntiParticle{B}{}{0} \\
\HepParticle{B}{\pd}{0} & \HepAntiParticle{B}{\pd}{0} & \HepSusyParticle{B}{\pd}{0} & \HepSusyAntiParticle{B}{\pd}{0} \\
\bottomrule
-\end{tabular}
-}
-
-\subsubsection{Italic}
-\textit{
-\begin{tabular}{llll}
+\end{tabular}}
+\newcommand{\testgen}{\begin{tabular}{llll}
\toprule
-\HepParticle{B}{}{} & \HepAntiParticle{B}{}{} & \HepSusyParticle{B}{}{} & \HepSusyAntiParticle{B}{}{} \\
-\HepParticle{B}{\pd}{} & \HepAntiParticle{B}{\pd}{} & \HepSusyParticle{B}{\pd}{} & \HepSusyAntiParticle{B}{\pd}{} \\
-\HepParticle{B}{}{0} & \HepAntiParticle{B}{}{0} & \HepSusyParticle{B}{}{0} & \HepSusyAntiParticle{B}{}{0} \\
-\HepParticle{B}{\pd}{0} & \HepAntiParticle{B}{\pd}{0} & \HepSusyParticle{B}{\pd}{0} & \HepSusyAntiParticle{B}{\pd}{0} \\
+\HepGenParticle{B}{}{} & \HepGenAntiParticle{B}{}{} & \HepGenSusyParticle{B}{}{} & \HepGenSusyAntiParticle{B}{}{} \\
+\HepGenParticle{B}{\pd}{} & \HepGenAntiParticle{B}{\pd}{} & \HepGenSusyParticle{B}{\pd}{} & \HepGenSusyAntiParticle{B}{\pd}{} \\
+\HepGenParticle{B}{}{0} & \HepGenAntiParticle{B}{}{0} & \HepGenSusyParticle{B}{}{0} & \HepGenSusyAntiParticle{B}{}{0} \\
+\HepGenParticle{B}{\pd}{0} & \HepGenAntiParticle{B}{\pd}{0} & \HepGenSusyParticle{B}{\pd}{0} & \HepGenSusyAntiParticle{B}{\pd}{0} \\
\bottomrule
-\end{tabular}
-}
+\end{tabular}}
-\subsubsection{Bold}
-\textbf{
-\begin{tabular}{llll}
-\toprule
-\HepParticle{B}{}{} & \HepAntiParticle{B}{}{} & \HepSusyParticle{B}{}{} & \HepSusyAntiParticle{B}{}{} \\
-\HepParticle{B}{\pd}{} & \HepAntiParticle{B}{\pd}{} & \HepSusyParticle{B}{\pd}{} & \HepSusyAntiParticle{B}{\pd}{} \\
-\HepParticle{B}{}{0} & \HepAntiParticle{B}{}{0} & \HepSusyParticle{B}{}{0} & \HepSusyAntiParticle{B}{}{0} \\
-\HepParticle{B}{\pd}{0} & \HepAntiParticle{B}{\pd}{0} & \HepSusyParticle{B}{\pd}{0} & \HepSusyAntiParticle{B}{\pd}{0} \\
-\bottomrule
-\end{tabular}
-}
-\subsubsection{Bold italic}
-\textit{\textbf{
-\begin{tabular}{llll}
-\toprule
-\HepParticle{B}{}{} & \HepAntiParticle{B}{}{} & \HepSusyParticle{B}{}{} & \HepSusyAntiParticle{B}{}{} \\
-\HepParticle{B}{\pd}{} & \HepAntiParticle{B}{\pd}{} & \HepSusyParticle{B}{\pd}{} & \HepSusyAntiParticle{B}{\pd}{} \\
-\HepParticle{B}{}{0} & \HepAntiParticle{B}{}{0} & \HepSusyParticle{B}{}{0} & \HepSusyAntiParticle{B}{}{0} \\
-\HepParticle{B}{\pd}{0} & \HepAntiParticle{B}{\pd}{0} & \HepSusyParticle{B}{\pd}{0} & \HepSusyAntiParticle{B}{\pd}{0} \\
-\bottomrule
-\end{tabular}
-}}
+\title{Testing \textsf{hepparticles}}
+\author{}
+\begin{document}
+% \vspace*{-2cm}
+\maketitle
-\subsection{Generic names}
-\subsubsection{Normal}
-\textrm{
-\begin{tabular}{llll}
-\toprule
-\HepGenParticle{B}{}{} & \HepGenAntiParticle{B}{}{} & \HepGenSusyParticle{B}{}{} & \HepGenSusyAntiParticle{B}{}{} \\
-\HepGenParticle{B}{\pd}{} & \HepGenAntiParticle{B}{\pd}{} & \HepGenSusyParticle{B}{\pd}{} & \HepGenSusyAntiParticle{B}{\pd}{} \\
-\HepGenParticle{B}{}{0} & \HepGenAntiParticle{B}{}{0} & \HepGenSusyParticle{B}{}{0} & \HepGenSusyAntiParticle{B}{}{0} \\
-\HepGenParticle{B}{\pd}{0} & \HepGenAntiParticle{B}{\pd}{0} & \HepGenSusyParticle{B}{\pd}{0} & \HepGenSusyAntiParticle{B}{\pd}{0} \\
-\bottomrule
-\end{tabular}
-}
-\subsubsection{Italic}
-\textit{
-\begin{tabular}{llll}
-\toprule
-\HepGenParticle{B}{}{} & \HepGenAntiParticle{B}{}{} & \HepGenSusyParticle{B}{}{} & \HepGenSusyAntiParticle{B}{}{} \\
-\HepGenParticle{B}{\pd}{} & \HepGenAntiParticle{B}{\pd}{} & \HepGenSusyParticle{B}{\pd}{} & \HepGenSusyAntiParticle{B}{\pd}{} \\
-\HepGenParticle{B}{}{0} & \HepGenAntiParticle{B}{}{0} & \HepGenSusyParticle{B}{}{0} & \HepGenSusyAntiParticle{B}{}{0} \\
-\HepGenParticle{B}{\pd}{0} & \HepGenAntiParticle{B}{\pd}{0} & \HepGenSusyParticle{B}{\pd}{0} & \HepGenSusyAntiParticle{B}{\pd}{0} \\
-\bottomrule
-\end{tabular}
-}
+\section{Concrete names}
-\subsubsection{Bold}
-%\textbf{
+\vspace{1em}
\begin{tabular}{llll}
-\toprule
-\HepGenParticle{B}{}{} & \HepGenAntiParticle{B}{}{} & \HepGenSusyParticle{B}{}{} & \HepGenSusyAntiParticle{B}{}{} \\
-\HepGenParticle{B}{\pd}{} & \HepGenAntiParticle{B}{\pd}{} & \HepGenSusyParticle{B}{\pd}{} & \HepGenSusyAntiParticle{B}{\pd}{} \\
-\HepGenParticle{B}{}{0} & \HepGenAntiParticle{B}{}{0} & \HepGenSusyParticle{B}{}{0} & \HepGenSusyAntiParticle{B}{}{0} \\
-\HepGenParticle{B}{\pd}{0} & \HepGenAntiParticle{B}{\pd}{0} & \HepGenSusyParticle{B}{\pd}{0} & \HepGenSusyAntiParticle{B}{\pd}{0} \\
-\bottomrule
+ & Normal & Italic & Slant\\
+ \addlinespace \\
+ Normal & \testconc & \textit{\testconc} & \textsl{\testconc}\\
+ \addlinespace \\
+ Bold & \bfseries \testconc & \bfseries \textit{\testconc} & \bfseries \textsl{\testconc}\\
+ \addlinespace \\
+ Sans & \sffamily \testconc & \sffamily \textit{\testconc} & \sffamily \textsl{\testconc}\\
+ \addlinespace \\
+ Bold sans & \bfseries\sffamily \testconc & \bfseries\sffamily \textit{\testconc} & \bfseries\sffamily \textsl{\testconc}
\end{tabular}
-%}
-\subsubsection{Bold italic}
-\textit{%\textbf{
+
+\clearpage
+
+
+\section{Generic names}
+
+\vspace{1em}
\begin{tabular}{llll}
-\toprule
-\HepGenParticle{B}{}{} & \HepGenAntiParticle{B}{}{} & \HepGenSusyParticle{B}{}{} & \HepGenSusyAntiParticle{B}{}{} \\
-\HepGenParticle{B}{\pd}{} & \HepGenAntiParticle{B}{\pd}{} & \HepGenSusyParticle{B}{\pd}{} & \HepGenSusyAntiParticle{B}{\pd}{} \\
-\HepGenParticle{B}{}{0} & \HepGenAntiParticle{B}{}{0} & \HepGenSusyParticle{B}{}{0} & \HepGenSusyAntiParticle{B}{}{0} \\
-\HepGenParticle{B}{\pd}{0} & \HepGenAntiParticle{B}{\pd}{0} & \HepGenSusyParticle{B}{\pd}{0} & \HepGenSusyAntiParticle{B}{\pd}{0} \\
-\bottomrule
+ & Normal & Italic & Slant\\
+ \addlinespace \\
+ Normal & \testgen & \textit{\testgen} & \textsl{\testgen}\\
+ \addlinespace \\
+ Bold & \bfseries \testgen & \bfseries \textit{\testgen} & \bfseries \textsl{\testgen}\\
+ \addlinespace \\
+ Sans & \sffamily \testgen & \sffamily \textit{\testgen} & \sffamily \textsl{\testgen}\\
+ \addlinespace \\
+ Bold sans & \bfseries\sffamily \testgen & \bfseries\sffamily \textit{\testgen} & \bfseries\sffamily \textsl{\testgen}
\end{tabular}
-}%}
+
+
+\clearpage
+
\section{Processes}
-%\texdemo{ \HepProcess{\HepParticle{B}{\pd}{0} \HepTo \HepParticle{K}{S}{0} \HepParticle{\pi}{}{0}} }
-\HepProcess{\HepParticle{B}{\pd}{0} \HepTo \HepParticle{K}{S}{0} \, \HepParticle{\pi}{}{0}}\\
+$\HepParticle{B}{\pd}{0} \to \HepParticle{K}{S}{0} \, \HepParticle{\pi}{}{0}$\\
\HepProcess{\HepParticle{B}{\pd}{0} \to \HepParticle{K}{S}{0} \, \HepParticle{\pi}{}{0}}\\
@@ -130,6 +90,7 @@
\HepParticleResonanceFull{B}{\pd}{0}{1234}{1}{\ast}\\
\HepParticleResonanceFormalFull{B}{\pd}{0}{1234}{1}{\ast}{P}{11}{\pm}
+
\section{Mixed concrete and generic}
Using math sub/super-scripts:
@@ -151,14 +112,14 @@ $\HepGenParticle{B}{\pd}{0}_i$ & $\HepGenParticle{B}{\pd}{0}^j$ & $\HepGenPartic
\bottomrule
\end{tabular}\\
-Using generic particle with concrete particle in first argument:
+% Using generic particle with concrete particle in first argument:
-\begin{tabular}{lll}
-\toprule
-\HepParticleStruct{\pB}{i}{} & \HepParticleStruct{\pB}{}{j} & \HepParticleStruct{\pB}{i}{j} \\
-\HepParticleStruct{\pB}{i}{\HepConStyle{0}} & \HepParticleStruct{\pB}{\HepConStyle{\pd}}{j} & \\
-\bottomrule
-\end{tabular}
+% \begin{tabular}{lll}
+% \toprule
+% \HepParticleStruct{\pB}{i}{} & \HepParticleStruct{\pB}{}{j} & \HepParticleStruct{\pB}{i}{j} \\
+% \HepParticleStruct{\pB}{i}{\HepConStyle{0}} & \HepParticleStruct{\pB}{\HepConStyle{\pd}}{j} & \\
+% \bottomrule
+% \end{tabular}
\section{Integration with text}
\textbf{This is a B.}\\
@@ -215,4 +176,15 @@ quam, molestie at, bibendum sed, sodales at, urna. In hac habitasse platea
\HepGenSusyAntiParticle{B}{}{0} dictumst.
}
+
+\section{Misc}
+
+\HepParticle{\pi}{}{}
+\HepParticle{\lambda}{}{}
+\HepGenParticle{\pi}{}{}
+\HepGenParticle{\lambda}{}{}
+
+% $\upright{\pi}, \pi$
+
+
\end{document}
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 }%
+ }%
+}{}