summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/hep-paper/hep-paper-implementation.dtx')
-rw-r--r--macros/latex/contrib/hep-paper/hep-paper-implementation.dtx3112
1 files changed, 328 insertions, 2784 deletions
diff --git a/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx b/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
index a24310a0b0..4e0334f069 100644
--- a/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
+++ b/macros/latex/contrib/hep-paper/hep-paper-implementation.dtx
@@ -16,55 +16,32 @@
% \fi
%
% \iffalse
-
-%<package|title|font|math|bibliography|acronyms>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
-%<package>\ProvidesPackage{hep-paper}[2021/08/01 v1.8 Publications in High Energy Physics]
-%<title>\ProvidesPackage{hep-title}[2021/08/01 v1.8 Title macros for publications in High Energy Physics]
-%<font>\ProvidesPackage{hep-font}[2021/08/01 v1.8 Font adjustments for publications in High Energy Physics]
-%<math>\ProvidesPackage{hep-math}[2021/08/01 v1.8 Font adjustments for publications in High Energy Physics]
-%<floats>\ProvidesPackage{hep-floats}[2021/08/01 v1.8 Float adjustments for publications in High Energy Physics]
-%<bibliography>\ProvidesPackage{hep-bibliography}[2021/08/01 v1.8 Bibliography macros for publications in High Energy Physics]
-%<acronyms>\ProvidesPackage{hep-acronyms}[2021/08/01 v1.8 Acronym macros for publications in High Energy Physics]
-%<datamodel>\ProvidesFile{hep-paper.dbx}[2021/08/01 v1.8 HEP-Paper biblatex data model]
-%<documentation>\ProvidesFile{hep-paper-documentation.tex}[2021/08/01 v1.8 HEP-Paper documentation]
+%
+%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<package>\ProvidesPackage{hep-paper}[2021/09/01 v2.0 Publications in High Energy Physics]
+%<documentation>\ProvidesFile{hep-paper-documentation.tex}[2021/09/01 v2.0 HEP-Paper documentation]
%
%<*documentation>
-
+%
\RequirePackage[l2tabu, orthodox]{nag}
\documentclass{ltxdoc}
\AtBeginDocument{\DeleteShortVerb{\|}}
\AtBeginDocument{\MakeShortVerb{\"}}
-\setcounter{tocdepth}{2}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
-\MacroIndent=1.5em
-
-\usepackage[parskip, oldstyle]{hep-paper}
+\usepackage[parskip]{hep-paper}
\bibliography{bibliography}
\acronym{PDF}{portable document format}
-\acronym{URL}{uniform resource locator}
-\acronym{CM}{computer modern}
\acronym{LM}{latin modern}
\usepackage{hologo}
-\usepackage{fonttable}
-
-\newenvironment{columns}[1][.5]{%
- \par\vspace{-\bigskipamount}%
- \begin{minipage}[t]{\linewidth}%
- \begin{minipage}[t]{#1\linewidth}%
- \newcommand{\column}{%
- \end{minipage}%
- \begin{minipage}[t]{\linewidth-#1\linewidth}%
- }%
-}{\end{minipage}\end{minipage}\par}
-
-\setlength{\fboxsep}{1pt}
+
+\MacroIndent=1.5em
\AtBeginEnvironment{macrocode}{\renewcommand{\ttdefault}{clmt}}
%</documentation>
@@ -78,7 +55,7 @@
%
% \fi
%
-% \CheckSum{0}
+% \CheckSum{609}
%
% \CharacterTable
% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -105,6 +82,7 @@
% \changes{v1.6}{2020/12/01}{Implementation of the twocolumn mode.}
% \changes{v1.7}{2021/06/01}{Introduction of dedicated style file for the title, acronyms and bibliography macros. Extension of the title macros.}
% \changes{v1.8}{2021/08/01}{Expand thanks to allow for reference label and fine tune the title page. Reimplement the must relevant macros from the physics package. Make mathrm produce upright Greek.}
+% \changes{v2.0}{2021/09/01}{Move independent logic into dedicated packages.}
%
% \ifshort
%<*documentation>
@@ -112,11 +90,9 @@
%
\GetFileInfo{hep-paper.sty}
-\title{The \textsmaller[1.5]{HEP\raisebox{.25ex}{--}PAPER} package\thanks{This document corresponds to \software{hep-paper}~\fileversion.}}
+\title{The \software{hep-paper} package\thanks{This document corresponds to \software{hep-paper}~\fileversion.}}
\subtitle{Publications in high energy physics}
\author{Jan Hajer \email{jan.hajer@unibas.ch}}
-\affiliation{Department of Physics, University of Basel, Klingelbergstraße 82, 4056 Basel, Switzerland}
-\preprint{Preprint-Number}
\date{\filedate}
% \ifshort
@@ -127,7 +103,7 @@
\begin{abstract}
The \software{hep-paper} package aims to provide a single style file containing most configurations and macros necessary to write appealing publications in High Energy Physics.
-Instead of reinventing the wheel by introducing newly created macros \software{hep-paper} preferably loads third party packages as long as they are lightweight enough.
+Instead of reinventing the wheel by introducing newly created macros \software{hep-paper} preferably loads third party packages.
\end{abstract}
\tableofcontents\clearpage
@@ -144,12 +120,8 @@ For usual publications it is enough to load additionally to the "article" class
The most notable changes after loading the \software{hep-paper} package is the change of some \hologo{LaTeX} defaults.
The paper and font sizes are set to A4 and \unit[11]{pt}, respectively.
Additionally, the paper geometry is adjusted using the \software{geometry} package \cite{geometry}.
-Furthermore, the font is changed to \LM using the \software{cfr-lm} package \cite{cfr-lm} with \software{microtype} \cite{microtype} optimizations.
+Furthermore, the font is changed to \LM using the \software{hep-font} package \cite{hep-font}.
Finally, \PDF hyperlinks are implemented with the \software{hyperref} package \cite{hyperref}.
-\DescribeMacro{hep-title}
-\DescribeMacro{hep-bibliography}
-\DescribeMacro{hep-acronyms}
-If only subset of the functionality is needed one of the smaller style files \software{hep-title}, \software{hep-acronyms}, and \software{hep-bibliography} containing only the macros relevant to \cref{sec:title,sec:bibliography,sec:acronyms}, respectively.
\subsection{Options}
@@ -170,7 +142,7 @@ The possible \meta{sizes} are:
The default is \unit[11]{pt}.
\DescribeMacro{lang}
-The "lang"=\meta{name} option switches the document language to one of the values provided by the \software{babel} package \cite{babel}.
+The "lang"=\meta{name} option switches the document language.
The default is "british".
\DescribeMacro{sansserif}
@@ -185,10 +157,7 @@ The \hologo{LaTeX} default is separation via indentation the "parskip" option sw
\footnote{Although the "parskip" option is used for this document, it is recommended only for very few document types such as technical manuals or answers to referees.}
\DescribeMacro{symbols}
-The "symbols"=\meta{family} set the family of the symbol fonts.
-"symbols=ams" loads the two \hologo{AmS} fonts \cite{amsfonts} and the \software{bm} bold fonts.
-The default "symbols=true" replaces additionally the blackboard font with the \software{dsfont} \cite{dsfont}.
-"symbols=minion" switches the symbol fonts to the Adobe MinionPro companion font from the \software{MnSymbol} package \cite{MnSymbol}.
+The "symbols"=\meta{family} is passed to the \software{hep-math-font} package \cite{hep-math-font} and sets the family of the symbol fonts.
"symbols=false" deactivates loading any additional symbol fonts.
\subsubsection{Deactivation}
@@ -203,11 +172,10 @@ The "defaults" option prevents the adjustment of the page geometry and the font
The "title=false" option deactivates the title page adjustments.
\DescribeMacro{bibliography}
-The "bibliography"=\meta{key} option prevents the automatic loading of the \software{biblatex} package \cite{biblatex} if \meta{key}="false".
-Otherwise the \meta{key} is passed as "style" string to the \software{biblatex} package.
+The "bibliography"=\meta{key} option prevents the automatic loading of the \software{hep-bibliography} package \cite{hep-bibliography} if \meta{key}="false".
\DescribeMacro{glossaries}
-The "glossaries=false" option deactives acronyms and the use of the \software{glossaries} package \cite{glossaries}.
+The "glossaries=false" option deactivates acronyms and the use of the \software{hep-acronym} package \cite{hep-acronym}.
\DescribeMacro{references}
The "references=false" option prevents the \software{cleveref} package \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros.
@@ -256,7 +224,7 @@ Additionally the "abstract*" environment is defined that generates a one column
\subsection{Title page} \label{sec:title}
\DescribeMacro{\series}
-The "\series"\marg{series} macro is defined using the \software{titling} package \cite{titling}.
+The "\series"\marg{series} macro is defined using the \software{hep-title} package \cite{hep-title}.
\DescribeMacro{\title}
The \PDF meta information is set according to the "\title"\marg{text} and "\author"\marg{text} information.
@@ -268,7 +236,6 @@ The "\subtitle"\marg{subtitle} macro is defined.
\DescribeMacro{\author}
\DescribeMacro{\affiliation}
\DescribeMacro{\email}
-In order to facilitate multiple authors with different affiliations the \software{authblk} package \cite{authblk} is loaded.
The following lines add \eg two authors with different affiliations
\begin{verbatim}
\author[1]{Author one \email{email one}}
@@ -292,68 +259,16 @@ Various title font macros are defined, allowing to change the appearance of the
\subsection{Text}
-Hyphenation is provided by the \software{babel} package \cite{babel} and quotation commands are provided by the \software{csquotes} package \cite{csquotes}.
-\DescribeMacro{\enquote}
-\DescribeMacro{\MakeOuterQuote}
-The latter package provides the convenient macros "\enquote"\marg{text} and "\MakeOuterQuote{}" allowing to leave the choice of quotation marks to \hologo{LaTeX} and use \dots instead of the pair \dots and \dots, respectively.
-
-\DescribeMacro{\eg}
-\DescribeMacro{\vs}
-The \software{foreign} package \cite{foreign} defines macros such as "\eg", "\ie", "\cf", and "\vs" which are typeset as \eg, \ie, \cf, and \vs.
-
-\DescribeMacro{\no}
-The "\no"\marg{number} macro is typeset as \no{123}.
-
-\DescribeMacro{\software}
-The "\software"\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}.
-
-\DescribeMacro{\online}
-The "\online"\marg{url}\marg{text} macro combines the features of the "\href"\marg{url}\allowbreak\marg{text}\allowbreak \cite{hyperref} and the "\url"\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}.
-
-
\DescribeMacro{inlinelist}
\DescribeMacro{enumdescript}
-The "inlinelist" and "enumdescript" environments are defined using the \software{enumitem} package \cite{enumitem}.
-\begin{columns}
-\begin{verbatim}
-The three main points are
-\begin{inlinelist}
- \item one
- \item two
- \item three
-\end{inlinelist}
-\end{verbatim}
-\column
-The three main points are
-\begin{inlinelist}
- \item one
- \item two
- \item three
-\end{inlinelist}
-\end{columns}
-\vspace{4ex}
-\begin{columns}[.6]
-\begin{verbatim}
-\begin{enumdescript}[label=\Roman*)]
- \item{First} one
- \item{Second} two
- \item{Third} three
-\end{enumdescript}
-\end{verbatim}
-\column
-\begin{enumdescript}[label=\Roman*)]
- \item{First} one
- \item{Second} two
- \item{Third} three
-\end{enumdescript}
-\end{columns}
+The "inlinelist" and "enumdescript" environments are defined.
\DescribeMacro{\textsc}
-A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf{\textsc{Small Caps}} based on the \CM font \cite{cm} is provided, the latter using the \software{sansmathfonts} package \cite{sansmathfonts}.
+A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf{\textsc{Small Caps}} is provided.
\DescribeMacro{\underline}
\DescribeMacro{\overline}
-The "\underline" macro is redefined to allow line-breaks using the \software{ulem} package \cite{ulem}.
+The "\underline" macro is redefined to allow line-breaks.
The "\overline" macro is extended to also \overline{overline} text outside of math environments.
\DescribeMacro{\useparskip}
@@ -379,28 +294,23 @@ Footnotes are adjusted to swallow white space before the footnote mark and at th
\subsubsection{Acronyms} \label{sec:acronyms}
+The \software{hep-acronym} package \cite{hep-acronym} is loaded.
\DescribeMacro{\acronym}
\DescribeMacro{\shortacronym}
\DescribeMacro{\longacronym}
-The "\acronym"\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singular "\"\meta{abbreviation} and plural "\"\meta{abbreviation}"s" macros.
+The "\acronym"\meta{*}\oarg{typeset abbreviation} \marg{abbreviation}\meta{*}\marg{definition}\oarg{plural definition} macro generates the singular "\"\meta{abbreviation} and plural "\"\meta{abbreviation}"s" macros.
The first star prevents the addition of an \enquote{s} to the abbreviation plural.
The second star restores the \hologo{TeX} default of swallowing subsequent white space.
The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form.
The long form is never used in math mode.
Capitalization at the beginning of paragraphs and sentences is (mostly) ensured.
The "\shortacronym" and "\longacronym" macros are drop-in replacements of the "\acronym" macro showing only the short or long form of their acronym.
-\DescribeMacro{\resetacronym}
-\DescribeMacro{\dummyacronym}
-The first use form of the acronym can be enforced by resetting the acronym counter with "\resetacronym"\marg{key}.
-If the acronym counter equals one at the end of the document the short form of the acronym is not introduced.
-Placing a "\dummyacronym"\marg{key} at the end of the document ensures that the short form is introduced.
\subsection{Math}
-The \software{mathtools} \cite{mathtools} and \software{amssymb} \cite{amsfonts} packages are loaded.
-They in turn load the \hologo{AmSLaTeX} \software{amsmath} \cite{amsmath} and \software{amsfonts} \cite{amsfonts} packages.
+The \software{hep-math} \cite{hep-math} and \software{hep-math-font} \cite{hep-math-font} packages are loaded.
\DescribeMacro{\mathbf}
-Bold math, via "\mathbf" is improved by the \software{bm} package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$).
+Bold math, via "\mathbf" is improved, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$).
Macros switching to "bfseries" such as "\section"\marg{text} are ensured to also typeset math in bold.
\DescribeMacro{\text}
The "\text"\marg{text} macro makes it possible to write text within math mode, \ie ($ \text A \text b \text \Gamma \text \delta \text{\textbf A} \text{\textbf b} \text{\textbf \Gamma} \text{\textbf \delta}$).
@@ -409,10 +319,9 @@ The math sans serif alphabet is redefined to be italic sans serif if the main te
\DescribeMacro{\mathscr}
The "\mathcal" font \ie ($\mathcal{ABCD}$) is accompanied by the "\mathscr" font \ie ($\mathscr{ABCD}$).
\DescribeMacro{\mathbb}
-The "\mathbb" font is improved by the \software{doublestroke} package \cite{dsfont} and adjusted depending on the "sansserif" option \ie ($\mathbb{Ah1}$).
+The "\mathbb" font is adjusted depending on the "sansserif" option \ie ($\mathbb{Ah1}$).
\DescribeMacro{\mathfrak}
Finally, the "\mathfrak" font is also available \ie ($\mathfrak{AaBb12}$).
-Details about the font handling in \hologo{TeX} can be found in \ccite{fntguide}.
\DescribeMacro{\nicefrac}
\DescribeMacro{\flatfrac}
@@ -433,143 +342,13 @@ The imaginary unit $\i$ and the differential $\d$ are defined using this functio
For longer paper it can be useful to re-number the equation in accordance with the section numbering "\numberwithin{equation}{section}".
\DescribeMacro{subequations}
In order to further reduce the size the of equation counter it can be useful to wrap "align" environments with multiple rows in a "subequations" environment.
-Both macros are provided by the \software{amsmath} package.
-
-\DescribeMacro{eqnarray}
-The depreciated "eqnarray" environment is undefined as long this behaviour is not prevented by the "eqnarray" package option.
-The "split", "multline", "align", "multlined", "aligned", "alignedat", and "cases" environments of the \software{amsmath} and \software{mathtools} packages should be used instead.
-
-\DescribeMacro{equation}
-Use the "equation" environment for short equations.
-\begin{columns}
-\begin{verbatim}
-\begin{equation}
- left = right \ .
-\end{equation}
-\end{verbatim}
-\column
-\begin{equation}
-\framebox[2em]{left\strut} = \framebox[7em]{right\strut} \ .
-\end{equation}
-\end{columns}
-
-\DescribeMacro{multline}
-Use the "multline" environment for longer equations.
-\begin{columns}
-\begin{verbatim}
-\begin{multline}
- left = right 1 \\
- + right 2 \ .
-\end{multline}
-\end{verbatim}
-\column
-\begin{multline}
-\framebox[2em]{left\strut} = \framebox[7em]{right 1\strut} \\
-\framebox[7em]{+ right 2\strut} \ .
-\end{multline}
-\end{columns}
-
-\DescribeMacro{split}
-Use the "split" sub environment for equations in which multiple equal signs should be aligned.
-\begin{columns}
-\begin{verbatim}
-\begin{equation} \begin{split}
- left &= right 1 \\
- &= right 2 \ .
-\end{split} \end{equation}
-\end{verbatim}
-\column
-\begin{equation}
-\begin{split}
-\framebox[2em]{left\strut} &= \framebox[7em]{right 1\strut} \\
-&= \framebox[7em]{right 2\strut} \ .
-\end{split}
-\end{equation}
-\end{columns}
-
-\DescribeMacro{align}
-Use the "align" environment for the vertical alignment and horizontal distribution of multiple equations.
-\begin{columns}
-\begin{verbatim}
-\begin{subequations} \begin{align}
- left &= right \ , &
- left &= right \ , \\
- left &= right \ , &
- left &= right \ .
-\end{align} \end{subequations}
-\end{verbatim}
-\column
-\begin{subequations}
-\begin{align}
-\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , &
-\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , \\
-\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , &
-\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ .
-\end{align}
-\end{subequations}
-\end{columns}
-
-\DescribeMacro{aligned}
-Use the "aligned" environment within a "equation" environment if the aligned equations should be labeled with a single equation number.
-
-\DescribeMacro{multlined}
-Use the "multlined" environment if either "split" or "align" contain very long lines.
-\begin{columns}
-\begin{verbatim}
-\begin{equation} \begin{split}
- left &= right 1 \\ &=
- \begin{multlined}[t]
- right 2 \\ + right 3 \ .
- \end{multlined}
-\end{split} \end{equation}
-\end{verbatim}
-\column
-\begin{equation}
-\begin{split}
-\framebox[2em]{left\strut} &= \framebox[7em]{right 1\strut} \\ &=
- \begin{multlined}[t]
- \framebox[7em]{right 2\strut} \\
- \framebox[7em]{+ right 3\strut} \ .
-\end{multlined}
-\end{split}
-\end{equation}
-\end{columns}
-
-\DescribeMacro{alignat}
-Use the "alignat" environment together with the "\mathllap" macro for the alignment of multiple equations with vastly different lengths.
-\begin{columns}
-\begin{verbatim}
-\begin{subequations}
-\begin{alignat}{2}
- left &= long right && \ , \\
- le. 2 &= ri. 2 \ , &
- \mathllap{le. 3 = ri. 3} & \ .
-\end{alignat}
-\end{subequations}
-\end{verbatim}
-\column
-\begin{subequations}
-\begin{alignat}{2}
-\framebox[2em]{left\strut} &=
-\framebox[11em]{long right\strut} && \ , \\
-\framebox[2em]{le.\ 2\strut}
-&= \framebox[2.5em]{ri.\ 2\strut} \ , &
-\mathllap{\framebox[2em]{le.\ 3\strut}
-= \framebox[2.5em]{ri.\ 3\strut}} & \ .
-\end{alignat}
-\end{subequations}
-\end{columns}
-
-As a rule of thumb if you have to use "\notag", "\nonumber", or perform manual spacing via "\quad" you are probably using the wrong environment.
-
-\subsubsection{Physics}
\DescribeMacro{\unit}
\DescribeMacro{\inv}
-The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro "\unit"\oarg{value} \marg{unit} from the \software{units} package \cite{units} which can also be used in text mode.
+The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro "\unit"\oarg{value} \marg{unit} which can also be used in text mode.
The macro "\inv"\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via "\unit[5]{\inv{fb}}".
-Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the \software{fixmath} \cite{fixmath} and \software{alphabeta} \cite{alphabeta} packages.
+Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the \software{hep-math-font} \cite{hep-math-font} package.
This allows differentiations like
\begin{align} \label{eq:greek}
\sigma &= \unit[5]{fb} \ , & &\mbox{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \unit[5]{\mu m} \ .
@@ -580,10 +359,10 @@ Additionally, Greek letters can also be directly typed using Unicode.
\DescribeMacro{\pdv}
\DescribeMacro{\comm}
\DescribeMacro{\order}
-The \software{physics} package \cite{physics} provides additional macros such as
+The \software{hep-math} package \cite{hep-math} provides additional macros such as
\begin{align}
&\ev{\phi} \ ,
-&&\pdv[n]{x}[f] \ ,
+&&\pdv[f]{x}[y]^2 \ ,
&&\comm{A}{B} \ ,
&&\order{x^2} \ ,
&&\eval{x}_0^\infty \ ,
@@ -592,7 +371,7 @@ The \software{physics} package \cite{physics} provides additional macros such as
\DescribeMacro{\cancel}
\DescribeMacro{\slashed}
-The "\cancel"\marg{characters} macro from the \software{cancel} package \cite{cancel} and the "\slashed" \marg{character} macro from the \software{slashed} package \cite{slashed} allow to $\cancel{\text{cancel}}$ math and use the Dirac slash notation \ie $\slashed \partial$, respectively.
+The "\cancel"\marg{characters} macro and the "\slashed" \marg{character} macro allow to $\cancel{\text{cancel}}$ math and use the Dirac slash notation \ie $\slashed \partial$, respectively.
\DescribeMacro{\overleftright}
A better looking over left right arrow is defined \ie $\overleftright{\partial}$.
@@ -601,63 +380,18 @@ A better looking over left right arrow is defined \ie $\overleftright{\partial}$
\DescribeEnv{figure}
\DescribeEnv{table}
-Automatic float placement is adjusted to place a single float at the top of pages and to reduce the number of float pages, using the \hologo{LaTeX} macros.
-
-"\setcounter{bottomnumber}{0}" \hfill no floats at the bottom of a page (default 1) \\
-"\setcounter{topnumber}{1}" \hfill a single float at the top of a page (default 2) \\
-"\setcounter{dbltopnumber}{1}" \hfill same for full widths floats in two-column mode \\
-"\renewcommand{\textfraction}{.1}" \hfill large floats are allowed (default 0.2)\\
-"\renewcommand{\topfraction}{.9}" \hfill (default 0.7) \\
-"\renewcommand{\dbltopfraction}{.9}" \hfill (default 0.7) \\
-"\renewcommand{\floatpagefraction}{.8}" \hfill float pages must be full (default 0.5)
-
-Additionally, manual float placement is deactivated but can be reactivated using the "manualplacement" package option.
-It is however recommended to archive the desired design by adjusting above macros.
+Automatic float placement is adjusted to place a single float at the top of pages and to reduce the number of float pages, using the \software{hep-float} package \cite{hep-float}.
The most useful float placement is usually archived by placing the float \emph{in front} of the paragraph it is referenced in first.
-\DescribeMacro{\raggedright}
-The float environments have been adjusted to center their content.
-The usual behaviour can be reactivated using "\raggedright".
-
-\begin{table}
-\begin{panels}{2}
-\begin{verbatim}
-\begin{panels}{2}
- code
-\panel
- \begin{tabular}...\end{tabular}
-\end{panels}
-\end{verbatim}
-\caption{Code for this panel environment.}
-\label{tab:panels}
-\panel
-\begin{tabular}{cccc}
-\toprule
-\multicolumn{2}{c}{one}& \multicolumn{2}{c}{two} \\ \cmidrule(r){1-2} \cmidrule(l){3-4}
-\multirow{2}{*}{a} & b & c & d \\
- & b & c & d \\
-\bottomrule
-\end{tabular}
-\caption{The \protecting{"booktabs"} and \protecting{"multirow"} features.}
-\label{tab:booktabs}
-\end{panels}
-\caption{Example use of the \protecting{"panels"} environment in Panel \subref{tab:panels} and the features from the \software{booktabs} and \software{multirow} packages in Panel \subref{tab:booktabs}.
-} \label{tab:table}
-\end{table}
\DescribeEnv{panels}
\DescribeMacro{\panel}
-The "panels" environment makes use of the \software{subcaption} package \cite{subcaption}.
-It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the "\linewidth".
+The "panels" environment provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the "\linewidth".
Within the "\begin{panels}"\oarg{vertical alignment}\marg{width} environment the "\panel" macro initiates a new sub-float.
In the case that the width of the first sub-float has been given as an optional argument to the "panels" environment the "\panel"\marg{width} macro takes the width of the next sub-float as mandatory argument.
-The example code is presented in \cref{tab:panels}.
-
-\DescribeEnv{tabular}
-The \software{booktabs} \cite{booktabs} and \software{multirow} \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}.
\DescribeMacro{\graphic}
\DescribeMacro{\graphics}
-The \software{graphicx} package \cite{graphicx} is loaded and the "\graphic"\oarg{width}\marg{figure} macro is defined, which is a wrapper for the "\includegraphics"\marg{figure} macro and takes the figure width as fraction of the "\linewidth" as optional argument (default~1).
+The "\graphic"\oarg{width}\marg{figure} macro is defined, which is a wrapper for the "\includegraphics"\marg{figure} macro and takes the figure width as fraction of the "\linewidth" as optional argument (default~1).
If the graphics are located in a sub-folder its path can be indicated by "\graphics"\marg{subfolder}.
\subsection{Bibliography} \label{sec:bibliography}
@@ -667,7 +401,7 @@ If the graphics are located in a sub-folder its path can be indicated by "\graph
The \software{biblatex} package \cite{biblatex} is loaded for bibliography management.
The user has to add the line "\bibliography"\marg{my.bib} to the preamble of the document and "\printbibliography" at the end of the document.
The bibliography is generated by \software{Biber} \cite{biber}.
-"biblatex" is extended to be able to cope with the "collaboration" and "reportNumber" fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed.
+\software{biblatex} is extended by the \software{hep-bibliography} package \cite{hep-bibliography} to be able to cope with the "collaboration" and "reportNumber" fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed.
Additionally, the PubMed IDs are recognized and \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are valid "eprinttype"s.
\DescribeMacro{erratum}
Errata can be included using the "related" feature.
@@ -708,141 +442,12 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \clearpage
% \appendix
%
-% \section{Math alphabet allocation}
-%
-% \bgroup
-% \makeatletter
-% \renewcommand{\arraystretch}{0}
-% \setlength{\tabcolsep}{0pt}
-% \nodecimals
-% \nohexoct
-% \fntcolwidth=0pt
-% \setlength\arrayrulewidth{0pt}
-%
-% \begin{figure}
-% \begin{panels}[t]{.22}
-% \fonttable{rm-\ifhep@serif lmr\else lmss\fi10}
-% \caption{Text}
-% \panel{.22}
-% \fontrange{0}{127}
-% \fonttable{\ifhep@serif lm\else cmbr\fi mi10}
-% \caption{Math}\vspace{2ex}
-% \fonttable{\ifhep@serif lm\else cmbr\fi sy10}
-% \caption{Symbol}
-% \panel{.352}
-% \fontrange{0}{127}
-% \fonttable{\ifhep@serif\else ss\fi msam10}
-% \caption{AMS a}\vspace{2ex}
-% \fonttable{\ifhep@serif\else ss\fi msbm10}
-% \caption{AMS b}
-% \panel{.19}
-% \fontrange{0}{127}
-% \fonttable{eufm10}
-% \caption{Euler fraktur}\vspace{2ex}
-% \fontrange{64}{95}
-% \fonttable{eusm10}
-% \caption{Euler caligraphy}\vspace{2ex}
-% \fonttable{MnSymbolS10}
-% \caption{Minion caligraphy}\vspace{2ex}
-% \fonttable{ds\ifhep@serif rom\else ss\fi10}
-% \caption{Doublestroke}
-% \end{panels}
-% \caption{Basic math fonts}
-% \end{figure}
-%
-% \begin{figure}
-% \hspace*{-2cm}%
-% \begin{panels}[t]{.3}
-% \fontrange{0}{127}
-% \fonttable{cm\ifhep@serif\else ss\fi ex10}
-% \caption{Computer modern}
-% \panel{.22}
-% \fontrange{0}{143}
-% \fonttable{MnSymbolE5}
-% \caption{Mn Symbol E 1}
-% \panel{.6}
-% \fontrange{144}{215}
-% \fonttable{MnSymbolE5}
-% \caption{Mn Symbol E 2}\vspace{2ex}
-% \begin{minipage}{.48\linewidth}
-% \fontrange{0}{127}\fonttable{MnSymbolF10}
-% \caption{Mn Symbols F}
-% \end{minipage}%
-% \begin{minipage}{.5\linewidth}
-% \fontrange{0}{47}\fonttable{\ifhep@serif\else ss\fi esint10}
-% \caption{Extended set of integrals}
-% \end{minipage}
-% \end{panels}
-% \caption{Math extension fonts}
-% \end{figure}
-%
-% \begin{figure}
-% \begin{panels}[t]{.26}
-% \fonttable{MnSymbolA10}
-% \caption{Mn Symbol A}
-% \panel{.26}
-% \fonttable{MnSymbolB10}
-% \caption{Mn Symbol B}
-% \panel{.26}
-% \fonttable{MnSymbolC10}
-% \caption{Mn Symbol C}
-% \panel{.2}
-% \fonttable{MnSymbolD10}
-% \caption{Mn Symbol D}
-% \end{panels}
-% \makeatother
-% \caption{Minion symbol fonts}
-% \end{figure}
-% \egroup
-%
-% Of the 16 available math alphabets, \hologo{TeX} loads four by default
-% \begin{enumdescript}[start=0,label=\arabic*)]
-% \item{OT1} \label{it:math text} Text (latin, upper case greek, numerals, text symbols)
-% \item{OML} \label{it:math italic} Math Italic (latin, greek, numerals, text symbols)
-% \item{OMS} \label{it:math symbol} Symbol ("\mathcal", operators)
-% \item{OMX} \label{it:math extension} Math Extension (big operators, delimiters)
-% \end{enumdescript}
-% The text font \ref{it:math text}\strut\ of \CM is \textbf{cmr10} "\OT1/cmr/m/n/10", which is replaced by \LM to be \textbf{rm-lmr10} "\OT1/lmr/m/n/10", the "sansserif" option uses \textbf{rm-lmss10} "\OT1/lmss/m/n/10".
-% The italic math font \ref{it:math italic} of \CM is \textbf{cmmi10} "\OML/cmm/m/it/"\allowbreak"10", and is replaced by \LM to be \textbf{lmmi10} "\OML/lmm/m/it/10", the "sansserif" options uses \textbf{cmbrmi10} "\OML/cmbrm/m/it/10" from the \software{cmbright} package \cite{cmbright}.
-% The symbol font \ref{it:math symbol}\strut\ of \CM is \textbf{cmsy10} "\OMS/cmsy/m/n/10", and is replaced by \LM to be \textbf{lmsy10} "\OMS/lmsy/m/n/10", the "sansserif" options uses \textbf{cmsssy10} "\OMS/cmsssy/m/n/10" from the \software{sansmathfonts} package \cite{sansmathfonts}.
-% The extension font \ref{it:math extension}\strut\ of \CM is \textbf{cmex10} "\OMX/cmex/m/n/5", and is replaced by the \software{exscale} package \cite{exscale} to be \textbf{cmex10} "\OMX/cmex/m/n/10", the "sansserif" option loads \textbf{cmssex10} "\OMX/cmssex/m/n/10".
-% The \software{amssymb} (\software{amsfonts}) packages \cite{amssymb} load two more symbol fonts
-% \begin{enumdescript}[start=4,label=\arabic*)]
-% \item{msam10} \label{it:math ams a} "\U/msa/m/n/10" AMS symbol font A (special math operators)
-% \item{msbm10} \label{it:math ams b} "\U/msb/m/n/10" AMS symbol font B ("\mathbb", negated operators)
-% \end{enumdescript}
-% The "sansserif" option replaces them with \textbf{ssmsam10} "\U/ssmsa/m/n/10" and \textbf{ssmsbm10} "\U/ssmsb/m/n/10" from the \software{sansmathfonts} package \cite{sansmathfonts}, respectively.
-% The \software{bm} package \cite{bm} loads the bold version for the fonts \labelcref{it:math text,it:math italic,it:math symbol}.
-%
-% Other math alphabets are only loaded on demand, \eg "\mathsf" uses a sans serif font and "\mathbf" without the \software{bm} package uses a bold font.
-% The "\mathscr" macro uses the script font from the \software{mathrsfs} package \cite{mathrsfs}
-% \begin{enumdescript}[start=9,label=\arabic*)]
-% \item{rsfs10} "\U/rsfs/m/n/10" Math script font (capital letters)
-% \end{enumdescript}
-% The "\mathbb" macro loads the double stroke font from the \software{dsfont} package \cite{dsfont}, this can be prevented with the "symbols=ams" option.
-% \begin{enumdescript}[start=10,label=\arabic*)]
-% \item{dsrom10} "\U/dsrom/m/n/10" Double stroke font
-% \end{enumdescript}
-% The "\mathfrak" macro loads the fractur font from the \software{amssymb} package \cite{amssymb}
-% \begin{enumdescript}[start=11,label=\arabic*)]
-% \item{eufm10} "\U/euf/m/n/10" Math fraktur (Basic Latin)
-% \end{enumdescript}
-%
-% The \software{hep-paper} package uses nine of the available 16 math alphabets.
-% This number can be reduced by three using "\newcommand{\bmmax}{0}" from the \software{bm} package \cite{bm} and brought down to the default of four with the option "symbols=false".
-%
-% The "symbols=minion" options replaces the fonts \labelcref{it:math symbol,it:math extension,it:math ams a,it:math ams b} with corresponding fonts from the \software{MnSymbol} package \cite{MnSymbol}.
-% Additionally, two more symbol alphabets are allocated, the \software{bm} package \cite{bm} loads one more font and now "\mathcal" triggers the use of one additional alphabet.
-% Hence, the minion option uses three to four more math alphabets than a usual setup.
-%
% \section{Options}
%
-%<*package|title|font|math|floats|acronyms|bibliography>
%<*package>
%
-% Load the \software{pdftexcmds} \cite{pdftexcmds} and \software{kvoptions} \cite{kvoptions} packages and define a "hep" namespace.
+% Load the \software{kvoptions} package \cite{kvoptions} and define a "hep" namespace.
% \begin{macrocode}
-\RequirePackage{pdftexcmds}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=hep,
@@ -936,7 +541,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
%
% \begin{macro}{glossaries}
-% Provide the "glossaries" option able to turn of the use of the \software{glossaries} package \cite{glossaries}.
+% Provide the "glossaries" option able to turn of the use of the \software{hep-acronym} package \cite{hep-acronym}.
% \begin{macrocode}
\DeclareBoolOption[true]{glossaries}
% \end{macrocode}
@@ -1106,393 +711,38 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% Set the SISSA compatibility options.
% \begin{macrocode}
\ifhep@sissa
- \setkeys{hep}{title=false, bibliography=false}
+ \setkeys{hep}{defaults, title=false, bibliography=false}
\PassOptionsToPackage{
colorlinks=true, linktocpage=true, pdfproducer=medialab, pdfa=true,
urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue,
linkcolor=blue, menucolor=blue, pagecolor=blue
}{hyperref}
- \PassOptionsToPackage{reset}{geometry}
\AtBeginDocument{\renewcommand{\foreignabbrfont}{}}
\fi
-% \end{macrocode}
-% Set the JHEP compatibility options.
-% \begin{macrocode}
-\ifhep@jhep
- \voffset 0in
- \hoffset 0in
-\fi
-% \end{macrocode}
-%
-%</package>
%
% \section{Font}
%
-%<*package|font>
-%
% Set the whole text to sans serif if requested.
% \begin{macrocode}
-%<font>\newif\ifhep@serif\hep@seriftrue
\ifhep@serif\else
\renewcommand{\familydefault}{\sfdefault}
\fi
% \end{macrocode}
%
-% \begin{macro}{\ifxetexorluatex}
-% Load the \software{ifluatex} \cite{ifluatex} and \software{ifxetex} \cite{ifxetex} packages.
-% Define the "\ifxetexorluatex" conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}.
+% Load the hep-font package.
% \begin{macrocode}
-\RequirePackage{ifluatex}
-\RequirePackage{ifxetex}
-\newif\ifxetexorluatex
-\ifxetex\xetexorluatextrue
-\else
- \ifluatex\xetexorluatextrue
- \else\xetexorluatexfalse
- \fi
-\fi
+\RequirePackage[lining=\ifhep@lining true\else false \fi]{hep-font}
% \end{macrocode}
-% \end{macro}
-%
-% Pick the correct font encoding depending on the engine used and load the \software{fontenc} package \cite{fontenc} with this encoding.
-% For details of the font encoding see \cite{encguide}.
-% \begin{macrocode}
-\ifxetexorluatex
- \def\hep@encoding{TU}
-\else
- \def\hep@encoding{T1}
-\fi
-\RequirePackage[\hep@encoding]{fontenc}
-% \end{macrocode}
-% Fix the remaining \CM fonts \cite{fix-cm}, load the \LM font via \software{cfr-lm} \cite{cfr-lm} supported also by \software{lmodern} \cite{lmodern}, the \software{textcomp} extension \cite{textcomp}, and the \software{microtype} font optimization \cite{microtype}.
-% Adjust the figures according to the "lining" option and ensure that tables always use lining, using the \software{etoolbox} package \cite{etoolbox}.
-% \begin{macrocode}
-\RequirePackage{fix-cm}
-\RequirePackage{microtype}
-%<font>\newif\ifhep@lining
-\ifxetexorluatex
- \RequirePackage{nfssext-cfr}
- \RequirePackage{lmodern}
-\else
- \ifhep@lining
- \RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm}
- \else
- \RequirePackage{cfr-lm}
- \fi
-\fi
-\RequirePackage{etoolbox}
-% \AtBeginEnvironment{tabular}{\tlstyle}
-\RequirePackage{textcomp}
-% \end{macrocode}
-%
-% Define bold and sans serif small caps font shapes using the \software{fontspec} package \cite{fontspec}.
-% The font abbreviations are
-% \begin{description}[nosep]
-% \item[lmr] \LM regular font
-% \item[lmss] \LM sans serif font
-% \item[cmss] \CM sans serif font
-% \item[xcmss] Extended \CM sans serif font (from the \software{sansmathfonts} package \cite{sansmathfonts})
-% \item[bx] Bold extended series
-% \item[b] Bold series
-% \item[m] Medium weight and width series
-% \item[c] Medium weight, condensed width series
-% \item[sc] Caps and small caps font shape
-% \end{description}
-% \begin{macrocode}
-\newcommand{\hep@sf@fontshape}[3]{%
- \DeclareFontShape{\hep@encoding}{\sfdefault}{#1}{#2}{#3}{}%
-}
-\newcommand{\hep@rm@fontshape}[3]{%
- \DeclareFontShape{\hep@encoding}{\rmdefault}{#1}{#2}{#3}{}%
-}
-\ifxetexorluatex
- \RequirePackage{fontspec}
- \setmainfont{Latin Modern Roman}[
- UprightFeatures={SmallCapsFont={[lmromancaps10-regular.otf]}},
- BoldFeatures={
- SmallCapsFeatures={Letters=SmallCaps},
- SmallCapsFont={[cmunbx.otf]}
- }
- ]
- \hep@sf@fontshape{bx}{sc}{<->cmssbxcsc10}{}
- \hep@sf@fontshape{b}{sc}{<->cmssbxcsc10}{}
- \hep@sf@fontshape{m}{scit}{<->cmsscsci10}{}
- \hep@sf@fontshape{m}{sc}{%
- <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10%
- }{}
-\else
- \rmfamily
- \ifhep@lining
- \RequirePackage{slantsc}
- \hep@rm@fontshape{b}{sc}{<->ssub*cmr/bx/sc}{}
- \hep@rm@fontshape{bx}{sc}{<->ssub*cmr/bx/sc}{}
- \hep@rm@fontshape{b}{scsl}{<->ssub*cmr/bx/scsl}{}
- \hep@rm@fontshape{bx}{scsl}{<->ssub*cmr/bx/scit}{}
- \hep@rm@fontshape{b}{scit}{<->ssub*cmr/bx/scsl}{}
- \hep@rm@fontshape{bx}{scit}{<->ssub*cmr/bx/scit}{}
- \else
- \DeclareFontFamily{\hep@encoding}{hfor}{}
- \DeclareFontShape{\hep@encoding}{hfor}{bx}{sc}{
- <-6>hfoxc0500<6-7>hfoxc0600<7-8>hfoxc0700<8-9>hfoxc0800
- <9-10>hfoxc0900<10-12>hfoxc1000<12-17>hfoxc1200<17->hfoxc1728
- }{}
- \DeclareFontShape{\hep@encoding}{hfor}{bx}{scsl}{
- <-6>hfooc0500<6-7>hfooc0600<7-8>hfooc0700<8-9>hfooc0800
- <9-10>hfooc0900<10-12>hfooc1000<12-17>hfooc1200<17->hfooc1728
- }{}
- \hep@rm@fontshape{b}{sc}{<->ssub*hfor/bx/sc}{}
- \hep@rm@fontshape{bx}{sc}{<->ssub*hfor/bx/sc}{}
- \hep@rm@fontshape{bx}{scsl}{<->ssub*hfor/bx/scsl}{}
- \hep@rm@fontshape{b}{scit}{<->ssub*hfor/bx/scsl}{}
- \hep@rm@fontshape{bx}{scit}{<->ssub*hfor/bx/scsl}{}
- \hep@rm@fontshape{b}{scsl}{<->ssub*hfor/bx/scsl}{}
- \fi
- \sffamily
- \hep@sf@fontshape{m}{sc}{<->ssub*xcmss/m/sc}{}
- \hep@sf@fontshape{b}{sc}{<->ssub*xcmss/bx/sc}{}
- \hep@sf@fontshape{bx}{sc}{<->ssub*xcmss/bx/sc}{}
- \hep@sf@fontshape{m}{scit}{<->ssub*xcmss/m/scit}{}
- \hep@sf@fontshape{b}{scit}{<->ssub*xcmss/bx/scit}{}
- \hep@sf@fontshape{bx}{scit}{<->ssub*xcmss/bx/scit}{}
- \hep@sf@fontshape{m}{scsl}{<->ssub*xcmss/m/scit}{}
- \hep@sf@fontshape{b}{scsl}{<->ssub*xcmss/bx/scit}{}
- \hep@sf@fontshape{bx}{scsl}{<->ssub*xcmss/bx/scit}{}
- \hep@sf@fontshape{m}{ui}{<->cmssu10}{}
-\fi
-% \end{macrocode}
-%
-% Load the \software{inputenc} package \cite{inputenc}.
-% \begin{macrocode}
-\ifxetexorluatex\else
- \RequirePackage[utf8]{inputenc}
-\fi
-% \end{macrocode}
-%
-%</package|font>
%
% \subsection{Math fonts}
%
-%<*package|font>
-%
-% \begin{macrocode}
-%<font>\RequirePackage{pdftexcmds}
-%<font>\def\hep@symbols{true}
-%<font>\RequirePackage{amstext}
-% \end{macrocode}
-%
-% Define conditionals based on the "symbols" package option.
-% \begin{macrocode}
-\newif\ifhep@symbols
-\ifnum\pdf@strcmp{\hep@symbols}{false}=0\else\hep@symbolstrue\fi
-\newif\ifhep@ams
-\ifnum\pdf@strcmp{\hep@symbols}{ams}=0 \hep@amstrue\fi
-\newif\ifhep@minion
-\ifnum\pdf@strcmp{\hep@symbols}{minion}=0 \hep@miniontrue\fi
-% \end{macrocode}
-%
-% Load the \software{fixmath} \cite{fixmath} and \software{textalpha} \cite{textalpha} packages ensuring that upper Greek letters in math mode are italic and providing upright Greek letters in text mode, respectively.
-% Ensure that both "\text" and "\mathrm" produce upright Greek letters.
-% \begin{macrocode}
-\ifhep@symbols
- \RequirePackage{fixmath}
- \RequirePackage{textalpha}
- \def\hep@greek#1{%
- \expandafter\let\csname math%
- \expandafter\@gobble\string#1\endcsname=#1%
- \edef#1{%
- \noexpand\TextOrMath{%
- \expandafter\noexpand\csname text%
- \expandafter\@gobble\string#1\endcsname%
- }{%
- \noexpand\ifnum\noexpand\fam=0
- \noexpand\text{%
- \expandafter\noexpand\csname text%
- \expandafter\@gobble\string#1\endcsname%
- }%
- \noexpand\else
- \expandafter\noexpand\csname math%
- \expandafter\@gobble\string#1\endcsname%
- \noexpand\fi
- }%
- }%
- }
- \hep@greek\alpha \hep@greek\beta \hep@greek\gamma
- \hep@greek\delta \hep@greek\epsilon \hep@greek\zeta
- \hep@greek\eta \hep@greek\theta \hep@greek\iota
- \hep@greek\kappa \hep@greek\lambda \hep@greek\mu
- \hep@greek\nu \hep@greek\xi \hep@greek\pi
- \hep@greek\rho \hep@greek\sigma \hep@greek\tau
- \hep@greek\upsilon \hep@greek\phi \hep@greek\chi
- \hep@greek\psi \hep@greek\omega
- \hep@greek\Gamma \hep@greek\Delta \hep@greek\Theta
- \hep@greek\Lambda \hep@greek\Xi \hep@greek\Pi
- \hep@greek\Sigma \hep@greek\Upsilon \hep@greek\Phi
- \hep@greek\Psi \hep@greek\Omega
-% \end{macrocode}
-% Ensure that this works also after loading other fonts packages such as \software{cfr-lm} using \software{substitutefont} \cite{substitutefont}.
-% \begin{macrocode}
- \ifxetexorluatex
- % missing code
- \else
- \RequirePackage{substitutefont}
- \substitutefont{LGR}{\rmdefault}{lmr}
- \DeclareFontFamily{LGR}{\rmdefault}{}
- \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{}
- \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{}
- \substitutefont{LGR}{\ttdefault}{lmtt}
- \DeclareFontFamily{LGR}{\ttdefault}{}
- \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*lmtt/bx/n}{}
- \substitutefont{LGR}{\sfdefault}{lmss}
- \DeclareFontFamily{LGR}{\sfdefault}{}
- \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{}
- \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{}
- \fi
-% \end{macrocode}
-%
-% Either load the \software{MnSymbol} package \cite{MnSymbol} or the the \software{exscale} package in order to fix Latin Modern "lmex" fonts.
-% Additionally, load the \software{amssymb} package \cite{amsfonts} which provides further math symbols and also loads the \software{amsfonts} package \cite{amsfonts}.
-% \begin{macrocode}
- \ifhep@minion
- \RequirePackage{MnSymbol}
- \else
- \RequirePackage{exscale}
- \RequirePackage{amssymb}
- \fi
-\fi
-% \end{macrocode}
-%
-% \begin{macro}{\mathsf}
-% If the "sansserif" package option is active use the \software{cmbright} font \cite{cmbright} and code adjusted from the \software{sansmathfonts} package \cite{sansmathfonts}.
-% Ensure that "\mathsf" is italic as well as sans serif and sans for sans and sans serif documents, respectively.
-% \begin{macrocode}
-\ifhep@serif
- \newcommand\hep@font@sf{cmbrm}
- \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}
- \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{b}{it}
-\else
- \newcommand\hep@font@sf{lmr}
- \newcommand\hep@font@text{lmss}
- \newcommand\hep@font@math{cmbrm}
- \newcommand\hep@font@symbol{cmsssy}
- \newcommand\hep@font@extra{cmssex}
- \newcommand\hep@font@amsa{ssmsa}
- \newcommand\hep@font@amsb{ssmsb}
-% \end{macrocode}
-% Declare font substitutions.
-% \begin{macrocode}
- \DeclareFontSubstitution{OML}{\hep@font@math}{m}{it}
- \ifhep@symbols\ifhep@minion\else
- \DeclareFontSubstitution{OMS}{\hep@font@symbol}{m}{n}
- \DeclareFontSubstitution{OMX}{\hep@font@extra}{m}{n}
- \fi\fi
-% \end{macrocode}
-% Declare the symbol fonts.
-% \begin{macrocode}
- \DeclareSymbolFont{operators}{OT1}{\hep@font@text}{m}{n}
- \DeclareSymbolFont{letters}{OML}{\hep@font@math}{m}{it}
- \ifhep@symbols\ifhep@minion\else
- \DeclareSymbolFont{symbols}{OMS}{\hep@font@symbol}{m}{n}
- \DeclareSymbolFont{largesymbols}{OMX}{\hep@font@extra}{m}{n}
- \fi\fi
-% \end{macrocode}
-% Set bold symbol fonts.
-% \begin{macrocode}
- \SetSymbolFont{operators}{bold}{OT1}{\hep@font@text}{b}{n}
- \SetSymbolFont{letters}{bold}{OML}{\hep@font@math}{b}{it}
- \ifhep@symbols\ifhep@minion\else
- \SetSymbolFont{symbols}{bold}{OMS}{\hep@font@symbol}{b}{n}
- \fi\fi
-% \end{macrocode}
-% Adjust the fonts loaded by the \software{amsfonts} \cite{amsfonts} and \software{esint} \cite{esint} packages.
-% \begin{macrocode}
- \ifhep@symbols\ifhep@minion\else
- \DeclareSymbolFont{AMSa}{U}{\hep@font@amsa}{m}{n}
- \DeclareSymbolFont{AMSb}{U}{\hep@font@amsb}{m}{n}
- \fi\fi
- \AtBeginDocument{%
- \@ifpackageloaded{esint}{%
- \DeclareSymbolFont{largesymbolsA}{U}{ssesint}{m}{n}
- }{}
- }
-% \end{macrocode}
-% Declare the symbol font alphabets.
-% \begin{macrocode}
- \DeclareSymbolFontAlphabet{\mathrm}{operators}
- \DeclareSymbolFontAlphabet{\mathnormal}{letters}
- \ifhep@minion\else
- \DeclareSymbolFontAlphabet{\mathcal}{symbols}
- \fi
-% \end{macrocode}
-% Declare "\mathit".
-% \begin{macrocode}
- \DeclareMathAlphabet{\mathit}{OML}{\hep@font@text}{m}{it}
- \SetMathAlphabet\mathit{bold}{OML}{\hep@font@text}{bx}{it}
-% \end{macrocode}
-% Declare "\mathtt".
-% \begin{macrocode}
-% \DeclareMathAlphabet{\mathtt}{OT1}{cmtl}{m}{n}
-% \end{macrocode}
-% \begin{macrocode}
-% \end{macrocode}
-% Declare "\mathsf".
-% \begin{macrocode}
- \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}
- \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{bx}{it}
-% \end{macrocode}
-% \end{macro}
-% End of "sansserif".
-% \begin{macrocode}
-\fi
-% \end{macrocode}
-%
-% \begin{macro}{\mathbf}
-% Load the \software{bm} package \cite{bm} for superior boldmath.
-% Make math symbols bold whenever they appear in bold macros such as "\section"\marg{text}.
+% Load the hep-math-font package.
% \begin{macrocode}
-\ifhep@symbols
- \RequirePackage{bm}
- \AtBeginDocument{\let\mathbf\bm}
- \g@addto@macro\bfseries{\boldmath}
+\RequirePackage[symbols=\hep@symbols]{hep-math-font}
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\mathtt}
-% \begin{macrocode}
- \DeclareMathAlphabet{\mathtt}{OT1}{lmtt}{m}{n}
- \SetMathAlphabet{\mathtt}{bold}{OT1}{lmtt}{bx}{n}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\mathscr}
-% Provid the "\mathscr" math script font from the \software{mathrsfs} package \cite{mathrsfs}.
-% \begin{macrocode}
- \DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\mathbb}
-% Redefine the the "\mathbb" math blackboard style font according to the \prefix{sans}{serif} option with the font from the \software{dsfont} package \cite{dsfont}.
-% \begin{macrocode}
- \ifhep@minion
- \DeclareMathAlphabet{\mathbb}{U}{%
- \ifhep@serif dsrom\else dsss\fi%
- }{m}{n}
- \else
- \ifhep@ams\else
- \SetMathAlphabet{\mathbb}{normal}{U}{%
- \ifhep@serif dsrom\else dsss\fi%
- }{m}{n}
- \fi
- \fi
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-%</package|font>
%
% \subsection{Font size} \label{sec:font size}
%
-%<*package>
-%
% Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option.
% \begin{macrocode}
\ifhep@defaults\else
@@ -1511,152 +761,8 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-% \section{Text}
-%
-% Load the \software{babel} package \cite{babel} for hyphenation and the recommended \software{csquotes} package \cite{csquotes}.
-% \begin{macrocode}
-\RequirePackage[\hep@lang]{babel}
-\RequirePackage[autostyle]{csquotes}
-% \end{macrocode}
-%
-% \begin{macro}{\underline}
-% Load the \software{ulem} package \cite{ulem} for hyphenable underlined text.
-% \begin{macrocode}
-\RequirePackage[normalem]{ulem}
-\let\underline\uline
-% \end{macrocode}
-% \end{macro}
-%
-%\begin{macro}{\vs}
-% Load the \software{foreign} package \cite{foreign} in order to highlight abbreviations and vocabularies from foreign languages.
-% Add the missing "\vs" command.
-% \begin{macrocode}
-\ifnum\pdf@strcmp{\hep@lang}{american}=0
- \newcommand{\hep@lang@foreign}{USenglish}
-\else
- \ifnum\pdf@strcmp{\hep@lang}{USenglish}=0
- \newcommand{\hep@lang@foreign}{USenglish}
- \else
- \newcommand{\hep@lang@foreign}{british}
- \fi
-\fi
-\RequirePackage[all, \hep@lang@foreign]{foreign}
-\DeclareRobustCommand\vs{\xperiodafter{{\foreignabbrfont{vs}}}}
-% \end{macrocode}
-% \end{macro}
-%
-% The \software{foreign} package relies on the \software{xspace} package \cite{xspace}.
-% Ensure that "\xspace" is compatible with the "\enquote" macro from the \software{csquote} package.
-% \begin{macrocode}
-\xspaceaddexceptions{\csq@qclose@i}
-% \end{macrocode}
-%
-%\begin{macro}{\no}
-% Define the macro "\no"\marg{number} for the use of \textnumero\ with appropriate spacing.
-% \begin{macrocode}
-\newcommand{\no}[1]{\textnumero~#1}
-% \end{macrocode}
-% \end{macro}
-%
-%\begin{macro}{\software}
-% Define a macro for software with optional version information "\software"\linebreak[1]\oarg{version}\linebreak[1]\marg{name}, using the \software{relsize} package \cite{relsize}.
-% \begin{macrocode}
-\RequirePackage{relsize}
-\newcommand{\software}[2][\hspace{-\fontdimen2\font}]{%
- {\smaller[.5]\textsc{#2}~#1}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%</package>
-%<*package|title|bibliography>
-%
-% \begin{macro}{\online}
-% \begin{macro}{\email}
-% Define the "\online"\marg{text}\marg{url} macro combining the features of the "\href" and the "\url" macros.
-% Define a macro for typesetting emails.
-% \begin{macrocode}
-\providecommand{\online}[2]{\ttfamily{#2}}%
-\newcommand{\hep@email}[1]{\online{mailto:#1}{#1}}
-\providecommand\email{\hep@email}
-\AtEndOfPackage{\@ifpackageloaded{hyperref}{%
- \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}%
- }{}
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%</package|title|bibliography>
-%<*package>
-%
-% \begin{macro}{\prefix}
-% Define the "\prefix"\marg{prefix}\marg{word} macro ensuring the correct linebreak in \prefix{prefix}{word}.
-% \begin{macrocode}
-\newcommand{\prefix}[2]{(#1\mbox{-)}\allowbreak #2}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Lists}
-%
-% Load the \software{enumitem} package \cite{enumitem}.
-% \begin{macrocode}
-\RequirePackage[inline]{enumitem}
-% \end{macrocode}
-%
-% \begin{environment}{inlinelist}
-% Define an inline list environment.
-% \begin{macrocode}
-\newlist{inlinelist}{enumerate*}{1}
-\setlist*[inlinelist,1]{%
- label=\roman*), itemjoin={,\ }, itemjoin*={, and\ }, after=.%
-}
-% \end{macrocode}
-% \end{environment}
-%
-% \begin{environment}{enumdescript}
-% Define an enumdescript list environment.
-% \begin{macrocode}
-\newlist{enum@descript}{enumerate}{2}
-\setlist[enum@descript]{label=\arabic*.}
-\newenvironment{enumdescript}[1][]{
-\begin{enum@descript}[#1]
- \let\hep@item\item
- \renewcommand{\item}[2][]{
- \ifx&##1&\hep@item\else\hep@item[##1]\fi
- \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax
- }
-}{\end{enum@descript}}
-% \end{macrocode}
-% \end{environment}
-%
-%</package>
-%<*package|bibliography>
-%
-% \begin{environment}{commalist}
-% Define a commalist environment.
-% \begin{macrocode}
-\RequirePackage{xparse}
-\ExplSyntaxOn
-\NewDocumentEnvironment{commalist}{O{\space}+b}{
- \hep@comma@list:n{#2}
-}{#1}
-\seq_new:N \hep@items@sequence
-\cs_new_protected:Npn \hep@comma@list:n #1{
- \seq_set_split:Nnn \hep@items@sequence{\item}{#1}
- \seq_pop_left:NN \hep@items@sequence \l_tmpa_tl
- \seq_use:Nnnn \hep@items@sequence{~and~}{,~}{,~and~}
-}
-\ExplSyntaxOff
-% \end{macrocode}
-% \end{environment}
-%
-%</package|bibliography>
-%
% \section{Geometry}
%
-%<*package>
-%
% Load the \software{geometry} package \cite{geometry} and adjust the text width and height.
% This step must happen after readjusting the font size in \cref{sec:font size}.
% \begin{macrocode}
@@ -1695,596 +801,36 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macro}
% \end{macro}
%
-%</package>
-%
-% \section{Math}
-%
-%<*package|math>
-%
-% Load the \software{mathtools} package \cite{mathtools} which loads the \software{amsmath} package \cite{amsmath}.
-% Allow page breaks within equations if necessary.
-% Adjust the thick and med mu skips slightly.
-% \begin{macrocode}
-%<package>\ifhep@physics
-%<math>\newif\ifhep@lining\hep@liningtrue
-%<math>\newif\ifhep@eqnarray\hep@eqnarraytrue
-\RequirePackage{mathtools}
-\allowdisplaybreaks[1]
-\thickmuskip=5mu plus 3mu minus 1mu
-\medmuskip=4mu plus 2mu minus 3mu
-% \end{macrocode}
-%
-%</package|math>
-%<*package|math|acronyms>
-%
-% \begin{macro}{\mathdef}
-% Define the "\mathdef"\marg{name}\oarg{arguments}\marg{macro} macro which \prefix{re}{defines} macros in math mode only.
-% This macro is implemented using the \software{xparse} package \cite{xparse}.
-% \begin{macrocode}
-\RequirePackage{xparse}
-\DeclareDocumentCommand{\mathdef}{mO{0}m}{%
- \expandafter\let\csname hep@text\string#1\endcsname=#1
- \expandafter\newcommand\csname hep@math\string#1\endcsname[#2]{#3}
- \DeclareRobustCommand#1{%
- \ifmmode
- \expandafter\let\expandafter\next\csname%
- hep@math\string#1\endcsname%
- \else
- \expandafter\let\expandafter\next\csname%
- hep@text\string#1\endcsname%
- \fi
- \next
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%</package|math|acronyms>
-%<*package|math>
-%
-% \begin{macro}{\i}
-% Provide an upright imaginary unit in math mode.
-% \begin{macrocode}
-\AtBeginDocument{\mathdef{\i}{\operatorname{i}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\overline}
-% Redefine "\overline" to be a text macro using the \software{ulem} package \cite{ulem}.
-% Extend it as a math macro with the original definition from the \software{amsmath} package \cite{amsmath}.
-% \begin{macrocode}
-\RequirePackage{ulem}
-\def\overline#1{{\renewcommand{\ULdepth}{-1.9ex}{}\uline{#1}}}
-\DeclareRobustCommand{\over@line}[1]{\@@overline{#1}}
-\mathdef{\overline}{\over@line}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\oset}
-% Define a new overset macro "\oset"\oarg{offset}\marg{over}\marg{base}
-% \begin{macrocode}
-\newcommand{\oset}[3][-1pt]{%
- \text{\raisebox{.2ex}{$\mathop{#3}\limits^{%
- \vbox to#1{\kern-2\ex@\hbox{$\scriptscriptstyle#2$}\vss}%
- }$}}%
-}
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{\overleftright}
-% Define a over left right arrow "\overleftright"\marg{base}.
-% \begin{macrocode}
-\newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{eqnarray}
-% Undefine the "eqnarray" environment if not prevented by package option.
-% \begin{macrocode}
-\ifhep@eqnarray\else
- \let\eqnarray\@undefined
- \let\endeqnarray\@undefined
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Operators}
-%
-% \begin{macro}{\tr}
-% \begin{macro}{\Tr}
-% \begin{macro}{\rank}
-% \begin{macro}{\erf}
-% \begin{macro}{\Res}
-% \begin{macro}{\sgn}
-% \begin{macro}{\sgn}
-% \begin{macro}{\diag}
-% Provide the "\diag", "\sgn", and other operators.
-% \begin{macrocode}
-\DeclareMathOperator{\tr}{tr}
-\DeclareMathOperator{\Tr}{Tr}
-\DeclareMathOperator{\rank}{rank}
-\DeclareMathOperator{\erf}{erf}
-\DeclareMathOperator{\Res}{Res}
-\DeclareMathOperator{\sgn}{sgn}
-\DeclareMathOperator{\diag}{diag}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-
-% \begin{macro}{\Re}
-% \begin{macro}{\Im}
-% Redefine the real and imaginary projectors.
-% \begin{macrocode}
-\let\Re\relax\DeclareMathOperator{\Re}{Re}
-\let\Im\relax\DeclareMathOperator{\Im}{Im}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-
-% \subsubsection{Trigonometric functions}
-%
-% \begin{macrocode}
-\let\cos\undefined\DeclareMathOperator{\cos}{cos\vphantom{i}}
-\let\tan\undefined\DeclareMathOperator{\tan}{tan\vphantom{i}}
-% \end{macrocode}
-% \begin{macrocode}
-\DeclareMathOperator{\arccsc}{arccsc}
-\DeclareMathOperator{\arcsec}{arcsec}
-\DeclareMathOperator{\arccot}{arccot}
-% \end{macrocode}
-% \begin{macrocode}
-\DeclareMathOperator{\asin}{asin}
-\DeclareMathOperator{\acos}{acos}
-\DeclareMathOperator{\atan}{atan}
-\DeclareMathOperator{\acsc}{acsc}
-\DeclareMathOperator{\asec}{asec}
-\DeclareMathOperator{\acot}{acot}
-% \end{macrocode}
-% \begin{macrocode}
-\DeclareMathOperator{\csch}{csch}
-\DeclareMathOperator{\sech}{sech}
-% \end{macrocode}
-%
-% \subsection{Units and fractions}
-%
-% \begin{macro}{\unit}
-% Load the \software{units} package \cite{units} which provides the "\units" and "\nicefrac" macros.
-% Patch the "\unit" and "\unitfrac" macros to work with lining numerals using the \software{xpatch} package \cite{xpatch}.
-% \begin{macrocode}
-\RequirePackage{units}
-\RequirePackage{xpatch}
-\ifhep@lining\else
- \xpatchcmd{\unit}{\else#1}{%
- \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}%
- }{}{}
- \xpatchcmd{\unitfrac}{\else#1}{%
- \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}%
- }{}{}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\inv}
-% Provide a macro for the inverse, useful in combination with the unit macro in text mode.
-% \begin{macrocode}
-\newcommand{\inv}[2][1]{#2\ensuremath{^{-#1}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\flatfrac}
-% Flat fraction.
-% \begin{macrocode}
-\DeclarePairedDelimiterX{\hep@flatfrac}[2]{.}{.}{%
- #1\delimsize/\makeleftdelim#2%
-}
-\NewDocumentCommand{\flatfrac}{somm}{%
- \IfBooleanTF{#1}{%
- \hep@flatfrac*{#3}{#4}%
- }{%
- \IfNoValueTF{#2}{\,\makeleftdelim#3/\makeleftdelim#4\,%
- }{%
- \hep@flatfrac[#2]{#3}{#4}%
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\textfrac}
-% Provide the "\textfrac" macro.
-% \begin{macrocode}
-\newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Differentials and derivatives}
-%
-% \begin{macro}{\differential}
-% \begin{macro}{\d}
-% Provide a differential "\d".
-% \begin{macrocode}
-\newcommand{\makedifferential}[1]{\mathop{}\!#1}
-\providecommand{\differentialsymbol}{d}
-\newcommand{\differential}{\makedifferential\differentialsymbol}
-\AtBeginDocument{\mathdef{\d}{\differential}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-
-% \begin{macro}{\makederivative}
-% \begin{macrocode}
-\newcommand\makederivative[2]{
- \NewDocumentCommand{#1}{somso}{%
- \IfBooleanTF{##4}{%
- \IfBooleanTF{##1}{\nicefrac}{\frac}%
- }{%
- \IfBooleanTF{##1}{\flatfrac}{\dfrac}%
- }{%
- \makedifferential#2\IfValueT{##2}{^{##2}}\IfValueT{##5}{##5}%
- }{%
- \makedifferential#2{##3}\IfValueT{##2}{^{##2}}%
- }%
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\derivative}
-% \begin{macrocode}
-\makederivative{\derivative}{d}
-\newcommand\dv{\derivative}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\variation}
-% \begin{macrocode}
-\newcommand\variation{\makedifferential\delta}
-\newcommand\var{\variation}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\functionalderivative}
-% \begin{macrocode}
-\makederivative{\functionalderivative}{\delta}
-\newcommand\fdv{\functionalderivative}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\makepartialderivative}
-% \begin{macrocode}
-\RequirePackage{etoolbox}
-\newcommand\makepartialderivative[2]{
- \NewDocumentCommand{#1}{sO{}O{}msoo}{%
- \IfBooleanTF{##5}{%
- \IfBooleanTF{##1}{\nicefrac}{\frac}%
- }{%
- \IfBooleanTF{##1}{\flatfrac}{\dfrac}%
- }{%
- \makedifferential#2\IfValueTF{##7}{%
- \ifblank{##2}{
- \ifblank{##3}{^2}{^{\the\numexpr##3+1\relax}}%
- }{%
- \ifblank{##3}{%
- ^{\the\numexpr##2+1\relax}}{^{{\the\numexpr##2+##3\relax}}%
- }%
- }%
- }{\IfValueT{##2}{^{##2}}}\IfValueT{##6}{##6}%
- }{%
- \makedifferential#2{##4}\IfValueT{##2}{^{##2}}%
- \IfValueT{##7}{#2##7\IfValueT{##3}{^{##3}}}%
- }%
- }
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\partialderivative}
-% \begin{macrocode}
-\makepartialderivative{\partialderivative}{\partial}
-\newcommand\pdv{\partialderivative}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\cancel}
-% \begin{macro}{\slashed}
-% Additionally, load the \software{cancel} \cite{cancel} and \software{slashed} \cite{slashed} packages which provide the "\cancel" and "\slashed" macros.
-% \begin{macrocode}
-\RequirePackage{cancel}
-\RequirePackage{slashed}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Paired delimiters}
-%
-% \begin{macro}{\left}
-% \begin{macro}{\right}
-% Load the \software{mleftright} package \cite{mleftright} and adjust the spacing around "\left" and "\right".
-% \begin{macrocode}
-\RequirePackage{mleftright}
-\mleftright
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\abs}
-% \begin{macro}{\norm}
-% \begin{macro}{\pnorm}
-% Absolute value and norm.
-% \begin{macrocode}
-\newcommand{\noargumentsymbol}{\:\cdot\:}
-\newcommand{\optionalargument}[1]{\ifblank{#1}{\noargumentsymbol}{#1}}
-\DeclarePairedDelimiterX\abs[1]\lvert\rvert{\optionalargument{#1}}
-\DeclarePairedDelimiterX\norm[1]\lVert\rVert{\optionalargument{#1}}
-\DeclarePairedDelimiterXPP\hep@pnorm[2]{}\lVert\rVert{_{#1}}{#2}
-\NewDocumentCommand{\pnorm}{som}{%
- \IfValueTF{#2}{%
- \IfBooleanTF{#1}{\hep@pnorm*}{\hep@pnorm}{#2}%
- }{%
- \IfBooleanTF{#1}{\norm*}{\norm}%
- }{\optionalargument{#3}}%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-
-% \begin{macro}{\order}
-% Order symbol and macro.
-% \begin{macrocode}
-\providecommand{\ordersymbol}{\mathcal{O}}
-\DeclarePairedDelimiterXPP\order[1]{\ordersymbol}(){}{#1}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\evaluated}
-% \begin{macro}{\eval}
-% Vertical evaluation bar
-% \begin{macrocode}
-\DeclarePairedDelimiter{\hep@evaluated}{.}{\rvert}
-\NewDocumentCommand{\evaluated}{som}{%
- \IfBooleanTF{#1}{%
- \hep@evaluated*{#3}%
- }{%
- \IfNoValueTF{#2}{#3\rvert}{\hep@evaluated[#2]{#3}}%
- }%
-}
-\newcommand\eval{\evaluated}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-
-% \subsubsection{Set and Probability}
-%
-% \begin{macro}{\midbar}
-% \begin{macrocode}
-\newcommand\makeleftdelim{\mathopen{}}
-\providecommand{\midbar}[1][]{%
- \nonscript\:#1\vert\allowbreak\nonscript\:\makeleftdelim%
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\suchthat}
-% \begin{macro}{\set}
-% \begin{macrocode}
-\providecommand\suchthat{\midbar}
-\DeclarePairedDelimiterX\set[1]\{\}{%
- \renewcommand\suchthat{\midbar[\delimsize]}#1%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-
-% \begin{macro}{\probabilitysymbol}
-% \begin{macro}{\given}
-% \begin{macro}{\Pr}
-% \begin{macrocode}
-\providecommand{\probabilitysymbol}{\operatorname{Pr}}
-\providecommand\given{\midbar}
-\DeclarePairedDelimiterXPP\hep@Pr[1]{%
- \probabilitysymbol}(){}{%
- \renewcommand\given{\midbar[\delimsize]}#1%
-}
-\let\Pr\relax
-\NewDocumentCommand{\Pr}{so}{%
- \IfValueTF{#2}{%
- \IfBooleanTF{#1}{\hep@Pr*}{\hep@Pr}{#2}%
- }{%
- \probabilitysymbol%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-
-% \subsubsection{Commutators}
+% \section{Text}
%
-% \begin{macro}{\innerproduct}
-% \begin{macro}{\poissonbracket}
-% \begin{macro}{\commutator}
-% \begin{macro}{\anticommutator}
-% Poissonbracket, commutator and anti-commutator.
+% Load the \software{hep-text} package \cite{hep-text}.
% \begin{macrocode}
-\DeclarePairedDelimiterX\innerproduct[2]{%
- \langle}{\rangle}{\optionalargument{#1},\optionalargument{#2}%
-}
-\DeclarePairedDelimiterX\poissonbracket[2]{%
- \lbrace}{\rbrace}{\optionalargument{#1},\optionalargument{#2}%
-}
-\newcommand\pb{\poissonbracket}
-\DeclarePairedDelimiterX\commutator[2]{%
- \lbrack}{\rbrack}{\optionalargument{#1},\optionalargument{#2}%
-}
-\newcommand\comm{\commutator}
-\DeclarePairedDelimiterX\anticommutator[2]{%
- \lbrace}{\rbrace}{\optionalargument{#1},\optionalargument{#2}%
-}
-\newcommand\acomm{\anticommutator}
+\RequirePackage[lang=\hep@lang]{hep-text}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \subsubsection{Bra-ket notation}
+% \section{Math}
%
% \begin{macrocode}
-\providecommand\braketspace{\mskip1mu}
-\newcommand\hep@midvert{%
- \braketspace\delimsize\vert\braketspace\makeleftdelim%
-}
+\ifhep@physics\RequirePackage{hep-math}\fi
% \end{macrocode}
%
-% \begin{macro}{\braket}
-% \begin{macrocode}
-\DeclarePairedDelimiterX\braket[2]{\langle}{\rangle}{\braketspace#1\hep@midvert#2\braketspace}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\bra}
-% \begin{macrocode}
-\DeclarePairedDelimiterXPP\hep@bra[1]{%
- }{\langle}{\rvert}{\braketspace}{\braketspace#1\braketspace%
-}
-\NewDocumentCommand{\bra}{smt\ket sgt\ketbra sgg}{%
- \IfBooleanTF{#6}{%
- \IfBooleanTF{#1}{\braket*{#2}{#8}}{\braket{#2}{#8}}%
- \IfBooleanTF{#7}{\bra*{#9}}{\bra{#9}}%
- }{
- \IfBooleanTF{#3}{%
- \IfBooleanTF{#1}{\braket*}{%
- \IfBooleanTF{#4}{\braket*}{\braket}}{#2}{#5%
- }%
- }{%
- \IfBooleanTF{#1}{\hep@bra*}{\hep@bra}{#2}%
- }%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\ket}
-% \begin{macrocode}
-\DeclarePairedDelimiterXPP\ket[1]{%
- \braketspace}{\lvert}{\rangle}{}{\braketspace\makeleftdelim#1\braketspace%
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\ketbra}
-% \begin{macrocode}
-\NewDocumentCommand{\ketbra}{smm}{%
- \IfBooleanTF{#1}{%
- \ket*{#2}\bra*{#3}%
- }{%
- \ket{#2}\bra{#3}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\matrixelement}
-% \begin{macrocode}
-\DeclarePairedDelimiterX\matrixelement[3]{%
- \langle}{\rangle}{\braketspace#1\hep@midvert#2\hep@midvert#3\braketspace%
-}
-\newcommand\matrixel{\matrixelement}
-\newcommand\mel{\matrixelement}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\expectationvalue}
-% \begin{macrocode}
-\DeclarePairedDelimiterX\hep@expvalue[1]{\langle}{\rangle}{\braketspace#1\braketspace}
-\NewDocumentCommand{\expectationvalue}{som}{%
- \IfNoValueTF{#2}{%
- \IfBooleanTF{#1}{\hep@expvalue*}{\hep@expvalue}{#3}%
- }{%
- \IfBooleanTF{#1}{\matrixelement*}{\matrixelement}{#2}{#3}{#2}%
- }%
-}
-\newcommand\ev{\expectationvalue}
-\newcommand\vev[1]{\expectationvalue[0]{#1}}
-% \end{macrocode}
-% \end{macro}
-% End of "physics" conditional.
-% \begin{macrocode}
-%<package>\fi
-% \end{macrocode}
-%
-%</package|math>
-%
% \section{Floats}
%
-%<*package|floats>
-%
-% \begin{macrocode}
-%<floats>\newif\ifhep@manualplacement\hep@manualplacementfalse
-% \end{macrocode}
-%
% Adjust the \hologo{LaTeX} float placement defaults
% \begin{macrocode}
-\setcounter{bottomnumber}{0} % 1
-\setcounter{topnumber}{1} % 2
-\setcounter{dbltopnumber}{1} % 2
-\renewcommand{\topfraction}{.9} % .7
-\renewcommand{\dbltopfraction}{.9} % .7
-\renewcommand{\textfraction}{.1} % .2
-\renewcommand{\floatpagefraction}{.8} % .5
-% \end{macrocode}
-%
-% \begin{environment}{figure}
-% \begin{environment}{table}
-% Center the content of "figure" and "table" environments.
-% Ignore the manual placement if the "manualplacement" option is set to false.
-% \begin{macrocode}
-\let\hep@figure\figure%
-\let\end@hep@figure\endfigure%
-\let\hep@table\table%
-\let\end@hep@table\endtable%
-\ifhep@manualplacement%
- \renewenvironment{figure}[1][tbp]{%
- \hep@figure[#1]\centering%
- }{\end@hep@figure}%
- \renewenvironment{table}[1][tbp]{%
- \hep@table[#1]\centering%
- }{\end@hep@table}%
-\else%
- \renewenvironment{figure}[1][]{%
- \hep@figure\centering%
- }{\end@hep@figure}%
- \renewenvironment{table}[1][]{%
- \hep@table\centering%
- }{\end@hep@table}
-\fi%
-% \end{macrocode}
-% \end{environment}
-% \end{environment}
-%
-%</package|floats>
-%
-% \subsection{Sub-floats}
-%
-%<*package>
+\RequirePackage[
+ manualplacement=\ifhep@manualplacement true\else false \fi
+]{hep-float}
+% \end{macrocode}
%
% \begin{macro}{\ifhep@journal}
% Define a new journal conditional.
% \begin{macrocode}
\newif\ifhep@journal
\ifhep@sissa\hep@journaltrue
-\else
- \ifhep@revtex\hep@journaltrue
- \else
- \ifhep@pos\hep@journaltrue
- \else
- \ifhep@springer\hep@journaltrue
+\else\ifhep@revtex\hep@journaltrue
+ \else\ifhep@pos\hep@journaltrue
+ \else\ifhep@springer\hep@journaltrue
\else\hep@journalfalse
\fi
\fi
@@ -2312,63 +858,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-%</package>
-%<*package|floats>
-%
-% Load the \software{subcaption} package \cite{subcaption}.
-% Provide the old "\subcaption@minipage" macro.
-% \begin{macrocode}
-\RequirePackage[subrefformat=parens]{subcaption}
-\captionsetup{font=small}
-\captionsetup[sub]{font=small}
-\providecommand*\subcaption@minipage[2]{%
- \minipage#1{#2}\setcaptionsubtype\relax%
-}
-% \end{macrocode}
-% \begin{environment}{panels}
-% \begin{macro}{\panel}
-% Define the "panels" environment and the "\panel" macro.
-% \begin{macrocode}
-\newcommand{\hep@panels@space}{20}
-\newenvironment{panels}[2][b]{%
-% \end{macrocode}
-% Define an internal macro for global behaviour.
-% \begin{macrocode}
- \newcommand{\begin@subcaption@minipage}[2][b]{%
- \caption@withoptargs\subcaption@minipage[##1]{##2}%
- \centering\vskip 0pt%
- }
-% \end{macrocode}
-% Define the "\panel" macro for the case that the number of panels is given.
-% \begin{macrocode}
- \ifdim#2pt>1pt%
- \newcommand{\hep@panel@space}{%
- (1-#2+\hep@panels@space)/\hep@panels@space%
- }%
- \newcommand{\panel}[1][b]{%
- \endminipage\hfill\begin@subcaption@minipage[#1]{%
- \linewidth/#2*\hep@panel@space%
- }%
- }%
- \begin@subcaption@minipage[#1]{\linewidth/#2*\hep@panel@space}%
-% \end{macrocode}
-% Define the "\panel" macro for the case that the width of the panel is given.
-% \begin{macrocode}
- \else%
- \newcommand{\panel}[2][b]{%
- \endminipage\hfill\begin@subcaption@minipage[#1]{##2\linewidth}%
- }%
- \begin@subcaption@minipage[#1]{#2\linewidth}%
- \fi%
-}{\endminipage}
-% \end{macrocode}
-% \end{macro}
-% \end{environment}
-%
-%</package|floats>
-%<*package>
-%
-% Reajust the captions to the revtex class using the \software{ragged2e} package \cite{ragged2e}.
+% Readjust the document captions to look like the original revtex captions using the \software{ragged2e} package \cite{ragged2e}.
% \begin{macrocode}
\ifhep@revtex
\RequirePackage{ragged2e}
@@ -2380,895 +870,20 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
\fi
% \end{macrocode}
%
-%</package>
-%
-% \subsection{Tables}
-%
-%<*package|floats>
-%
-% \begin{environment}{tabular}
-% Enhance tabulars with the \software{booktabs} and \software{multirow} packages \cite{booktabs, multirow}.
-% \begin{macrocode}
-\RequirePackage{booktabs}
-\RequirePackage{multirow}
-% \end{macrocode}
-% \end{environment}
-
-% \subsection{Figures}
-%
-% \begin{macro}{\graphic}
-% Provide the "\graphic" macro for the inclusion of figures using the \software{graphicx} package \cite{graphicx}.
-% \begin{macrocode}
-\RequirePackage{graphicx}
-\providecommand{\tikzsetnextfilename}[1]{}
-\newcommand{\graphic}[2][1]{\tikzsetnextfilename{#2}{%
- \centering\includegraphics[width=#1\linewidth]{#2}\par%
-}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\graphics}
-% Provide the "\graphics" macro for the inclusion of figures located in a subfolder.
-% \begin{macrocode}
-\newcommand{\graphics}[1]{\graphicspath{{./#1/}}}
-% \end{macrocode}
-% \end{macro}
-%
-%</package|floats>
-%
% \section{Title page}
%
-%<*package|title>
-%
-% Redefine previous macros just for the title package.
-% \begin{macrocode}
-\newif\ifhep@first%
-% \end{macrocode}
-%
-%</package|title>
-%<*package>
-%
-% Define title internal conditionals outside of main conditional.
-% TODO: replace this hack
% Begin of "title" conditional.
% \begin{macrocode}
-\newif\ifnewaffil%
-\ifhep@title
-% \end{macrocode}
-%
-%</package>
-%<*package|title>
-%
-% \begin{macro}{\hep@multi@ref}
-% Transform reference list to list of references.
-% \begin{macrocode}
-\newcommand{\hep@multi@ref}[1]{%
- \hep@firsttrue%
- \forcsvlist{%
- \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref%
- }{#1}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% Redefine the email macro for the title page.
-% \begin{macrocode}
-\renewcommand{\email}[2][]{\unskip\thanks[#1]{\hep@email{#2}}}%
-\AtBeginDocument{
- \let\hep@maketitle\maketitle
- \renewcommand\maketitle{\hep@maketitle\let\email\hep@email}
-}
-% \end{macrocode}
-%
-% \subsection{Preprint and title}
-%
-% \subsubsection{Preprint}
-%
-% \begin{macro}{\preprintfont}
-% Define the "\preprintfont" macro.
-% \begin{macrocode}
-\let\hep@preprint@font\relax
-\newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}}
-\preprintfont{\scshape\small}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\preprint}
-% Define the "\preprint" macro using the \software{varwidth} package \cite{varwidth}.
-% \begin{macrocode}
-\let\hep@preprint\relax
-\newcommand\preprint[1]{\def\hep@preprint{#1}}
-\RequirePackage{varwidth}
-\newcommand{\hep@preprint@box}{%
- \begin{varwidth}{\textwidth}%
- \hep@preprint@font\hep@preprint%
- \end{varwidth}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\placepreprint}
-% Places a preprint number in the top right corner of the title page using the \software{atbegshi} \cite{atbegshi} and \software{picture} \cite{picture} packages.
-% \begin{macrocode}
-%<title>\RequirePackage{calc}
-\RequirePackage{atbegshi}
-\RequirePackage{picture}
-\newcommand{\placepreprint}{%
- \AtBeginShipoutFirst{%
- \put(
- \textwidth+\oddsidemargin-\widthof{\hep@preprint@box},
- -2pt-\topmargin-\heightof{\hep@preprint@box}
- ){\normalfont\hep@preprint@box}
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Series}
-%
-% \begin{macro}{\series}
-% Define a series title.
-% \begin{macrocode}
-\newcommand{\preseries}[1]{\def\hep@pre@series{#1}}
-\newcommand{\series}[1]{\def\hep@series{#1}}
-\newcommand{\postseries}[1]{\def\hep@post@series{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\seriesfont}
-% Allow to change the fontface of the series title.
-% \begin{macrocode}
-\let\hep@series@font\relax
-\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% Set the default series title layout.
-% \begin{macrocode}
-\preseries{\begin{center}\Large\hep@series@font}
-\postseries{\par\end{center}}
-% \end{macrocode}
-%
-% \subsubsection{Title}
-%
-% Extend the title using the \software{titling} package \cite{titling}.
-% Fix the footnote indent.
-% \begin{macrocode}
-\RequirePackage{titling}
-\setlength{\thanksmarkwidth}{1.5em}
-% \end{macrocode}
-%
-% \begin{macro}{\maketitlehooka}
-% Place the preprint and the series title using "\maketitlehooka".
-% \begin{macrocode}
-\renewcommand{\maketitlehooka}{%
- \placepreprint\vspace{-\bigskipamount}%
- \@ifundefined{hep@series}{}{%
- \hep@pre@series\hep@series\hep@post@series%
- }%
- \vspace{-\bigskipamount}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\titlefont}
-% Allow to change the fontface of the the title.
-% \begin{macrocode}
-\let\hep@title@font\relax
-\newcommand{\titlefont}[1]{\def\hep@title@font{#1}}
-% \end{macrocode}
-% \end{macro}
-% Set default title layout.
-% \begin{macrocode}
-\pretitle{\begin{center}\LARGE\hep@title@font}
-\posttitle{\par\end{center}}
-% \end{macrocode}
-
-% \subsubsection{Subtitle}
-%
-% \begin{macro}{\subtitle}
-% Define a subtitle.
-% \begin{macrocode}
-\newcommand{\presubtitle}[1]{\def\hep@pre@sub@title{#1}}
-\newcommand{\subtitle}[1]{\def\hep@sub@title{#1}}
-\newcommand{\postsubtitle}[1]{\def\hep@post@sub@title{#1}}
-% \end{macrocode}
-% \end{macro}
-
-% \begin{macro}{\subtitlefont}
-% Allow to change the fontface of the subtitle.
-% \begin{macrocode}
-\let\hep@subtitle@font\relax
-\newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% Set default subtitle layout.
-% \begin{macrocode}
-\presubtitle{\begin{center}\Large\hep@subtitle@font}
-\postsubtitle{\par\end{center}}
-% \end{macrocode}
-%
-% \subsection{Authors and Editors}
-%
-% \subsubsection{Editors}
-%
-% Define editors, similar to authors using the \software{authblk} package.
-% Enable the handling of multiple authors with different affiliations using the \software{authblk} package \cite{authblk}.
-% \begin{macrocode}
-\RequirePackage{authblk}
-\newcounter{editors}
-\newcommand\hep@editorlist{}
-\newcommand\hep@editors{}
+\ifhep@title\RequirePackage{hep-title}\fi
% \end{macrocode}
%
-% \begin{macro}{\editor}
-% Copy of the "authblk" author code adjusted for editors.
-% \begin{macrocode}
-\newcommand\editor[2][]{%
- \ifnewaffil%
- \addtocounter{affil}{1}%
- \edef\AB@thenote{\arabic{affil}}%
- \fi%
- \if\relax#1\relax%
- \def\AB@note{\AB@thenote}%
- \else%
- \def\AB@note{#1}\setcounter{Maxaffil}{0}%
- \fi%
- \ifnum\value{editors}>1\relax%
- \@namedef{@sep\number\c@editors}{\Authsep}%
- \fi%
- \addtocounter{editors}{1}%
- \begingroup%
- \let\protect\@unexpandable@protect \let\and\AB@pand%
- \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
- \@temptokena=\expandafter{\hep@editors}{%
- \def\\{%
- \protect\\[\@affilsep]\protect\Affilfont\protect\AB@resetsep%
- }%
- \xdef\hep@editor{\AB@blk@and#2}%
- \ifnewaffil%
- \gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}%
- \xdef\hep@editors{\the\@temptokena\AB@blk@and}%
- \else%
- \xdef\hep@editors{\the\@temptokena\AB@as\AB@au@str}%
- \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}%
- \gdef\AB@as{\Authsep}%
- \fi%
- \gdef\AB@au@str{#2}%
- }%
- \@temptokena=\expandafter{\hep@editorlist}%
- \let\\=\editorcr%
- \xdef\hep@editorlist{%
- \the\@temptokena%
- \protect\@nameuse{@sep\number\c@editors}%
- \protect\Authfont#2%
- \if\relax#1\relax\else%
- \protect\hep@multi@ref{\AB@note}%
- \fi%
- }%
- \endgroup%
- \ifnum\value{editors}>2\relax%
- \@namedef{@sep\number\c@editors}{\Authands}%
- \fi%
- \newaffilfalse%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\editorfont}
-% Allow to change the fontface of the editors.
-% \begin{macrocode}
-\let\hep@editor@font\relax
-\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\preditor}
-% \begin{macro}{\postditor}
-% Set editor style.
-% \begin{macrocode}
-\newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}}
-\newcommand{\posteditor}[1]{\def\hep@post@editor{#1}}
-\newcommand{\editortitle}[2]{
- \def\hep@editor@title{#1}
- \def\hep@editor@title@pl{#2}
-}
-\newcommand{\editortitlefont}[1]{\def\hep@editor@title@font{#1}}
-\newcommand{\preeditortitle}[1]{\def\hep@pre@editor@title{#1}}
-\newcommand{\posteditortitle}[1]{\def\hep@post@editor@title{#1}}
-\editortitle{Editor}{Editors}
-\editortitlefont{\itshape}
-\preeditortitle{\hep@editor@title@font}
-\posteditortitle{: }
-\preeditor{%
- \begin{center}%
- \large\hep@editor@font\lineskip.5em%
- \begin{tabular}[t]{c}{%
- \hep@pre@editor@title%
- \ifnum\value{editors}>1\relax%
- \hep@editor@title@pl%
- \else%
- \hep@editor@title%
- \fi%
- \hep@post@editor@title%
- }%
-}
-\posteditor{\end{tabular}\par\end{center}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\maketitlehookb}
-% Show subtitle and editor.
-% \begin{macrocode}
-\renewcommand{\maketitlehookb}{%
- \@ifundefined{hep@sub@title}{}{%
- \hep@pre@sub@title\hep@sub@title\hep@post@sub@title%
- }%
- \smallskip%
- \ifx\hep@editorlist\AB@empty\else%
- \hep@pre@editor\hep@editorlist\hep@post@editor%
- \fi
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{Authors}
-%
-% \begin{macro}{\author}
-% Allow absent author field.
-% \begin{macrocode}
-% \author{}
-% \end{macrocode}
-% \end{macro}
-%
-% Switch authblk to a label ref system for affiliations.
-% \begin{macrocode}
-%<title>\RequirePackage{xpatch}
-\xpatchcmd{\author}{%
- \protect\Authfont#2\AB@authnote{\AB@note}%
-}{%
- \protect\Authfont#2%
- \if\relax#1\relax\else\unskip\protect\hep@multi@ref{\AB@note}\fi%
-}{}{}
-% \end{macrocode}
-%
-% \begin{macro}{\authorfont}
-% Allow to change the fontface of the individual parts of the title.
-% \begin{macrocode}
-\let\hep@author@font\relax
-\newcommand{\authorfont}[1]{\def\hep@author@font{#1}}
-\renewcommand\Authfont{\hep@author@font}
-% \end{macrocode}
-% \end{macro}
-%
-% Set default author fontface.
-% \begin{macrocode}
-\newcommand{\authortitle}[2]{
- \def\hep@author@title{#1}
- \def\hep@author@title@pl{#2}
-}
-\newcommand{\authortitlefont}[1]{\def\hep@author@title@font{#1}}
-\newcommand{\preauthortitle}[1]{\def\hep@pre@author@title{#1}}
-\newcommand{\postauthortitle}[1]{\def\hep@post@author@title{#1}}
-\authortitle{Author}{Authors}
-\authortitlefont{\itshape}
-\preauthortitle{\hep@author@title@font}
-\postauthortitle{: }
-\preauthor{%
- \begin{center}%
- \large\hep@author@font\lineskip.5em%
- \begin{tabular}[t]{c}{%
- \ifnum\value{editors}>0\relax%
- \hep@pre@author@title%
- \ifnum\value{authors}>1\relax%
- \hep@author@title@pl\else\hep@author@title%
- \fi\hep@post@author@title%
- \fi%
- }%
-}
-\postauthor{\end{tabular}\par\end{center}}
-% \end{macrocode}
-%
-% \subsubsection{Affiliation}
-%
-% Patch the "\affiliation" macro to comply with the label ref system.
-% \begin{macrocode}
-\newcounter{affiliation}
-\renewcommand{\theaffiliation}{%
- \textsuperscript{\normalfont\alph{affiliation}}%
-}
-\xpatchcmd{\affil}{%
- \AB@affilnote{\AB@note}%
-}{%
- \protect\refstepcounter{affiliation}\protect\label{\AB@note}%
- \if\relax#1\relax\else\protect\ref{\AB@note}\fi%
-}{}{}
-% \end{macrocode}
-%
-% \begin{macro}{\affiliationfont}
-% Allow to change the fontface of affiliation.
-% \begin{macrocode}
-\let\hep@affiliation@font\relax
-\newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}}
-%<title>\newif\ifhep@lining\hep@liningtrue
-\ifhep@lining
- \renewcommand{\Affilfont}{\small\hep@affiliation@font}
-\else
- \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font}
-\fi
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\affiliation}
-% Define the "\affiliation" macro, ensure that linebreaks happen after a comma.
-% \begin{macrocode}
-\newcommand\hep@penalty{\if@twocolumn85\else50\fi}
-\newcommand\hep@active@comma{,\penalty-\hep@penalty\relax}
-\newcommand\hep@cat@comma@active{\catcode`\,\active}
-{\hep@cat@comma@active\gdef,{\hep@active@comma}}
-\newcommand\hep@affil[1]{%
- \endgroup\@flushglue=0pt plus .5\linewidth\affil{#1}%
-}
-\def\hep@affil@opt[#1]#2{%
- \endgroup\@flushglue=0pt plus .5\linewidth\affil[#1]{#2}%
-}
-\DeclareRobustCommand\hep@affiliation{%
- \@ifnextchar[{\hep@affil@opt}{\hep@affil}%
-}
-\newcommand{\affiliation}{%
- \begingroup\hep@cat@comma@active\hep@affiliation%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \subsection{Date and Abstract}
-%
-% \subsubsection{Date}
-%
-% \begin{macro}{\date}
-% Allow absent date field.
-% \begin{macrocode}
-\date{\vspace{-4ex}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\datefont}
-% Allow to change the fontface of the individual parts of the title.
-% \begin{macrocode}
-\let\hep@date@font\relax
-\newcommand{\datefont}[1]{\def\hep@date@font{#1}}
-% \end{macrocode}
-% \end{macro}
-%
-% Set the default "date" fontface.
-% \begin{macrocode}
-\predate{\begin{center}\hep@date@font}
-\postdate{\par\end{center}}
-% \end{macrocode}
-%
-% \subsubsection{Abstract}
-%
-% \begin{environment}{abstract}
-% Adjust the "abstract" environment to not start with indentation.
-% \begin{macrocode}
-\@ifundefined{abstract}{}{%
- \let\hep@abstract\abstract%
- \renewcommand\abstract{\hep@abstract\noindent\ignorespaces}%
-% \end{macrocode}
-% \end{environment}
-% \begin{environment}{abstract*}
-% Add a "abstract*" environment for two column mode taking also care of placing the title using the \software{environ} \cite{environ} and \software{abstract} \cite{abstract} packages.
-% \begin{macrocode}
- \if@twocolumn
- \RequirePackage{environ}
- \RequirePackage{abstract}
- \renewcommand{\abstitleskip}{-3ex}
- \NewEnviron{abstract*}{%
- \twocolumn[\maketitle\vspace{-5ex}%
- \begin{onecolabstract}\noindent\BODY\end{onecolabstract}%
- \vspace{.5cm}]\saythanks%
- }%
- \else
- \newenvironment{abstract*}{%
- \maketitle\begin{abstract}%
- }{%
- \end{abstract}%
- }
- \fi
-}
-% \end{macrocode}
-% \end{environment}
-%
-% \subsection{Thanks}
-%
-% \begin{macro}{\thanks} Redefine thank to have a optional argument for a reference label.
-% \begin{macrocode}
-\let\hep@thanks\thanks
-\AtEndDocument{\let\thanks\hep@thanks}
-% \AddToHook{begindocument/begin}{\let\thanks\hep@thanks}
-\DeclareRobustCommand\thanks[2][]{%
- \AfterEndPreamble{%
-% \AddToHook{begindocument/end}{%
- \if\relax#1\relax%
- \footnotemark%
- \else%
- \renewcommand\thefootnote{\textsuperscript{\@fnsymbol\c@footnote}}%
- \protect\refstepcounter{footnote}\protect\label{#1}%
- \renewcommand\thefootnote{\@arabic\c@footnote}%
- \fi%
- \protected@xdef\@thanks{%
- \@thanks\protect\footnotetext[\the\c@footnote]{#2}%
- }
- \if@twocolumn
- \protected@xdef\@bs@thanks{%
- \@bs@thanks\protect\footnotetext[\the\c@footnote]{#2}%
- }%
- \fi%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-%</package|title>
-%<*package>
-%
-% End of "title" conditional.
-% \begin{macrocode}
-\fi
-% \end{macrocode}
-
% \section{Bibliography}
%
-% Check if bibliography management is requested.
+% Check if bibliography management is requested using the \software{pdftexcmds} package \cite{pdftexcmds}.
% \begin{macrocode}
+\RequirePackage{pdftexcmds}
\ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else
-% \end{macrocode}
-%
-%</package>
-%<*package|bibliography>
-%
-% \begin{macrocode}
-%<bibliography>\def\hep@bibliography{numeric-comp}
-%<bibliography>\newif\ifhep@journal\hep@journalfalse
-% \end{macrocode}
-%
-% \begin{macro}{\bibliography}
-% Load the \software{biblatex} package \cite{biblatex} with the datamodel defined in \cref{sec:data model}.
-% \begin{macrocode}
-\RequirePackage[style=\hep@bibliography, datamodel=hep-paper]{biblatex}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{hep-paper}
-% Provide the "\DeclareSortingTemplate" macro for older "biblatex" installations.
-% Define a new sorting template that sorts only multi key "\cite" entries according to their date and leaves the rest of the bibliography entries in the order they appear in the text.
-% \begin{macrocode}
-\providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme}
-\DeclareSortingTemplate{hep-paper}{
- \sort{\citeorder}
- \sort[final]{\field{sortkey}}
- \sort{\field{sortyear} \field{year} \literal{9999}}
- \sort{\field{month}}
- \sort{\field{eprint} \field{doi}}
- \sort{\field{sorttitle} \field{title}}
- \sort{\field{subtitle} \field{volume}}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% Use the new sorting scheme and abbreviat all first names.
-% \begin{macrocode}
-\ExecuteBibliographyOptions{
- sorting=hep-paper,
- safeinputenc,
- giveninits=true,
- maxbibnames=7
-}
-% \end{macrocode}
-%
-% Shrink the biblography in two column mode.
-% \begin{macrocode}
-\ifhep@journal\else
- \if@twocolumn
- \AtBeginBibliography{\small}
- \setlength\biblabelsep{\labelsep}
- \fi
-\fi
-% \end{macrocode}
-%
-% \begin{macro}{translationof}
-% Redefine the "translationof" string to fit better to documents without a original title.
-% \begin{macrocode}
-\DefineBibliographyStrings{english}{translationof={Original}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{erratum}
-% Add new bibliography string \enquote{Erratum} for the use in the "relatedtype" field.
-% \begin{macrocode}
-\NewBibliographyString{erratum,erratums}
-\DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}}
-\providecommand{\relateddelimerratum}{\addsemicolon\space}
-% \end{macrocode}
-% \end{macro}
-%
-% Activate the Oxford comma when using "british" and separate title and subtitle with a colon.
-% \begin{macrocode}
-\DefineBibliographyExtras{british}{\def\finalandcomma{\addcomma}}
-\renewcommand{\subtitlepunct}{\addcolon\addspace}
-% \end{macrocode}
-%
-% \begin{macro}{\printbibliography}
-% Allow the bibliography to be printed sloppy
-% \begin{macrocode}
-\let\hep@printbibliography\printbibliography
-\renewcommand{\printbibliography}{\sloppy\hep@printbibliography}
-% \end{macrocode}
-% \end{macro}
-
-% \subsection{Sourcemap}
-%
-% \begin{macro}{\reg@exp@one}
-% \begin{macro}{\reg@exp@two}
-% \begin{macro}{\reg@exp@url}
-% \begin{macro}{\reg@exp@pmc}
-% Define regular expressions in order to deal with inconsistent journal title and volume naming as well as \URL protocols and the PMCID.
-% \begin{macrocode}
-\newcommand{\reg@exp@one}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}}
-\newcommand{\reg@exp@two}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}}
-\newcommand{\reg@exp@url}{\regexp{\A(ht|f)tp(s)?:\/\/}}
-\newcommand{\reg@exp@pmc}{\regexp{\A(PMC)?}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\DeclareSourcemap}
-% Use the "\DeclareSourcemap" feature.
-% \begin{macrocode}
-\DeclareSourcemap{%
- \maps[datatype=bibtex, overwrite=true]{%
-% \end{macrocode}
-% \begin{macro}{collaboration}
-% Read the collaboration information if present.
-% \begin{macrocode}
- \map{%
- \step[fieldsource=Collaboration, final=true]%
- \step[fieldset=collaboration, origfieldval, final=true]
- }%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{reportnumber}
-% Read the pre-print information if present.
-% \begin{macrocode}
- \map{%
- \step[fieldsource=reportNumber, final=true]%
- \step[fieldset=reportnumber, origfieldval, final=true]
- }%
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{journal}
-% Move letters from the volume field to the journal field.
-% \begin{macrocode}
- \map[overwrite]{
- \pertype{article}
- \step[fieldsource=volume, match=\reg@exp@one, final]
- \step[fieldsource=volume, match=\reg@exp@two, replace={$2}]
- \step[fieldsource=journal, fieldtarget=journaltitle]
- \step[fieldset=journaltitle, fieldvalue={\space$1$2}, append=true]
- }
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{url}
-% Remove the protocol from \URL.
-% \begin{macrocode}
- \map{
- \step[fieldsource=url, final=true]
- \step[fieldset=protocollessurl, origfieldval, final=true]
- \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}]
- }
-% \end{macrocode}
-% \end{macro}
-% \begin{macro}{pmc}
-% Remove the PMC from the PMCID.
-% \begin{macrocode}
- \map{
- \step[fieldsource=pmcid, final=true]
- \step[fieldset=pmc, origfieldval, final=true]
- \step[fieldsource=pmc, match=\reg@exp@pmc, replace={}]
- }
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\letbibmacro}
-% Provide the "\letbibmacro" macro for old "biblatex" installations.
-% \begin{macrocode}
-\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{collaboration}
-% Execute the author macro even if only the collaboration information if present and override the author information with collaboration information if present.
-% \begin{macrocode}
-\renewbibmacro*{author/translator+others}{%
- \ifboolexpr{
- test \ifuseauthor and (
- not test {\ifnameundef{author}} or
- not test {\iffieldundef{collaboration}}
- )
- }
- {\usebibmacro{author}}
- {\usebibmacro{translator+others}}
-}
-\letbibmacro{hep@bib@author}{author}
-\renewbibmacro*{author}{%
- \iffieldundef{collaboration}{%
- \usebibmacro{hep@bib@author}}{\textit{\printfield{collaboration}}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{In:}
-% Remove spurious \enquote{In:} if no journal is present.
-% \begin{macrocode}
-\renewbibmacro*{in:}{%
- \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{reportnumber}
-% Print the "reportnumber" as commalist
-% \begin{macrocode}
-%<bibliography>\RequirePackage{relsize}
-\DeclareFieldFormat{reportnumber}{%
- \edef\commalistbody{\forcsvfield{%
- \egroup\noexpand\item\unexpanded{\bgroup\smaller[.5]\textsc}
- }{reportnumber}}%
- \expandafter\commalist\commalistbody\egroup\endcommalist%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{url}
-% Show \URLs without the protocol.
-% \begin{macrocode}
-\DeclareFieldFormat{url}{%
- \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\bib@online}
-% Private "\bib@online" macro
-% \begin{macrocode}
-\newcommand{\bib@online}[2]{%
- \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{pmid}
-% \begin{macro}{pmcid}
-% Present PubMed IDs.
-% \begin{macrocode}
-\DeclareFieldFormat{pmid}{%
- \mkbibacro{PM}\addcolon\space%
- \bib@online{https://www.ncbi.nlm.nih.gov/pubmed/#1}{#1}%
-}
-\DeclareFieldFormat{pmc}{%
- \mkbibacro{PMC}\addcolon\space%
- \bib@online{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC#1}{#1}%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{pmcid}
-% \begin{macro}{pmid}
-% \begin{macro}{reportnumber}
-% Add the pre-print and PubMed information if present.
-% \begin{macrocode}
-\letbibmacro{hep-doi+eprint+url}{doi+eprint+url}
-\renewbibmacro*{doi+eprint+url}{%
- \usebibmacro{hep-doi+eprint+url}
- \iffieldundef{pmc}{%
- \iffieldundef{pmid}{}{\printfield{pmid}\newunit}%
- }{\printfield{pmc}\newunit}
- \iffieldundef{reportnumber}{}{%
- \newunitpunct\textnumero\intitlepunct%
- \printfield{reportnumber}\newunit%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-
-% \subsection{Eprints}
-%
-% \begin{macro}{\new@eprint}
-% Private "\new@eprint" macro
-% \begin{macrocode}
-\NewDocumentCommand{\new@eprint}{smm}{
- \DeclareFieldFormat{eprint:#2}{%
- \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}%
- #2\addcolon\space\bib@online{#3/\@path}{\@path}%
- }%
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{CTAN}
-% Add CTAN as a eprint option
-% \begin{macrocode}
-\new@eprint{CTAN}{https://ctan.org/pkg}
-\DeclareFieldAlias{eprint:ctan}{eprint:CTAN}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{GitHub}
-% Add GitHub as a eprint option
-% \begin{macrocode}
-\new@eprint*{GitHub}{https://github.com}
-\DeclareFieldAlias{eprint:github}{eprint:GitHub}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{GitLab}
-% Add GitLab as a eprint option
-% \begin{macrocode}
-\new@eprint*{GitLab}{https://gitlab.com}
-\DeclareFieldAlias{eprint:gitlab}{eprint:GitLab}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{Bitbucket}
-% Add Bitbucket as a eprint option
-% \begin{macrocode}
-\new@eprint*{Bitbucket}{https://bitbucket.org}
-\DeclareFieldAlias{eprint:bitbucket}{eprint:Bitbucket}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{Launchpad}
-% Add Launchpad as a eprint option
-% \begin{macrocode}
-\new@eprint{Launchpad}{https://launchpad.net}
-\DeclareFieldAlias{eprint:launchpad}{eprint:Launchpad}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{SourceForge}
-% Add SourceForge as a eprint option
-% \begin{macrocode}
-\new@eprint{SourceForge}{https://sourceforge.net/projects}
-\DeclareFieldAlias{eprint:launchpad}{eprint:SourceForge}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{HEPForge}
-% Add HEPForge as a eprint option
-% \begin{macrocode}
-\DeclareFieldFormat{eprint:hepforge}{%
- HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}%
-}
-\DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge}
-% \end{macrocode}
-% \end{macro}
-%
-%</package|bibliography>
-%<*package>
-%
-% End check for bibliography option.
-% \begin{macrocode}
+ \RequirePackage[style=\hep@bibliography]{hep-bibliography}
\fi
% \end{macrocode}
@@ -3443,388 +1058,317 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t
% \end{macrocode}
% \end{macro}
%
-% Begin of bibliography if.
-% \begin{macrocode}
-\ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else
-% \end{macrocode}
-% Define bibstrings for reference names.
-% \begin{macrocode}
-\NewBibliographyString{refname}
-\NewBibliographyString{refsname}
-\DefineBibliographyStrings{english}{%
- refname = {reference},
- refsname = {references}
-}
-% \end{macrocode}
-% \begin{macro}{\ccite}
-% \begin{macro}{\Ccite}
-% Define \emph{clever} citation macros.
-% \begin{macrocode}
-\DeclareCiteCommand{\ccite}{%
- \ifnum\thecitetotal=1
- \bibstring{refname}%
- \else%
- \bibstring{refsname}%
- \fi%
- \addnbspace\bibopenbracket%
- \usebibmacro{cite:init}\usebibmacro{prenote}%
-}{\usebibmacro{citeindex}\usebibmacro{cite:comp}}{}{%
- \usebibmacro{cite:dump}\usebibmacro{postnote}%
- \bibclosebracket%
-}
-
-\newrobustcmd*{\Ccite}{\bibsentence\ccite}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% End of biblatex if.
-% \begin{macrocode}
-\fi
-% \end{macrocode}
-
% \section{Acronyms}
%
% Define acronyms if not deactivated.
% \begin{macrocode}
-\ifhep@glossaries
% \end{macrocode}
%
-%</package>
-%<*package|acronyms>
-%
-% Acronyms are implemented with the \software{glossaries-extra} package \cite{glossaries-extra} which is an extension of the \software{glossaries} package \cite{glossaries} and must be loaded after the \software{hyperref} package in \cref{sec:hyperlinks}.
+% Acronyms are implemented in the \software{hep-acronym} package \cite{hep-acronym} and must be loaded after the \software{hyperref} package in \cref{sec:hyperlinks}.
% Set the abbreviation style.
% \begin{macrocode}
-\RequirePackage[nostyles]{glossaries-extra}
-\setabbreviationstyle{long-hyphen-short-hyphen}
-% \end{macrocode}
-% The entry count feature is used.
-% \begin{macrocode}
-\glsenableentrycount
-\glssetcategoryattribute{abbreviation}{entrycount}{1}
-% \end{macrocode}
-% Provide macros for older "glossaries-extra" installations.
-% \begin{macrocode}
-\AtEndOfPackage{
- \@ifpackageloaded{hyperref}{
- \providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}}
- \providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}}
- \providecommand{\gGlsXtrSetField}[3]{%
- \glsxtrsetfieldifexists{#1}{#2}{%
- \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}%
- }%
- }
-% \end{macrocode}
-% Hyperlinks from the abbreviation to their definition in the text are set.
-% \begin{macrocode}
- \glssetcategoryattribute{abbreviation}{nohyperfirst}{true}
- \renewcommand*{\glsdonohyperlink}[2]{{%
- \glsxtrprotectlinks\edef\fieldvalue{%
- \glsxtrusefield{\glslabel}{hastarget}%
- }%
- \ifdefstring\fieldvalue{true}{#2}{%
- \gGlsXtrSetField{\glslabel}{hastarget}{true}%
- \glsdohypertarget{#1}{#2}%
- }%
- }}
- }{\providecommand{\pdfstringdefDisableCommands}[1]{}}
-}
+\ifhep@glossaries\RequirePackage{hep-acronym}\fi
% \end{macrocode}
%
-% \begin{macro}{\begin@sentence}
-% Mark the beginning of a paragraph as if it would follow a full stop using the \software{everyhook} package \cite{everyhook}.
-% \begin{macrocode}
-\RequirePackage[excludeor]{everyhook}
-\newcommand{\begin@sentence}{1001}
-\PushPostHook{par}{{\spacefactor=\begin@sentence}}
-% \end{macrocode}
-% \end{macro}
+%</package>
%
-% \begin{macro}{\frenchspacing}
-% Adjust the "\frenchspacing" macro to be compatibel with this idea.
-% \begin{macrocode}
-\def\frenchspacing{%
- \sfcode`\.\begin@sentence \sfcode`\?\begin@sentence
- \sfcode`\!\begin@sentence \sfcode`\:\begin@sentence
- \sfcode`\;\@m \sfcode`\,\@m
-}
-% \end{macrocode}
-% \end{macro}
+% \section{Tests}
%
-% \begin{macro}{\if@begin@of@sentence}
-% Provide a macro checking for the beginning of a sentence by examining the length of the preceeding space.
-% \begin{macrocode}
-\newcommand{\if@begin@of@sentence}[2]{\leavevmode\protecting{%
- \ifboolexpr{ test {\ifnumcomp{\spacefactor}{=}{3000}} or%
- test {\ifnumcomp{\spacefactor}{=}{2000}} or%
- test {\ifnumcomp{\spacefactor}{=}{\begin@sentence}}%
- }{#1}{#2}%
-}}
-% \end{macrocode}
-% \end{macro}
+% \subsection{JHEP}
%
-% \begin{macro}{\acronym}
-% The "\acronym"\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined.
-% \begin{enumerate}[nosep, label=\#\arabic*]
-% \item star for omitting the \enquote{s} in the short plural
-% \item optional typeset abbreviation
-% \item mandatory abbreviation
-% \item star for restoring the \hologo{TeX} default for space after text macros
-% \item mandatory long form
-% \item optional plural long form
-% \end{enumerate}
-% \begin{macrocode}
-%<acronyms>\RequirePackage{xspace}
-\NewDocumentCommand{\acronym}{somsmo}{
- \newabbreviation[
- type=\acronymtype,
- sort=#3,
- \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}},
- longplural=\IfNoValueTF{#6}{#5s}{#6}
- ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5}
-% \end{macrocode}
-% Provide the singular acronym macro.
-% \begin{macrocode}
- \expandafter\newcommand\csname#3\endcsname[1][]{%
- \if@begin@of@sentence{%
- \ifglsused{#3}{\cgls{#3}[##1]}{\cGls{#3}[##1]}%
- }{\cgls{#3}[##1]}%
- \ifnum\glsentrycurrcount{#3}>1\relax
- \IfBooleanTF{#4}{}{\@\xspace}%
- \else\@\xspace\fi
- }
-% \end{macrocode}
-% Expand the singular acronym macro in \PDF labels.
-% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{%
- \IfNoValueTF{#2}{#3}{#2} }%
- }
-% \end{macrocode}
-% Provide the singular acronym macro in math mode.
-% \begin{macrocode}
- \expandafter\mathdef\csname#3\endcsname{%
- \text{\glsxtrshort{#3}}\@gls@increment@currcount{#3}%
- }
-% \end{macrocode}
-% Provide the plural acronym macro.
-% \begin{macrocode}
- \expandafter\newcommand\csname#3s\endcsname[1][]{%
- \if@begin@of@sentence{\cGlspl{#3}[##1]}{\cglspl{#3}[##1]}%
- \IfBooleanTF{#4}{}{\@\xspace}%
- }
-% \end{macrocode}
-% Expand the plural acronym macro in \PDF labels.
-% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{%
- \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }%
- }
-% \end{macrocode}
-% Provide the plural acronym macro in math mode.
-% \begin{macrocode}
- \expandafter\mathdef\csname#3s\endcsname{%
- \text{\glsxtrshortpl{#3}}\@gls@increment@currcount{#3}%
- }
-}
-% \end{macrocode}
-% \end{macro}
+%<*testJHEP>
%
-% \begin{macro}{\shortacronym}
-% The "\shortacronym" never expands into the long form.
-% \begin{macrocode}
-\NewDocumentCommand{\shortacronym}{somsmo}{
-% \end{macrocode}
-% Provide the singular acronym macro.
% \begin{macrocode}
- \expandafter\newcommand\csname#3\endcsname[1][]{%
- \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}##1%
- }
-% \end{macrocode}
-% Expand the singular acronym macro in \PDF labels.
-% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{%
- \IfNoValueTF{#2}{#3}{#2} }%
- }
-% \end{macrocode}
-% Provide the singular acronym macro in math mode.
-% \begin{macrocode}
- \expandafter\mathdef\csname#3\endcsname{%
- \text{\IfNoValueTF{#2}{#3}{#2}}%
- }
-% \end{macrocode}
-% Provide the plural acronym macro.
-% \begin{macrocode}
- \expandafter\newcommand\csname#3s\endcsname[1][]{%
- \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}%
- \IfBooleanTF{#4}{}{\@\xspace}##1%
- }
-% \end{macrocode}
-% Expand the plural acronym macro in \PDF labels.
-% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{%
- \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }%
- }
-% \end{macrocode}
-% Provide the plural acronym macro in math mode.
-% \begin{macrocode}
- \expandafter\mathdef\csname#3s\endcsname{%
- \text{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}%
- }%
-}
+\documentclass[a4paper, 11pt]{article}
+
+\usepackage{jheppub}
+\usepackage[lang=english]{hep-paper}
+\usepackage[math]{blindtext}
+
+\begin{document}
+
+\title{Title}
+
+\emailAdd{first@email.com}
+\author[a]{First author}
+\emailAdd{second@email.com}
+\author[b]{Second author}
+\affiliation[a]{First affiliation}
+\affiliation[b]{Second affiliation}
+
+\abstract{\blindtext}
+
+\maketitle
+
+\Blinddocument
+
+\end{document}
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\longacronym}
-% The "\longacronym" never shows the abbreviated form.
-% \begin{macrocode}
-\NewDocumentCommand{\longacronym}{somsmo}{
-% \end{macrocode}
-% Provide the singular acronym macro.
-% \begin{macrocode}acronyms
- \expandafter\newcommand\csname#3\endcsname[1][]{%
- \if@begin@of@sentence{\MakeUppercase#5}{#5}%
- \IfBooleanTF{#4}{}{\@\xspace}##1%
- }
-% \end{macrocode}
-% Expand the singular acronym macro in \PDF labels.
-% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#5 }}
-% \end{macrocode}
-% Provide the plural acronym macro.
-% \begin{macrocode}
- \expandafter\newcommand\csname#3s\endcsname[1][]{%
- \if@begin@of@sentence{%
- \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}%
- }{%
- \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}##1%
- }
-% \end{macrocode}
-% Expand the plural acronym macro in \PDF labels.
-% \begin{macrocode}
- \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{%
- \IfNoValueTF{#6}{#5s}{#6} }%
- }
-}
-% \end{macrocode}
-% \end{macro}
-% Silence warning if no acronyms are defined.
-% \begin{macrocode}
-\renewcommand*{\@gls@write@entrycounts}{%
- \immediate\write\@auxout{%
- \string\providecommand*{\string\@gls@entry@count}[2]{}
- }%
- \count@=0\relax
- \forallglsentries{\@glsentry}{%
- \glshasattribute{\@glsentry}{entrycount}{%
- \ifglsused{\@glsentry}{%
- \immediate\write\@auxout{%
- \string\@gls@entry@count{\@glsentry}{%
- \glsentrycurrcount{\@glsentry}%
- }
- }%
- }{}\advance\count@ by \@ne
- }{}%
- }%
-}
-% \end{macrocode}
-% \begin{macro}{\resetacronym}
-% \begin{macro}{\dummyacronym}
-% Add two macros for acronym management.
+%</testJHEP>
+%
+% \subsection{JCAP}
+%
+%<*testJCAP>
+%
% \begin{macrocode}
-\newcommand{\resetacronym}[1]{\protect\glsreset{#1}}
-\newcommand{\dummyacronym}[1]{\protect\glsunset{#1}}
+\documentclass[a4paper, 11pt]{article}
+
+\usepackage{jcappub}
+\usepackage[lang=english]{hep-paper}
+\usepackage[math]{blindtext}
+
+\begin{document}
+
+\title{Title}
+
+\emailAdd{first@email.com}
+\author[a]{First author}
+\emailAdd{second@email.com}
+\author[b]{Second author}
+\affiliation[a]{First affiliation}
+\affiliation[b]{Second affiliation}
+
+\abstract{\blindtext}
+
+\maketitle
+
+\Blinddocument
+
+\end{document}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{abstract}
-% Adjust the "abstract" environment to reset all acronym counters.
+%</testJCAP>
+%
+% \subsection{AMSArt}
+%
+%<*testAMSArt>
+%
% \begin{macrocode}
-\@ifundefined{endabstract}{}{%
- \let\end@hep@abstract\endabstract%
- \renewcommand\endabstract{\glsresetall\end@hep@abstract}%
-}
+\documentclass{amsart}
+
+\usepackage[lang=english]{hep-paper}
+\usepackage[math]{blindtext}
+
+\title{title}
+
+\author{Author}
+\address{Address 1}
+\email{first@email.com}
+\author{Author 2}
+\email{second@email.com}
+\address{Address 2}
+
+\date{date}
+
+\begin{document}
+
+\begin{abstract}
+\blindtext
+\end{abstract}
+
+\maketitle
+
+\Blinddocument
+
+\end{document}
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\tableofcontents}
-% \begin{macro}{\listoffigures}
-% \begin{macro}{\listoftables}
-% Adjust the "\tableofcontents" macro to never show the long form of acronyms.
+%</testAMSArt>
+%
+% \subsection{Beamer}
+%
+%<*testBeamer>
+%
% \begin{macrocode}
-\let\hep@table@of@contents\tableofcontents
-\renewcommand\tableofcontents{%
- \glsunsetall\hep@table@of@contents\glsresetall%
-}
-\let\hep@list@of@figures\listoffigures
-\renewcommand\listoffigures{%
- \glsunsetall\hep@list@of@figures\glsresetall%
-}
-\let\hep@list@of@tables\listoftables
-\renewcommand\listoftables{%
- \glsunsetall\hep@list@of@tables\glsresetall%
-}
+\documentclass{beamer}
+
+\usepackage[lang=english]{hep-paper}
+\usepackage[math]{blindtext}
+
+\title{Title}
+\subtitle{Subtitle}
+\author{Author}
+\institute{Institute}
+\date{Event}
+
+\begin{document}
+
+\frame{\titlepage}
+
+\begin{frame}{Frame title}
+\blindtext
+\end{frame}
+
+\end{document}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-% \begin{macro}{\acronyms}
-% Add a possibility to have different groups of acronyms.
+%</testBeamer>
+%
+% \subsection{PoS}
+%
+%<*testPoS>
+%
% \begin{macrocode}
-\NewDocumentCommand{\acronyms}{om}{%
- \IfNoValueTF{#1}{
- \newglossary{#2}{#2.in}{#2.out}{#2}%
- \renewcommand{\acronymtype}{#2}%
- }{
- \newglossary{#1}{#1.in}{#1.out}{#2}%
- \renewcommand{\acronymtype}{#1}%
- }
+\documentclass{PoS}
+
+\usepackage[lang=english,title=false]{hep-paper}
+\usepackage[math]{blindtext}
+
+\title{Title}
+
+\author{First author \thanks{first@email.com}}
+\author{
+\speaker{Second author is speaker}\\
+First affiliation\\
+E-mail: \email{second@email.com}
}
+\author{Third author \thanks{\email{third@email.com}}\\Second affiliation}
+\author{Fourth author\\Third affiliation}
+\FullConference{Full conference}
+\ShortTitle{Short title}
+
+\begin{abstract}
+\blindtext
+\end{abstract}
+
+\begin{document}
+
+\Blinddocument
+
+\end{document}
% \end{macrocode}
-% \end{macro}
%
-%</package|acronyms>
-%<*package>
+%</testPoS>
+%
+% \subsection{RevTeX}
+%
+%<*testRevTeX>
%
-% End of glossaries if.
% \begin{macrocode}
-\fi
+\documentclass[
+ aps,
+ prl,
+ reprint,
+ nofootinbib,
+ nobibnotes,
+ superscriptaddress,
+ preprintnumbers,
+]{revtex4-2}
+
+\usepackage{hep-paper}
+\usepackage[math]{blindtext}
+
+\begin{document}
+
+\title{Title}
+
+\author{First author}
+\email[E-mail me at: ]{first@email.com}
+\affiliation{First affiliation}
+\author{Second author}
+\email{second@email.com}
+\affiliation{Second affiliation}
+\affiliation{Third affiliation}
+\author{Third author}
+\affiliation{Fourth affiliation}
+
+\begin{abstract}
+\blindtext
+\end{abstract}
+
+\maketitle
+
+\Blinddocument
+
+\end{document}
% \end{macrocode}
%
-%</package>
-%</package|title|font|math|floats|acronyms|bibliography>
+%</testRevTeX>
%
-% \section{Biblatex datamodel file} \label{sec:data model}
+% \subsection{Springer}
%
-%<*datamodel>
+%<*testSpringer>
%
-% \begin{macro}{collaboration}
-% \begin{macro}{pmid}
-% \begin{macro}{pmcid}
-% \begin{macro}{pmc}
-% \begin{macro}{reportnumber}
-% \begin{macro}{protocollessurl}
-% Define the "dbx" file containing the "hep-paper" datamodel.
% \begin{macrocode}
-\DeclareDatamodelFields[type=field, datatype=literal]{
- collaboration, pmid, pmcid, pmc,
-}
-\DeclareDatamodelFields[type=field, format=xsv, datatype=literal]{
- reportnumber,
+\documentclass[twocolumn,epjc3]{svjour3}
+
+\usepackage[lang=english]{hep-paper}
+\usepackage[math]{blindtext}
+
+\journalname{Journal name}
+
+\title{Title\thanksref{title}}
+
+\titlerunning{Short title}
+
+\subtitle{Subtitle}
+
+\thankstext{title}{Title thanks}
+
+\authorrunning{Short form of author list}
+
+\thankstext{email1}{e-mail: first@email.com}
+\thankstext{email2}{e-mail: second@email.com}
+
+\institute{
+ First address \label{address1} \and
+ Second address \label{address2} \and
+ \emph{Present Address:} if needed\label{address3}
}
-\DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl}
-\DeclareDatamodelEntryfields{
- collaboration, pmid, pmcid, pmc, reportnumber, protocollessurl,
+
+\date{Received: date / Accepted: date}
+
+\begin{document}
+
+\author{
+ First Author\thanksref{email1,address1} \and
+ Second Author\thanksref{email2,address2,address3}
}
+
+\maketitle
+
+\begin{abstract}
+\blindtext
+\end{abstract}
+
+\Blinddocument
+
+\end{document}
+% \end{macrocode}
+%
+%</testSpringer>
+%
+% \section{Readme}
+%
+%<*readme>
+%
+% \begin{macrocode}
+# The `hep-paper` package
+
+A `LaTeX` package for publications in High Energy Physics.
+
+## Introduction
+
+The `hep-paper` package aims to provide a single style file containing most configurations and macros necessary to write appealing publications in High Energy Physics.
+Instead of reinventing the wheel by introducing newly created macros `hep-paper` preferably loads third party packages as long as they are lightweight enough.
+
+For usual publications it is enough to load additionally to the `article` class without optional arguments only the `hep-paper` package.
+
+ \documentclass{article}
+ \usepackage{hep-paper}
+
+## Author
+
+Jan Hajer
+
+## License
+
+This file may be distributed and/or modified under the conditions of the `LaTeX` Project Public License, either version 1.3c of this license or (at your option) any later version.
+The latest version of this license is in `http://www.latex-project.org/lppl.txt` and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later.
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
-%</datamodel>
+%</readme>
%
% \Finale