From 702ea1a475d8ae525aca8ca610b0497254ba513f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 1 Sep 2020 21:34:50 +0000 Subject: hep-paper (1sep20) git-svn-id: svn://tug.org/texlive/trunk@56236 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/hep-paper/README.md | 8 + .../doc/latex/hep-paper/bibliography.bib | 84 +- .../latex/hep-paper/hep-paper-documentation.pdf | Bin 0 -> 454890 bytes .../latex/hep-paper/hep-paper-documentation.tex | 609 +++++ .../latex/hep-paper/hep-paper-implementation.pdf | Bin 0 -> 535891 bytes .../texmf-dist/doc/latex/hep-paper/hep-paper.pdf | Bin 525662 -> 0 bytes .../latex/hep-paper/hep-paper-implementation.dtx | 2473 ++++++++++++++++++++ .../source/latex/hep-paper/hep-paper.dtx | 2116 ----------------- .../source/latex/hep-paper/hep-paper.ins | 6 +- .../texmf-dist/tex/latex/hep-paper/hep-paper.dbx | 11 +- .../texmf-dist/tex/latex/hep-paper/hep-paper.sty | 347 ++- 11 files changed, 3393 insertions(+), 2261 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf create mode 100644 Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex create mode 100644 Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf delete mode 100644 Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf create mode 100644 Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx delete mode 100644 Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/hep-paper/README.md b/Master/texmf-dist/doc/latex/hep-paper/README.md index e35410f36ec..fe6ce7a1058 100644 --- a/Master/texmf-dist/doc/latex/hep-paper/README.md +++ b/Master/texmf-dist/doc/latex/hep-paper/README.md @@ -12,6 +12,14 @@ For usual publications it is enough to load additionally to the `article` class \documentclass{article} \usepackage{hep-paper} +## Installation + +Running `pdflatex hep-paper.ins` will generate the main style file `hep-paper.sty` together with the necessary datamodel file `hep-paper.dbx`. +These two files must be moved into a folder the `tex` installation is aware of, e.g. the folder containing the document that should use the `hep-paper` package. +Additionally the documentation file `hep-paper-documentation.tex` will be generated. +Subsequently running `pdflatex hep-paper-documentation.tex` will generate the documentation `hep-paper-documentation.pdf`. +Finally running `pdflatex hep-paper-implementation.dtx` will generate the complete documentation of the implementation `hep-paper-implementation.pdf` + ## Author Jan Hajer diff --git a/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib b/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib index d63b7339470..63e5ad9916e 100644 --- a/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib +++ b/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib @@ -1,6 +1,6 @@ @article{hep-paper, title = "The |hep-paper| package", -subtitle = "Publications in High Energy Physics", +subtitle = "Publications in high energy physics", author = "Jan Hajer", year = "2019", eprinttype = "ctan", @@ -123,7 +123,6 @@ eprint = "mathtools", @article{amsmath, title = "The |amsmath| package", subtitle = "AMS mathematical facilities for \hologo{LaTeX}", -author = "\hologo{LaTeX}", collaboration = "\hologo{LaTeX} Team", date = "1994", url = "https://ams.org/tex/amslatex", @@ -348,7 +347,9 @@ eprint = "iftex", @article{fontspec, title = "The |fontspec| package", +subtitle = "Advanced font selection in \hologo{XeLaTeX} and \hologo{LuaLaTeX}", author = "Will Robertson and Khaled Hosny", +date = "2004", eprinttype = "ctan", eprint = "fontspec", } @@ -494,7 +495,6 @@ eprint = "fmitex", title = "\hologo{LaTeX2e}\ font selection", subtitle = "Docmentation of \hologo{LaTeX} font commands", collaboration = "\hologo{LaTeX} Team", -author = "\hologo{LaTeX} Team", date = "1995", eprinttype = "ctan", eprint = "fntguide", @@ -516,6 +516,15 @@ eprinttype = "ctan", eprint = "soul", } +@article{ulem, +title = "The |ulem| package", +subtitle = "Package for underlining", +author = "Donald Arseneau", +date = "1989", +eprinttype = "ctan", +eprint = "ulem", +} + @article{glossaries, title = "The |glossaries| package", subtitle = "Create glossaries and lists of acronyms", @@ -555,13 +564,15 @@ eprint = "pdftexcmds", @article{fix-cm, title = "The |fix-cm| package", +subtitle = "Permit Computer Modern fonts at arbitrary sizes", author = "Frank Mittelbach and David Carlisle and Chris Rowley and Walter Schmidt", +date = "1993", eprinttype = "ctan", eprint = "fix-cm", } @article{revtex, -title = "The REV\hologo{TeX} package", +title = "The REV\hologo{TeX} class", subtitle = "Styles for various Physics Journals", author = "Mark Doyle and Arthur Ogawa", collaboration = "American Physical Society", @@ -656,7 +667,6 @@ eprint = "url", @article{jhep, title = "The |JHEP| package", -author = "SISSA Medialab", collaboration = "SISSA Medialab", date = "1997", url = "https://jhep.sissa.it/jhep/help/JHEP_TeXclass.jsp", @@ -664,7 +674,6 @@ url = "https://jhep.sissa.it/jhep/help/JHEP_TeXclass.jsp", @article{jcap, title = "The |JCAP| package", -author = "SISSA Medialab", collaboration = "SISSA Medialab", date = "2002", url = "https://jcap.sissa.it/jcap/help/JCAP_TeXclass.jsp", @@ -682,7 +691,7 @@ related = "bbm" @article{bbm, title = "|bbm|", subtitle = "\enquote{Blackboard-style} cm fonts", -author = " Gilles Robert", +author = "Gilles Robert", date = "1993", eprinttype = "ctan", eprint = "bbm", @@ -698,3 +707,64 @@ year = "1991", organization = "Cornell University", ReportNumber = "test", } + +@article{dsfont, +title = "The |doublestroke| font", +subtitle = "Typeset mathematical double stroke symbols", +author = "Olaf Kummer", +date = "1995", +eprinttype = "ctan", +eprint = "doublestroke", +} + +@article{mleftright, +title = "The |mleftright| package", +subtitle = "Variants of delimiters that act as maths open/close", +author = "Heiko Oberdiek", +date = "2010", +eprinttype = "ctan", +eprint = "mleftright", +} + +@article{urwchancal, +title = "A virtual font for URW Chancery Math", +subtitle = "Use URW's clone of Zapf Chancery as a maths alphabet", +author = "Michael Sharpe", +date = "2011", +eprinttype = "ctan", +eprint = "urwchancal", +} + +@article{footnotebackref, +title = "The |footnotebackref| package", +subtitle = "Back-references from footnotes", +author = "Holger Lange", +date = "2012", +eprinttype = "ctan", +eprint = "footnotebackref", +} + +@article{cancel, +title = "The |cancel| package", +subtitle = "Place lines through maths formulae", +author = "Donald Arseneau", +date = "2013", +eprinttype = "ctan", +eprint = "cancel", +} + +@article{beamer, +title = "The |beamer| class", +subtitle = "A \hologo{LaTeX} class for producing presentations and slides", +author = "Till Tantau and Joseph Wright and Vedran Miletić", +date = "2003", +eprinttype = "ctan", +eprint = "beamer", +related = "beamer-1", +} + +@manual{beamer-1, +eprinttype = "github", +eprintclass = "josephwright", +eprint = "beamer", +} diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf new file mode 100644 index 00000000000..7e8d9dbdb59 Binary files /dev/null and b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf differ diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex new file mode 100644 index 00000000000..0f5e7957649 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex @@ -0,0 +1,609 @@ +%% +%% This is file `hep-paper-documentation.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% hep-paper-implementation.dtx (with options: `documentation') +%% This is a generated file. +%% Copyright (C) 2019-2020 by Jan Hajer +%% 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. +\RequirePackage[l2tabu, orthodox]{nag} +\documentclass{ltxdoc} + +\EnableCrossrefs +\CodelineIndex +\RecordChanges + +\MacroIndent=1.5em + +\usepackage[parskip]{hep-paper} + +\bibliography{bibliography} + +\acronym{PDF}{portable document format} +\acronym{URL}{uniform resource locator} + +\usepackage{hologo} + +\newenvironment{columns}[1][.5]{% + \begin{minipage}[t]{\linewidth}% + \begin{minipage}[t]{#1\linewidth}% + \newcommand{\column}{% + \end{minipage}% + \begin{minipage}[t]{\linewidth-#1\linewidth}% + }% +}{\end{minipage}\end{minipage}} + +\setlength{\fboxsep}{1pt} + +\begin{document} + +\GetFileInfo{hep-paper.sty} + +\title{The |hep-paper| package\thanks{This document corresponds to \protecting{|hep-paper|}~\fileversion.}} +\author{Jan Hajer \email{jan.hajer@uclouvain.be}} +\affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium} +\preprint{Preprint-Number} +\date{\normalfont\filedate} + +\maketitle + +\begin{abstract} +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. +\end{abstract} + +\tableofcontents\clearpage + +\newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} + +\section{Introduction} + +For usual publications it is enough to load additionally to the |article| class without optional arguments only the |hep-paper| package \cite{hep-paper}. + +| \documentclass{article}|\\ +| \usepackage{hep-paper}| + +The most notable changes after loading the |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 set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}. +Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. +Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. + +\subsection{Options} + +\DescribeMacro{paper} +The |paper=|\meta{format} option loads the specified paper format. +The possible \meta{formats} are: +|a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|, +|b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, +|c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, +|ansia|, |ansib|, |ansic|, |ansid|, |ansie|, +|letter|, |executive|, |legal|. +The default is |a4|. + +\DescribeMacro{font} +The |font=|\meta{size} option loads the specified font size. +The possible \meta{sizes} are: +|8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|. +The default is \unit[11]{pt}. + +\DescribeMacro{lang} +The |lang|=\meta{name} option switches the document language to the chosen value. +The possible values are given by the |babel| package \cite{babel}. +The default is |british|. + +\DescribeMacro{sansserif} +The |sansserif| option switches the document including math to the sans serif font shape. + +\DescribeMacro{parskip} +The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. +The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. +\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.} + +\subsubsection{Deactivation} + +The \software{hep-paper} package loads few bigger packages which have a large impact on the document. +The deactivation options prevent such adjustments. + +\DescribeMacro{defaults} +The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. + +\DescribeMacro{title} +The |title=false| option deactivates the title page adjustments. + +\DescribeMacro{bibliography} +The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|. +Otherwise the \meta{key} is passed as |style| string to the |biblatex| package. + +\DescribeMacro{glossaries} +The |glossaries=false| option deactives acronyms and the use of the |glossaries| package \cite{glossaries}. + +\DescribeMacro{references} +The |references=false| option prevents the |cleveref| pacakge \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros. + +\subsubsection{Compatibility} + +The compatibility options activate the compatibility mode for certain classes and packages used for publications in high energy physics. +They are mostly suitable combinations of options described in the previous section. +If \software{hep-paper} is able to detect the presence of such a class or package, \ie if it is loaded before the \software{hep-paper} package, the compatibility mode is activated automatically. + +\DescribeMacro{beamer} +The |beamer| option activates the \software{beamer} \cite{beamer} compatibility mode. + +\DescribeMacro{jhep} +The |jhep| option activates the \software{JHEP} \cite{jhep} compatibility mode. + +\DescribeMacro{jcap} +The |jcap| option activates the \software{JCAP} \cite{jcap} compatibility mode. + +\DescribeMacro{revtex} +The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode. + +\DescribeMacro{pos} +The |pos| option activates the \software{PoS} compatibility mode. + +\subsubsection{Reactivation} + +The \software{hep-paper} package deactivates unrecommended macros, which can be reactivated manually. + +\DescribeMacro{manualplacement} +The |manualplacement| option reactivates manual float placement. + +\DescribeMacro{eqnarray} +The |eqnarray| option reactivates the depreciated |eqnarray| environment. + +\section{Macros and environments} + +\subsection{Title page} + +\DescribeMacro{\author} +\DescribeMacro{\affiliation} +\DescribeMacro{\email} +In order to facilitate multiple authors with different affiliations the |authblk| package \cite{authblk} is loaded. +The following lines add \eg two authors with different affiliations + +| \author[1]{Author one \email{Email one}}|\\ +| \affiliation[1]{Affiliation one}|\\ +| \author[2]{Author two \email{Email two}}|\\ +| \affiliation[1,2]{Affiliation two}| + +\DescribeMacro{\title} +The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. + +\DescribeMacro{\preprint} +The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. + +\DescribeEnv{abstract} +The |abstract| environment is adjusted to not start with an indentation. + +\subsection{Text} + +Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package. +\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 |"| instead of the pair |``| and |''|, respectively. + +\DescribeMacro{\eg} +\DescribeMacro{\vs} +The |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} \marg{text} \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}. + +The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. + +\DescribeMacro{inlinelist} +\begin{columns} +|The three main points are| +|\begin{inlinelist}| + +| \item one| + +| \item two| + +| \item three| + +|\end{inlinelist}| +\column +The three main points are +\begin{inlinelist} + \item one + \item two + \item three +\end{inlinelist} +\end{columns} + +\DescribeMacro{enumdescript} +\begin{columns}[.6] +|\begin{enumdescript}[label=\Roman*)]| + +| \item{First} one| + +| \item{Second} two| + +| \item{Third} three| + +|\end{enumdescript}| +\column +\begin{enumdescript}[label=\Roman*)] + \item{First} one + \item{Second} two + \item{Third} three +\end{enumdescript} +\end{columns} + +\DescribeMacro{\textsc} +A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}. + +\DescribeMacro{\underline} +\DescribeMacro{\overline} +The |\underline| macro is redefined to allow line-breaks using the |ulem| package \cite{ulem}. +The |\overline| macro is extended to also \overline{overline} text outside of math environments. + +\DescribeMacro{\useparskip} +\DescribeMacro{\useparindent} +If the |parskip| option is activated the |\useparindent| macro switches back the usual parindent mode, while the |\useparskip| macro switches to the parskip mode. + +\subsubsection{References and footnotes} + +\DescribeMacro{\cref} +References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{figure 1}. +Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}. + +\DescribeMacro{\cite} +Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}. + +\DescribeMacro{\ref} +\DescribeMacro{\eqref} +\DescribeMacro{\subref} +References are also adjusted to not start on a new line and are redefined in order to handle multiple references at once. + +\DescribeMacro{\footnote} +Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. + +\subsubsection{Acronyms} + +\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 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. +Capitalization at the beginning of paragraphs and sentences is 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 |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. +They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. +\DescribeMacro{\mathbf} +Bold math, via |\mathbf| is improved by the |bm| package \cite{bm}, \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. +This may cause trouble if bold symbols carry an additional non-implicit meaning. +\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}$). +The often used |\mathrm|\marg{text} and |{\rm|\meta{text}|}| macros are \emph{not} the correct tool for this purpose, as they switch to roman font shape. +This behaviour conflicts \eg with the |sansserif| package option. +\DescribeMacro{\mathsf} +The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$). +\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 |doublestroke| package \cite{dsfont} and 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} +The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$. +\DescribeMacro{\diag} +\DescribeMacro{\sgn} +Diagonal matrix |\diag| and signum |\sgn| operators are defined. + +\DescribeMacro{\mathdef} +The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition. + +\DescribeMacro{\i} +\DescribeMacro{\d} +The imaginary unit $\i$ and the differential $\d$ are defined using this functionality. + +\DescribeMacro{\numberwithin} +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 |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 |amsmath| and |mathtools| packages should be used instead. + +\DescribeMacro{equation} +Use the |equation| environment for short equations. + +\begin{columns} +|\begin{equation}| + +| left = right \ .| + +|\end{equation}| +\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{multline}| + +| left = right 1 \\| + +| + right 2 \ .| + +|\end{multline}| +\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{equation} \begin{split}| + +| left &= right 1 \\| + +| &= right 2 \ .| + +|\end{split} \end{equation}| +\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{subequations}| +|\begin{align}| + +| left &= right \ , &| +| left &= right \ , \\| +| left &= right \ , &| +| left &= right \ .| + +|\end{align}| +|\end{subequations}| +\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{equation} \begin{split}| + +| left &= right 1 \\ &=| +| \begin{multlined}[t]| +| right 2 \\ + right 3 \ .| +| \end{multlined}| +|\end{split} \end{equation}| +\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{subequations}| +|\begin{alignat}{2}| + +| left &= long right && \ , \\| + +| le. 2 &= ri. 2 \ , &| + +| \mathllap{le. 3 = ri. 3} & \ .| +|\end{alignat}| +|\end{subequations}| +\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} + +Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the |fixmath| \cite{fixmath} and |alphabeta| \cite{alphabeta} packages. +This allows differentiations like +\begin{align} +\sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ , +\label{eq:greek} +\end{align} +and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. +Additionally, Greek letters can also be directly typed using Unicode. + +\DescribeMacro{\ev} +\DescribeMacro{\pdv} +\DescribeMacro{\comm} +\DescribeMacro{\order} +The |physics| package \cite{physics} provides additional macros such as +\begin{align} +&\ev{\phi} \ , +&&\pdv[n]{f}{x} \ , +&&\comm{A}{B} \ , +&&\order{x^2} \ , +&&\eval{x}_0^\infty \ , +&&\det(M)\ . +\end{align} + +\DescribeMacro{\cancel} +\DescribeMacro{\slashed} +The |\cancel|\marg{characters} macro from the |cancel| \cite{cancel} package and the |\slashed| \marg{character} macro from the |slashed| \cite{slashed} package 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}$. + +\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 |units| package \cite{units} 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}}|. + +\subsection{Floats} + +\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. +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}{.6} +\raggedright +|\begin{panels}{.6}|\\ +|code|\\ +|\panel{.4}|\\ +|\begin{tabular}...\end{tabular}|\\ +|\end{panels}|\\ +\caption{Code for this panel environment.} +\label{tab:panels} +\panel{.4} +\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 \protecting{|booktabs|} and \protecting{|multirow|} packages in Panel \subref{tab:booktabs}. +} \label{tab:table} +\end{table} + +\DescribeEnv{panels} +\DescribeMacro{\panel} +The |panels| environment makes use of the |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|. +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 |booktabs| \cite{booktabs} and |multirow| \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}. + +\DescribeMacro{\graphic} +\DescribeMacro{\graphics} +The |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). +If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}. + +\subsection{Bibliography} + +\DescribeMacro{\bibliography} +\DescribeMacro{\printbibliography} +The |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. +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. + +| \article{|\meta{key1}|,|\\ +| |\dots|,|\\ +| relatedtype="erratum",|\\ +| related="|\meta{key2}|",|\\ +| }|\\ +| \article{|\meta{key2}|,|\\ +| |\dots|,|\\ +| }| + +\section{Conclusion} + +The |hep-paper| package provides a matching selection of preloaded packages and additional macros enabling the user to focus on the content instead of the layout by reducing the amount of manual tasks. +The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. + +\DescribeMacro{arxiv-collector} +\nolinkurl{arxiv.org} \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv. +The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures). + +\printbibliography + +\end{document} + +\endinput +%% +%% End of file `hep-paper-documentation.tex'. diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf new file mode 100644 index 00000000000..b087bd542ea Binary files /dev/null and b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf differ diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf b/Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf deleted file mode 100644 index 4142b2afe7d..00000000000 Binary files a/Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf and /dev/null differ diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx b/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx new file mode 100644 index 00000000000..f8bddd02e49 --- /dev/null +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx @@ -0,0 +1,2473 @@ +% \iffalse meta-comment +% +% Copyright (C) 2019-2020 by Jan Hajer +% ----------------------------------- +% +% 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. +% +% \fi +% +% \iffalse +% +%\NeedsTeXFormat{LaTeX2e}[2005/12/01] +%\ProvidesPackage{hep-paper}[2020/08/01 v1.4 Publications in High Energy Physics] +%\ProvidesFile{hep-paper.dbx}[2020/08/01 v1.4 HEP-Paper biblatex data model] +% +%<*documentation> +\RequirePackage[l2tabu, orthodox]{nag} +\documentclass{ltxdoc} + +\EnableCrossrefs +\CodelineIndex +\RecordChanges + +\MacroIndent=1.5em + +\usepackage[parskip]{hep-paper} + +\bibliography{bibliography} + +\acronym{PDF}{portable document format} +\acronym{URL}{uniform resource locator} + +\usepackage{hologo} + +\newenvironment{columns}[1][.5]{% + \begin{minipage}[t]{\linewidth}% + \begin{minipage}[t]{#1\linewidth}% + \newcommand{\column}{% + \end{minipage}% + \begin{minipage}[t]{\linewidth-#1\linewidth}% + }% +}{\end{minipage}\end{minipage}} + +\setlength{\fboxsep}{1pt} +% + +%<*driver> +\expandafter\newif\csname ifshort\endcsname +\shortfalse +\begin{document} +\DocInput{hep-paper-implementation.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{1302} +% +% \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 +% Lower-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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v1.0}{2019/01/01}{Initial version of the style file.} +% \changes{v1.1}{2020/01/01}{Transition to documented \hologo{LaTeX} source file.} +% \changes{v1.2}{2020/03/01}{Introduction of package options.} +% \changes{v1.3}{2020/05/01}{Inclusion of JHEP and JCAP package options. Fix of incompatibility with recent subcaption package version. Move of biblatex datamodel into its own file} +% \changes{v1.4}{2020/08/01}{If possible the compatibility options are selected automatically. Inclusion of PubMed IDs in bibliography.} +% +% \ifshort +%<*documentation> +% +\begin{document} +% \fi + +\GetFileInfo{hep-paper.sty} + +\title{The |hep-paper| package\thanks{This document corresponds to \protecting{|hep-paper|}~\fileversion.}} +\author{Jan Hajer \email{jan.hajer@uclouvain.be}} +\affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium} +\preprint{Preprint-Number} +\date{\normalfont\filedate} + +\maketitle + +\begin{abstract} +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. +\end{abstract} + +\tableofcontents\clearpage + +\newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} + +\section{Introduction} + +For usual publications it is enough to load additionally to the |article| class without optional arguments only the |hep-paper| package \cite{hep-paper}. + +| \documentclass{article}|\\ +| \usepackage{hep-paper}| + +The most notable changes after loading the |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 set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}. +Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. +Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. + +\subsection{Options} + +\DescribeMacro{paper} +The |paper=|\meta{format} option loads the specified paper format. +The possible \meta{formats} are: +|a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|, +|b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, +|c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, +|ansia|, |ansib|, |ansic|, |ansid|, |ansie|, +|letter|, |executive|, |legal|. +The default is |a4|. + +\DescribeMacro{font} +The |font=|\meta{size} option loads the specified font size. +The possible \meta{sizes} are: +|8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|. +The default is \unit[11]{pt}. + +\DescribeMacro{lang} +The |lang|=\meta{name} option switches the document language to the chosen value. +The possible values are given by the |babel| package \cite{babel}. +The default is |british|. + +\DescribeMacro{sansserif} +The |sansserif| option switches the document including math to the sans serif font shape. + +\DescribeMacro{parskip} +The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. +The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. +\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.} + +\subsubsection{Deactivation} + +The \software{hep-paper} package loads few bigger packages which have a large impact on the document. +The deactivation options prevent such adjustments. + +\DescribeMacro{defaults} +The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. + +\DescribeMacro{title} +The |title=false| option deactivates the title page adjustments. + +\DescribeMacro{bibliography} +The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|. +Otherwise the \meta{key} is passed as |style| string to the |biblatex| package. + +\DescribeMacro{glossaries} +The |glossaries=false| option deactives acronyms and the use of the |glossaries| package \cite{glossaries}. + +\DescribeMacro{references} +The |references=false| option prevents the |cleveref| pacakge \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros. + +\subsubsection{Compatibility} + +The compatibility options activate the compatibility mode for certain classes and packages used for publications in high energy physics. +They are mostly suitable combinations of options described in the previous section. +If \software{hep-paper} is able to detect the presence of such a class or package, \ie if it is loaded before the \software{hep-paper} package, the compatibility mode is activated automatically. + +\DescribeMacro{beamer} +The |beamer| option activates the \software{beamer} \cite{beamer} compatibility mode. + +\DescribeMacro{jhep} +The |jhep| option activates the \software{JHEP} \cite{jhep} compatibility mode. + +\DescribeMacro{jcap} +The |jcap| option activates the \software{JCAP} \cite{jcap} compatibility mode. + +\DescribeMacro{revtex} +The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode. + +\DescribeMacro{pos} +The |pos| option activates the \software{PoS} compatibility mode. + +\subsubsection{Reactivation} + +The \software{hep-paper} package deactivates unrecommended macros, which can be reactivated manually. + +\DescribeMacro{manualplacement} +The |manualplacement| option reactivates manual float placement. + +\DescribeMacro{eqnarray} +The |eqnarray| option reactivates the depreciated |eqnarray| environment. + +\section{Macros and environments} + +\subsection{Title page} + +\DescribeMacro{\author} +\DescribeMacro{\affiliation} +\DescribeMacro{\email} +In order to facilitate multiple authors with different affiliations the |authblk| package \cite{authblk} is loaded. +The following lines add \eg two authors with different affiliations + +| \author[1]{Author one \email{Email one}}|\\ +| \affiliation[1]{Affiliation one}|\\ +| \author[2]{Author two \email{Email two}}|\\ +| \affiliation[1,2]{Affiliation two}| + +\DescribeMacro{\title} +The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. + +\DescribeMacro{\preprint} +The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. + +\DescribeEnv{abstract} +The |abstract| environment is adjusted to not start with an indentation. + +\subsection{Text} + +Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package. +\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 |"| instead of the pair |``| and |''|, respectively. + +\DescribeMacro{\eg} +\DescribeMacro{\vs} +The |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} \marg{text} \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}. + +The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. + +\DescribeMacro{inlinelist} +\begin{columns} +|The three main points are| +|\begin{inlinelist}| + +| \item one| + +| \item two| + +| \item three| + +|\end{inlinelist}| +\column +The three main points are +\begin{inlinelist} + \item one + \item two + \item three +\end{inlinelist} +\end{columns} + +\DescribeMacro{enumdescript} +\begin{columns}[.6] +|\begin{enumdescript}[label=\Roman*)]| + +| \item{First} one| + +| \item{Second} two| + +| \item{Third} three| + +|\end{enumdescript}| +\column +\begin{enumdescript}[label=\Roman*)] + \item{First} one + \item{Second} two + \item{Third} three +\end{enumdescript} +\end{columns} + +\DescribeMacro{\textsc} +A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}. + +\DescribeMacro{\underline} +\DescribeMacro{\overline} +The |\underline| macro is redefined to allow line-breaks using the |ulem| package \cite{ulem}. +The |\overline| macro is extended to also \overline{overline} text outside of math environments. + +\DescribeMacro{\useparskip} +\DescribeMacro{\useparindent} +If the |parskip| option is activated the |\useparindent| macro switches back the usual parindent mode, while the |\useparskip| macro switches to the parskip mode. + +\subsubsection{References and footnotes} + +\DescribeMacro{\cref} +References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{figure 1}. +Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}. + +\DescribeMacro{\cite} +Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}. + +\DescribeMacro{\ref} +\DescribeMacro{\eqref} +\DescribeMacro{\subref} +References are also adjusted to not start on a new line and are redefined in order to handle multiple references at once. + +\DescribeMacro{\footnote} +Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. + +\subsubsection{Acronyms} + +\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 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. +Capitalization at the beginning of paragraphs and sentences is 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 |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. +They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. +\DescribeMacro{\mathbf} +Bold math, via |\mathbf| is improved by the |bm| package \cite{bm}, \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. +This may cause trouble if bold symbols carry an additional non-implicit meaning. +\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}$). +The often used |\mathrm|\marg{text} and |{\rm|\meta{text}|}| macros are \emph{not} the correct tool for this purpose, as they switch to roman font shape. +This behaviour conflicts \eg with the |sansserif| package option. +\DescribeMacro{\mathsf} +The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$). +\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 |doublestroke| package \cite{dsfont} and 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} +The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$. +\DescribeMacro{\diag} +\DescribeMacro{\sgn} +Diagonal matrix |\diag| and signum |\sgn| operators are defined. + +\DescribeMacro{\mathdef} +The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition. + +\DescribeMacro{\i} +\DescribeMacro{\d} +The imaginary unit $\i$ and the differential $\d$ are defined using this functionality. + +\DescribeMacro{\numberwithin} +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 |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 |amsmath| and |mathtools| packages should be used instead. + +\DescribeMacro{equation} +Use the |equation| environment for short equations. + +\begin{columns} +|\begin{equation}| + +| left = right \ .| + +|\end{equation}| +\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{multline}| + +| left = right 1 \\| + +| + right 2 \ .| + +|\end{multline}| +\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{equation} \begin{split}| + +| left &= right 1 \\| + +| &= right 2 \ .| + +|\end{split} \end{equation}| +\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{subequations}| +|\begin{align}| + +| left &= right \ , &| +| left &= right \ , \\| +| left &= right \ , &| +| left &= right \ .| + +|\end{align}| +|\end{subequations}| +\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{equation} \begin{split}| + +| left &= right 1 \\ &=| +| \begin{multlined}[t]| +| right 2 \\ + right 3 \ .| +| \end{multlined}| +|\end{split} \end{equation}| +\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{subequations}| +|\begin{alignat}{2}| + +| left &= long right && \ , \\| + +| le. 2 &= ri. 2 \ , &| + +| \mathllap{le. 3 = ri. 3} & \ .| +|\end{alignat}| +|\end{subequations}| +\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} + +Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the |fixmath| \cite{fixmath} and |alphabeta| \cite{alphabeta} packages. +This allows differentiations like +\begin{align} +\sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ , +\label{eq:greek} +\end{align} +and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. +Additionally, Greek letters can also be directly typed using Unicode. + +\DescribeMacro{\ev} +\DescribeMacro{\pdv} +\DescribeMacro{\comm} +\DescribeMacro{\order} +The |physics| package \cite{physics} provides additional macros such as +\begin{align} +&\ev{\phi} \ , +&&\pdv[n]{f}{x} \ , +&&\comm{A}{B} \ , +&&\order{x^2} \ , +&&\eval{x}_0^\infty \ , +&&\det(M)\ . +\end{align} + +\DescribeMacro{\cancel} +\DescribeMacro{\slashed} +The |\cancel|\marg{characters} macro from the |cancel| \cite{cancel} package and the |\slashed| \marg{character} macro from the |slashed| \cite{slashed} package 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}$. + +\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 |units| package \cite{units} 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}}|. + +\subsection{Floats} + +\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. +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}{.6} +\raggedright +|\begin{panels}{.6}|\\ +|code|\\ +|\panel{.4}|\\ +|\begin{tabular}...\end{tabular}|\\ +|\end{panels}|\\ +\caption{Code for this panel environment.} +\label{tab:panels} +\panel{.4} +\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 \protecting{|booktabs|} and \protecting{|multirow|} packages in Panel \subref{tab:booktabs}. +} \label{tab:table} +\end{table} + +\DescribeEnv{panels} +\DescribeMacro{\panel} +The |panels| environment makes use of the |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|. +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 |booktabs| \cite{booktabs} and |multirow| \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}. + +\DescribeMacro{\graphic} +\DescribeMacro{\graphics} +The |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). +If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}. + +\subsection{Bibliography} + +\DescribeMacro{\bibliography} +\DescribeMacro{\printbibliography} +The |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. +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. + +| \article{|\meta{key1}|,|\\ +| |\dots|,|\\ +| relatedtype="erratum",|\\ +| related="|\meta{key2}|",|\\ +| }|\\ +| \article{|\meta{key2}|,|\\ +| |\dots|,|\\ +| }| + +\section{Conclusion} + +The |hep-paper| package provides a matching selection of preloaded packages and additional macros enabling the user to focus on the content instead of the layout by reducing the amount of manual tasks. +The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. + +\DescribeMacro{arxiv-collector} +\nolinkurl{arxiv.org} \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv. +The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures). + +% \ifshort +\printbibliography + +\end{document} +% +% +% \fi +% +% \StopEventually{ +% \printbibliography +% \PrintChanges +% } +% +% \addtocontents{toc}{\protect\clearpage} +% \clearpage +% \appendix +% +% \ifshort +%<*package> +% \fi +% +% \section{Options} +% +% Load the |pdftexcmds| \cite{pdftexcmds} and |kvoptions| \cite{kvoptions} packages and define a |hep| namespace. +% \begin{macrocode} +\RequirePackage{pdftexcmds} +\RequirePackage{kvoptions} +\SetupKeyvalOptions{ + family=hep, + prefix=hep@ +} +% \end{macrocode} +% +% \begin{macro}{paper} +% Define a |paper=|\meta{size} option. +% Make A4 paper the default. +% \begin{macrocode} +\DeclareStringOption[a4]{paper} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{font} +% Define a |font=|\meta{size} option. +% Make \unit[11]{pt} the default font size. +% \begin{macrocode} +\DeclareStringOption[11pt]{font} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{lang} +% Define the |lang| option, which takes the values provided by the |babel| package \cite{babel}. +% Make |british| the default language. +% \begin{macrocode} +\DeclareStringOption[british]{lang} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{sansserif} +% Define the option pair |serif| and |sansserif| controling the font shape of the whole document. +% \begin{macrocode} +\DeclareBoolOption[true]{serif} +\DeclareComplementaryOption{sansserif}{serif} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{parskip} +% Define the option pair |parindent| and |parskip| controlling the separation of paragraphs. +% \begin{macrocode} +\DeclareBoolOption[true]{parindent} +\DeclareComplementaryOption{parskip}{parindent} +% \end{macrocode} +% \end{macro} +% +% \subsection{Deactivation} +% +% \begin{macro}{defaults} +% Define the |defaults| option which deactivates the |paper| and |font| options and prevents the change of the class defaults by this package. +% \begin{macrocode} +\DeclareBoolOption[false]{defaults} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{title} +% Provide the option |title| for deactivating redefinition of title macros. +% \begin{macrocode} +\DeclareBoolOption[true]{title} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{bibliography} +% Provide the option |bibliography| for passing a |style| string to the |biblatex| package \cite{biblatex} or disabling the automatic loading of |biblatex|. +% \begin{macrocode} +\DeclareStringOption[numeric-comp]{bibliography} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{glossaries} +% Provide the option |glossaries| able to turn of the use of the |glossaries| package \cite{glossaries}. +% \begin{macrocode} +\DeclareBoolOption[true]{glossaries} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{references} +% Provide the option |references| for preventing the |cleveref| package from being loaded redefinitions of reference macros. +% \begin{macrocode} +\DeclareBoolOption[true]{references} +% \end{macrocode} +% \end{macro} +% +% \subsection{Compatibility} +% +% \begin{macro}{beamer} +% Provide the option |beamer| for \software{beamer} \cite{beamer} compatibility mode. +% \begin{macrocode} +\DeclareBoolOption[false]{beamer} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{revtex} +% Provide the option |revtex| for REV\hologo{TeX} \cite{revtex} compatibility mode. +% \begin{macrocode} +\DeclareBoolOption[false]{revtex} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{jhep} +% Provide the option |jhep| for |JHEP| \cite{jhep} compatibility mode. +% \begin{macrocode} +\DeclareBoolOption[false]{jhep} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{jcap} +% Provide the option |jcap| for |JCAP| \cite{jcap} compatibility mode. +% \begin{macrocode} +\DeclareBoolOption[false]{jcap} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{pos} +% Provide the option |pos| for |PoS| compatibility mode. +% \begin{macrocode} +\DeclareBoolOption[false]{pos} +% \end{macrocode} +% \end{macro} +% +% \subsection{Reactivation} +% +% \begin{macro}{eqnarray} +% Provide the option |eqnarray| for reactivating the |eqnarray| environment. +% \begin{macrocode} +\DeclareBoolOption[false]{eqnarray} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{manualplacement} +% Provide the |manualplacement| option for reactivating the manual placement of floats. +% \begin{macrocode} +\DeclareBoolOption[false]{manualplacement} +% \end{macrocode} +% \end{macro} +% +% \subsection{Process options} +% +% \begin{macrocode} +\ProcessKeyvalOptions* +% \end{macrocode} +% +% \subsection{Set compatibility} +% +% Set the |pos| compatibility options. +% \begin{macrocode} +\@ifclassloaded{PoS}{\setkeys{hep}{pos}}{} +\ifhep@pos + \setkeys{hep}{defaults, title=false} + \DeclareRobustCommand\boldmath{\@nomath\boldmath\mathversion{bold}} +\fi +% \end{macrocode} +% +% Set the |beamer| compatibility options. +% \begin{macrocode} +\@ifclassloaded{beamer}{\setkeys{hep}{beamer}}{} +\ifhep@beamer + \setkeys{hep}{defaults, title=false, references=false, sansserif} +\fi +% \end{macrocode} +% +% Set the |revtex| compatibility options. +% \begin{macrocode} +\@ifclassloaded{revtex4}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-1}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-2}{\setkeys{hep}{revtex}}{} +\ifhep@revtex + \setkeys{hep}{defaults, title=false, bibliography=false, lang=american} +\fi +% \end{macrocode} +% +% Define the SISSA conditional. +% \begin{macrocode} +\@ifpackageloaded{jheppub}{\setkeys{hep}{jhep}}{} +\@ifpackageloaded{jcappub}{\setkeys{hep}{jcap}}{} +\newif\ifhep@sissa +\ifhep@jhep\hep@sissatrue +\else + \ifhep@jcap\hep@sissatrue + \else\hep@sissafalse + \fi +\fi +% \end{macrocode} +% +% Set the SISSA compatibility options. +% \begin{macrocode} +\ifhep@sissa + \setkeys{hep}{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} +\fi +% \end{macrocode} +% Set the JHEP compatibility options. +% \begin{macrocode} +\ifhep@jhep + \voffset 0in + \hoffset 0in +\fi +% \end{macrocode} + +% \section{Text} +% +% Load the |alphabeta| package \cite{alphabeta} first in order to archive the correct behaviour. +% The |alphabeta| package provides upright Greek letters in text mode. +% \begin{macrocode} +\RequirePackage{alphabeta} +% \end{macrocode} +% +% Set the whole text to sans serif if requested. +% Load the |sansmathfonts| package \cite{sansmathfonts} first. +% Although, most fonts will later be overwritten by the |lmodern| package \cite{lmodern} some mathematical objects are ensured to be in sans serif. +% \begin{macrocode} +\ifhep@serif\else + \RequirePackage{sansmathfonts} + \renewcommand\familydefault{\sfdefault} +\fi +% \end{macrocode} +% +% \begin{macro}{\ifxetexorluatex} +% Load the |ifluatex| \cite{ifluatex} and |ifxetex| \cite{ifxetex} packages. +% Define the |\ifxetexorluatex| conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}. +% \begin{macrocode} +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} +\newif\ifxetexorluatex +\ifxetex\xetexorluatextrue +\else + \ifluatex\xetexorluatextrue + \else\xetexorluatexfalse + \fi +\fi +% \end{macrocode} +% \end{macro} +% +% Pick the correct font encoding depending on the engine used and load the |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 coputer modern fonts \cite{fix-cm}, load the |lmodern| font \cite{lmodern}, the |textcomp| extension \cite{textcomp}, and the |microtype| font optimization \cite{microtype}. +% \begin{macrocode} +\RequirePackage{fix-cm} +\RequirePackage{lmodern} +\RequirePackage{textcomp} +\RequirePackage{microtype} +% \end{macrocode} +% +% Define bold and sans serif small caps font shapes using the fontspec package \cite{fontspec}. +% The font abbreviations are +% \begin{description}[nosep] +% \item[lmr] Latin modern roman font +% \item[lmss] Latin modern sans serif font +% \item[cmss] Computer modern sans serif font +% \item[xcmss] Extended computer modern sans serif font (from the |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} +\ifxetexorluatex + \RequirePackage{fontspec} + \setmainfont{Latin Modern Roman}[ + UprightFeatures={SmallCapsFont={[lmromancaps10-regular.otf]}}, + BoldFeatures={ + SmallCapsFeatures={Letters=SmallCaps}, + SmallCapsFont={[cmunbx.otf]} + } + ] + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{% + <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% + }{} +\else + \rmfamily + \DeclareFontShape{\hep@encoding}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{} + \sffamily + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} +\fi +% \end{macrocode} + +% Load the |inputenc| \cite{inputenc} package. +% \begin{macrocode} +\ifxetexorluatex\else + \RequirePackage[utf8]{inputenc} +\fi +% \end{macrocode} +% +% Load the |babel| \cite{babel} package for hyphenation and the recommended |csquotes| package \cite{csquotes}. +% \begin{macrocode} +\RequirePackage[\hep@lang]{babel} +\RequirePackage{csquotes} +% \end{macrocode} +% +% \begin{macro}{\underline} +% Load the |ulem| package \cite{ulem} for hyphenable underlined text. +% \begin{macrocode} +\RequirePackage[normalem]{ulem} +\let\underline\uline +% \end{macrocode} +% \end{macro} +% +% \subsection{Font size} \label{sec:font size} +% +% Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option. +% \begin{macrocode} +\ifhep@defaults\else + \def\hep@remove@pt#1pt{#1} + \edef\hep@pt@size{\expandafter\hep@remove@pt\hep@font} + \let\small\relax + \let\footnotesize\relax + \let\scriptsize\relax + \let\tiny\relax + \let\large\relax + \let\Large\relax + \let\LARGE\relax + \let\huge\relax + \let\Huge\relax + \input{size\hep@pt@size.clo} +\fi +% \end{macrocode} + +% \subsection{Text macros} +% +%\begin{macro}{\vs} +% Load the |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 |foreign| package relies on the |xspace| package \cite{xspace}. +% Ensure that |\xspace| is compatible with the |\enquote| macro from the |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 |relsize| package \cite{relsize}. +% \begin{macrocode} +\RequirePackage{relsize} +\newcommand{\software}[2][\hspace{-\fontdimen2\font}]{% + {\smaller\textsc{#2}~#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\online} +% Define the |\online|\marg{text}\marg{url} macro combining the features of the |\href| and the |\url| macros. +% \begin{macrocode} +\newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} +% \end{macrocode} +% \end{macro} + +% \subsection{Lists} +% +% Load the |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} + +% \section{Geometry} +% +% Load the |geometry| package \cite{geometry} and adjust the text width and height to the values of the |a4wide| package \cite{a4wide}. +% This step must happen after readjusting the font size in \cref{sec:font size}. +% \begin{macrocode} +\ifhep@defaults\else + \RequirePackage{geometry} + \geometry{% + \hep@paper paper, + hscale=.75, + vscale=.8, + vmarginratio=3:4, + includeheadfoot + } +\fi +% \end{macrocode} + +%\begin{macro}{\useparskip} +%\begin{macro}{\useparindent} +% Load the |parskip| package \cite{parskip} if requested and provide two commands switching between the two paragraph modes. +% \begin{macrocode} +\ifhep@parindent\else +\RequirePackage{parskip} +\newcommand{\useparskip}{% + \setlength{\parskip}{.5\baselineskip plus 2pt}% + \setlength{\parindent}{0pt}% +} +\newcommand{\useparindent}{% + \setlength{\parskip}{0pt}% + \setlength{\parindent}{15pt}% + \if@twocolumn\setlength\parindent{1em} + \else\setlength\parindent{1.5em} + \fi +} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} + +% \section{Math} +% +% Load the |mathtools| package \cite{mathtools} which loads the |amsmath| package \cite{amsmath}. +% Additionally, load the |amssymb| package \cite{amsfonts} which provides further math symbols and also loads the |amsfont| package \cite{amsfonts}. +% Allow page breaks within equations if necessary. +% \begin{macrocode} +\RequirePackage{mathtools} +\RequirePackage{amssymb} +\allowdisplaybreaks[1] +% \end{macrocode} + +% \begin{macro}{\diag} +% \begin{macro}{\sgn} +% Provide the |\diag| and |\sgn| operators +% \begin{macrocode} +\DeclareMathOperator{\diag}{diag} +\DeclareMathOperator{\sgn}{sgn} +% \end{macrocode} +% \end{macro} +% \end{macro} + +% \begin{macro}{\mathdef} +% Define the |\mathdef|\marg{name}\oarg{arguments}\marg{macro} macro which (re-)defines macros in math mode only. +% This macro is implemented using the |xparse| package \cite{xparse}. +% \begin{macrocode} +\RequirePackage{xparse} +\DeclareDocumentCommand{\mathdef}{mO{0}m}{% + \expandafter\let\csname text\string#1\endcsname=#1 + \expandafter\newcommand\csname math\string#1\endcsname[#2]{#3} + \DeclareRobustCommand#1{% + \ifmmode + \expandafter\let\expandafter\next\csname math\string#1\endcsname + \else + \expandafter\let\expandafter\next\csname text\string#1\endcsname + \fi + \next + }% +} +% \end{macrocode} +% \end{macro} + +% \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 |ulem| package \cite{ulem}. +% Extend it as a math macro with the original definition from |amsmath| \cite{amsmath}. +% \begin{macrocode} +\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}{\left} +% \begin{macro}{\right} +% Load the |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}{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{Math fonts} +% +% \begin{macro}{\mathbf} +% Load the |bm| package \cite{bm} for superior boldmath after limiting the number of allocated math alphabets. +% Make math symbols bold whenever they appear in bold macros such as |\section|\marg{text}. +% \begin{macrocode} +\ifhep@serif\providecommand{\bmmax}{2}\else\providecommand{\bmmax}{1}\fi +\RequirePackage{bm} +\let\mathbf\bm +\g@addto@macro\bfseries{\boldmath} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mathsf} +% Load the |fixmath| package \cite{fixmath} which ensures that upper Greek letters in math mode are italic. +% Ensure that also math mode is sans serif using the |sfmath| package \cite{sfmath} if the sans serif option is used. +% Ensure that |\mathsf| is italic as well as sans serif and sans for sans and sans serif documents, respectively. +% The font abbreviations are +% \begin{description}[nosep] +% \item[OML] \hologo{TeX} math italic font encoding +% \item[cmm] Computer modern math italic font +% \item[cmbr] Computer modern bright font +% \item[bx] Bold extended series +% \item[m] Medium weight and width series +% \item[it] Italic font shape +% \end{description} +% \begin{macrocode} +\ifhep@serif + \RequirePackage{fixmath} + \newcommand\hep@sf@font{cmbr} +\else + \RequirePackage[slantedGreek]{sfmath} + \RequirePackage{sansmathfonts} + \newcommand\hep@sf@font{cmm} +\fi +\SetMathAlphabet{\mathsf}{normal}{OML}{\hep@sf@font}{m}{it} +\SetMathAlphabet{\mathsf}{bold}{OML}{\hep@sf@font}{bx}{it} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mathscr} +% Load the |mathrsfs| package for the |\mathscr| math script font. +% \begin{macrocode} +\DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mathbb} +% Load the |dsfont| package \cite{dsfont} and adjust the |\mathbb| math blackboard style font according to the (sans-) serif option. +% \begin{macrocode} +\ifhep@serif + \newcommand\hep@bb@font{dsrom} +\else + \newcommand\hep@bb@font{dsss} +\fi +\SetMathAlphabet{\mathbb}{normal}{U}{\hep@bb@font}{m}{n} +% \end{macrocode} +% \end{macro} + +% \subsection{Physics notation} +% +% \begin{macro}{\cancel} +% \begin{macro}{\slashed} +% \begin{macro}{\unit} +% Load the |physics| package \cite{physics} which provides macros useful for publications in physics. +% Additionally, load the |cancel| \cite{cancel} and |slashed| \cite{slashed} packages which provide the |\cancel| and |\slashed| macros. +% Finally, load the |units| package \cite{units} which provides the |\units| and |\nicefrac| macros. +% \begin{macrocode} +\RequirePackage{physics} +\RequirePackage{cancel} +\RequirePackage{slashed} +\RequirePackage{units} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \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}{\d} +% Provide a differential |\d|. +% \begin{macrocode} +\AtBeginDocument{\mathdef{\d}{\dd}} +% \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]{% + \raisebox{1pt}{\ensuremath{\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} + +% \section{Floats} +% +% 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\@figure@\figure% +\let\@end@figure@\endfigure% +\let\@table@\table% +\let\@end@table@\endtable% +\ifhep@manualplacement% + \renewenvironment{figure}[1][tbp]{% + \@figure@[#1]\centering% + }{\@end@figure@}% + \renewenvironment{table}[1][tbp]{% + \@table@[#1]\centering% + }{\@end@table@}% +\else% + \renewenvironment{figure}[1][]{% + \@figure@\centering% + }{\@end@figure@}% + \renewenvironment{table}[1][]{% + \@table@\centering% + }{\@end@table@} +\fi% +% \end{macrocode} +% \end{environment} +% \end{environment} + +% \subsection{Sub-floats} +% +% \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\hep@journalfalse + \fi + \fi +\fi +% \end{macrocode} +% \end{macro} +% +% Prevent the |caption| package \cite{caption} from complaining about the journal classes and packages. +% \begin{macrocode} +\ifhep@journal + \setlength\abovecaptionskip{\f@size\p@} + \setlength\belowcaptionskip{0\p@} + \long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \sbox\@tempboxa{#1: #2}% + \ifdim \wd\@tempboxa >\hsize + #1: #2\par + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip% + } +\fi +% \end{macrocode} +% +% Load the |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} +\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{\panel}[1][b]{% + \endminipage\hfill\begin@subcaption@minipage[#1]{\linewidth/#2}% + }% + \begin@subcaption@minipage[#1]{\linewidth/#2}% +% \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} + +% Reajust the captions to the revtex class using the |ragged2e| package \cite{ragged2e}. +% \begin{macrocode} +\ifhep@revtex + \RequirePackage{ragged2e} + \DeclareCaptionFormat{revtex}{#1#2\justifying{#3}} + \captionsetup{font=small, format=revtex} + \captionsetup[sub]{font=footnotesize, format=plain} + \renewcommand{\figurename}{Figure} + \renewcommand{\tablename}{Table} +\fi +% \end{macrocode} + +% \subsection{Tables} +% +% \begin{environment}{tabular} +% Enhance tabulars with the |booktabs| and |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 |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} + +% \section{Title page} +% +% Begin of |title| conditional. +% \begin{macrocode} +\ifhep@title +% \end{macrocode} +% +% \begin{macro}{\date} +% Allow absent date field. +% \begin{macrocode} +\date{} +% \end{macrocode} +% \end{macro} +% +% \subsection{Authors} +% +% \begin{macro}{\author} +% Allow absent author field. +% \begin{macrocode} +\author{} +% \end{macrocode} +% \end{macro} +% +% Enable the handling of multiple authors with different affiliations using the |authblk| package \cite{authblk}. +% \begin{macrocode} +\RequirePackage{authblk} +\renewcommand\Affilfont{\footnotesize} +% \end{macrocode} +% +% \begin{macro}{\email} +% Define a macro for typesetting emails. +% Redefine this macro to place the email address in a footnote if called from within the |\author| macro |\author{|$\langle name\rangle$ |\email{|$\langle email\rangle$|}}|. +% \begin{macrocode} +\newcommand{\email}[1]{\online{mailto:#1}{#1}} +\let\hep@author\author +\def\author{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \hep@author +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\affiliation} +% Define the |\affiliation| macro, ensure that linebreaks happen after a comma. +% \begin{macrocode} +\newcommand\active@comma{,\penalty-5\relax} +\newcommand\cat@comma@active{\catcode`\,\active} +{\cat@comma@active\gdef,{\active@comma}} +\newcommand\@affil[1]{% + \endgroup\@flushglue=0pt plus .5\linewidth\affil{#1}% +} +\def\@affil@opt[#1]#2{% + \endgroup\@flushglue=0pt plus .5\linewidth\affil[#1]{#2}% +} +\DeclareRobustCommand\@affiliation{\@ifnextchar[{\@affil@opt}{\@affil}} +\newcommand{\affiliation}{\begingroup\cat@comma@active\@affiliation} +% \end{macrocode} +% \end{macro} + +% \subsection{Preprint} +% +% \begin{macro}{\preprint} +% Define the |\preprint| macro using the |varwidth| package \cite{varwidth}. +% \begin{macrocode} +\let\@preprint\relax +\newcommand\preprint[1]{\long\gdef\@preprint{#1}} +\RequirePackage{varwidth} +\newcommand{\@preprint@box}{% + \begin{varwidth}{\textwidth}% + \textsc{\small\@preprint}% + \end{varwidth}% +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\maketitle} +% Places a preprint number in the top right corner of the title page using the |atbegshi| \cite{atbegshi} and |picture| \cite{picture} packages. +% \begin{macrocode} +\RequirePackage{atbegshi} +\RequirePackage{picture} +\let\hep@maketitle\maketitle +\renewcommand{\maketitle}{% + \hep@maketitle% + \AtBeginShipoutFirst{% + \put( + \textwidth+\oddsidemargin-\widthof{\@preprint@box}, + -2pt-\topmargin-\heightof{\@preprint@box} + ){\normalfont\@preprint@box} + } +} +% \end{macrocode} +% \end{macro} + +% \subsection{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} +% End of |title| conditional. +% \begin{macrocode} +\fi +% \end{macrocode} + +% \section{Bibliography} +% +% Check if bibliography management is requested. +% \begin{macrocode} +\ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else +% \end{macrocode} +% +% \begin{macro}{\bibliography} +% Load the |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, + giveninits=true +} +% \end{macrocode} +% +% \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} +% +% \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]{ + \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}{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% + \textsc{\small\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} +% +% +% End check for bibliography option. +% \begin{macrocode} +\fi +% \end{macrocode} + +% \section{Hyperlinks, Footnotes and References} \label{sec:hyperlinks} +% +% Load the |hyperref| package \cite{hyperref} enable Unicode encoding and hide links. +% +% \begin{macrocode} +\RequirePackage{hyperref} +\hypersetup{ + pdfencoding=auto, psdextra, + hidelinks, linktoc=all, breaklinks=true, + pdfcreator={}, pdfproducer={} +} +% \end{macrocode} +% Set the \PDF meta data according to the paper information and ensure that unnecessary information is suppressed. +% +% \begin{macrocode} +\pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} +\AtBeginDocument{ + \pdfstringdefDisableCommands{\let\ensuremath\@gobble} + \pdfstringdefDisableCommands{\let\mathsurround\@gobble} + \pdfstringdefDisableCommands{\let\unskip\@gobble} + \pdfstringdefDisableCommands{\let\thanks\@gobble} + \pdfstringdefDisableCommands{\let\footnote\@gobble} + \pdfstringdefDisableCommands{\let\\\@gobble} +} +\ifhep@revtex + \AtBeginShipout{\hypersetup{pdftitle={\@title}}} +\else + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \fi +\fi +\ifhep@title + \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} +\else + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \fi +\fi +% \end{macrocode} + +% \subsection{Footnotes} +% +% Place a hyperlink from the footnote back to its referencing label using the |footnotebackref| package \cite{footnotebackref}. +% \begin{macrocode} +\def\BackrefFootnoteTag{} +\RequirePackage{footnotebackref} +% \end{macrocode} +% +% \begin{macro}{\footnote} +% Ensure that no spaces appear before the footmark or at the beginning of the footnote. +% \begin{macrocode} +\let\@foot@note\footnote +\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} +% \end{macrocode} +% \end{macro} + +% \subsection{References} +% +% Begin of |references| conditional +% \begin{macrocode} +\ifhep@references +% \end{macrocode} +% +% \begin{macro}{\cref} +% Improve reference using the |cleveref| package \cite{cleveref}. +% +% \begin{macrocode} +\RequirePackage[noabbrev, nameinlink]{cleveref} +\newcommand{\creflastconjunction}{, and\nobreakspace} +\crefname{enumi}{point}{points} +\crefname{inlinelisti}{point}{points} +% \end{macrocode} +% \end{macro} +% +%\begin{macro}{\no@break@before} +% Define a macro able to prevent line breaks. +% \begin{macrocode} +\newcommand\no@break@before{% + \relax\ifvmode\else% + \ifhmode% + \ifdim\lastskip > 0pt% + \relax\unskip\nobreakspace% + \fi% + \fi% + \fi% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ref} +% Adjust |\ref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple references at once. +% \begin{macrocode} +\let\hep@ref\ref +\AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}} +% \end{macrocode} +% \end{macro} +% ! Bug ! in equations the additional brackets from the cleveref macro conflict with the traditional |(\ref|\marg{key}|)| approach + +% \begin{macro}{\eqref} +% Adjust |\eqref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple equations at once. +% \begin{macrocode} +\renewcommand\eqref{\no@break@before\labelcref} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\subref} +% Adjust |\subref|\marg{key} in order to prevent preceding line breaks. +% \begin{macrocode} +\let\hep@subref\subref +\renewcommand\subref{\no@break@before\hep@subref} +\renewcommand*\subcaption@ref[2]{\begingroup% + \caption@setoptions{sub}% + \subcaption@reffmt\p@subref{\hep@ref#1{sub@#2}}% +\endgroup} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\subcref} +% Provide the |\subcref| macro. +% \begin{macrocode} +\newcommand{\subcref}[1]{\cref{sub@#1}} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\eqcrefname} +% Define the |\eqcrefname| macro for named equation types. +% \begin{macrocode} +\NewDocumentCommand{\eqcrefname}{mmo}{ + \crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}} + \creflabelformat{#1}{(##2##1##3)} +} +% \end{macrocode} +% \end{macro} + +% \begin{macro}{\labelcrefrange} +% Define the missing |\labelcrefrange|\marg{key1}\marg{key2} macro. +% \begin{macrocode} +\DeclareRobustCommand{\labelcrefrange}[2]{% + \@crefrangenostar{labelcref}{#1}{#2}% +} +% \end{macrocode} +% \end{macro} +% +% End of |references| conditional +% \begin{macrocode} +\fi +% \end{macrocode} + +% \subsection{Citations} +% +% \begin{macro}{\cite} +% Adjust |\cite|\marg{key} in order to prevent preceding line breaks. +% \begin{macrocode} +\let\hep@cite\cite +\renewcommand\cite{\no@break@before\hep@cite} +% \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} +% +% Acronyms are implemented with the |glossaries-extra| package \cite{glossaries-extra} which is an extension of the |glossaries| package \cite{glossaries} and must be loaded after the |hyperref| pacakge in \cref{sec:hyperlinks}. +% \begin{macrocode} +\ifhep@glossaries +\RequirePackage[nostyles]{glossaries-extra} +% \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} +\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}% + }% +}} +% \end{macrocode} + +% \begin{macro}{\begin@sentence} +% Mark the beginning of a paragraph as if it would follow a full stop using the |everyhook| package \cite{everyhook}. +% \begin{macrocode} +\RequirePackage[excludeor]{everyhook} +\newcommand{\begin@sentence}{1001} +\PushPostHook{par}{{\spacefactor=\begin@sentence}} +% \end{macrocode} +% \end{macro} + +% \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} + +% \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} + +% \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} +\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{% + \if@begin@of@sentence{% + \ifglsused{#3}{\cgls{#3}}{\cGls{#3}}% + }{\cgls{#3}}% + \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{% + \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}% + \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} +% +% \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{% + \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}% + } +% \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{% + \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% + \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{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}% + }% +} +% \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} + \expandafter\newcommand\csname#3\endcsname{% + \if@begin@of@sentence{\MakeUppercase#5}{#5}% + \IfBooleanTF{#4}{}{\@\xspace}% + } +% \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{% + \if@begin@of@sentence{% + \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% + }{% + \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}% + } +% \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. +% \begin{macrocode} +\newcommand{\resetacronym}[1]{\protect\glsreset{#1}} +\newcommand{\dummyacronym}[1]{\protect\glsunset{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{abstract} +% Adjust the |abstract| environment to reset all acronym counters. +% \begin{macrocode} +\@ifundefined{endabstract}{}{% + \let\end@hep@abstract\endabstract% + \renewcommand\endabstract{\glsresetall\end@hep@abstract}% +} +% \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. +% \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% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\acronyms} +% Add a possibility to have different groups of acronyms. +% \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}% + } +} +% \end{macrocode} +% \end{macro} +% +% End of glossaries if. +% \begin{macrocode} +\fi +% \end{macrocode} +% +% \ifshort +% +%<*datamodel> +% \fi +% +% \section{Biblatex datamodel file} \label{sec:data model} +% +% \begin{macro}{collaboration} +% \begin{macro}{reportnumber} +% \begin{macro}{pmid} +% \begin{macro}{pmcid} +% \begin{macro}{pmc} +% \begin{macro}{protocollessurl} +% Define the |dbx| file containing the |hep-paper| datamodel. +% \begin{macrocode} +\DeclareDatamodelFields[type=field, datatype=literal]{ + collaboration, reportnumber, pmid, pmcid, pmc, +} +\DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} +\DeclareDatamodelEntryfields{ + collaboration, reportnumber, pmid, pmcid, pmc, protocollessurl, +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \ifshort +% +% \fi +% +% \Finale + +\endinput + +% \PrintIndex +% makeindex -s gglo.ist -o hep-paper-implementation.gls hep-paper-implementation.glo +% makeindex -s gglo.ist -o hep-paper-implementation.ind hep-paper-implementation.idx + +% \begin{macro}{\refstepcounter@...} +% Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|. +% \begin{macrocode} +% \def\refstepcounter@noarg#1{% +% \cref@old@refstepcounter{#1}% +% \cref@constructprefix{#1}{\cref@result}% +% \@ifundefined{cref@#1@alias}% +% {\def\@tempa{#1}}% +% {\def\@tempa{\csname cref@#1@alias\endcsname}}% +% \protected@edef\cref@currentlabel{% +% [\@tempa][\arabic{#1}][\cref@result]% +% \noexpand\@currentlabel% +% }% changed +% } +% +% \def\refstepcounter@optarg[#1]#2{% +% \cref@old@refstepcounter{#2}% +% \cref@constructprefix{#2}{\cref@result}% +% \@ifundefined{cref@#1@alias}% +% {\def\@tempa{#1}}% +% {\def\@tempa{\csname cref@#1@alias\endcsname}}% +% \protected@edef\cref@currentlabel{% +% [\@tempa][\arabic{#2}][\cref@result]% +% \noexpand\@currentlabel% changed +% }% +% } +% % \end{macrocode} +% % \end{macro} +% +% +% \usepackage{contour} +% \renewcommand{\ULdepth}{1.8pt} +% \contourlength{0.8pt} +% \newcommand{\myuline}[1]{% +% \uline{\phantom{#1}}\llap{\contour{white}{#1}}% +% } + +% \begin{macro}{\mathpzc} +% Define the |\mathpzc| math script font based on the Zapf Chancery PostScript font. +% \begin{macrocode} +% \DeclareFontFamily{OT1}{pzc}{} +% \DeclareFontShape{OT1}{pzc}{m}{it}{<-> s * [1.15] pzcmi7t}{} +% \DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it} +% \end{macrocode} +% \end{macro} diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx b/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx deleted file mode 100644 index 5c9841bc6a7..00000000000 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx +++ /dev/null @@ -1,2116 +0,0 @@ -% \iffalse meta-comment -% -% Copyright (C) 2019-2020 by Jan Hajer -% ----------------------------------- -% -% 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. -% -% \fi -% -% \iffalse -% -%\NeedsTeXFormat{LaTeX2e}[2005/12/01] -%\ProvidesPackage{hep-paper}[2020/05/01 v1.3 Publications in High Energy Physics] -%\ProvidesFile{hep-paper.dbx}[2020/05/01 v1.3 HEP-Paper biblatex data model] -% -%<*driver> - -\documentclass{ltxdoc} - -\MacroIndent=1.5em - -% \makeatletter -% \newenvironment{decl}[1][]% -% {\par\small\addvspace{4.5ex plus 1ex}% -% \vskip -\parskip -% \ifx\relax#1\relax -% \def\@decl@date{}% -% \else -% \def\@decl@date{\NEWfeature{#1}}% -% \fi -% \noindent\hspace{-\leftmargini}% -% \begin{tabular}{|l|}\hline\ignorespaces}% -% {\\\hline\end{tabular}\nobreak\@decl@date\par\nobreak -% \vspace{2.3ex}\vskip -\parskip} -% \makeatother - -\usepackage[parskip]{hep-paper} - -\bibliography{bibliography} - -\acronym{PDF}{portable document format} - -\usepackage{hologo} -\usepackage{multicol} - -\usepackage{titletoc} -\titlecontents{section}[0em]{\medskip\bfseries}{\thecontentslabel\hspace{.8em}}{}{\hfill\contentspage} - -\newenvironment{columns}[1][.5]{% - \begin{minipage}[t]{\linewidth}% - \begin{minipage}[t]{#1\linewidth} - \newcommand{\column}{% - \end{minipage}% - \begin{minipage}[t]{\linewidth-#1\linewidth}% - }% -}{\end{minipage}\end{minipage}} - -\EnableCrossrefs -\CodelineIndex -\RecordChanges - -\begin{document} -\DocInput{hep-paper.dtx} -\end{document} - -% -% -% \fi -% -% \CheckSum{1140} -% -% \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 -% Lower-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 -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \changes{v1.0}{2019/01/01}{Initial version of the style file} -% \changes{v1.1}{2020/01/01}{Transition to documented \hologo{LaTeX} source file} -% \changes{v1.2}{2020/03/01}{Introduction of package options} -% \changes{v1.3}{2020/05/01}{Inclusion of JHEP and JCAP package options, fix incompatibility with recent subcaption package version, move biblatex datamodel into its own file} -% -% \GetFileInfo{hep-paper.sty} -% -% \DoNotIndex{\,,\@} -% \DoNotIndex{\@affiliation,\@affil@opt,\@affil} -% -% \title{The |hep-paper| package\thanks{This document corresponds to \protecting{|hep-paper|}~\fileversion.}} -% \author{Jan Hajer \email{jan.hajer@uclouvain.be}} -% \affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium} -% \preprint{Preprint-Number} -% \date{\normalfont\filedate} -% -% \maketitle -% -% \begin{abstract} -% 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. -% \end{abstract} -% -% \clearpage\tableofcontents\clearpage -% -% \newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} -% -% \section{Introduction} -% -% For usual publications it is enough to load additionally to the |article| class without optional arguments only the |hep-paper| package \cite{hep-paper}. -% -% | \documentclass{article}|\\ -% | \usepackage{hep-paper}| -% -% The most notable changes after loading the |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 set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}. -% Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. -% Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. -% -% \subsection{Options} -% -% \DescribeMacro{paper} -% The |paper=|\meta{format} option loads the specified paper format. -% The possible \meta{formats} are: -% |a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|, -% |b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, -% |c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, -% |ansia|, |ansib|, |ansic|, |ansid|, |ansie|, -% |letter|, |executive|, |legal|. -% -% \DescribeMacro{font} -% The |font=|\meta{size} option loads the specified font size. -% The possible \meta{sizes} are: -% |8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|. -% -% \DescribeMacro{defaults} -% The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. -% -% \DescribeMacro{lang} -% The |lang|=\meta{name} option switches the document language to the chosen value. -% The possible values are given by the |babel| package \cite{babel}. -% The default is |british|. -% -% \DescribeMacro{parskip} -% The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. -% The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. -% \footnote{The |parskip| option is used for this document.} -% -% \DescribeMacro{sansserif} -% The |sansserif| option switches the document including math to sans serif font shape. -% -% \DescribeMacro{title} -% The |title=false| option deactivates the title page adjustments. -% -% \DescribeMacro{manualplacement} -% The |manualplacement| option reactivates manual float placement. -% -% \DescribeMacro{bibliography} -% The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|. -% Otherwise the \meta{key} is passed as |style| string to the |biblatex| package. -% -% \DescribeMacro{glossaries} -% The |glossaries=false| option deactives the use of the |glossaries| package \cite{glossaries}. -% -% \DescribeMacro{jhep} -% The |jhep| option activates the |JHEP| \cite{jhep} compatibility mode. -% -% \DescribeMacro{jcap} -% The |jcap| option activates the |JCAP| \cite{jcap} compatibility mode. -% -% \DescribeMacro{revtex} -% The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode. -% -% \DescribeMacro{pos} -% The |pos| option activates the |PoS| compatibility mode. -% -% \DescribeMacro{eqnarray} -% The |eqnarray| option reactivates the depreciated |eqnarray| environment. -% -% \section{Macros and environments} -% -% \subsection{Title page} -% -% \DescribeMacro{\author} -% \DescribeMacro{\affiliation} -% \DescribeMacro{\email} -% In order to facilitate multiple authors with different affiliations the |authblk| package \cite{authblk} is loaded. -% The following lines add \eg two authors with different affiliations -% -% | \author[1]{Author one \email{Email one}}|\\ -% | \affiliation[1]{Affiliation one}|\\ -% | \author[2]{Author two \email{Email two}}|\\ -% | \affiliation[1,2]{Affiliation two}| -% -% \DescribeMacro{\title} -% The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. -% -% \DescribeMacro{\preprint} -% The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. -% -% \DescribeEnv{abstract} -% The |abstract| environment is adjusted to not start with an indentation. -% -% \subsection{Text} -% -% Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package. -% \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 |"| instead of the pair |``| and |''|, respectively. -% -% \DescribeMacro{\eg} -% \DescribeMacro{\vs} -% The |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} \marg{text} \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}. -% -% The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. -% -% \DescribeMacro{inlinelist} -% \begin{columns} -% |The three main points are| -% -% |\begin{inlinelist}| -% -% | \item one| -% -% | \item two| -% -% | \item three| -% -% |\end{inlinelist}| -% \column -% The three main points are -% \begin{inlinelist} -% \item one -% \item two -% \item three -% \end{inlinelist} -% \end{columns} -% -% \DescribeMacro{enumdescript} -% \begin{columns}[.6] -% |\begin{enumdescript}[label=\Roman*)]| -% -% | \item{First} one| -% -% | \item{Second} two| -% -% | \item{Third} three| -% -% |\end{enumdescript}| -% \column -% \begin{enumdescript}[label=\Roman*)] -% \item{First} one -% \item{Second} two -% \item{Third} three -% \end{enumdescript} -% \end{columns} -% -% \DescribeMacro{\textsc} -% A sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}. -% -% \DescribeMacro{\underline} -% \DescribeMacro{\overline} -% The |\underline| macro is redefined to allow linebreaks using the |soul| package \cite{soul}. -% The |\overline| macro is extended to also \overline{overline} text outside of math environments. -% -% \DescribeMacro{\useparskip} -% \DescribeMacro{\useparindent} -% If the |parskip| option is activated the |\useparindent| macro switches back the usual parindent mode, while the |\useparskip| macro switches to the parskip mode. -% -% \subsubsection{References and footnotes} -% -% \DescribeMacro{\cref} -% References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{Figure 1}. -% Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}. -% -% \DescribeMacro{\cite} -% Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}. -% -% \DescribeMacro{\ref} -% \DescribeMacro{\eqref} -% \DescribeMacro{\subref} -% References are also adjusted to not start on a new line and are redefined in order to handle multiple references at once. -% -% \DescribeMacro{\footnote} -% Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. -% -% \subsubsection{Acronyms} -% -% \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 singluar |\|\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. -% Capitalization at the beginning of paragraphs and sentences is ensured. -% The |\shortacronym| and |\longacronym| macros only show 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. -% 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 |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. -% They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. -% Details about the font handling in \hologo{TeX} can be found in \cite{fntguide}. -% \DescribeMacro{\mathbf} -% Bold math, including |\mathbf| is provided by the |bm| package \cite{bm}, \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. -% This may cause trouble if bold symbols carry an additional non-implicit meaning. -% \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}$). -% The often used |\mathrm|\marg{text} and |\rm|\marg{text} macros are \emph{not} the correct tool for this purpose, as they switch to roman font shape. -% This behaviour conflicts \eg with the |sansserif| package option. -% \DescribeMacro{\mathsf} -% The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$). -% \DescribeMacro{\mathscr} -% The |\mathcal| font \ie ($\mathcal{ABCD}$) is accompanied by the |\mathscr| font \ie ($\mathscr{ABCD}$). -% \DescribeMacro{\mathbb} -% The |\mathbb| font is changed by the |bbm| \cite{bbm-macros} package and adjusted depending on the |sansserif| option \ie ($\mathbb{Ab1}${\mathversion{bold}$\mathbb{Ab1}$}). -% -% \DescribeMacro{\nicefrac} -% \DescribeMacro{\flatfrac} -% The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$. -% \DescribeMacro{\diag} -% -% A diagonal matrix operator is defined |\diag|. -% -% \DescribeMacro{\mathdef} -% The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition. -% -% \DescribeMacro{\i} -% \DescribeMacro{\d} -% The imaginary unit $\i$ and the differential $\d$ are defined using this functionality. -% -% \DescribeMacro{\numberwithin} -% 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 \hologo{AmSLaTeX} 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 should be used instead. -% -% \subsubsection{Physics} -% -% Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the |fixmath| \cite{fixmath} and |alphabeta| \cite{alphabeta} packages. -% This allows differentiations like -% \begin{align} -% \sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ , -% \label{eq:greek} -% \end{align} -% and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. -% Additionally, Greek letters can also be directly typed using Unicode. -% -% \DescribeMacro{\ev} -% \DescribeMacro{\pdv} -% \DescribeMacro{\comm} -% \DescribeMacro{\order} -% The |physics| package \cite{physics} provides additional macros such as -% \begin{align} -% &\ev{\phi} \ , -% &&\pdv[n]{f}{x} \ , -% &&\comm{A}{B} \ , -% &&\order{x^2} \ , -% &&\eval*{x}_0^\infty \ , -% &&\det(M)\ . -% \end{align} -% -% \DescribeMacro{\slashed} -% The |\slashed|\marg{character} macro from the |slashed| \cite{slashed} package allows to use the Dirac slash notation. -% -% \DescribeMacro{\overleftright} -% A better looking over left right arrow is defined \ie $\overleftright{\partial}$. -% -% \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 |units| package \cite{units} 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}}|. -% -% \subsection{Floats} -% -% \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. -% The most useful float placement is usually archived by placing the float \emph{in front} of the paragraph it is referenced in first. -% Additionally, manual float placement is deactivated but can be reactivated using the |manualplacement| package option. -% \DescribeMacro{\raggedright} -% The float environments have been adjusted to center their content. -% The usual behaviour can be reactivated using |\raggedright|. -% -% \begin{table} -% \begin{panels}{.6} -% \raggedright -% |\begin{panels}{.6}|\\ -% |code|\\ -% |\panel{.4}|\\ -% |\begin{tabular}...\end{tabular}|\\ -% |\end{panels}|\\ -% \caption{Code for this panel environment.} -% \label{tab:panels} -% \panel{.4} -% \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 \protecting{|booktabs|} and \protecting{|multirow|} packages in Panel \subref{tab:booktabs}. -% } \label{tab:table} -% \end{table} -% -% \DescribeEnv{panels} -% \DescribeMacro{\panel} -% The |panels| environment makes use of the |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|. -% 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 |booktabs| \cite{booktabs} and |multirow| \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}. -% -% \DescribeMacro{\graphic} -% \DescribeMacro{\graphics} -% The |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). -% If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}. -% -% \subsection{Bibliography} -% -% \DescribeMacro{\bibliography} -% \DescribeMacro{\printbibliography} -% The |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. -% Additionally, \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 recognized as |eprinttype|s. -% \DescribeMacro{erratum} -% Errata can be included using the |related| feature. -% -% | \article{|\meta{key1}|,|\\ -% | |\dots|,|\\ -% | relatedtype="erratum",|\\ -% | related="|\meta{key2}|",|\\ -% | }|\\ -% | \article{|\meta{key2}|,|\\ -% | |\dots|,|\\ -% | }| -% -% \section{Conclusion} -% -% The |hep-paper| package provides a matching selection of preloaded packages and additional macros enabling the user to focus on the content instead of the layout by reducing the amount of manual tasks. -% The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. -% -% \DescribeMacro{arxiv-collector} -% ArXiv.org \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv. -% The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures). -% -% \StopEventually{ -% \printbibliography -% \PrintChanges -% } -% -% \appendix -% -% \section{Options} -% -%<*package> - -% Load the |pdftexcmds| \cite{pdftexcmds} and |kvoptions| \cite{kvoptions} packages and define a |hep| namespace. -% \DoNotIndex{\RequirePackage,\SetupKeyvalOptions} -% \begin{macrocode} -\RequirePackage{pdftexcmds} -\RequirePackage{kvoptions} -\SetupKeyvalOptions{ - family=hep, - prefix=hep@ -} -% \end{macrocode} -% -% \begin{macro}{paper} -% Define a |paper=|\meta{size} option. -% Make A4 paper the default. -% \DoNotIndex{\DeclareStringOption} -% \begin{macrocode} -\DeclareStringOption[a4]{paper} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{font} -% Define a |font=|\meta{size} option. -% Make \unit[11]{pt} the default font size. -% \begin{macrocode} -\DeclareStringOption[11pt]{font} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{defaults} -% Define the |defaults| option which deactivates the |paper| and |font| options and prevents the change of the class defaults by this package. -% \DoNotIndex{\DeclareBoolOption,\ifhep@defaults} -% \begin{macrocode} -\DeclareBoolOption[false]{defaults} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{lang} -% Define the |lang| option, which takes the values provided by the |babel| package \cite{babel}. -% Make |british| the default language. -% \begin{macrocode} -\DeclareStringOption[british]{lang} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{parskip} -% Define the option pair |parindent| and |parskip| controlling the separation of paragraphs. -% \DoNotIndex{\DeclareComplementaryOption,\ifhep@parindent} -% \begin{macrocode} -\DeclareBoolOption[true]{parindent} -\DeclareComplementaryOption{parskip}{parindent} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{sansserif} -% Define the option pair |serif| and |sansserif| controling the font shape of the whole document. -% \DoNotIndex{\ifhep@serif} -% \begin{macrocode} -\DeclareBoolOption[true]{serif} -\DeclareComplementaryOption{sansserif}{serif} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{eqnarray} -% Provide the option |eqnarray| for reactivating the |eqnarray| environment. -% \DoNotIndex{\ifhep@eqnarray} -% \begin{macrocode} -\DeclareBoolOption[false]{eqnarray} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{bibliography} -% Provide the option |bibliography| for passing a |style| string to the |biblatex| package \cite{biblatex} or disabling the automatic loading of |biblatex|. -% \begin{macrocode} -\DeclareStringOption[numeric-comp]{bibliography} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{glossaries} -% Provide the option |glossaries| able to turn of the use of the |glossaries| package \cite{glossaries}. -% \DoNotIndex{\ifhep@glossaries} -% \begin{macrocode} -\DeclareBoolOption[true]{glossaries} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{manualplacement} -% Provide the |manualplacement| option for reactivating the manual placement of floats. -% \DoNotIndex{\ifhep@manualplacement} -% \begin{macrocode} -\DeclareBoolOption[false]{manualplacement} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{title} -% Provide the option |title| for deactivating redefinition of title macros. -% \DoNotIndex{\ifhep@title} -% \begin{macrocode} -\DeclareBoolOption[true]{title} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{revtex} -% Provide the option |revtex| for REV\hologo{TeX} \cite{revtex} compatibility mode. -% \begin{macrocode} -\DeclareBoolOption[false]{revtex} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{jhep} -% Provide the option |jhep| for |JHEP| \cite{jhep} compatibility mode. -% \begin{macrocode} -\DeclareBoolOption[false]{jhep} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{jcap} -% Provide the option |jcap| for |JCAP| \cite{jcap} compatibility mode. -% \begin{macrocode} -\DeclareBoolOption[false]{jcap} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{pos} -% Provide the option |pos| for |PoS| compatibility mode. -% \begin{macrocode} -\DeclareBoolOption[false]{pos} -% \end{macrocode} -% \end{macro} -% -% \subsection{Process options} -% -% \begin{macrocode} -\ProcessKeyvalOptions* -% \end{macrocode} -% -% Set the |pos| compatibility options. -% \DoNotIndex{\ifhep@pos,\setkeys,\fi} -% \begin{macrocode} -\ifhep@pos - \setkeys{hep}{title=false, defaults} -\fi -% \end{macrocode} -% -% Set the |revtex| compatibility options. -% \DoNotIndex{\ifhep@revtex} -% \begin{macrocode} -\ifhep@revtex - \setkeys{hep}{defaults, title=false, lang=american, bibliography=false} -\fi -% \end{macrocode} -% -% Define the SISSA conditional. -% \begin{macrocode} -\newif\ifhep@sissa -\ifhep@jhep\hep@sissatrue -\else - \ifhep@jcap\hep@sissatrue - \else\hep@sissafalse - \fi -\fi -% \end{macrocode} -% -% Set the SISSA compatibility options. -% \begin{macrocode} -\ifhep@sissa - \setkeys{hep}{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} - \hoffset 0pt - \voffset 0pt -\fi -% \end{macrocode} - -% \section{Engine} -% -% \begin{macro}{\ifxetexorluatex} -% Load the |ifluatex| \cite{ifluatex} and |ifxetex| \cite{ifxetex} packages. -% Define the |\ifxetexorluatex| conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}. -% \DoNotIndex{\newif,\ifxetex,\xetexorluatextrue,\else,\ifluatex,\xetexorluatexfalse,\fi} -% \begin{macrocode} -\RequirePackage{ifluatex} -\RequirePackage{ifxetex} -\newif\ifxetexorluatex -\ifxetex\xetexorluatextrue -\else - \ifluatex\xetexorluatextrue - \else\xetexorluatexfalse - \fi -\fi -% \end{macrocode} -% \end{macro} - -% \section{Text} -% -% Load the |alphabeta| package \cite{alphabeta} first in order to archive the correct behaviour. -% The |alphabeta| package provides upright Greek letters in text mode. -% \begin{macrocode} -\RequirePackage{alphabeta} -% \end{macrocode} -% -% Set the whole text to sans serif if requested. -% Load the |sansmathfonts| package \cite{sansmathfonts} first. -% Although, most fonts will later be overwritten by the |lmodern| package \cite{lmodern} some mathematical objects are ensured to be in sans serif. -% \DoNotIndex{\ifhep@serif,\renewcommand,\familydefault,\sfdefault} -% \begin{macrocode} -\ifhep@serif\else - \RequirePackage{sansmathfonts} - \renewcommand\familydefault{\sfdefault} -\fi -% \end{macrocode} -% -% Pick the correct font encoding depending on the engine used and load the |fontenc| package \cite{fontenc} with this encoding. -% For details of the font encoding see \cite{encguide}. -% \DoNotIndex{\def,\@encoding} -% \begin{macrocode} -\ifxetexorluatex - \def\@encoding{TU} -\else - \def\@encoding{T1} -\fi -\RequirePackage[\@encoding]{fontenc} -% \end{macrocode} -% Load the |lmodern| font \cite{lmodern}, the |textcomp| extension \cite{textcomp}, and the |microtype| font optimization \cite{microtype}. -% \begin{macrocode} -\RequirePackage{lmodern} -\RequirePackage{textcomp} -\RequirePackage{microtype} -% \end{macrocode} -% -% Define sans serif small caps font shapes. -% The font abbreviations are -% \begin{description}[nosep] -% \item[lmss] Latin modern sans serif font -% \item[cmss] Computer modern sans serif font -% \item[xcmss] Extended computer modern sans serif font (from the |sansmathfonts| package \cite{sansmathfonts}) -% \item[bx] Bold extended 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} -% \DoNotIndex{\DeclareFontShape,\sffamily} -% \begin{macrocode} -\ifxetexorluatex - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{% - <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% - }{} -\else - \sffamily - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} -\fi -% \end{macrocode} - -% Load the |inputenc| \cite{inputenc} package. -% \begin{macrocode} -\ifxetexorluatex\else - \RequirePackage[utf8]{inputenc} -\fi -% \end{macrocode} -% -% Load the |babel| \cite{babel} package for hyphenation and the recommended |csquotes| package \cite{csquotes}. -% \DoNotIndex{\hep@lang} -% \begin{macrocode} -\RequirePackage[\hep@lang]{babel} -\RequirePackage{csquotes} -% \end{macrocode} -% -% \begin{macro}{\underline} -% Load the |soul| package \cite{soul} for hyphenable underlined text. -% \DoNotIndex{\let} -% \begin{macrocode} -\RequirePackage{soul} -\let\underline\ul -% \end{macrocode} -% \end{macro} -% -% \subsection{Font size} \label{sec:font size} -% -% Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option. -% \DoNotIndex{\remove@pt,\edef,\@ptsize,\expandafter,\small,\relax,\footnotesize,\scriptsize} -% \begin{macrocode} -\ifhep@defaults\else - \def\remove@pt#1pt{#1} - \edef\@ptsize{\expandafter\remove@pt\hep@font} - \let\small\relax - \let\footnotesize\relax - \let\scriptsize\relax - \let\tiny\relax - \let\large\relax - \let\Large\relax - \let\LARGE\relax - \let\huge\relax - \let\Huge\relax - \input{size\@ptsize.clo} -\fi -% \end{macrocode} - -% \subsection{Text macros} -% -%\begin{macro}{\vs} -% Load the |foreign| package \cite{foreign} in order to highlight abbreviations and vocabularies from foreign languages. -% Add the missing |\vs| command. -% \DoNotIndex{\DeclareRobustCommand,\xperiodafter,\foreignabbrfont,\pdf@strcmp,\hep@lang@foreign} -% \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 |foreign| package relies on the |xspace| package \cite{xspace}. -% Ensure that |\xspace| is compatible with the |\enquote| macro from the |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 |relsize| package \cite{relsize}. -% \DoNotIndex{\hspace,\fontdimen,\font,\smaller,\textsc} -% \begin{macrocode} -\RequirePackage{relsize} -\newcommand{\software}[2][\hspace{-\fontdimen2\font}]{% - {\smaller\textsc{#2}~#1}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\online} -% The |\online|\marg{text}\marg{url} macro combines the features of the |\href| and the |\url| macros. -% \DoNotIndex{\href,\url} -% \begin{macrocode} -\newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} -% \end{macrocode} -% \end{macro} - -% \subsection{Lists} -% -% Load the |enumitem| package \cite{enumitem}. -% \begin{macrocode} -\RequirePackage[inline]{enumitem} -% \end{macrocode} -% -% \begin{environment}{inlinelist} -% Define an inline list environment. -% \DoNotIndex{\newlist,\setlist*,\ } -% \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. -% \DoNotIndex{\arabic*,\old@item,\item,ifx,\textbf,\empty,\@ifnextchar,\par,\@gobble} -% \begin{macrocode} -\newlist{enum@descript}{enumerate}{2} -\setlist[enum@descript]{label=\arabic*.} -\newenvironment{enumdescript}[1][]{ -\begin{enum@descript}[#1] - \let\old@item\item - \renewcommand{\item}[2][]{ - \ifx&##1&\old@item\else\old@item[##1]\fi - \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax - } -}{\end{enum@descript}} -% \end{macrocode} -% \end{environment} - -% \subsection{Footnotes} -% -% \begin{macro}{\footnote} -% Ensure that no spaces appear before the footmark or at the beginning of the footnote. -% \DoNotIndex{\unskip,\@foot@note,\ignorespaces} -% \begin{macrocode} -\let\@foot@note\footnote -\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} -% \end{macrocode} -% \end{macro} - -% \section{Geometry} -% -% Load the |geometry| package \cite{geometry} and adjust the text width and height to the values of the |a4wide| package \cite{a4wide}. -% This step must happen after readjusting the font size in \cref{sec:font size}. -% \DoNotIndex{\ifhep@defaults,\hep@paper,\geometry} -% \begin{macrocode} -\ifhep@defaults\else - \RequirePackage[\hep@paper paper]{geometry} - \geometry{hscale=.75, vscale=.8, vmarginratio=3:4, includeheadfoot} -\fi -% \end{macrocode} - -%\begin{macro}{\useparskip} -%\begin{macro}{\useparindent} -% Load the |parskip| package \cite{parskip} if requested and provide two commands switching between the two paragraph modes. -% \DoNotIndex{\ifhep@parindent,\setlength,\parskip,\baselineskip,\parindent} -% \begin{macrocode} -\ifhep@parindent\else -\RequirePackage{parskip} -\newcommand{\useparskip}{% - \setlength{\parskip}{.5\baselineskip plus 2pt}% - \setlength{\parindent}{0pt}% -} -\newcommand{\useparindent}{% - \setlength{\parskip}{0pt}% - \setlength{\parindent}{15pt}% - \if@twocolumn\setlength\parindent{1em} - \else\setlength\parindent{1.5em} - \fi -} -\fi -% \end{macrocode} -% \end{macro} -% \end{macro} - -% \section{Math} -% -% Load the |mathtools| package \cite{mathtools} which loads the |amsmath| package \cite{amsmath}. -% Additionally, load the |amssymb| package \cite{amsfonts} which provides further math symbols and also loads the |amsfont| package \cite{amsfonts}. -% Allow page breaks within equations if necessary. -% \begin{macrocode} -\RequirePackage{mathtools} -\RequirePackage{amssymb} -\allowdisplaybreaks[1] -% \end{macrocode} - -% \begin{macro}{\diag} -% Provide a diag operator -% \begin{macrocode} -\DeclareMathOperator{\diag}{diag} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\mathdef} -% Define the |\mathdef|\marg{name}\oarg{arguments}\marg{macro} macro which (re-)defines macros in math mode only. -% This macro is implemented using the |xparse| package \cite{xparse}. -% \begin{macrocode} -\RequirePackage{xparse} -\DeclareDocumentCommand{\mathdef}{mO{0}m}{% - \expandafter\let\csname text\string#1\endcsname=#1 - \expandafter\newcommand\csname math\string#1\endcsname[#2]{#3} - \DeclareRobustCommand#1{% - \ifmmode - \expandafter\let\expandafter\next\csname math\string#1\endcsname - \else - \expandafter\let\expandafter\next\csname text\string#1\endcsname - \fi - \next - }% -} -% \end{macrocode} -% \end{macro} - -% \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 |soul| package \cite{soul}. -% Extend it as a math macro with the original definition from |amsmath| \cite{amsmath}. -% \begin{macrocode} -\def\overline#1{{\setul{-2ex}{}\ul{#1}}} -\DeclareRobustCommand{\over@line}[1]{\@@overline{#1}} -\mathdef{\overline}{\over@line} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{eqnarray} -% Undefine the |eqnarray| environment. -% \begin{macrocode} -\ifhep@eqnarray\else - \let\eqnarray\@undefined - \let\endeqnarray\@undefined -\fi -% \end{macrocode} -% \end{macro} - -% \subsection{Math fonts} -% -% \begin{macro}{\mathbf} -% Load the |bm| package \cite{bm} for superior boldmath after limiting the number of allocated math alphabets. -% Make math symbols bold whenever they appear in bold macros such as |\section|\marg{text}. -% \begin{macrocode} -\newcommand{\bmmax}{2} -\RequirePackage{bm} -\let\mathbf\bm -\g@addto@macro\bfseries{\boldmath} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\mathsf} -% Load the |fixmath| package \cite{fixmath} which ensures that upper Greek letters in math mode are italic. -% Ensure that also math mode is sans serif using the |sfmath| package \cite{sfmath} if the option sans serif is passed to the package. -% Ensure that |\mathsf| is italic as well as sans serif and sans for sans and sans serif documents, respectively. -% The font abbreviations are -% \begin{description}[nosep] -% \item[OML] \hologo{TeX} math italic font encoding -% \item[cmm] Computer modern math italic font -% \item[cmbr] Computer modern bright font -% \item[bx] Bold extended series -% \item[m] Medium weight and width series -% \item[it] Italic font shape -% \end{description} -% \begin{macrocode} -\ifhep@serif - \RequirePackage{fixmath} - \DeclareMathAlphabet{\mathsf}{OML}{cmbr}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmbr}{bx}{it} -\else - \RequirePackage[slantedGreek]{sfmath} - \RequirePackage{sansmathfonts} - \DeclareMathAlphabet{\mathsf}{OML}{cmm}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmm}{bx}{it} -\fi -% \end{macrocode} -% \end{macro} -% \begin{macro}{\mathscr} -% Load the |mathrsfs| package for the |\mathscr| math script font. -% \begin{macrocode} -\RequirePackage{mathrsfs} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\mathbb} -% Load the |bbm| package \cite{bbm-macros} for the |\mathbb| math blackboard style font in (sans-) serif. -% \begin{macrocode} -\RequirePackage{bbm} -\ifhep@serif - \let\mathbb\mathbbm -\else - \let\mathbb\mathbbmss -\fi -% \end{macrocode} -% \end{macro} - -% \subsection{Physics notation} -% -% \begin{macro}{\slashed} -% \begin{macro}{\unit} -% Load the |physics| package \cite{physics} which provides macros useful for publications in physics. -% Additionally, load the |slashed| package \cite{slashed} which provides the slashed macro for Dirac notation. -% Finally, load the |units| package \cite{units} which provides the |\units| and |\nicefrac| macros. -% \begin{macrocode} -\RequirePackage{physics} -\RequirePackage{slashed} -\RequirePackage{units} -% \end{macrocode} -% \end{macro} -% \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}{\d} -% Provide a differential |\d|. -% \begin{macrocode} -\AtBeginDocument{\mathdef{\d}{\dd}} -% \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]{% - \raisebox{1pt}{\ensuremath{\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} - -% \section{Floats} -% -% Adjust the \hologo{LaTeX} float placement defaults -% \begin{macrocode} -\renewcommand{\textfraction}{0.01} -\setcounter{topnumber}{1} -\renewcommand{\topfraction}{.9} -\setcounter{bottomnumber}{0} -\renewcommand{\floatpagefraction}{.8} -% \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\@figure@\figure% -\let\@end@figure@\endfigure% -\let\@table@\table% -\let\@end@table@\endtable% -\ifhep@manualplacement% - \renewenvironment{figure}[1][tbp]{% - \@figure@[#1]\centering% - }{\@end@figure@}% - \renewenvironment{table}[1][tbp]{% - \@table@[#1]\centering% - }{\@end@table@}% -\else% - \renewenvironment{figure}[1][]{% - \@figure@\centering% - }{\@end@figure@}% - \renewenvironment{table}[1][]{% - \@table@\centering% - }{\@end@table@} -\fi% -% \end{macrocode} -% \end{environment} -% \end{environment} - -% \subsection{Sub-floats} -% -% Prevent the |caption| package \cite{caption} from complaining about the |revtex| class. -% \begin{macrocode} -\ifhep@revtex - \setlength\abovecaptionskip{\f@size\p@} - \setlength\belowcaptionskip{0\p@} - \long\def\@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1: #2}% - \ifdim \wd\@tempboxa >\hsize - #1: #2\par - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip% - } -\fi -% \end{macrocode} -% -% Load the |subcaption| package \cite{subcaption}. -% Provide 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} -\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{\panel}[1][b]{% - \endminipage\hfill\begin@subcaption@minipage[#1]{\linewidth/#2}% - }% - \begin@subcaption@minipage[#1]{\linewidth/#2}% -% \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} - -% Reajust the captions to the revtex class using the |ragged2e| package \cite{ragged2e}. -% \begin{macrocode} -\ifhep@revtex - \RequirePackage{ragged2e} - \DeclareCaptionFormat{revtex}{#1#2\justifying{#3}} - \captionsetup{font=small, format=revtex} - \captionsetup[sub]{font=footnotesize, format=plain} - \renewcommand{\figurename}{Figure} - \renewcommand{\tablename}{Table} -\fi -% \end{macrocode} - -% \subsection{Tables} -% -% \begin{environment}{tabular} -% Enhance tabulars with the |booktabs| and |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 |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} - -% \section{Title page} -% -% \begin{macro}{\date} -% Allow empty date field. -% \begin{macrocode} -\ifhep@title -\date{} -% \end{macrocode} -% \end{macro} - -% \subsection{Authors} -% -% \begin{macro}{\author} -% Allow empty author field. -% \begin{macrocode} -\author{} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\email} -% Define a macro for the email of authors used as |\author{|$\langle name\rangle$| \email{|$\langle email\rangle$|}}|. -% \begin{macrocode} -\AtEndOfClass{\newcommand{\email}[1]{% - \unskip\thanks{\online{mailto:#1}{#1}} -}} -% \end{macrocode} -% \end{macro} -% -% Enable the handling of multiple authors with different affiliations using the |authblk| package \cite{authblk}. -% \begin{macrocode} -\RequirePackage{authblk} -\renewcommand\Affilfont{\footnotesize} -% \end{macrocode} -% -% \begin{macro}{\affiliation} -% Define the |\affiliation| macro, ensure that linebreaks happen after a comma. -% \begin{macrocode} -\newcommand\active@comma{,\penalty-5\relax} -\newcommand\cat@comma@active{\catcode`\,\active} -{\cat@comma@active\gdef,{\active@comma}} -\newcommand\@affil[1]{% - \endgroup\@flushglue=0pt plus .5\linewidth\affil{#1}% -} -\def\@affil@opt[#1]#2{% - \endgroup\@flushglue=0pt plus .5\linewidth\affil[#1]{#2}% -} -\DeclareRobustCommand\@affiliation{\@ifnextchar[{\@affil@opt}{\@affil}} -\newcommand{\affiliation}{\begingroup\cat@comma@active\@affiliation} -% \end{macrocode} -% \end{macro} - -% \subsection{Preprint} -% -% \begin{macro}{\preprint} -% Define the |\preprint| macro using the |varwidth| package \cite{varwidth}. -% \begin{macrocode} -\let\@preprint\relax -\newcommand\preprint[1]{\long\gdef\@preprint{#1}} -\RequirePackage{varwidth} -\newcommand{\@preprint@box}{% - \begin{varwidth}{\textwidth}% - \textsc{\small\@preprint}% - \end{varwidth}% -} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\maketitle} -% Places a preprint number in the top right corner of the title page using the |atbegshi| \cite{atbegshi} and |picture| \cite{picture} packages. -% \begin{macrocode} -\RequirePackage{atbegshi} -\RequirePackage{picture} -\let\old@maketitle\maketitle -\renewcommand{\maketitle}{% - \old@maketitle% - \AtBeginShipoutFirst{% - \put( - \textwidth+\oddsidemargin-\widthof{\@preprint@box}, - -2pt-\topmargin-\heightof{\@preprint@box} - ){\normalfont\@preprint@box} - } -} -% \end{macrocode} -% \end{macro} - -% \subsection{Abstract} -% -% \begin{environment}{abstract} -% Adjust the |abstract| environment to not start with indentation. -% \begin{macrocode} -\@ifundefined{abstract}{}{% - \let\old@abstract\abstract% - \renewcommand\abstract{\old@abstract\noindent\ignorespaces}% -} -% \end{macrocode} -% \end{environment} -% End of check for |title| option. -% \begin{macrocode} -\fi -% \end{macrocode} - -% \section{Bibliography} -% -% Check if bibliography management is requested. -% \begin{macrocode} -\ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else -% \end{macrocode} -% -% \begin{macro}{\bibliography} -% Load the |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} -% 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. -% Provide the |\DeclareSortingTemplate| macro for older |biblatex| installations. -% \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, - giveninits=true -} -% \end{macrocode} -% -% \begin{macro}{erratum} -% Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field. -% \begin{macrocode} -\NewBibliographyString{erratum} -\DefineBibliographyStrings{english}{erratum={Erratum}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\printbibliography} -% Allow the bibliography to be printed sloppy -% \begin{macrocode} -\let\old@printbibliography\printbibliography -\renewcommand{\printbibliography}{\sloppy\old@printbibliography} -% \end{macrocode} -% \end{macro} - -% \subsection{Sourcemap} -% -% \begin{macro}{\reg@exp@one} -% \begin{macro}{\reg@exp@two} -% \begin{macro}{\reg@exp@url} -% Define regular expressions in order to deal with inconsistent journal title and volume naming as well as URL protocols. -% \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)?:\/\/}} -% \end{macrocode} -% \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]{ - \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} -% \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}{url} -% Show URLs without the protocol. -% \begin{macrocode} -\DeclareFieldFormat{url}{% - \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{collaboration} -% Override the author information with collaboration information if present. -% \begin{macrocode} -\renewbibmacro*{author}{% - \iffieldundef{collaboration}{% - \printnames{author}}{\textbf{\printfield{collaboration}}% - }% -} -% \end{macrocode} -% \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}{reportnumber} -% Add the pre-print information if present. -% \begin{macrocode} -\letbibmacro{doi+eprint+url-old}{doi+eprint+url} -\renewbibmacro*{doi+eprint+url}{% - \usebibmacro{doi+eprint+url-old} - \iffieldundef{reportnumber}{}{\textls[0]{% - \newunitpunct\textnumero\intitlepunct% - \textsc{\small\printfield{reportnumber}}% - }}% -} -% \end{macrocode} -% \end{macro} - -% \subsection{Eprints} -% -% \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}{\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} -% - -% End check for bibliography option. -% \begin{macrocode} -\fi -% \end{macrocode} - -% \section{Hyperlinks and References} -% -% Load the |hyperref| package \cite{hyperref} enable Unicode encoding and hide links. -% -% \begin{macrocode} -\RequirePackage{hyperref} -\hypersetup{ - pdfencoding=auto, - psdextra, - hidelinks, - linktoc=all, - breaklinks=true, - pdfcreator={}, - pdfproducer={} -} -% \end{macrocode} -% Set the \PDF meta data according to the paper information and ensure that unnecessary information is suppressed. -% -% \begin{macrocode} -\pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} -\AtBeginDocument{ - \pdfstringdefDisableCommands{\let\ensuremath\@gobble} - \pdfstringdefDisableCommands{\let\mathsurround\@gobble} - \pdfstringdefDisableCommands{\let\unskip\@gobble} - \pdfstringdefDisableCommands{\let\thanks\@gobble} - \pdfstringdefDisableCommands{\let\footnote\@gobble} - \pdfstringdefDisableCommands{\let\\\@gobble} -} -\ifhep@revtex - \AtBeginShipout{\hypersetup{pdftitle={\@title}}} -\else - \AtBeginDocument{\hypersetup{pdftitle={\@title}}} -\fi -\ifhep@title - \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} -\else - \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} -\fi -% \end{macrocode} - -% \begin{macro}{\cref} -% Improve reference using the |cleveref| package \cite{cleveref}. -% -% \begin{macrocode} -\RequirePackage[noabbrev, nameinlink]{cleveref} -\newcommand{\creflastconjunction}{, and\nobreakspace} -\crefname{enumi}{point}{points} -\Crefname{enumi}{Point}{Points} -% \end{macrocode} -% \end{macro} - -%\begin{macro}{\no@break@before} -% Define a macro able to prevent line breaks. -% \DoNotIndex{\no@break@before,\ifvmode,\ifhmode,\ifdim,\lastskip,\unskip,\nobreakspace} -% \begin{macrocode} -\newcommand\no@break@before{% - \relax\ifvmode\else% - \ifhmode% - \ifdim\lastskip > 0pt% - \relax\unskip\nobreakspace% - \fi% - \fi% - \fi% -} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\ref} -% Adjust |\ref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple references at once. -% \begin{macrocode} -\let\old@ref\ref -\AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}} -% \end{macrocode} -% \end{macro} -% ! Bug ! in equations the additional brackets from the cleveref macro conflict with the traditional |(\ref|\marg{key}|)| approach - -% \begin{macro}{\eqref} -% Adjust |\eqref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple equations at once. -% \begin{macrocode} -\renewcommand\eqref{\no@break@before\labelcref} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\subref} -% Adjust |\subref|\marg{key} in order to prevent preceding line breaks. -% \begin{macrocode} -\let\old@subref\subref -\renewcommand\subref{\no@break@before\old@subref} -\renewcommand*\subcaption@ref[2]{\begingroup% - \caption@setoptions{sub}% - \subcaption@reffmt\p@subref{\old@ref#1{sub@#2}}% -\endgroup} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\subcref} -% Provide the |\subcref| macro. -% \begin{macrocode} -\newcommand{\subcref}[1]{\cref{sub@#1}} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\eqcrefname} -% Define the |\eqcrefname| macro for named equation types. -% \begin{macrocode} -\NewDocumentCommand{\eqcrefname}{mmo}{ - \crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}} - \creflabelformat{#1}{(##2##1##3)} -} -% \end{macrocode} -% \end{macro} - -% \begin{macro}{\labelcrefrange} -% Define the missing |\labelcrefrange|\marg{key1}\marg{key2} macro. -% \begin{macrocode} -\DeclareRobustCommand{\labelcrefrange}[2]{% - \@crefrangenostar{labelcref}{#1}{#2}% -} -% \end{macrocode} -% \end{macro} - -% \subsection{Citations} -% -% \begin{macro}{\cite} -% Adjust |\cite|\marg{key} in order to prevent preceding line breaks. -% \begin{macrocode} -\let\old@cite\cite -\renewcommand\cite{\no@break@before\old@cite} -% \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} -% -% Acronyms are implemented with the |glossaries-extra| package \cite{glossaries-extra} which is an extension of the |glossaries| package \cite{glossaries}. -% \begin{macrocode} -\ifhep@glossaries -\RequirePackage[nostyles]{glossaries-extra} -% \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} -\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}% - }% -}} -% \end{macrocode} - -% \begin{macro}{\begin@sentence} -% Mark the beginning of a paragraph as if it would follow a full stop using the |everyhook| package \cite{everyhook}. -% \begin{macrocode} -\RequirePackage[excludeor]{everyhook} -\newcommand{\begin@sentence}{1001} -\PushPostHook{par}{{\spacefactor=\begin@sentence}} -% \end{macrocode} -% \end{macro} - -% \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} - -% \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} - -% \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} -\NewDocumentCommand{\acronym}{somsmo}{ - \newabbreviation[ - longplural=\IfNoValueTF{#6}{#5s}{#6}, - \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} - ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} -% \end{macrocode} -% Provide the singular acronym macro. -% \begin{macrocode} - \expandafter\newcommand\csname#3\endcsname{% - \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}% - \IfBooleanTF{#4}{}{\@\xspace}% - } -% \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{% - \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}% - \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} -% -% \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{% - \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}% - } -% \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{% - \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% - \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{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}% - }% -} -% \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} - \expandafter\newcommand\csname#3\endcsname{% - \if@begin@of@sentence{\MakeUppercase#5}{#5}% - \IfBooleanTF{#4}{}{\@\xspace}% - } -% \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{% - \if@begin@of@sentence{% - \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% - }{% - \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}% - } -% \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. -% \begin{macrocode} -\newcommand{\resetacronym}[1]{\protect\glsreset{#1}} -\newcommand{\dummyacronym}[1]{\protect\glsunset{#1}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{abstract} -% Adjust the |abstract| environment to reset all acronym counters. -% \begin{macrocode} -\@ifundefined{abstract}{}{% - \let\end@old@abstract\endabstract% - \renewcommand\endabstract{\glsresetall\end@old@abstract}% -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\tableofcontents} -% Adjust the |\tableofcontents| macro to never show the long form of acronyms. -% \begin{macrocode} -\let\old@table@of@contents\tableofcontents -\renewcommand\tableofcontents{% - \glsunsetall\old@table@of@contents\glsresetall% -} -% \end{macrocode} -% \end{macro} -% -% End of glossaries if. -% \begin{macrocode} -\fi -% \end{macrocode} -% -% -% -% \section{Biblatex datamodel file} \label{sec:data model} -% -%<*datamodel> - -% \begin{macro}{reportnumber} -% \begin{macro}{collaboration} -% \begin{macro}{protocollessurl} -% Define the |dbx| file containing the |hep-paper| datamodel. -% \begin{macrocode} -\DeclareDatamodelFields[type=field, datatype=literal]{ - reportnumber, - collaboration, -} -\DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} -\DeclareDatamodelEntryfields{ - reportnumber, - collaboration, - protocollessurl, -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% -% \Finale - -\endinput - -% \PrintIndex -% makeindex -s gglo.ist -o hep-paper.gls hep-paper.glo -% makeindex -s gglo.ist -o hep-paper.ind hep-paper.idx - -% \begin{macro}{\refstepcounter@...} -% Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|. -% \begin{macrocode} -\def\refstepcounter@noarg#1{% - \cref@old@refstepcounter{#1}% - \cref@constructprefix{#1}{\cref@result}% - \@ifundefined{cref@#1@alias}% - {\def\@tempa{#1}}% - {\def\@tempa{\csname cref@#1@alias\endcsname}}% - \protected@edef\cref@currentlabel{% - [\@tempa][\arabic{#1}][\cref@result]% - \noexpand\@currentlabel% - }% changed -} - -\def\refstepcounter@optarg[#1]#2{% - \cref@old@refstepcounter{#2}% - \cref@constructprefix{#2}{\cref@result}% - \@ifundefined{cref@#1@alias}% - {\def\@tempa{#1}}% - {\def\@tempa{\csname cref@#1@alias\endcsname}}% - \protected@edef\cref@currentlabel{% - [\@tempa][\arabic{#2}][\cref@result]% - \noexpand\@currentlabel% changed - }% -} -% \end{macrocode} -% \end{macro} diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins index 881f9745b5c..8de85de7c6c 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins @@ -11,7 +11,6 @@ %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% - \input docstrip.tex \keepsilent \usedir{tex/latex/hep-paper} @@ -29,8 +28,9 @@ LaTeX version 2005/12/01 or later. \endpreamble \generate{ - \file{hep-paper.sty}{\from{hep-paper.dtx}{package}} - \file{hep-paper.dbx}{\from{hep-paper.dtx}{datamodel}} + \file{hep-paper.sty}{\from{hep-paper-implementation.dtx}{package}} + \file{hep-paper.dbx}{\from{hep-paper-implementation.dtx}{datamodel}} + \file{hep-paper-documentation.tex}{\from{hep-paper-implementation.dtx}{documentation}} } \Msg{*********************************************************} diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx index aa450a9d6ca..d19b0be720e 100644 --- a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% hep-paper.dtx (with options: `datamodel') +%% hep-paper-implementation.dtx (with options: `datamodel') %% This is a generated file. %% Copyright (C) 2019-2020 by Jan Hajer %% This file may be distributed and/or modified under the @@ -14,17 +14,14 @@ %% 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. -\ProvidesFile{hep-paper.dbx}[2020/05/01 v1.3 HEP-Paper biblatex data model] +\ProvidesFile{hep-paper.dbx}[2020/08/01 v1.4 HEP-Paper biblatex data model] \DeclareDatamodelFields[type=field, datatype=literal]{ - reportnumber, - collaboration, + collaboration, reportnumber, pmid, pmcid, pmc, } \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} \DeclareDatamodelEntryfields{ - reportnumber, - collaboration, - protocollessurl, + collaboration, reportnumber, pmid, pmcid, pmc, protocollessurl, } \endinput diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty index de375a04761..3885186def3 100644 --- a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% hep-paper.dtx (with options: `package') +%% hep-paper-implementation.dtx (with options: `package') %% This is a generated file. %% Copyright (C) 2019-2020 by Jan Hajer %% This file may be distributed and/or modified under the @@ -15,7 +15,7 @@ %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{hep-paper}[2020/05/01 v1.3 Publications in High Energy Physics] +\ProvidesPackage{hep-paper}[2020/08/01 v1.4 Publications in High Energy Physics] \RequirePackage{pdftexcmds} \RequirePackage{kvoptions} @@ -25,28 +25,41 @@ } \DeclareStringOption[a4]{paper} \DeclareStringOption[11pt]{font} -\DeclareBoolOption[false]{defaults} \DeclareStringOption[british]{lang} -\DeclareBoolOption[true]{parindent} -\DeclareComplementaryOption{parskip}{parindent} \DeclareBoolOption[true]{serif} \DeclareComplementaryOption{sansserif}{serif} -\DeclareBoolOption[false]{eqnarray} +\DeclareBoolOption[true]{parindent} +\DeclareComplementaryOption{parskip}{parindent} +\DeclareBoolOption[false]{defaults} +\DeclareBoolOption[true]{title} \DeclareStringOption[numeric-comp]{bibliography} \DeclareBoolOption[true]{glossaries} -\DeclareBoolOption[false]{manualplacement} -\DeclareBoolOption[true]{title} +\DeclareBoolOption[true]{references} +\DeclareBoolOption[false]{beamer} \DeclareBoolOption[false]{revtex} \DeclareBoolOption[false]{jhep} \DeclareBoolOption[false]{jcap} \DeclareBoolOption[false]{pos} +\DeclareBoolOption[false]{eqnarray} +\DeclareBoolOption[false]{manualplacement} \ProcessKeyvalOptions* +\@ifclassloaded{PoS}{\setkeys{hep}{pos}}{} \ifhep@pos - \setkeys{hep}{title=false, defaults} + \setkeys{hep}{defaults, title=false} + \DeclareRobustCommand\boldmath{\@nomath\boldmath\mathversion{bold}} +\fi +\@ifclassloaded{beamer}{\setkeys{hep}{beamer}}{} +\ifhep@beamer + \setkeys{hep}{defaults, title=false, references=false, sansserif} \fi +\@ifclassloaded{revtex4}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-1}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-2}{\setkeys{hep}{revtex}}{} \ifhep@revtex - \setkeys{hep}{defaults, title=false, lang=american, bibliography=false} + \setkeys{hep}{defaults, title=false, bibliography=false, lang=american} \fi +\@ifpackageloaded{jheppub}{\setkeys{hep}{jhep}}{} +\@ifpackageloaded{jcappub}{\setkeys{hep}{jcap}}{} \newif\ifhep@sissa \ifhep@jhep\hep@sissatrue \else @@ -61,10 +74,18 @@ urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue, linkcolor=blue, menucolor=blue, pagecolor=blue }{hyperref} - \hoffset 0pt - \voffset 0pt + \PassOptionsToPackage{reset}{geometry} +\fi +\ifhep@jhep + \voffset 0in + \hoffset 0in \fi +\RequirePackage{alphabeta} +\ifhep@serif\else + \RequirePackage{sansmathfonts} + \renewcommand\familydefault{\sfdefault} +\fi \RequirePackage{ifluatex} \RequirePackage{ifxetex} \newif\ifxetexorluatex @@ -74,30 +95,38 @@ \else\xetexorluatexfalse \fi \fi - -\RequirePackage{alphabeta} -\ifhep@serif\else - \RequirePackage{sansmathfonts} - \renewcommand\familydefault{\sfdefault} -\fi \ifxetexorluatex - \def\@encoding{TU} + \def\hep@encoding{TU} \else - \def\@encoding{T1} + \def\hep@encoding{T1} \fi -\RequirePackage[\@encoding]{fontenc} +\RequirePackage[\hep@encoding]{fontenc} +\RequirePackage{fix-cm} \RequirePackage{lmodern} \RequirePackage{textcomp} \RequirePackage{microtype} \ifxetexorluatex - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{% + \RequirePackage{fontspec} + \setmainfont{Latin Modern Roman}[ + UprightFeatures={SmallCapsFont={[lmromancaps10-regular.otf]}}, + BoldFeatures={ + SmallCapsFeatures={Letters=SmallCaps}, + SmallCapsFont={[cmunbx.otf]} + } + ] + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{% <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% }{} \else + \rmfamily + \DeclareFontShape{\hep@encoding}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{} \sffamily - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} \fi \ifxetexorluatex\else @@ -105,11 +134,11 @@ \fi \RequirePackage[\hep@lang]{babel} \RequirePackage{csquotes} -\RequirePackage{soul} -\let\underline\ul +\RequirePackage[normalem]{ulem} +\let\underline\uline \ifhep@defaults\else - \def\remove@pt#1pt{#1} - \edef\@ptsize{\expandafter\remove@pt\hep@font} + \def\hep@remove@pt#1pt{#1} + \edef\hep@pt@size{\expandafter\hep@remove@pt\hep@font} \let\small\relax \let\footnotesize\relax \let\scriptsize\relax @@ -119,7 +148,7 @@ \let\LARGE\relax \let\huge\relax \let\Huge\relax - \input{size\@ptsize.clo} + \input{size\hep@pt@size.clo} \fi \ifnum\pdf@strcmp{\hep@lang}{american}=0 @@ -151,19 +180,22 @@ \setlist[enum@descript]{label=\arabic*.} \newenvironment{enumdescript}[1][]{ \begin{enum@descript}[#1] - \let\old@item\item + \let\hep@item\item \renewcommand{\item}[2][]{ - \ifx&##1&\old@item\else\old@item[##1]\fi + \ifx&##1&\hep@item\else\hep@item[##1]\fi \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax } }{\end{enum@descript}} -\let\@foot@note\footnote -\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} - \ifhep@defaults\else - \RequirePackage[\hep@paper paper]{geometry} - \geometry{hscale=.75, vscale=.8, vmarginratio=3:4, includeheadfoot} + \RequirePackage{geometry} + \geometry{% + \hep@paper paper, + hscale=.75, + vscale=.8, + vmarginratio=3:4, + includeheadfoot + } \fi \ifhep@parindent\else @@ -186,6 +218,7 @@ \allowdisplaybreaks[1] \DeclareMathOperator{\diag}{diag} +\DeclareMathOperator{\sgn}{sgn} \RequirePackage{xparse} \DeclareDocumentCommand{\mathdef}{mO{0}m}{% @@ -203,38 +236,42 @@ \AtBeginDocument{\mathdef{\i}{\operatorname{i}}} -\def\overline#1{{\setul{-2ex}{}\ul{#1}}} +\def\overline#1{{\renewcommand{\ULdepth}{-1.9ex}{}\uline{#1}}} \DeclareRobustCommand{\over@line}[1]{\@@overline{#1}} \mathdef{\overline}{\over@line} +\RequirePackage{mleftright} +\mleftright + \ifhep@eqnarray\else \let\eqnarray\@undefined \let\endeqnarray\@undefined \fi -\newcommand{\bmmax}{2} +\ifhep@serif\providecommand{\bmmax}{2}\else\providecommand{\bmmax}{1}\fi \RequirePackage{bm} \let\mathbf\bm \g@addto@macro\bfseries{\boldmath} \ifhep@serif \RequirePackage{fixmath} - \DeclareMathAlphabet{\mathsf}{OML}{cmbr}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmbr}{bx}{it} + \newcommand\hep@sf@font{cmbr} \else \RequirePackage[slantedGreek]{sfmath} \RequirePackage{sansmathfonts} - \DeclareMathAlphabet{\mathsf}{OML}{cmm}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmm}{bx}{it} + \newcommand\hep@sf@font{cmm} \fi -\RequirePackage{mathrsfs} -\RequirePackage{bbm} +\SetMathAlphabet{\mathsf}{normal}{OML}{\hep@sf@font}{m}{it} +\SetMathAlphabet{\mathsf}{bold}{OML}{\hep@sf@font}{bx}{it} +\DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n} \ifhep@serif - \let\mathbb\mathbbm + \newcommand\hep@bb@font{dsrom} \else - \let\mathbb\mathbbmss + \newcommand\hep@bb@font{dsss} \fi +\SetMathAlphabet{\mathbb}{normal}{U}{\hep@bb@font}{m}{n} \RequirePackage{physics} +\RequirePackage{cancel} \RequirePackage{slashed} \RequirePackage{units} @@ -249,11 +286,13 @@ } \newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}} -\renewcommand{\textfraction}{0.01} -\setcounter{topnumber}{1} -\renewcommand{\topfraction}{.9} -\setcounter{bottomnumber}{0} -\renewcommand{\floatpagefraction}{.8} +\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 \let\@figure@\figure% \let\@end@figure@\endfigure% @@ -275,7 +314,17 @@ }{\@end@table@} \fi% -\ifhep@revtex +\newif\ifhep@journal +\ifhep@sissa\hep@journaltrue +\else + \ifhep@revtex\hep@journaltrue + \else + \ifhep@pos\hep@journaltrue + \else\hep@journalfalse + \fi + \fi +\fi +\ifhep@journal \setlength\abovecaptionskip{\f@size\p@} \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% @@ -335,13 +384,15 @@ \ifhep@title \date{} - \author{} -\AtEndOfClass{\newcommand{\email}[1]{% - \unskip\thanks{\online{mailto:#1}{#1}} -}} \RequirePackage{authblk} \renewcommand\Affilfont{\footnotesize} +\newcommand{\email}[1]{\online{mailto:#1}{#1}} +\let\hep@author\author +\def\author{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \hep@author +} \newcommand\active@comma{,\penalty-5\relax} \newcommand\cat@comma@active{\catcode`\,\active} {\cat@comma@active\gdef,{\active@comma}} @@ -365,9 +416,9 @@ \RequirePackage{atbegshi} \RequirePackage{picture} -\let\old@maketitle\maketitle +\let\hep@maketitle\maketitle \renewcommand{\maketitle}{% - \old@maketitle% + \hep@maketitle% \AtBeginShipoutFirst{% \put( \textwidth+\oddsidemargin-\widthof{\@preprint@box}, @@ -377,8 +428,8 @@ } \@ifundefined{abstract}{}{% - \let\old@abstract\abstract% - \renewcommand\abstract{\old@abstract\noindent\ignorespaces}% + \let\hep@abstract\abstract% + \renewcommand\abstract{\hep@abstract\noindent\ignorespaces}% } \fi @@ -387,42 +438,27 @@ \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} - } + \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}} } \ExecuteBibliographyOptions{ sorting=hep-paper, giveninits=true } -\NewBibliographyString{erratum} -\DefineBibliographyStrings{english}{erratum={Erratum}} -\let\old@printbibliography\printbibliography -\renewcommand{\printbibliography}{\sloppy\old@printbibliography} +\NewBibliographyString{erratum,erratums} +\DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}} +\providecommand{\relateddelimerratum}{\addsemicolon\space} +\let\hep@printbibliography\printbibliography +\renewcommand{\printbibliography}{\sloppy\hep@printbibliography} \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)?}} \DeclareSourcemap{% \maps[datatype=bibtex, overwrite=true]{% \map{% @@ -444,6 +480,28 @@ \step[fieldset=protocollessurl, origfieldval, final=true] \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}] } + \map{ + \step[fieldsource=pmcid, final=true] + \step[fieldset=pmc, origfieldval, final=true] + \step[fieldsource=pmc, match=\reg@exp@pmc, replace={}] + } + }% +} +\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} +\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}}% }% } \renewbibmacro*{in:}{% @@ -452,24 +510,30 @@ \DeclareFieldFormat{url}{% \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% } -\renewbibmacro*{author}{% - \iffieldundef{collaboration}{% - \printnames{author}}{\textbf{\printfield{collaboration}}% - }% +\newcommand{\bib@online}[2]{% + \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% } -\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} -\letbibmacro{doi+eprint+url-old}{doi+eprint+url} +\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}% +} +\letbibmacro{hep-doi+eprint+url}{doi+eprint+url} \renewbibmacro*{doi+eprint+url}{% - \usebibmacro{doi+eprint+url-old} - \iffieldundef{reportnumber}{}{\textls[0]{% + \usebibmacro{hep-doi+eprint+url} + \iffieldundef{pmc}{% + \iffieldundef{pmid}{}{\printfield{pmid}\newunit}% + }{\printfield{pmc}\newunit} + \iffieldundef{reportnumber}{}{% \newunitpunct\textnumero\intitlepunct% \textsc{\small\printfield{reportnumber}}% - }}% + \newunit% + }% } -\newcommand{\bib@online}[2]{% - \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% -} \NewDocumentCommand{\new@eprint}{smm}{ \DeclareFieldFormat{eprint:#2}{% \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}% @@ -492,18 +556,13 @@ HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}% } \DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge} - \fi \RequirePackage{hyperref} \hypersetup{ - pdfencoding=auto, - psdextra, - hidelinks, - linktoc=all, - breaklinks=true, - pdfcreator={}, - pdfproducer={} + pdfencoding=auto, psdextra, + hidelinks, linktoc=all, breaklinks=true, + pdfcreator={}, pdfproducer={} } \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} \AtBeginDocument{ @@ -517,19 +576,28 @@ \ifhep@revtex \AtBeginShipout{\hypersetup{pdftitle={\@title}}} \else - \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \fi \fi \ifhep@title \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else - \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \fi \fi +\def\BackrefFootnoteTag{} +\RequirePackage{footnotebackref} +\let\@foot@note\footnote +\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} + +\ifhep@references \RequirePackage[noabbrev, nameinlink]{cleveref} \newcommand{\creflastconjunction}{, and\nobreakspace} \crefname{enumi}{point}{points} -\Crefname{enumi}{Point}{Points} - +\crefname{inlinelisti}{point}{points} \newcommand\no@break@before{% \relax\ifvmode\else% \ifhmode% @@ -539,17 +607,16 @@ \fi% \fi% } - -\let\old@ref\ref +\let\hep@ref\ref \AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}} \renewcommand\eqref{\no@break@before\labelcref} -\let\old@subref\subref -\renewcommand\subref{\no@break@before\old@subref} +\let\hep@subref\subref +\renewcommand\subref{\no@break@before\hep@subref} \renewcommand*\subcaption@ref[2]{\begingroup% \caption@setoptions{sub}% - \subcaption@reffmt\p@subref{\old@ref#1{sub@#2}}% + \subcaption@reffmt\p@subref{\hep@ref#1{sub@#2}}% \endgroup} \newcommand{\subcref}[1]{\cref{sub@#1}} @@ -562,9 +629,10 @@ \DeclareRobustCommand{\labelcrefrange}[2]{% \@crefrangenostar{labelcref}{#1}{#2}% } +\fi -\let\old@cite\cite -\renewcommand\cite{\no@break@before\old@cite} +\let\hep@cite\cite +\renewcommand\cite{\no@break@before\hep@cite} \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else \NewBibliographyString{refname} @@ -630,12 +698,18 @@ \NewDocumentCommand{\acronym}{somsmo}{ \newabbreviation[ - longplural=\IfNoValueTF{#6}{#5s}{#6}, - \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} + type=\acronymtype, + sort=#3, + \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}, + longplural=\IfNoValueTF{#6}{#5s}{#6} ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} \expandafter\newcommand\csname#3\endcsname{% - \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}% - \IfBooleanTF{#4}{}{\@\xspace}% + \if@begin@of@sentence{% + \ifglsused{#3}{\cgls{#3}}{\cGls{#3}}% + }{\cgls{#3}}% + \ifnum\glsentrycurrcount{#3}>1\relax + \IfBooleanTF{#4}{}{\@\xspace}% + \else\@\xspace\fi } \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% \IfNoValueTF{#2}{#3}{#2} }% @@ -710,13 +784,30 @@ } \newcommand{\resetacronym}[1]{\protect\glsreset{#1}} \newcommand{\dummyacronym}[1]{\protect\glsunset{#1}} -\@ifundefined{abstract}{}{% - \let\end@old@abstract\endabstract% - \renewcommand\endabstract{\glsresetall\end@old@abstract}% +\@ifundefined{endabstract}{}{% + \let\end@hep@abstract\endabstract% + \renewcommand\endabstract{\glsresetall\end@hep@abstract}% } -\let\old@table@of@contents\tableofcontents +\let\hep@table@of@contents\tableofcontents \renewcommand\tableofcontents{% - \glsunsetall\old@table@of@contents\glsresetall% + \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% +} +\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}% + } } \fi -- cgit v1.2.3