Preprint-Number

The HEP–PAPER package∗ Publications in high energy physics Jan Hajer†

Department of Physics, University of Basel, Klingelbergstraße :4, 6278 Basel, Switzerland 4243/2:/23

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.

Contents

3 Introduction 5 3.3 Options ...... 5

4 Macros and environments 6 4.3 Title page ...... 7 4.4 Text...... 7 4.5 Math...... 9 4.6 Floats ...... ; 4.7 Bibliography ...... 32

5 Conclusion 32

∗This document corresponds to hep-paper v3.:. †[email protected]

3 A Math alphabet allocation 34

B Options 38 B.3 Deactivation ...... 39 B.4 Compatibility ...... 39 B.5 Reactivation ...... 3: B.6 Process options ...... 3: B.7 Set compatibility ...... 3:

C Font 42 C.3 Math fonts ...... 45 C.4 Font size ...... 49

D Text 49 D.3 Lists ...... 4:

E Geometry 4;

F Math 52 F.3 Operators ...... 54 F.4 Units and fractions ...... 54 F.5 Paired delimiters ...... 57

G Floats 5: G.3 Sub-floats ...... 5; G.4 Tables ...... 63 G.5 Figures ...... 63

H Title page 63 H.3 Preprint and title ...... 64 H.4 Authors and Editors ...... 66 H.5 Date and Abstract ...... 6: H.6 Thanks ...... 6;

I Bibliography 6; I.3 Sourcemap ...... 73 I.4 Eprints ...... 75

J Hyperlinks, Footnotes and References 77 J.3 Footnotes ...... 77 J.4 References ...... 78 J.5 Citations ...... 79

K Acronyms 7:

L Biblatex datamodel file 85

4 3 Introduction

For usual publications it is enough to load additionally to the article class without optional arguments only the hep-paper package [3]. \documentclass{article} \usepackage{hep-paper}

The most notable changes after loading the hep-paper package is the change of some LATEX defaults. The paper and font sizes are set to A6 and  pt, respectively. Additionally, the paper geometry is adjusted using the geometry package [4]. Fur- thermore, the font is changed to latin modern (LM) using the cfr-lm package [5] with microtype [6] optimizations. Finally, portable document format (PDF) hy- hep-title perlinks are implemented with the hyperref package [7]. If only subset of the functionality is needed one of the smaller style files hep-title, hep-acronyms, and hep-bibliography hep-bibliography containing only the macros relevant to sections 4.3, 4.4.4, and 4.7, hep-acronyms respectively.

3.3 Options

paper The paper=hformati option loads the specified paper format. The possible hformatsi are: a2, a3, a4, a5, a6, a7, a8, b2, b3, b4, b5, b6, b7, b8, c2, c3, c4, c5, c6, c7, c8, ansia, ansib, ansic, ansid, ansie, letter, executive, legal. The default is a6. font The font=hsizei option loads the specified font size. The possible hsizesi are: :pt, ;pt, 32pt, 33pt, 34pt, 36pt, 39pt, 42pt. The default is  pt. lang The lang=hnamei option switches the document language to one of the values provided by the babel package [8]. The default is british. sansserif The sansserif option switches the document including math to sans serif font shape. oldstyle The oldstyle option activates the use of oldstyle text- (345) in favour of lining- () figures in text mode.

parskip The parskip option changes how paragraphs are separated from each other using the parskip package [9]. The LATEX default is separation via indentation the parskip option switches to separation via vertical space.3

symbols The symbols=hfamilyi set the family of the symbol fonts. symbols=ams loads the two AMS fonts [:] and the bm bold fonts. The default symbols=true replaces additionally the blackboard font with the dsfont [;]. symbols=minion switches the symbol fonts to the Adobe MinionPro companion font from the MnSymbol package [32]. symbols=false deactivates loading any additional symbol fonts.

3 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.

5 3.3.3 Deactivation

The hep-paper package loads few bigger packages which have a large impact on the document. The deactivation options can prevent such and other adjustments.

defaults The defaults option prevents the adjustment of the page geometry and the font size set by the document class.

title The title=false option deactivates the title page adjustments. bibliography The bibliography=hkeyi option prevents the automatic loading of the biblatex pack- age [33] if hkeyi=false. Otherwise the hkeyi is passed as style string to the bibla- package.

glossaries The glossaries=false option deactives acronyms and the use of the glossaries pack- age [34].

references The references=false option prevents the cleveref package [35] from being loaded and deactivates further redefinitions of reference macros.

3.3.4 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 hep-paper is able to detect the presence of such a class or package, i.e. if it is loaded before the hep-paper package, the compatibility mode is activated automatically.

The beamer option activates the beamer [36] compatibility mode. jhep The jhep option activates the JHEP [37] compatibility mode. jcap The jcap option activates the JCAP [38] compatibility mode. revtex The revtex option activates the REVTEX[39] compatibility mode. pos The pos option activates the PoS compatibility mode. springer The springer option activates the compatibility mode the svjour class [3:].

3.3.5 Reactivation

The hep-paper package deactivates unrecommended macros, which can be reactivated manually. manualplacement The manualplacement option reactivates manual float placement. eqnarray The eqnarray option reactivates the depreciated eqnarray environment.

4 Macros and environments

twocolumn If the global twocolumn option is present the page geometry is changed to cover abstract* 6 almost the entire page. Additionally the abstract* environment is defined that generates a one column abstract and takes care of placing the title information.

4.3 Title page

\series The \series{hseriesi} macro is defined using the titling package [3;]. \title The PDF meta information is set according to the \title{htexti} and \author{htexti} information.

\subtitle The \subtitle{hsubtitlei} macro is defined.

\editor In order to facilitate multiple authors with different affiliations the authblk pack- age [42] is loaded. The following lines add . . two authors with different affiliations \author e g \affiliation \author[3]{Author one \email{email one}} \affiliation[3]{Affiliation one} \email \author[4]{Author two \email{email two}} \affiliation[3,4]{Affiliation two}

\preprint The \preprint{hnumeri} macro places a pre-print number in the upper right corner of the title page.

abstract The abstract environment is adjusted to not start with an indentation.

\titlefont Various title font macros are defined, allowing to change the appearance of the output. \subtitlefont \maketitle

\authorfont 4.4 Text \affiliationfont Hyphenation is provided by the babel package [8] and quotation commands are \preprintfont provided by the csquotes package [43]. The latter package provides the convenient \enquote macros \enquote{htexti} and \MakeOuterQuote{} allowing to leave the choice of quotation marks to LATEX and use . . . instead of the pair . . . and . . . , respectively. \MakeOuterQuote The foreign package [44] defines macros such as \eg, \ie, \cf, and \vs which are \eg typeset as e.g., i.e., cf., and vs. \vs The \no{hnumberi} macro is typeset as › 345. \no The \software[hversioni]{hnamei} macro is typeset as HEP-Paper v3.:. \software The h i h i macro combines the features of the h i h i \online \online{ url }{ text } \href{ url }{ text } [7] and the \url{htexti} [45] macros, resulting in e.g. ctan.org/pkg/hep-paper. inlinelist The inlinelist and enumdescript environments are defined using the enumitem pack- age [46]. enumdescript

7 The three main points are i) one, ii) two, The three main points are and iii) three. \begin{inlinelist} \item one \item two \item three \end{inlinelist}

\begin{enumdescript}[label=\Roman*)] I) First one \item{First} one II) Second two \item{Second} two III) Third three \item{Third} three \end{enumdescript} \textsc A bold versions Small Caps and a sans serif version of Small Caps based on the computer modern (CM) font [47] is provided, the latter using the sansmath- fonts package [48].

\underline The \underline macro is redefined to allow line-breaks using the ulem package [49]. The macro is extended to also overline text outside of math environments. \overline \overline \useparskip If the parskip option is activated the \useparindent macro switches to the usual parindent mode, while the \useparskip macro switches to the parskip mode. \useparindent 4.4.3 References and footnotes

\cref References are extended with the cleveref package [35], which allows to e.g. just type \cref{hkeyi} in order to write ‘figure 3’. Furthermore, the cleveref package allows to reference multiple objects within one \cref{hkey3,key4i}.

\cite Citations are adjusted to not start on a new line in order to avoid the repeated use of ~\cite{hkeyi}.

\ref References are also adjusted to not start on a new line. \eqref Footnotes are adjusted to swallow white space before the footnote mark and at the \subref beginning of the footnote text. \footnote 4.4.4 Acronyms

\acronym The \acronymh*i[htypeset abbreviationi]{habbreviationi}h*i{hdefinitioni}[hplural i macro generates the singular h i and plural h i \shortacronym definition ] \ abbreviation \ abbreviation s macros. The first star prevents the addition of an ‘s’ to the abbreviation plural. The \longacronym second star restores the TEX default of swallowing subsequent white space. The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form. The long form is never used in math mode. Capitalization at the beginning of paragraphs and sentences is (mostly) ensured. The \shortacronym and \longacronym macros are drop-in replacements \resetacronym of the \acronym macro showing only the short or long form of their acronym. The first use form of the acronym can be enforced by resetting the acronym counter with \dummyacronym

8 \resetacronym{hkeyi}. If the acronym counter equals one at the end of the document the short form of the acronym is not introduced. Placing a \dummyacronym{hkeyi} at the end of the document ensures that the short form is introduced.

4.5 Math

The mathtools [4:] and amssymb [:] packages are loaded. They in turn load the \mathbf AMS-LATEX amsmath [4;] and amsfonts [:] packages. Bold math, via \mathbf is improved by the bm package [52], i.e.(AbΓ δAbΓ δ). Macros switching to bfseries \text such as \section{htexti} are ensured to also typeset math in bold. The \text{htexti} macro makes it possible to write text within math mode, . .(AbΓδ Γδ). The \mathsf i e Ab math sans serif alphabet is redefined to be italic sans serif if the main text is serif \mathscr and italic serif if the main text is sans serif, i.e.(AbΓ δAbΓ δ). The \mathcal font i.e. (ABCD) is accompanied by the font . .( ). The font is \mathbb \mathscr i e ABCD \mathbb improved by the doublestroke package [;] and adjusted depending on the sansserif \mathfrak option i.e.(Ah1). Finally, the \mathfrak font is also available i.e.(AaBb12). Details about the font handling in TEX can be found in reference [53]. \nicefrac The \frac{hnumberi}{hnumberi} macro is accompanied by \nicefrac{hnumberi} h i , h i h i , and h i h i \flatfrac { number } \textfrac{ number }{ number } \flatfrac{ number }{ number } 1 1 3 leading to 2 , /2, /4, and 1/2 . Diagonal matrix \diag and signum \sgn operators \textfrac are defined. \diag The \mathdef{hnamei}[hargumentsi]{hcodei} macro (re-)defines macros only within \sgn math mode without changing the text mode definition. \mathdef The imaginary unit i and the differential d are defined using this functionality. \i For longer paper it can be useful to re-number the equation in accordance with the \d section numbering \numberwithin{equation}{section}. In order to further reduce the size the of equation counter it can be useful to wrap align environments with \numberwithin multiple rows in a subequations environment. Both macros are provided by the subequations amsmath package.

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.

equation Use the equation environment for short equations. \begin{equation} left = right . (3) left = right \ . \end{equation} multline Use the multline environment for longer equations.

9 \begin{multline} left = right 3 \\ + right 4 \. left = right 3 \end{multline} + right 4 . (4)

split Use the split sub environment for equations in which multiple equal signs should be aligned. \begin{equation} \begin{split} left &= right 3 \\ left = right 3 &= right 4 \. (5) \end{split} \end{equation} = right 4 .

align Use the align environment for the vertical alignment and horizontal distribution of multiple equations. \begin{subequations} \begin{align} left &= right \ , & left = right , left = right , (6a) left &= right \ , \\ left &= right \ , & left = right , left = right . (6b) left &= right \ . \end{align} \end{subequations} aligned Use the aligned environment within a equation environment if the aligned equations should be labeled with a single equation number. multlined Use the multlined environment if either split or align contain very long lines. \begin{equation} \begin{split} left &= right 3 \\ &= left = right 3 \begin{multlined}[t] right 4 \\ + right 5 \. = right 4 (7) \end{multlined} \end{split} \end{equation} + right 5 . alignat Use the alignat environment together with the \mathllap macro for the alignment of multiple equations with vastly different lengths. \begin{subequations} \begin{alignat}{4} left = long right , (8a) left &= long right && \ , \\ le. 4 &= ri. 4 \,& le. 4 = ri. 4 , le. 5 = ri. 5 . (8b) \mathllap{le. 5 = ri. 5}&\. \end{alignat} \end{subequations} 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.

4.5.3 Physics

\unit The correct spacing for units, cf. equation (9), is provided by the macro \unit[hvaluei] h i from the units package [54] which can also be used in text mode. The macro \inv { unit }

: \inv[hpoweri]{htexti} allows to avoid math mode also for inverse units such as  fb−1 typeset via \unit[7]{\inv{fb}}. Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the fixmath [55] and alphabeta [56] packages. This allows differentiations like

σ = 5 fb , at  σ C.L. , µ = 5 cm , l = 5 μm . (9)

Additionally, Greek letters can also be directly typed using Unicode.

\ev The physics package [57] provides additional macros such as \pdv n ∂ f 2 ∞ hφi , , [A, B] , O(x ) , x|0 , det(M) . (:) \comm ∂xn \order The \cancel{hcharactersi} macro from the cancel package [58] and the \slashed  \cancel {hcharacteri} macro from the slashed package [59] allow to cancel math and use the \slashed Dirac slash notation i.e. ∂/, respectively. ↔ \overleftright A better looking over left right arrow is defined i.e. ∂.

4.6 Floats

figure 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 LAT X macros. table E \setcounter{bottomnumber}{2} no floats at the bottom of a page (default 3) \setcounter{topnumber}{3} a single float at the top of a page (default 4) \setcounter{dbltopnumber}{3} same for full widths floats in two-column mode \renewcommand{\textfraction}{.3} large floats are allowed (default 2.4) \renewcommand{\topfraction}{.;} (default 2.9) \renewcommand{\dbltopfraction}{.;} (default 2.9) \renewcommand{\floatpagefraction}{.:} float pages must be full (default 2.7) 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 \raggedright archived by placing the float in front of the paragraph it is referenced in first. The float environments have been adjusted to center their content. The usual behaviour can be reactivated using \raggedright. panels The panels environment makes use of the subcaption package [5:]. It provides sub-floats and takes as mandatory argument either the number of sub-floats (de- \panel fault 4) or the width of the first sub-float as fraction of the \linewidth. Within the \begin{panels}[hvertical alignmenti]{hwidthi} 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{hwidthi} macro

; \begin{panels}{4} code one two \panel b c d \begin{tabular}...\end{tabular} a b c d \end{panels} (a) Code for this panel environment. (b) The booktabs and multirow features.

Table 3: Example use of the panels environment in Panel (a) and the features from the booktabs and multirow packages in Panel (b).

takes the width of the next sub-float as mandatory argument. The example code is presented in table 3a.

tabular The booktabs [5;] and multirow [62] packages are loaded enabling publication quality tabulars such as in table 3b.

\graphic The graphicx package [63] is loaded and the \graphic[hwidthi]{hfigurei} macro is defined, which is a wrapper for the h i macro and takes the fig- \graphics \includegraphics{ figure } ure width as fraction of the \linewidth as optional argument (default 3). If the graph- ics are located in a sub-folder its path can be indicated by \graphics{hsubfolderi}.

4.7 Bibliography

\bibliography The biblatex package [33] is loaded for bibliography management. The user has to add the line h i to the preamble of the document and \printbibliography \bibliography{ my.bib } \printbibliography at the end of the document. The bibliography is generated by Biber [64]. biblatex is extended to be able to cope with the collaboration and reportNumber fields provided by inspirehep.net and a bug in the volume number is fixed. Additionally, the PubMed IDs are recognized and ctan.org, github.com, gitlab.com, bitbucket.org, launchpad.net, sourceforge.net, and hepforge.org are erratum valid eprinttypes. Errata can be included using the related feature. \article{key3, ..., relatedtype="erratum", related="key4", } \article{key4, ..., }

5 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.

32 arxiv-collector arxiv.org [65] requires the setup dependent bbl files instead of the original bib files, which causes trouble if the local LATEX version differs from the one used by arXiv. The arxiv-collector python script [66] alleviates this problem by collecting all files necessary for publication on arXiv (including figures).

33 A Math alphabet allocation

Of the 38 available math alphabets, TEX loads four by default 2) OT3 Text (latin, upper case greek, numerals, text symbols) 3) OML Math Italic (latin, greek, numerals, text symbols) 4) OMS Symbol (\mathcal, operators) 5) OMX Math Extension (big operators, delimiters) The text font 2) of CM is cmr32 \OT3/cmr/m/n/32, which is replaced by LM to be rm-lmr32 \OT3/lmr/m/n/32, the sansserif option uses rm-lmss32 \OT3/lmss/m/n/32. The italic math font 3) of CM is cmmi32 \OML/cmm/m/it/ 32, and is replaced by LM to be lmmi32 \OML/lmm/m/it/32, the sansserif op- tions uses cmbrmi32 \OML/cmbrm/m/it/32 from the cmbright package [67]. The symbol font 4) of CM is cmsy32 \OMS/cmsy/m/n/32, and is replaced by LM to be lmsy32 \OMS/lmsy/m/n/32, the sansserif options uses cmsssy32 \OMS/cmsssy/m/n/32 from the sansmathfonts package [48]. The extension font 5) of CM is cmex32 \OMX/cmex/m/n/7, and is replaced by the exscale pack- age [68] to be cmex32 \OMX/cmex/m/n/32, the sansserif option loads cmssex32 \OMX/cmssex/m/n/32. The amssymb (amsfonts) packages [69] load two more symbol fonts 6) msam32 \U/msa/m/n/32 AMS symbol font A (special math operators) 7) msbm32 \U/msb/m/n/32 AMS symbol font B (\mathbb, negated operators) The sansserif option replaces them with ssmsam32 \U/ssmsa/m/n/32 and ssmsbm32 \U/ssmsb/m/n/32 from the sansmathfonts package [48], respectively. The bm package [52] loads the bold version for the fonts 2) to 4). Other math alphabets are only loaded on demand, e.g. \mathsf uses a sans serif font and \mathbf without the bm package uses a bold font. The \mathscr macro uses the script font from the mathrsfs package [6:] ;) rsfs32 \U/rsfs/m/n/32 Math script font (capital letters) The \mathbb macro loads the double stroke font from the dsfont package [;], this can be prevented with the symbols=ams option. 32) dsrom32 \U/dsrom/m/n/32 Double stroke font The \mathfrak macro loads the fractur font from the amssymb package [69] 33) eufm32 \U/euf/m/n/32 Math fraktur (Basic Latin) The hep-paper package uses nine of the available 38 math alphabets. This number can be reduced by three using \newcommand{\bmmax}{2} from the bm package [52] and brought down to the default of four with the option symbols=false.

34 Γ ∆ΘΛ Ξ Π Σ Υ Γ ∆ Θ Λ ΞΠ Σ Υ      ♦         Φ ΨΩ ff fi fl ffi ffl Φ Ψ Ω α β γ δ     ı  ` ´ ˇ ˘ ¯ ˚ ζ η θ ι κ λ µ ν   ⇔⇒     ‘’ ¸ ß æœ ø ÆŒ Ø ξ π ρ σ τ υ φ χ     ! ” # $ % & ’ ψ ω ε ϑ $ % ς ϕ !"# $ % & ' !&' ()*+ , - . / ( ) * + , − . / ( ) * + , - . / ( ∴ ∵ + , - . / 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 ≶ 8 9 : ; ¡ = ¿ ? 8 9 . , < / > ? 8 9 : ; = ? 8 9 : ; < = > ≷ @ABCDEFG ∂ A B C DE F G ABCDEFG @ABCDEFG HIJKLMNO HIJKLMNO H I J K LMNO HIJKLMNO PQRSTUVW PQRSTUVW PQRST U VW X YZ [ “ ] ˆ ˙ X Y Z [ \ ] ^_ PQRSTUVW XY Z [ ] ^ ‘ a b c d e f g ` a b c d e f g X Y Z [ ∠ ] ^ ∝ a b c d e f g h i j k l m n o h i j k l m n o ` a b c d e f g h i j k l m n o p q r s t u v w p q r s t u v w h i j k l m≪≫ p q r s t u v w x y z – — ˝ ˜ ¨ x y z ı  ℘ ~  p q r s t u v w x y z "  ĂĄĆČĎĚĘĞ (b) Math x y z { | } ~  (f) Euler fraktur ĹĽŁŃŇŊŐŔ (d) AMS a − · × ∗ ÷  ± ∓ ℵABCD E F G ŘŚŠŞŤŢŰŮ ⊕ ⊗ ◦ •    ≮ ≯ ⊀  H I JKLMN O Ÿ Ź Ž Ż IJ İ đ §  ≡ ⊆⊇≤ ≥   PQRSTUVW    ă ą ć č ď ě ę ğ ∼ ≈ ⊂⊃ ≺ X Y Z ∧∨ ĺ ľ ł ń ň ŋ ő ŕ ←→ ↑ ↓ ↔%&'         (g) Euler caligra- ř ś š ş ť ţ ű ů ⇐⇒⇑ ⇓⇔-.∝        phy ÿ ź ž ż ij · " £ 0 ∞∈ 34 5 6 7 ! " # $ % & ' ÀÁÂÃÄÅ«Ç ∀ ∃ ¬ ∅ < = > ⊥ ( ) * + ∦ - . / ABCDEFG H I JKLMNO ÈÉÊËÌÍÎÏ ℵ A B C D E F G 0 1 2 3 4 5 6 7 HIJKLMNO PQRS T U VW ÐÑÒÓÔÕÖ» 89: ; < = > ∅ PQRSTUVW XYZ ‰ÙÚÛ Ü Ý Þ ß @ABCDEFG X Y Z∪ ∩ ] ∧ ∨ (h) Minion calig- à á â ã ä å _ ç HIJKLMNO ` a b c d e { } raphy è é ê ë ì í î ï PQRSTUVW h i | k l m \ o ð ñ ò ó ô õ ö ÷ X Y Z [\]^ ABCDEFG √ q ∇ ∫ t u v w ø ù ú û ü ý þ „ ` a f ð H I JKLMN O k l m n o PQRSTUVW ג h i (a) Text § † ‡ ¶ ♣ ♦ ♥ ♠ p q r ∼ ≈ u v w XYZ (c) Symbol xyz κ k } ~  (i) Doublestroke (e) AMS b

Figure 3: Basic math fonts

35        [     ]    ‘ ⎛ ⎞ ⎝ ⎠ ⎜ ⎟     ⌊  ⌋ { ™ š › œ } ž Ÿ             ⌈    ¡ ⎧ ⎫ ⎩ ⎭ ⎨ ⎬        ⎪ © ª « ¬­ ® ¯  ⌉      ° ±² ³ ´ µ ¶ · ! " # $ % & ' ¸ ¹ √ » ¼ ½ ¾ ¿ ! " # $ % & '

À Á ̂ Ã Ä ÅÆ ̃ ( ) * + , - . / ( ) * + , - . / ÈÉÊËÌÍÎÏ 0 1 2 3 4 5 6 7 Ð ⃗ ̵ ̷ ̸ Õ Ö ×         ØÙÚ 8 9 : ; ⎡ ⎤ ⎣ ⎦         (c) Mn Symbol E 4 ⎢ ⎥ ⟦ C D E F ⟧  ⨉  ⋀  ⋁      D E F G    HIJKLMNO         H I JK L MNO     ⋂  ⋃ PQRSTUVW ! " # $ % & ' PQRSTUVW ( ) * + , - . / ´ ˆ ˜¨˝˚ˇ X Y Z [ \ ] ^ _ 0 1 2 3 456 7 XY Z [ \ ] ^ _ 8 9 : ;<=> ? ˘¯˙ ¸ ˛ ‚ ‹ › ⟨ a b c d ⟩ f g @ A B CDEF G ` a b c d e fg H I J K∏M∐ O “ ” „  h i j k l m n o h i j k l m n o ∑ Q ∫ S ∬U∭W ‰ ı  ff fi fl ffi ffl p q r s ⟪ u v w ⨌YZ[ ⨙ ] ⨚ _ p q r s t u v w ⨏ a ∮ c ∯e ∳ g x ⟫ z {|} ~  ! " # $ % & x y z { | } ~  h i j k ∲ m ⨋ o €‚ ƒ „ †‡ (e) Extended set of integrals (a) Computer modern p q r s t u v w

( ‰ Š ‹ Œ ) Ž  x y z{ | } ~ 

(b) Mn Symbol E 3 (d) Mn Symbols F

Figure 4: Math extension fonts

36 → ↑ ← ↓ ↗ ↖ ↙ ↘ ↛  ↚      ⋅  ∶   ⋯ ⋮ ⋰ = ≡ ∼ ∽ ≈≋ ⇒ ⇑ ⇐ ⇓ ⇗⇖⇙⇘ ⇏ ⇍  ⋱ ∴ ∵ ∷  ≃ ⋍ ≂ ≅≌≊ ↔ ↕ ⤡ ⤢⇔ ⇕  ↮  ⇎   −  ∕ ∖ + × ± ∓ ≏  ≎ ≐ ⩦≑≒≓ ↠ ↟ ↞ ↡             ÷   ⌣ ⌢   ≍ ↣ ! ↢ # $ % & ' ! " # $ % & ' ¬ ⌐ " ⋊ $ ⋉ & ⧖ ! " # $%&' ↦ ↥ ↤ ↧ , - . / ( ) * + , - . / ( ) * + ∧ ∨ . / ( ) * + ,-./ ↪ 1 2 3 4 ⤣ 6 ⤥ 0 1 2 3 4 5 6 7 ⩕ ⩔ ⋏ ⋎ 4 5 6 7 0 1 2 3 4567 8 9 ↩ ; ⤤ = ⤦ ? 8 9 : ; < = > ? ∪ ∩ ⋓ ⋒ ⊍ ⩀ ⊎ ? 8 9 ≖ ≗ ≜≙∈∋ ⇀ ↿ ↽ ⇂ D E F G @ABCDEFG ⊔ ⊓ ⩏ ⩎ D E F G < > ≤ ≥ ⩽⩾≦≧ ⇁ ↾ ↼ ⇃ L M N O HIJKLMNO ▹ ▵ ◃ ▿ ▸ ▴ ◂ ▾ ≶ ≷ ⋚ ⋛ ⪋⪌NO ⥋ Q R S ⥊ U V W PQRSTUVW ▷ △◁ ▽ TUVW ≪≫⋘⋙⊲⊳⊴⊵ ⇌ ⥮ Z [ ⇋ ⥯ ^ _ X Y Z[ \ ] ^ _ ○ ● ◯ [ ⊖ ⦶ ⊘ ⦸ ⊏ ⊐ ⊑ ⊒ \]^_ ⇢ ⇡ ⇠ ⇣ d e f g ` a b c d e f g ⊕ ⊗ ⊙ ⊚ d ⊛ ⍟ ∅ ⊂ ⊃ ⊆ ⊇ ⫅⫆⋐⋑ ⊸ ⫯ ⟜ ⫰ l m n o h i j k lm n o ◽ ◾ ◻ k ◇ ◆ n o ≺ ≻ ⪯ ⪰ ≼≽≾≿ p q r s t u v w p q r s tu v w ⊟ q ⧄ ⧅ ⊞ ⊠ ⊡ ⧈ ⪷ ⪸ ⋖ ⋗ tu⩿⪀ x y z { | } ~  x y z { | } ~  x yz { | } ⟐  ≠ ≢ ≁ { ≉}~ €  ‚ ⫝ „ † ‡ €  ‚ ⫝̸ „ † ‡ ☆ ★ ‚ƒ „ ⋆ ∗ ≄  ‚ ƒ ≇ †‡ ˆ ⋔ Š ⫛ Œ  Ž  ˆ ‰ Š ‹ ŒŽ  ˆ‰ Š ‹ ∝  Ž  ˆ ‰ Š ‹ ŒŽ ⇉ ⇈ ⇇ ⇊ ”•–—  ‘ ’ “ ”• – —  ‘ ’ “ ” • – ⊺  ‘ ’ “ ”•≭— ⇄ ™ š› ⇆  žŸ ˜ ™ š› œ  ž Ÿ ≀ ∠∡ ∢ ′ ‵ ž Ÿ ˜ ™ š › œžŸ ↝ ¡ ¢ £ ¤ ¥ ¦ § ¡ ¢ £ ¤ ¥ ¦ § ✓ ☇ ♢ ♡ ♠ ♣ ∀ ∃ ¡ ¢ £ ¤¥¦§ ¨ © ↜ « ¬ ­ ® ¯ ¨ © ª « ¬ ­ ® ¯ ∄ ∇∞ « ♭ ♮ ♯ ℵ ¨ © ª « ¬­®¯ ↭ ± ² ³ ´ µ ¶ · ° ± ²³ ´ µ ¶ · ℶ ℷ ℸ ℘ ´ ⨼ ⨽ ⌞ ° ± ² ³ ´µ∉∌ ↷ ¹ º ⤸ ¼ ½ ¾ ¿ ¸ ¹ º » ¼ ½ ¾ ¿ ⌟ ⌜ ⌝ » ¼ ½ ¾ ⪧ ≮ ≯ ≰ ≱ ¼½¾¿ À Á ↶ ⤹ Ä Å Æ Ç ÀÁÂÃÄÅÆÇ À ⪦  ◊ ⧫ Å Æ Ç ≸ ≹  à ÄÅÆÇ ÈÉÊËÌÍÎÏ ÈÉÊËÌÍÎÏ ▶ ▲◀ ▼ ∎ ☀ ✡ Ï Ð ∣ Ò Ó Ô ∥ Ö× Ð ∤ Ò Ó Ô ∦ Ö× ✠ ÈÉÊË⋪⋫⋬⋭ ⊢ ⊥ ⊣ ⊤ Ü Ý Þ ß ⊬ Ù Ú Û Ü Ý Þ ß Ü Ý Þ ≲ Ð Ñ ⋢ ⋣ ÔÕÖ× ⊧ á â ã ä å æ ç ⊭ á â ã ä å æ ç ≳ ⪅ ⪆ ⪕ ⪖ ⋞ ⋟ ⇛ ⊄ ⊅ ⊈ ⊉ ÜÝÞß ⊩ ⍊ ê ⍑ ì í î ï ⊮ é ê ë ì í î ï ⇚ é ê ë ≴ ≵ ⪉ ⪊ ⊀ ⊁ â ã ⋠⋡æç ⊫ ñ ò ó ôõö÷ ⊯ ñ ò ó ôõö÷ ð ñ ò ó ô õ ↱ ↰ è é ê ë ìíîï ⤿↺⟲û⟳↻⤾ÿ øùúûüýþÿ ↬↫ ⋋ ⋌ ⊪ ý þ ÿ ≨ ≩ ò ó ⋤⋥ö÷ (a) Mn Symbol A (b) Mn Symbol B (c) Mn Symbol C ⊊ ⊋ ⫋ ⫌ ⋨⋩⪹⪺

(d) Mn Symbol D

Figure 5: Minion symbol fonts

37 The symbols=minion options replaces the fonts 4) to 7) with corresponding fonts from the MnSymbol package [32]. Additionally, two more symbol alphabets are allocated, the bm package [52] loads one more font and now \mathcal triggers the use of one additional alphabet. Hence, the minion option uses three to four more math alphabets than a usual setup.

B Options

<*package|title|font|math|floats|acronyms|bibliography> <*package>

Load the pdftexcmds [6;] and kvoptions [72] packages and define a hep namespace.

3 \RequirePackage{pdftexcmds} 4 \RequirePackage{kvoptions} 5 \SetupKeyvalOptions{ 6 family=hep, 7 prefix=hep@ 8 }

paper Define a paper=hsizei option. Make A6 paper the default.

9 \DeclareStringOption[a4]{paper}

font Define a figures=hsizei option. Make  pt the default font size.

: \DeclareStringOption[11pt]{font}

lang Define the lang option, which takes the values provided by the babel package [8]. Make british the default language.

; \DeclareStringOption[british]{lang} sansserif Define the option pair serif and sansserif controling the font shape of the whole document.

32 \DeclareBoolOption[true]{serif} 33 \DeclareComplementaryOption{sansserif}{serif}

lining Define the lining option deactivating the use of text figures in text mode.

34 \DeclareBoolOption[true]{lining} 35 \DeclareComplementaryOption{oldstyle}{lining}

parskip Define the option pair parindent and parskip controlling the separation of paragraphs.

36 \DeclareBoolOption[true]{parindent} 37 \DeclareComplementaryOption{parskip}{parindent}

38 symbols Provide the symbols option allowing to switch the symbol font.

38 \DeclareStringOption[true]{symbols}

B.3 Deactivation

defaults Define the defaults option which deactivates the paper and font options and prevents the change of the class defaults by this package.

39 \DeclareBoolOption[false]{defaults}

title Provide the title option deactivating redefinitions of title macros.

3: \DeclareBoolOption[true]{title}

physics Provide the physics option for deactivating redefinition of physics macros.

3; \DeclareBoolOption[true]{physics} bibliography Provide the bibliography option for passing a style string to the biblatex package [33] or disabling the automatic loading of biblatex.

42 \DeclareStringOption[numeric-comp]{bibliography}

glossaries Provide the glossaries option able to turn of the use of the glossaries package [34].

43 \DeclareBoolOption[true]{glossaries}

references Provide the references option for preventing the cleveref package from being loaded redefinitions of reference macros.

44 \DeclareBoolOption[true]{references}

B.4 Compatibility

beamer Provide the beamer option for beamer [36] compatibility mode.

45 \DeclareBoolOption[false]{beamer}

revtex Provide the revtex option for REVTEX[39] compatibility mode.

46 \DeclareBoolOption[false]{revtex}

jhep Provide the jhep option for JHEP [37] compatibility mode.

47 \DeclareBoolOption[false]{jhep}

jcap Provide the jcap option for JCAP [38] compatibility mode.

48 \DeclareBoolOption[false]{jcap}

39 pos Provide the pos option for PoS compatibility mode.

49 \DeclareBoolOption[false]{pos}

springer Provide the springer option for Springer compatibility mode.

4: \DeclareBoolOption[false]{springer}

amsart Provide the amsart option for AMS article compatibility mode.

4; \DeclareBoolOption[false]{amsart}

B.5 Reactivation

eqnarray Provide the eqnarray option for reactivating the eqnarray environment.

52 \DeclareBoolOption[true]{eqnarray} manualplacement Provide the manualplacement option for reactivating the manual placement of floats.

53 \DeclareBoolOption[false]{manualplacement}

B.6 Process options

54 \ProcessKeyvalOptions*

Read the class options regarding font and paper size.

55 \def\hep@get@class#1.cls#2\relax{\def\hep@class{#1}} 56 \def\hep@getclass{\expandafter\hep@get@class\@filelist\relax} 57 \hep@getclass 58 \@ifclasswith{\hep@class}{10pt}{\setkeys{hep}{font=10pt}}{} 59 \@ifclasswith{\hep@class}{12pt}{\setkeys{hep}{font=12pt}}{} 5: \@ifclasswith{\hep@class}{a5paper}{\setkeys{hep}{paper=a5}}{} 5; \@ifclasswith{\hep@class}{b5paper}{\setkeys{hep}{paper=b5}}{} 62 \@ifclasswith{\hep@class}{letterpaper}{\setkeys{hep}{paper=letter}}{} 63 \@ifclasswith{\hep@class}{legalpaper}{\setkeys{hep}{paper=legal}}{} 64 \@ifclasswith{\hep@class}{executivepaper}{% 65 \setkeys{hep}{paper=executive}% 66 }{}

B.7 Set compatibility Set the amsart compatibility options.

67 \@ifclassloaded{amsart}{\setkeys{hep}{amsart}}{} 68 \ifhep@amsart 69 \setkeys{hep}{defaults, title=false} 6: \RequirePackage{xpatch} 6; \xpretocmd{\@adminfootnotes}{\let\@makefntext\BHFN@OldMakefntext}{}{} 72 \fi

3: Set the springer compatibility options.

73 \@ifclassloaded{svjour}{\setkeys{hep}{springer}}{} 74 \@ifclassloaded{svjour2}{\setkeys{hep}{springer}}{} 75 \@ifclassloaded{svjour3}{\setkeys{hep}{springer}}{} 76 \ifhep@springer 77 \setkeys{hep}{defaults, title=false} 78 \let\cl@chapter\undefined 79 \fi

Set the pos compatibility options.

7: \@ifclassloaded{PoS}{\setkeys{hep}{pos}}{} 7; \ifhep@pos 82 \setkeys{hep}{defaults, title=false} 83 \DeclareRobustCommand\boldmath{\@nomath\boldmath\mathversion{bold}} 84 \fi

Set the beamer compatibility options.

85 \@ifclassloaded{beamer}{\setkeys{hep}{beamer}}{} 86 \ifhep@beamer 87 \setkeys{hep}{defaults, title=false, references=false, sansserif} 88 \@ifpackageloaded{beamerbasefont}{\usefonttheme{professionalfonts}}{} 89 \setbeamertemplate{navigation symbols}{} 8: \fi

Set the revtex compatibility options.

8; \@ifclassloaded{revtex4}{\setkeys{hep}{revtex}}{} 92 \@ifclassloaded{revtex4-1}{\setkeys{hep}{revtex}}{} 93 \@ifclassloaded{revtex4-2}{\setkeys{hep}{revtex}}{} 94 \ifhep@revtex 95 \setkeys{hep}{defaults, title=false, bibliography=false, lang=american} 96 \fi

Define the SISSA conditional.

97 \@ifpackageloaded{jheppub}{\setkeys{hep}{jhep}}{} 98 \@ifpackageloaded{jcappub}{\setkeys{hep}{jcap}}{} 99 \newif\ifhep@sissa 9: \ifhep@jhep\hep@sissatrue 9; \else :2 \ifhep@jcap\hep@sissatrue :3 \else\hep@sissafalse :4 \fi :5 \fi

Set the SISSA compatibility options.

:6 \ifhep@sissa :7 \setkeys{hep}{title=false, bibliography=false}

3; :8 \PassOptionsToPackage{ :9 colorlinks=true, linktocpage=true, pdfproducer=medialab, pdfa=true, :: urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue, :; linkcolor=blue, menucolor=blue, pagecolor=blue ;2 }{hyperref} ;3 \PassOptionsToPackage{reset}{geometry} ;4 \AtBeginDocument{\renewcommand{\foreignabbrfont}{}} ;5 \fi

Set the JHEP compatibility options.

;6 \ifhep@jhep ;7 \voffset 0in ;8 \hoffset 0in ;9 \fi

C Font

<*package|font> Set the whole text to sans serif if requested.

;: %\newif\ifhep@serif\hep@seriftrue ;; \ifhep@serif\else 322 \renewcommand{\familydefault}{\sfdefault} 323 \fi

\ifxetexorluatex Load the ifluatex [73] and ifxetex [74] packages. Define the \ifxetexorluatex conditional checking if the package is executed by LuaLATEX or X LE ATEX.

324 \RequirePackage{ifluatex} 325 \RequirePackage{ifxetex} 326 \newif\ifxetexorluatex 327 \ifxetex\xetexorluatextrue 328 \else 329 \ifluatex\xetexorluatextrue 32: \else\xetexorluatexfalse 32; \fi 332 \fi

Pick the correct font encoding depending on the engine used and load the fontenc package [75] with this encoding. For details of the font encoding see [76].

333 \ifxetexorluatex 334 \def\hep@encoding{TU} 335 \else 336 \def\hep@encoding{T1} 337 \fi

42 338 \RequirePackage[\hep@encoding]{fontenc}

Fix the remaining CM fonts [77], load the LM font via cfr-lm [5] supported also by lmodern [78], the textcomp extension [79], and the microtype font optimization [6]. Adjust the figures according to the lining option and ensure that tables always use lining, using the etoolbox package [7:].

339 \RequirePackage{fix-cm} 33: \RequirePackage{microtype} 33; %\newif\ifhep@lining 342 \ifxetexorluatex 343 \RequirePackage{nfssext-cfr} 344 \RequirePackage{lmodern} 345 \else 346 \ifhep@lining 347 \RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm} 348 \else 349 \RequirePackage{cfr-lm} 34: \fi 34; \fi 352 \RequirePackage{etoolbox} 353 % \AtBeginEnvironment{tabular}{\tlstyle} 354 \RequirePackage{textcomp}

Define bold and sans serif small caps font shapes using the fontspec package [7;]. The font abbreviations are lmr LM regular font lmss LM sans serif font cmss CM sans serif font xcmss Extended CM sans serif font (from the sansmathfonts package [48]) bx Bold extended series b Bold series m Medium weight and width series c Medium weight, condensed width series sc Caps and small caps font shape

355 \newcommand{\hep@sf@fontshape}[3]{% 356 \DeclareFontShape{\hep@encoding}{\sfdefault}{#1}{#2}{#3}{}% 357 } 358 \newcommand{\hep@rm@fontshape}[3]{% 359 \DeclareFontShape{\hep@encoding}{\rmdefault}{#1}{#2}{#3}{}% 35: } 35; \ifxetexorluatex 362 \RequirePackage{fontspec} 363 \setmainfont{Latin Modern Roman}[ 364 UprightFeatures={SmallCapsFont={[lmromancaps10-regular.otf]}}, 365 BoldFeatures={ 366 SmallCapsFeatures={Letters=SmallCaps}, 367 SmallCapsFont={[cmunbx.otf]}

43 368 } 369 ] 36: \hep@sf@fontshape{bx}{sc}{<->cmssbxcsc10}{} 36; \hep@sf@fontshape{b}{sc}{<->cmssbxcsc10}{} 372 \hep@sf@fontshape{m}{scit}{<->cmsscsci10}{} 373 \hep@sf@fontshape{m}{sc}{% 374 <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% 375 }{} 376 \else 377 \rmfamily 378 \ifhep@lining 379 \RequirePackage{slantsc} 37: \hep@rm@fontshape{b}{sc}{<->ssub*cmr/bx/sc}{} 37; \hep@rm@fontshape{bx}{sc}{<->ssub*cmr/bx/sc}{} 382 \hep@rm@fontshape{b}{scsl}{<->ssub*cmr/bx/scsl}{} 383 \hep@rm@fontshape{bx}{scsl}{<->ssub*cmr/bx/scit}{} 384 \hep@rm@fontshape{b}{scit}{<->ssub*cmr/bx/scsl}{} 385 \hep@rm@fontshape{bx}{scit}{<->ssub*cmr/bx/scit}{} 386 \else 387 \DeclareFontFamily{\hep@encoding}{hfor}{} 388 \DeclareFontShape{\hep@encoding}{hfor}{bx}{sc}{ 389 <-6>hfoxc0500<6-7>hfoxc0600<7-8>hfoxc0700<8-9>hfoxc0800 38: <9-10>hfoxc0900<10-12>hfoxc1000<12-17>hfoxc1200<17->hfoxc1728 38; }{} 392 \DeclareFontShape{\hep@encoding}{hfor}{bx}{scsl}{ 393 <-6>hfooc0500<6-7>hfooc0600<7-8>hfooc0700<8-9>hfooc0800 394 <9-10>hfooc0900<10-12>hfooc1000<12-17>hfooc1200<17->hfooc1728 395 }{} 396 \hep@rm@fontshape{b}{sc}{<->ssub*hfor/bx/sc}{} 397 \hep@rm@fontshape{bx}{sc}{<->ssub*hfor/bx/sc}{} 398 \hep@rm@fontshape{bx}{scsl}{<->ssub*hfor/bx/scsl}{} 399 \hep@rm@fontshape{b}{scit}{<->ssub*hfor/bx/scsl}{} 39: \hep@rm@fontshape{bx}{scit}{<->ssub*hfor/bx/scsl}{} 39; \hep@rm@fontshape{b}{scsl}{<->ssub*hfor/bx/scsl}{} 3:2 \fi 3:3 \sffamily 3:4 \hep@sf@fontshape{m}{sc}{<->ssub*xcmss/m/sc}{} 3:5 \hep@sf@fontshape{b}{sc}{<->ssub*xcmss/bx/sc}{} 3:6 \hep@sf@fontshape{bx}{sc}{<->ssub*xcmss/bx/sc}{} 3:7 \hep@sf@fontshape{m}{scit}{<->ssub*xcmss/m/scit}{} 3:8 \hep@sf@fontshape{b}{scit}{<->ssub*xcmss/bx/scit}{} 3:9 \hep@sf@fontshape{bx}{scit}{<->ssub*xcmss/bx/scit}{} 3:: \hep@sf@fontshape{m}{scsl}{<->ssub*xcmss/m/scit}{} 3:; \hep@sf@fontshape{b}{scsl}{<->ssub*xcmss/bx/scit}{} 3;2 \hep@sf@fontshape{bx}{scsl}{<->ssub*xcmss/bx/scit}{} 3;3 \hep@sf@fontshape{m}{ui}{<->cmssu10}{} 3;4 \fi

Load the inputenc package [82].

3;5 \ifxetexorluatex\else

44 3;6 \RequirePackage[utf8]{inputenc} 3;7 \fi

C.3 Math fonts <*package|font>

3;8 %\RequirePackage{pdftexcmds} 3;9 %\def\hep@symbols{true} 3;: %\RequirePackage{amstext}

Define conditionals based on the symbols package option.

3;; \newif\ifhep@symbols 422 \ifnum\pdf@strcmp{\hep@symbols}{false}=0\else\hep@symbolstrue\fi 423 \newif\ifhep@ams 424 \ifnum\pdf@strcmp{\hep@symbols}{ams}=0 \hep@amstrue\fi 425 \newif\ifhep@minion 426 \ifnum\pdf@strcmp{\hep@symbols}{minion}=0 \hep@miniontrue\fi

Load the fixmath [55] and textalpha [83] packages ensuring that upper Greek letters in math mode are italic and providing upright Greek letters in text mode, respectively. Ensure that both \text and \mathrm produce upright Greek letters.

427 \ifhep@symbols 428 \RequirePackage{fixmath} 429 \RequirePackage{textalpha} 42: \def\hep@greek#1{% 42; \expandafter\let\csname math% 432 \expandafter\@gobble\string#1\endcsname=#1% 433 \edef#1{% 434 \noexpand\TextOrMath{% 435 \expandafter\noexpand\csname text% 436 \expandafter\@gobble\string#1\endcsname% 437 }{% 438 \noexpand\ifnum\noexpand\fam=0 439 \noexpand\text{% 43: \expandafter\noexpand\csname text% 43; \expandafter\@gobble\string#1\endcsname% 442 }% 443 \noexpand\else 444 \expandafter\noexpand\csname math% 445 \expandafter\@gobble\string#1\endcsname% 446 \noexpand\fi 447 }% 448 }% 449 } 44: \hep@greek\alpha \hep@greek\beta \hep@greek\gamma 44; \hep@greek\delta \hep@greek\epsilon \hep@greek\zeta

45 452 \hep@greek\eta \hep@greek\theta \hep@greek\iota 453 \hep@greek\kappa \hep@greek\lambda \hep@greek\mu 454 \hep@greek\nu \hep@greek\xi \hep@greek\pi 455 \hep@greek\rho \hep@greek\sigma \hep@greek\tau 456 \hep@greek\upsilon \hep@greek\phi \hep@greek\chi 457 \hep@greek\psi \hep@greek\omega 458 \hep@greek\Gamma \hep@greek\Delta \hep@greek\Theta 459 \hep@greek\Lambda \hep@greek\Xi \hep@greek\Pi 45: \hep@greek\Sigma \hep@greek\Upsilon \hep@greek\Phi 45; \hep@greek\Psi \hep@greek\Omega

Ensure that this works also after loading other fonts packages such as cfr-lm using substitutefont [84].

462 \ifxetexorluatex 463 % missing code 464 \else 465 \RequirePackage{substitutefont} 466 \substitutefont{LGR}{\rmdefault}{lmr} 467 \DeclareFontFamily{LGR}{\rmdefault}{} 468 \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{} 469 \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{} 46: \substitutefont{LGR}{\ttdefault}{lmtt} 46; \DeclareFontFamily{LGR}{\ttdefault}{} 472 \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*lmtt/bx/n}{} 473 \substitutefont{LGR}{\sfdefault}{lmss} 474 \DeclareFontFamily{LGR}{\sfdefault}{} 475 \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{} 476 \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{} 477 \fi

Either load the MnSymbol package [32] or the the exscale package in order to fix Latin Modern lmex fonts. Additionally, load the amssymb package [:] which provides further math symbols and also loads the amsfonts package [:].

478 \ifhep@minion 479 \RequirePackage{MnSymbol} 47: \else 47; \RequirePackage{exscale} 482 \RequirePackage{amssymb} 483 \fi 484 \fi

\mathsf If the sansserif package option is active use the cmbright font [67] and code adjusted from the sansmathfonts package [48]. Ensure that \mathsf is italic as well as sans serif and sans for sans and sans serif documents, respectively.

485 \ifhep@serif 486 \newcommand\hep@font@sf{cmbrm} 487 \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it}

46 488 \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{b}{it} 489 \else 48: \newcommand\hep@font@sf{lmr} 48; \newcommand\hep@font@text{lmss} 492 \newcommand\hep@font@math{cmbrm} 493 \newcommand\hep@font@symbol{cmsssy} 494 \newcommand\hep@font@extra{cmssex} 495 \newcommand\hep@font@amsa{ssmsa} 496 \newcommand\hep@font@amsb{ssmsb}

Declare font substitutions.

497 \DeclareFontSubstitution{OML}{\hep@font@math}{m}{it} 498 \ifhep@symbols\ifhep@minion\else 499 \DeclareFontSubstitution{OMS}{\hep@font@symbol}{m}{n} 49: \DeclareFontSubstitution{OMX}{\hep@font@extra}{m}{n} 49; \fi\fi

Declare the symbol fonts.

4:2 \DeclareSymbolFont{operators}{OT1}{\hep@font@text}{m}{n} 4:3 \DeclareSymbolFont{letters}{OML}{\hep@font@math}{m}{it} 4:4 \ifhep@symbols\ifhep@minion\else 4:5 \DeclareSymbolFont{symbols}{OMS}{\hep@font@symbol}{m}{n} 4:6 \DeclareSymbolFont{largesymbols}{OMX}{\hep@font@extra}{m}{n} 4:7 \fi\fi

Set bold symbol fonts.

4:8 \SetSymbolFont{operators}{bold}{OT1}{\hep@font@text}{b}{n} 4:9 \SetSymbolFont{letters}{bold}{OML}{\hep@font@math}{b}{it} 4:: \ifhep@symbols\ifhep@minion\else 4:; \SetSymbolFont{symbols}{bold}{OMS}{\hep@font@symbol}{b}{n} 4;2 \fi\fi

Adjust the fonts loaded by the amsfonts [:] and esint [85] packages.

4;3 \ifhep@symbols\ifhep@minion\else 4;4 \DeclareSymbolFont{AMSa}{U}{\hep@font@amsa}{m}{n} 4;5 \DeclareSymbolFont{AMSb}{U}{\hep@font@amsb}{m}{n} 4;6 \fi\fi 4;7 \AtBeginDocument{% 4;8 \@ifpackageloaded{esint}{% 4;9 \DeclareSymbolFont{largesymbolsA}{U}{ssesint}{m}{n} 4;: }{} 4;; }

Declare the symbol font alphabets.

522 \DeclareSymbolFontAlphabet{\mathrm}{operators} 523 \DeclareSymbolFontAlphabet{\mathnormal}{letters} 524 \ifhep@minion\else

47 525 \DeclareSymbolFontAlphabet{\mathcal}{symbols} 526 \fi

Declare \mathit.

527 \DeclareMathAlphabet{\mathit}{OML}{\hep@font@text}{m}{it} 528 \SetMathAlphabet\mathit{bold}{OML}{\hep@font@text}{bx}{it}

Declare \mathtt.

529 % \DeclareMathAlphabet{\mathtt}{OT1}{cmtl}{m}{n}

Declare \mathsf.

52: \DeclareMathAlphabet{\mathsf}{OML}{\hep@font@sf}{m}{it} 52; \SetMathAlphabet{\mathsf}{bold}{OML}{\hep@font@sf}{bx}{it}

End of sansserif.

532 \fi

\mathbf Load the bm package [52] for superior boldmath. Make math symbols bold whenever they appear in bold macros such as \section{htexti}.

533 \ifhep@symbols 534 \RequirePackage{bm} 535 \AtBeginDocument{\let\mathbf\bm} 536 \g@addto@macro\bfseries{\boldmath}

\mathtt

537 \DeclareMathAlphabet{\mathtt}{OT1}{lmtt}{m}{n} 538 \SetMathAlphabet{\mathtt}{bold}{OT1}{lmtt}{bx}{n}

\mathscr Provid the \mathscr math script font from the mathrsfs package [6:].

539 \DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n}

\mathbb Redefine the the \mathbb math blackboard style font according to the (sans-)serif option with the font from the dsfont package [;].

53: \ifhep@minion 53; \DeclareMathAlphabet{\mathbb}{U}{% 542 \ifhep@serif dsrom\else dsss\fi% 543 }{m}{n} 544 \else 545 \ifhep@ams\else 546 \SetMathAlphabet{\mathbb}{normal}{U}{% 547 \ifhep@serif dsrom\else dsss\fi% 548 }{m}{n}

48 549 \fi 54: \fi 54; \fi

C.4 Font size <*package>

Undefine previously defined font sizes and load the LATEX font size file corresponding to the font size option.

552 \ifhep@defaults\else 553 \def\hep@remove@pt#1pt{#1} 554 \edef\hep@pt@size{\expandafter\hep@remove@pt\hep@font} 555 \let\small\relax 556 \let\footnotesize\relax 557 \let\scriptsize\relax 558 \let\tiny\relax 559 \let\large\relax 55: \let\Large\relax 55; \let\LARGE\relax 562 \let\huge\relax 563 \let\Huge\relax 564 \input{size\hep@[email protected]} 565 \fi

D Text

Load the babel package [8] for hyphenation and the recommended csquotes pack- age [43].

566 \RequirePackage[\hep@lang]{babel} 567 \RequirePackage[autostyle]{csquotes}

\underline Load the ulem package [49] for hyphenable underlined text.

568 \RequirePackage[normalem]{ulem} 569 \let\underline\uline

\vs Load the foreign package [44] in order to highlight abbreviations and vocabularies from foreign languages. Add the missing \vs command.

56: \ifnum\pdf@strcmp{\hep@lang}{american}=0 56; \newcommand{\hep@lang@foreign}{USenglish} 572 \else 573 \ifnum\pdf@strcmp{\hep@lang}{USenglish}=0 574 \newcommand{\hep@lang@foreign}{USenglish}

49 575 \else 576 \newcommand{\hep@lang@foreign}{british} 577 \fi 578 \fi 579 \RequirePackage[all, \hep@lang@foreign]{foreign} 57: \DeclareRobustCommand\vs{\xperiodafter{{\foreignabbrfont{vs}}}}

The foreign package relies on the xspace package [86]. Ensure that \xspace is compatible with the \enquote macro from the csquote package.

57; \xspaceaddexceptions{\csq@qclose@i}

\no Define the macro \no{hnumberi} for the use of › with appropriate spacing.

582 \newcommand{\no}[1]{\textnumero~#1}

\software Define a macro for software with optional version information \software[hversioni] {hnamei}, using the relsize package [87].

583 \RequirePackage{relsize} 584 \newcommand{\software}[2][\hspace{-\fontdimen2\font}]{% 585 {\smaller[.5]\textsc{#2}~#1}% 586 }

<*package|title|bibliography>

\online Define the \online{htexti}{hurli} macro combining the features of the \href and \email the \url macros. Define a macro for typesetting emails.

587 \providecommand{\online}[2]{\ttfamily{#2}}% 588 \newcommand{\hep@email}[1]{\online{mailto:#1}{#1}} 589 \providecommand\email{\hep@email} 58: \AtEndOfPackage{\@ifpackageloaded{hyperref}{% 58; \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}% 592 }{} 593 }

<*package>

\prefix Define the \prefix{hprefixi}{hwordi} macro ensuring the correct linebreak in (prefix-) word.

594 \newcommand{\prefix}[2]{(#1\mbox{-)}\allowbreak #2}

D.3 Lists

Load the enumitem package [46].

595 \RequirePackage[inline]{enumitem}

4: inlinelist Define an inline list environment.

596 \newlist{inlinelist}{enumerate*}{1} 597 \setlist*[inlinelist,1]{% 598 label=\roman*), itemjoin={,\ }, itemjoin*={, and\ }, after=.% 599 } enumdescript Define an enumdescript list environment.

59: \newlist{enum@descript}{enumerate}{2} 59; \setlist[enum@descript]{label=\arabic*.} 5:2 \newenvironment{enumdescript}[1][]{ 5:3 \begin{enum@descript}[#1] 5:4 \let\hep@item\item 5:5 \renewcommand{\item}[2][]{ 5:6 \ifx&##1&\hep@item\else\hep@item[##1]\fi 5:7 \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax 5:8 } 5:9 }{\end{enum@descript}}

<*package|bibliography>

commalist Define a commalist environment.

5:: \RequirePackage{xparse} 5:; \ExplSyntaxOn 5;2 \NewDocumentEnvironment{commalist}{O{\space}+b}{ 5;3 \hep@comma@list:n{#2} 5;4 }{#1} 5;5 \seq_new:N \hep@items@sequence 5;6 \cs_new_protected:Npn \hep@comma@list:n #1{ 5;7 \seq_set_split:Nnn \hep@items@sequence{\item}{#1} 5;8 \seq_pop_left:NN \hep@items@sequence \l_tmpa_tl 5;9 \seq_use:Nnnn \hep@items@sequence{~and~}{,~}{,~and~} 5;: } 5;; \ExplSyntaxOff

E Geometry

<*package>

Load the geometry package [4] and adjust the text width and height. This step must happen after readjusting the font size in appendix C.4.

622 \ifhep@defaults\else 623 \RequirePackage{geometry} 624 \geometry{\hep@paper paper, includeheadfoot}

4; 625 \if@twocolumn 626 \geometry{hscale=.85, vscale=.925, vmarginratio=1:1} 627 \geometry{headsep=2ex, footskip=6ex} 628 \setlength{\columnsep}{1.1em} 629 \else 62: \geometry{hscale=.75, vscale=.8, vmarginratio=3:4} 62; \fi 632 \fi

\useparskip Load the parskip package [9] if requested and provide two commands switching \useparindent between the two paragraph modes.

633 \ifhep@parindent\else 634 \RequirePackage{parskip} 635 \newcommand{\useparskip}{% 636 \setlength{\parskip}{.5\baselineskip plus 2pt}% 637 \setlength{\parindent}{0pt}% 638 } 639 \newcommand{\useparindent}{% 63: \setlength{\parskip}{0pt}% 63; \setlength{\parindent}{15pt}% 642 \if@twocolumn\setlength\parindent{1em} 643 \else\setlength\parindent{1.5em} 644 \fi 645 } 646 \fi

F Math

<*package|math>

Load the mathtools package [4:] which loads the amsmath package [4;]. Allow page breaks within equations if necessary. Adjust the thick and med mu skips slightly.

647 %\ifhep@physics 648 %\newif\ifhep@lining\hep@liningtrue 649 %\newif\ifhep@eqnarray\hep@eqnarraytrue 64: \RequirePackage{mathtools} 64; \allowdisplaybreaks[1] 652 \thickmuskip=5mu plus 3mu minus 1mu 653 \medmuskip=4mu plus 2mu minus 3mu

<*package|math|acronyms>

\mathdef Define the \mathdef{hnamei}[hargumentsi]{hmacroi} macro which (re-)defines macros in math mode only. This macro is implemented using the xparse package [88].

52 654 \RequirePackage{xparse} 655 \DeclareDocumentCommand{\mathdef}{mO{0}m}{% 656 \expandafter\let\csname hep@text\string#1\endcsname=#1 657 \expandafter\newcommand\csname hep@math\string#1\endcsname[#2]{#3} 658 \DeclareRobustCommand#1{% 659 \ifmmode 65: \expandafter\let\expandafter\next\csname% 65; hep@math\string#1\endcsname% 662 \else 663 \expandafter\let\expandafter\next\csname% 664 hep@text\string#1\endcsname% 665 \fi 666 \next 667 }% 668 }

<*package|math>

\i Provide an upright imaginary unit in math mode.

669 \AtBeginDocument{\mathdef{\i}{\operatorname{i}}}

\overline Redefine \overline to be a text macro using the ulem package [49]. Extend it as a math macro with the original definition from the amsmath package [4;].

66: \RequirePackage{ulem} 66; \def\overline#1{{\renewcommand{\ULdepth}{-1.9ex}{}\uline{#1}}} 672 \DeclareRobustCommand{\over@line}[1]{\@@overline{#1}} 673 \mathdef{\overline}{\over@line}

\oset Define a new overset macro \oset[hoffseti]{hoveri}{hbasei}

674 \newcommand{\oset}[3][-1pt]{% 675 \text{\raisebox{.2ex}{$\mathop{#3}\limits^{% 676 \vbox to#1{\kern-2\ex@\hbox{$\scriptscriptstyle#2$}\vss}% 677 }$}}% 678 }

\overleftright Define a over left right arrow \overleftright{hbasei}.

679 \newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}}

eqnarray Undefine the eqnarray environment if not prevented by package option.

67: \ifhep@eqnarray\else 67; \let\eqnarray\@undefined 682 \let\endeqnarray\@undefined 683 \fi

53 F.3 Operators

\tr Provide the \diag, \sgn, and other operators. \Tr 684 \DeclareMathOperator{\tr}{tr} \rank 685 \DeclareMathOperator{\Tr}{Tr} \erf 686 \DeclareMathOperator{\rank}{rank} \Res 687 \DeclareMathOperator{\erf}{erf} \sgn 688 \DeclareMathOperator{\Res}{Res} \sgn 689 \DeclareMathOperator{\sgn}{sgn} \diag 68: \DeclareMathOperator{\diag}{diag}

\Re Redefine the real and imaginary projectors. \Im 68; \let\Re\relax\DeclareMathOperator{\Re}{Re} 692 \let\Im\relax\DeclareMathOperator{\Im}{Im}

F.3.3 Trigonometric functions

693 \let\cos\undefined\DeclareMathOperator{\cos}{cos\vphantom{i}} 694 \let\tan\undefined\DeclareMathOperator{\tan}{tan\vphantom{i}}

695 \DeclareMathOperator{\arccsc}{arccsc} 696 \DeclareMathOperator{\arcsec}{arcsec} 697 \DeclareMathOperator{\arccot}{arccot}

698 \DeclareMathOperator{\asin}{asin} 699 \DeclareMathOperator{\acos}{acos} 69: \DeclareMathOperator{\atan}{atan} 69; \DeclareMathOperator{\acsc}{acsc} 6:2 \DeclareMathOperator{\asec}{asec} 6:3 \DeclareMathOperator{\acot}{acot}

6:4 \DeclareMathOperator{\csch}{csch} 6:5 \DeclareMathOperator{\sech}{sech}

F.4 Units and fractions

\unit Load the units package [54] which provides the \units and \nicefrac macros. Patch the \unit and \unitfrac macros to work with lining numerals using the xpatch package [89].

6:6 \RequirePackage{units} 6:7 \RequirePackage{xpatch} 6:8 \ifhep@lining\else 6:9 \xpatchcmd{\unit}{\else#1}{% 6:: \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}% 6:; }{}{} 6;2 \xpatchcmd{\unitfrac}{\else#1}{% 6;3 \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}% 6;4 }{}{} 6;5 \fi

54 \inv Provide a macro for the inverse, useful in combination with the unit macro in text mode.

6;6 \newcommand{\inv}[2][1]{#2\ensuremath{^{-#1}}}

\flatfrac Flat fraction.

6;7 \DeclarePairedDelimiterX{\hep@flatfrac}[2]{.}{.}{% 6;8 #1\delimsize/\makeleftdelim#2% 6;9 } 6;: \NewDocumentCommand{\flatfrac}{somm}{% 6;; \IfBooleanTF{#1}{% 722 \hep@flatfrac*{#3}{#4}% 723 }{% 724 \IfNoValueTF{#2}{\,\makeleftdelim#3/\makeleftdelim#4\,% 725 }{% 726 \hep@flatfrac[#2]{#3}{#4}% 727 }% 728 }% 729 }

\textfrac Provide the \textfrac macro.

72: \newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}}

F.4.3 Differentials and derivatives

\differential Provide a differential \d. \d 72; \newcommand{\makedifferential}[1]{\mathop{}\!#1} 732 \providecommand{\differentialsymbol}{d} 733 \newcommand{\differential}{\makedifferential\differentialsymbol} 734 \AtBeginDocument{\mathdef{\d}{\differential}}

\makederivative

735 \newcommand\makederivative[2]{ 736 \NewDocumentCommand{#1}{somso}{% 737 \IfBooleanTF{##4}{% 738 \IfBooleanTF{##1}{\nicefrac}{\frac}% 739 }{% 73: \IfBooleanTF{##1}{\flatfrac}{\dfrac}% 73; }{% 742 \makedifferential#2\IfValueT{##2}{^{##2}}\IfValueT{##5}{##5}% 743 }{% 744 \makedifferential#2{##3}\IfValueT{##2}{^{##2}}% 745 }% 746 } 747 }

55 \derivative

748 \makederivative{\derivative}{d} 749 \newcommand\dv{\derivative}

\variation

74: \newcommand\variation{\makedifferential\delta} 74; \newcommand\var{\variation}

\functionalderivative

752 \makederivative{\functionalderivative}{\delta} 753 \newcommand\fdv{\functionalderivative}

\makepartialderivative

754 \RequirePackage{etoolbox} 755 \newcommand\makepartialderivative[2]{ 756 \NewDocumentCommand{#1}{sO{}O{}msoo}{% 757 \IfBooleanTF{##5}{% 758 \IfBooleanTF{##1}{\nicefrac}{\frac}% 759 }{% 75: \IfBooleanTF{##1}{\flatfrac}{\dfrac}% 75; }{% 762 \makedifferential#2\IfValueTF{##7}{% 763 \ifblank{##2}{ 764 \ifblank{##3}{^2}{^{\the\numexpr##3+1\relax}}% 765 }{% 766 \ifblank{##3}{% 767 ^{\the\numexpr##2+1\relax}}{^{{\the\numexpr##2+##3\relax}}% 768 }% 769 }% 76: }{\IfValueT{##2}{^{##2}}}\IfValueT{##6}{##6}% 76; }{% 772 \makedifferential#2{##4}\IfValueT{##2}{^{##2}}% 773 \IfValueT{##7}{#2##7\IfValueT{##3}{^{##3}}}% 774 }% 775 } 776 }

\partialderivative

777 \makepartialderivative{\partialderivative}{\partial} 778 \newcommand\pdv{\partialderivative}

\cancel Additionally, load the cancel [58] and slashed [59] packages which provide the \slashed \cancel and \slashed macros.

779 \RequirePackage{cancel} 77: \RequirePackage{slashed}

56 F.5 Paired delimiters

\left Load the mleftright package [8:] and adjust the spacing around \left and \right. \right 77; \RequirePackage{mleftright} 782 \mleftright

\abs Absolute value and norm. \norm 783 \newcommand{\noargumentsymbol}{\:\cdot\:} \pnorm 784 \newcommand{\optionalargument}[1]{\ifblank{#1}{\noargumentsymbol}{#1}} 785 \DeclarePairedDelimiterX\abs[1]\lvert\rvert{\optionalargument{#1}} 786 \DeclarePairedDelimiterX\norm[1]\lVert\rVert{\optionalargument{#1}} 787 \DeclarePairedDelimiterXPP\hep@pnorm[2]{}\lVert\rVert{_{#1}}{#2} 788 \NewDocumentCommand{\pnorm}{som}{% 789 \IfValueTF{#2}{% 78: \IfBooleanTF{#1}{\hep@pnorm*}{\hep@pnorm}{#2}% 78; }{% 792 \IfBooleanTF{#1}{\norm*}{\norm}% 793 }{\optionalargument{#3}}% 794 }

\order Order symbol and macro.

795 \providecommand{\ordersymbol}{\mathcal{O}} 796 \DeclarePairedDelimiterXPP\order[1]{\ordersymbol}(){}{#1}

\evaluated Vertical evaluation bar \eval 797 \DeclarePairedDelimiter{\hep@evaluated}{.}{\rvert} 798 \NewDocumentCommand{\evaluated}{som}{% 799 \IfBooleanTF{#1}{% 79: \hep@evaluated*{#3}% 79; }{% 7:2 \IfNoValueTF{#2}{#3\rvert}{\hep@evaluated[#2]{#3}}% 7:3 }% 7:4 } 7:5 \newcommand\eval{\evaluated}

F.5.3 Set and Probability

\midbar

7:6 \newcommand\makeleftdelim{\mathopen{}} 7:7 \providecommand{\midbar}[1][]{% 7:8 \nonscript\:#1\vert\allowbreak\nonscript\:\makeleftdelim% 7:9 }

\suchthat \set 7:: \providecommand\suchthat{\midbar}

57 7:; \DeclarePairedDelimiterX\set[1]\{\}{% 7;2 \renewcommand\suchthat{\midbar[\delimsize]}#1% 7;3 }

\probabilitysymbol \given 7;4 \providecommand{\probabilitysymbol}{\operatorname{Pr}} \Pr 7;5 \providecommand\given{\midbar} 7;6 \DeclarePairedDelimiterXPP\hep@Pr[1]{% 7;7 \probabilitysymbol}(){}{% 7;8 \renewcommand\given{\midbar[\delimsize]}#1% 7;9 } 7;: \let\Pr\relax 7;; \NewDocumentCommand{\Pr}{so}{% 822 \IfValueTF{#2}{% 823 \IfBooleanTF{#1}{\hep@Pr*}{\hep@Pr}{#2}% 824 }{% 825 \probabilitysymbol% 826 }% 827 }

F.5.4 Commutators

\innerproduct Poissonbracket, commutator and anti-commutator. \poissonbracket 828 \DeclarePairedDelimiterX\innerproduct[2]{% \commutator 829 \langle}{\rangle}{\optionalargument{#1},\optionalargument{#2}% \anticommutator 82: } 82; \DeclarePairedDelimiterX\poissonbracket[2]{% 832 \lbrace}{\rbrace}{\optionalargument{#1},\optionalargument{#2}% 833 } 834 \newcommand\pb{\poissonbracket} 835 \DeclarePairedDelimiterX\commutator[2]{% 836 \lbrack}{\rbrack}{\optionalargument{#1},\optionalargument{#2}% 837 } 838 \newcommand\comm{\commutator} 839 \DeclarePairedDelimiterX\anticommutator[2]{% 83: \lbrace}{\rbrace}{\optionalargument{#1},\optionalargument{#2}% 83; } 842 \newcommand\acomm{\anticommutator}

F.5.5 Bra-ket notation

843 \providecommand\braketspace{\mskip1mu} 844 \newcommand\hep@midvert{% 845 \braketspace\delimsize\vert\braketspace\makeleftdelim% 846 }

\braket

847 \DeclarePairedDelimiterX\braket[2]{\langle}{\rangle}{\braketspace#1\hep@midvert#2\braketspace}

58 \bra

848 \DeclarePairedDelimiterXPP\hep@bra[1]{% 849 }{\langle}{\rvert}{\braketspace}{\braketspace#1\braketspace% 84: } 84; \NewDocumentCommand{\bra}{smt\ket sgt\ketbra sgg}{% 852 \IfBooleanTF{#6}{% 853 \IfBooleanTF{#1}{\braket*{#2}{#8}}{\braket{#2}{#8}}% 854 \IfBooleanTF{#7}{\bra*{#9}}{\bra{#9}}% 855 }{ 856 \IfBooleanTF{#3}{% 857 \IfBooleanTF{#1}{\braket*}{% 858 \IfBooleanTF{#4}{\braket*}{\braket}}{#2}{#5% 859 }% 85: }{% 85; \IfBooleanTF{#1}{\hep@bra*}{\hep@bra}{#2}% 862 }% 863 }% 864 }

\ket

865 \DeclarePairedDelimiterXPP\ket[1]{% 866 \braketspace}{\lvert}{\rangle}{}{\braketspace\makeleftdelim#1\braketspace% 867 }

\ketbra

868 \NewDocumentCommand{\ketbra}{smm}{% 869 \IfBooleanTF{#1}{% 86: \ket*{#2}\bra*{#3}% 86; }{% 872 \ket{#2}\bra{#3}% 873 }% 874 }

\matrixelement

875 \DeclarePairedDelimiterX\matrixelement[3]{% 876 \langle}{\rangle}{\braketspace#1\hep@midvert#2\hep@midvert#3\braketspace% 877 } 878 \newcommand\matrixel{\matrixelement} 879 \newcommand\mel{\matrixelement}

\expectationvalue

87: \DeclarePairedDelimiterX\hep@expvalue[1]{\langle}{\rangle}{\braketspace#1\braketspace} 87; \NewDocumentCommand{\expectationvalue}{som}{% 882 \IfNoValueTF{#2}{% 883 \IfBooleanTF{#1}{\hep@expvalue*}{\hep@expvalue}{#3}%

59 884 }{% 885 \IfBooleanTF{#1}{\matrixelement*}{\matrixelement}{#2}{#3}{#2}% 886 }% 887 } 888 \newcommand\ev{\expectationvalue} 889 \newcommand\vev[1]{\expectationvalue[0]{#1}}

End of physics conditional.

88: %\fi

G Floats

<*package|floats>

88; %\newif\ifhep@manualplacement\hep@manualplacementfalse

Adjust the LATEX float placement defaults

892 \setcounter{bottomnumber}{0} % 1 893 \setcounter{topnumber}{1} % 2 894 \setcounter{dbltopnumber}{1} % 2 895 \renewcommand{\topfraction}{.9} % .7 896 \renewcommand{\dbltopfraction}{.9} % .7 897 \renewcommand{\textfraction}{.1} % .2 898 \renewcommand{\floatpagefraction}{.8} % .5

figure Center the content of figure and table environments. Ignore the manual placement table if the manualplacement option is set to false.

899 \let\hep@figure\figure% 89: \let\end@hep@figure\endfigure% 89; \let\hep@table\table% 8:2 \let\end@hep@table\endtable% 8:3 \ifhep@manualplacement% 8:4 \renewenvironment{figure}[1][tbp]{% 8:5 \hep@figure[#1]\centering% 8:6 }{\end@hep@figure}% 8:7 \renewenvironment{table}[1][tbp]{% 8:8 \hep@table[#1]\centering% 8:9 }{\end@hep@table}% 8:: \else% 8:; \renewenvironment{figure}[1][]{% 8;2 \hep@figure\centering% 8;3 }{\end@hep@figure}% 8;4 \renewenvironment{table}[1][]{% 8;5 \hep@table\centering% 8;6 }{\end@hep@table}

5: 8;7 \fi%

G.3 Sub-floats <*package>

\ifhep@journal Define a new journal conditional.

8;8 \newif\ifhep@journal 8;9 \ifhep@sissa\hep@journaltrue 8;: \else 8;; \ifhep@revtex\hep@journaltrue 922 \else 923 \ifhep@pos\hep@journaltrue 924 \else 925 \ifhep@springer\hep@journaltrue 926 \else\hep@journalfalse 927 \fi 928 \fi 929 \fi 92: \fi

Prevent the caption package [8;] from complaining about the journal classes and packages.

92; \ifhep@journal 932 \setlength\abovecaptionskip{\f@size\p@} 933 \setlength\belowcaptionskip{0\p@} 934 \long\def\@makecaption#1#2{% 935 \vskip\abovecaptionskip 936 \sbox\@tempboxa{#1: #2}% 937 \ifdim \wd\@tempboxa >\hsize 938 #1: #2\par 939 \else 93: \global \@minipagefalse 93; \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% 942 \fi 943 \vskip\belowcaptionskip% 944 } 945 \fi

<*package|floats>

Load the subcaption package [5:]. Provide the old \subcaption@minipage macro.

946 \RequirePackage[subrefformat=parens]{subcaption} 947 \captionsetup{font=small} 948 \captionsetup[sub]{font=small}

5; 949 \providecommand*\subcaption@minipage[2]{% 94: \minipage#1{#2}\setcaptionsubtype\relax% 94; } panels Define the panels environment and the \panel macro. \panel 952 \newcommand{\hep@panels@space}{20} 953 \newenvironment{panels}[2][b]{%

Define an internal macro for global behaviour.

954 \newcommand{\begin@subcaption@minipage}[2][b]{% 955 \caption@withoptargs\subcaption@minipage[##1]{##2}% 956 \centering\vskip 0pt% 957 }

Define the \panel macro for the case that the number of panels is given.

958 \ifdim#2pt>1pt% 959 \newcommand{\hep@panel@space}{% 95: (1-#2+\hep@panels@space)/\hep@panels@space% 95; }% 962 \newcommand{\panel}[1][b]{% 963 \endminipage\hfill\begin@subcaption@minipage[#1]{% 964 \linewidth/#2*\hep@panel@space% 965 }% 966 }% 967 \begin@subcaption@minipage[#1]{\linewidth/#2*\hep@panel@space}%

Define the \panel macro for the case that the width of the panel is given.

968 \else% 969 \newcommand{\panel}[2][b]{% 96: \endminipage\hfill\begin@subcaption@minipage[#1]{##2\linewidth}% 96; }% 972 \begin@subcaption@minipage[#1]{#2\linewidth}% 973 \fi% 974 }{\endminipage}

<*package>

Reajust the captions to the revtex class using the ragged4e package [92].

975 \ifhep@revtex 976 \RequirePackage{ragged2e} 977 \DeclareCaptionFormat{revtex}{#1#2\justifying{#3}} 978 \captionsetup{font=small, format=revtex} 979 \captionsetup[sub]{font=footnotesize, format=plain} 97: \renewcommand{\figurename}{Figure} 97; \renewcommand{\tablename}{Table} 982 \fi

62

G.4 Tables <*package|floats>

tabular Enhance tabulars with the booktabs and multirow packages [5;, 62].

983 \RequirePackage{booktabs} 984 \RequirePackage{multirow}

G.5 Figures

\graphic Provide the \graphic macro for the inclusion of figures using the graphicx package [63].

985 \RequirePackage{graphicx} 986 \providecommand{\tikzsetnextfilename}[1]{} 987 \newcommand{\graphic}[2][1]{\tikzsetnextfilename{#2}{% 988 \centering\includegraphics[width=#1\linewidth]{#2}\par% 989 }}

\graphics Provide the \graphics macro for the inclusion of figures located in a subfolder.

98: \newcommand{\graphics}[1]{\graphicspath{{./#1/}}}

H Title page

<*package|title> Redefine previous macros just for the title package.

98; \newif\ifhep@first%

<*package> Define title internal conditionals outside of main conditional. TODO: replace this hack Begin of title conditional.

992 \newif\ifnewaffil% 993 \ifhep@title

<*package|title>

\hep@multi@ref Transform reference list to list of references.

994 \newcommand{\hep@multi@ref}[1]{% 995 \hep@firsttrue% 996 \forcsvlist{%

63 997 \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref% 998 }{#1}% 999 }

Redefine the email macro for the title page.

99: \renewcommand{\email}[2][]{\unskip\thanks[#1]{\hep@email{#2}}}% 99; \AtBeginDocument{ 9:2 \let\hep@maketitle\maketitle 9:3 \renewcommand\maketitle{\hep@maketitle\let\email\hep@email} 9:4 }

H.3 Preprint and title H.3.3 Preprint

\preprintfont Define the \preprintfont macro.

9:5 \let\hep@preprint@font\relax 9:6 \newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}} 9:7 \preprintfont{\scshape\small}

\preprint Define the \preprint macro using the varwidth package [93].

9:8 \let\hep@preprint\relax 9:9 \newcommand\preprint[1]{\def\hep@preprint{#1}} 9:: \RequirePackage{varwidth} 9:; \newcommand{\hep@preprint@box}{% 9;2 \begin{varwidth}{\textwidth}% 9;3 \hep@preprint@font\hep@preprint% 9;4 \end{varwidth}% 9;5 }

\placepreprint Places a preprint number in the top right corner of the title page using the at- begshi [94] and picture [95] packages.

9;6 %\RequirePackage{calc} 9;7 \RequirePackage{atbegshi} 9;8 \RequirePackage{picture} 9;9 \newcommand{\placepreprint}{% 9;: \AtBeginShipoutFirst{% 9;; \put( :22 \textwidth+\oddsidemargin-\widthof{\hep@preprint@box}, :23 -2pt-\topmargin-\heightof{\hep@preprint@box} :24 ){\normalfont\hep@preprint@box} :25 } :26 }</p><p>64 H.3.4 Series</p><p>\series Define a series title.</p><p>:27 \newcommand{\preseries}[1]{\def\hep@pre@series{#1}} :28 \newcommand{\series}[1]{\def\hep@series{#1}} :29 \newcommand{\postseries}[1]{\def\hep@post@series{#1}}</p><p>\seriesfont Allow to change the fontface of the series title.</p><p>:2: \let\hep@series@font\relax :2; \newcommand{\seriesfont}[1]{\def\hep@series@font{#1}}</p><p>Set the default series title layout.</p><p>:32 \preseries{\begin{center}\Large\hep@series@font} :33 \postseries{\par\end{center}}</p><p>H.3.5 Title</p><p>Extend the title using the titling package [3;]. Fix the footnote indent.</p><p>:34 \RequirePackage{titling} :35 \setlength{\thanksmarkwidth}{1.5em}</p><p>\maketitlehooka Place the preprint and the series title using \maketitlehooka.</p><p>:36 \renewcommand{\maketitlehooka}{% :37 \placepreprint\vspace{-\bigskipamount}% :38 \@ifundefined{hep@series}{}{% :39 \hep@pre@series\hep@series\hep@post@series% :3: }% :3; \vspace{-\bigskipamount}% :42 }</p><p>\titlefont Allow to change the fontface of the the title.</p><p>:43 \let\hep@title@font\relax :44 \newcommand{\titlefont}[1]{\def\hep@title@font{#1}}</p><p>Set default title layout.</p><p>:45 \pretitle{\begin{center}\LARGE\hep@title@font} :46 \posttitle{\par\end{center}}</p><p>H.3.6 Subtitle</p><p>\subtitle Define a subtitle.</p><p>:47 \newcommand{\presubtitle}[1]{\def\hep@pre@sub@title{#1}} :48 \newcommand{\subtitle}[1]{\def\hep@sub@title{#1}} :49 \newcommand{\postsubtitle}[1]{\def\hep@post@sub@title{#1}}</p><p>65 \subtitlefont Allow to change the fontface of the subtitle.</p><p>:4: \let\hep@subtitle@font\relax :4; \newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}}</p><p>Set default subtitle layout.</p><p>:52 \presubtitle{\begin{center}\Large\hep@subtitle@font} :53 \postsubtitle{\par\end{center}}</p><p>H.4 Authors and Editors H.4.3 Editors</p><p>Define editors, similar to authors using the authblk package. Enable the handling of multiple authors with different affiliations using the authblk package [42].</p><p>:54 \RequirePackage{authblk} :55 \newcounter{editors} :56 \newcommand\hep@editorlist{} :57 \newcommand\hep@editors{}</p><p>\editor Copy of the authblk author code adjusted for editors.</p><p>:58 \newcommand\editor[2][]{% :59 \ifnewaffil% :5: \addtocounter{affil}{1}% :5; \edef\AB@thenote{\arabic{affil}}% :62 \fi% :63 \if\relax#1\relax% :64 \def\AB@note{\AB@thenote}% :65 \else% :66 \def\AB@note{#1}\setcounter{Maxaffil}{0}% :67 \fi% :68 \ifnum\value{editors}>1\relax% :69 \@namedef{@sep\number\c@editors}{\Authsep}% :6: \fi% :6; \addtocounter{editors}{1}% :72 \begingroup% :73 \let\protect\@unexpandable@protect \let\and\AB@pand% :74 \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% :75 \@temptokena=\expandafter{\hep@editors}{% :76 \def\\{% :77 \protect\\[\@affilsep]\protect\Affilfont\protect\AB@resetsep% :78 }% :79 \xdef\hep@editor{\AB@blk@and#2}% :7: \ifnewaffil% :7; \gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}% :82 \xdef\hep@editors{\the\@temptokena\AB@blk@and}% :83 \else% :84 \xdef\hep@editors{\the\@temptokena\AB@as\AB@au@str}%</p><p>66 :85 \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}% :86 \gdef\AB@as{\Authsep}% :87 \fi% :88 \gdef\AB@au@str{#2}% :89 }% :8: \@temptokena=\expandafter{\hep@editorlist}% :8; \let\\=\editorcr% :92 \xdef\hep@editorlist{% :93 \the\@temptokena% :94 \protect\@nameuse{@sep\number\c@editors}% :95 \protect\Authfont#2% :96 \if\relax#1\relax\else% :97 \protect\hep@multi@ref{\AB@note}% :98 \fi% :99 }% :9: \endgroup% :9; \ifnum\value{editors}>2\relax% ::2 \@namedef{@sep\number\c@editors}{\Authands}% ::3 \fi% ::4 \newaffilfalse% ::5 }</p><p>\editorfont Allow to change the fontface of the editors.</p><p>::6 \let\hep@editor@font\relax ::7 \newcommand{\editorfont}[1]{\def\hep@editor@font{#1}}</p><p>\preditor Set editor style. \postditor ::8 \newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}} ::9 \newcommand{\posteditor}[1]{\def\hep@post@editor{#1}} ::: \newcommand{\editortitle}[2]{ ::; \def\hep@editor@title{#1} :;2 \def\hep@editor@title@pl{#2} :;3 } :;4 \newcommand{\editortitlefont}[1]{\def\hep@editor@title@font{#1}} :;5 \newcommand{\preeditortitle}[1]{\def\hep@pre@editor@title{#1}} :;6 \newcommand{\posteditortitle}[1]{\def\hep@post@editor@title{#1}} :;7 \editortitle{Editor}{Editors} :;8 \editortitlefont{\itshape} :;9 \preeditortitle{\hep@editor@title@font} :;: \posteditortitle{: } :;; \preeditor{% ;22 \begin{center}% ;23 \large\hep@editor@font\lineskip.5em% ;24 \begin{tabular}[t]{c}{% ;25 \hep@pre@editor@title% ;26 \ifnum\value{editors}>1\relax% ;27 \hep@editor@title@pl% ;28 \else%</p><p>67 ;29 \hep@editor@title% ;2: \fi% ;2; \hep@post@editor@title% ;32 }% ;33 } ;34 \posteditor{\end{tabular}\par\end{center}}</p><p>\maketitlehookb Show subtitle and editor.</p><p>;35 \renewcommand{\maketitlehookb}{% ;36 \@ifundefined{hep@sub@title}{}{% ;37 \hep@pre@sub@title\hep@sub@title\hep@post@sub@title% ;38 }% ;39 \smallskip% ;3: \ifx\hep@editorlist\AB@empty\else% ;3; \hep@pre@editor\hep@editorlist\hep@post@editor% ;42 \fi ;43 }</p><p>H.4.4 Authors</p><p>\author Allow absent author field.</p><p>;44 % \author{}</p><p>Switch authblk to a label ref system for affiliations.</p><p>;45 %<title>\RequirePackage{xpatch} ;46 \xpatchcmd{\author}{% ;47 \protect\Authfont#2\AB@authnote{\AB@note}% ;48 }{% ;49 \protect\Authfont#2% ;4: \if\relax#1\relax\else\unskip\protect\hep@multi@ref{\AB@note}\fi% ;4; }{}{}</p><p>\authorfont Allow to change the fontface of the individual parts of the title.</p><p>;52 \let\hep@author@font\relax ;53 \newcommand{\authorfont}[1]{\def\hep@author@font{#1}} ;54 \renewcommand\Authfont{\hep@author@font}</p><p>Set default author fontface.</p><p>;55 \newcommand{\authortitle}[2]{ ;56 \def\hep@author@title{#1} ;57 \def\hep@author@title@pl{#2} ;58 } ;59 \newcommand{\authortitlefont}[1]{\def\hep@author@title@font{#1}} ;5: \newcommand{\preauthortitle}[1]{\def\hep@pre@author@title{#1}} ;5; \newcommand{\postauthortitle}[1]{\def\hep@post@author@title{#1}}</p><p>68 ;62 \authortitle{Author}{Authors} ;63 \authortitlefont{\itshape} ;64 \preauthortitle{\hep@author@title@font} ;65 \postauthortitle{: } ;66 \preauthor{% ;67 \begin{center}% ;68 \large\hep@author@font\lineskip.5em% ;69 \begin{tabular}[t]{c}{% ;6: \ifnum\value{editors}>0\relax% ;6; \hep@pre@author@title% ;72 \ifnum\value{authors}>1\relax% ;73 \hep@author@title@pl\else\hep@author@title% ;74 \fi\hep@post@author@title% ;75 \fi% ;76 }% ;77 } ;78 \postauthor{\end{tabular}\par\end{center}}</p><p>H.4.5 Affiliation Patch the \affiliation macro to comply with the label ref system.</p><p>;79 \newcounter{affiliation} ;7: \renewcommand{\theaffiliation}{% ;7; \textsuperscript{\normalfont\alph{affiliation}}% ;82 } ;83 \xpatchcmd{\affil}{% ;84 \AB@affilnote{\AB@note}% ;85 }{% ;86 \protect\refstepcounter{affiliation}\protect\label{\AB@note}% ;87 \if\relax#1\relax\else\protect\ref{\AB@note}\fi% ;88 }{}{}</p><p>\affiliationfont Allow to change the fontface of affiliation.</p><p>;89 \let\hep@affiliation@font\relax ;8: \newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}} ;8; %<title>\newif\ifhep@lining\hep@liningtrue ;92 \ifhep@lining ;93 \renewcommand{\Affilfont}{\small\hep@affiliation@font} ;94 \else ;95 \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font} ;96 \fi</p><p>\affiliation Define the \affiliation macro, ensure that linebreaks happen after a comma.</p><p>;97 \newcommand\hep@penalty{\if@twocolumn85\else50\fi} ;98 \newcommand\hep@active@comma{,\penalty-\hep@penalty\relax} ;99 \newcommand\hep@cat@comma@active{\catcode‘\,\active} ;9: {\hep@cat@comma@active\gdef,{\hep@active@comma}}</p><p>69 ;9; \newcommand\hep@affil[1]{% ;:2 \endgroup\@flushglue=0pt plus .5\linewidth\affil{#1}% ;:3 } ;:4 \def\hep@affil@opt[#1]#2{% ;:5 \endgroup\@flushglue=0pt plus .5\linewidth\affil[#1]{#2}% ;:6 } ;:7 \DeclareRobustCommand\hep@affiliation{% ;:8 \@ifnextchar[{\hep@affil@opt}{\hep@affil}% ;:9 } ;:: \newcommand{\affiliation}{% ;:; \begingroup\hep@cat@comma@active\hep@affiliation% ;;2 }</p><p>H.5 Date and Abstract H.5.3 Date</p><p>\date Allow absent date field.</p><p>;;3 \date{\vspace{-4ex}}</p><p>\datefont Allow to change the fontface of the individual parts of the title.</p><p>;;4 \let\hep@date@font\relax ;;5 \newcommand{\datefont}[1]{\def\hep@date@font{#1}}</p><p>Set the default date fontface.</p><p>;;6 \predate{\begin{center}\hep@date@font} ;;7 \postdate{\par\end{center}}</p><p>H.5.4 Abstract</p><p> abstract Adjust the abstract environment to not start with indentation.</p><p>;;8 \@ifundefined{abstract}{}{% ;;9 \let\hep@abstract\abstract% ;;: \renewcommand\abstract{\hep@abstract\noindent\ignorespaces}% abstract* Add a abstract* environment for two column mode taking also care of placing the title using the environ [96] and abstract [97] packages.</p><p>;;; \if@twocolumn 3222 \RequirePackage{environ} 3223 \RequirePackage{abstract} 3224 \renewcommand{\abstitleskip}{-3ex} 3225 \NewEnviron{abstract*}{% 3226 \twocolumn[\maketitle\vspace{-5ex}% 3227 \begin{onecolabstract}\noindent\BODY\end{onecolabstract}% 3228 \vspace{.5cm}]\saythanks% 3229 }%</p><p>6: 322: \else 322; \newenvironment{abstract*}{% 3232 \maketitle\begin{abstract}% 3233 }{% 3234 \end{abstract}% 3235 } 3236 \fi 3237 }</p><p>H.6 Thanks</p><p>\thanks Redefine thank to have a optional argument for a reference label.</p><p>3238 \let\hep@thanks\thanks 3239 \AtEndDocument{\let\thanks\hep@thanks} 323: % \AddToHook{begindocument/begin}{\let\thanks\hep@thanks} 323; \DeclareRobustCommand\thanks[2][]{% 3242 \AfterEndPreamble{% 3243 % \AddToHook{begindocument/end}{% 3244 \if\relax#1\relax% 3245 \footnotemark% 3246 \else% 3247 \renewcommand\thefootnote{\textsuperscript{\@fnsymbol\c@footnote}}% 3248 \protect\refstepcounter{footnote}\protect\label{#1}% 3249 \renewcommand\thefootnote{\@arabic\c@footnote}% 324: \fi% 324; \protected@xdef\@thanks{% 3252 \@thanks\protect\footnotetext[\the\c@footnote]{#2}% 3253 } 3254 \if@twocolumn 3255 \protected@xdef\@bs@thanks{% 3256 \@bs@thanks\protect\footnotetext[\the\c@footnote]{#2}% 3257 }% 3258 \fi% 3259 }% 325: }</p><p></package|title> <*package> End of title conditional.</p><p>325; \fi</p><p>I Bibliography</p><p>Check if bibliography management is requested.</p><p>3262 \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else</p><p>6; </package> <*package|bibliography></p><p>3263 %<bibliography>\def\hep@bibliography{numeric-comp} 3264 %<bibliography>\newif\ifhep@journal\hep@journalfalse</p><p>\bibliography Load the biblatex package [33] with the datamodel defined in appendix L.</p><p>3265 \RequirePackage[style=\hep@bibliography, datamodel=hep-paper]{biblatex}</p><p> 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.</p><p>3266 \providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme} 3267 \DeclareSortingTemplate{hep-paper}{ 3268 \sort{\citeorder} 3269 \sort[final]{\field{sortkey}} 326: \sort{\field{sortyear} \field{year} \literal{9999}} 326; \sort{\field{month}} 3272 \sort{\field{eprint} \field{doi}} 3273 \sort{\field{sorttitle} \field{title}} 3274 \sort{\field{subtitle} \field{volume}} 3275 }</p><p>Use the new sorting scheme and abbreviat all first names.</p><p>3276 \ExecuteBibliographyOptions{ 3277 sorting=hep-paper, 3278 safeinputenc, 3279 giveninits=true, 327: maxbibnames=7 327; }</p><p>Shrink the biblography in two column mode.</p><p>3282 \ifhep@journal\else 3283 \if@twocolumn 3284 \AtBeginBibliography{\small} 3285 \setlength\biblabelsep{\labelsep} 3286 \fi 3287 \fi</p><p> translationof Redefine the translationof string to fit better to documents without a original title.</p><p>3288 \DefineBibliographyStrings{english}{translationof={Original}}</p><p> erratum Add new bibliography string ‘Erratum’ for the use in the relatedtype field.</p><p>3289 \NewBibliographyString{erratum,erratums} 328: \DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}} 328; \providecommand{\relateddelimerratum}{\addsemicolon\space}</p><p>72 Activate the Oxford comma when using british and separate title and subtitle with a colon.</p><p>3292 \DefineBibliographyExtras{british}{\def\finalandcomma{\addcomma}} 3293 \renewcommand{\subtitlepunct}{\addcolon\addspace}</p><p>\printbibliography Allow the bibliography to be printed sloppy</p><p>3294 \let\hep@printbibliography\printbibliography 3295 \renewcommand{\printbibliography}{\sloppy\hep@printbibliography}</p><p>I.3 Sourcemap</p><p>\reg@exp@one Define regular expressions in order to deal with inconsistent journal title and volume \reg@exp@two naming as well as uniform resource locator (URL) protocols and the PMCID. \reg@exp@url 3296 \newcommand{\reg@exp@one}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}} \reg@exp@pmc 3297 \newcommand{\reg@exp@two}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}} 3298 \newcommand{\reg@exp@url}{\regexp{\A(ht|f)tp(s)?:\/\/}} 3299 \newcommand{\reg@exp@pmc}{\regexp{\A(PMC)?}}</p><p>\DeclareSourcemap Use the \DeclareSourcemap feature.</p><p>329: \DeclareSourcemap{% 329; \maps[datatype=bibtex, overwrite=true]{%</p><p> collaboration Read the collaboration information if present.</p><p>32:2 \map{% 32:3 \step[fieldsource=Collaboration, final=true]% 32:4 \step[fieldset=collaboration, origfieldval, final=true] 32:5 }%</p><p> reportnumber Read the pre-print information if present.</p><p>32:6 \map{% 32:7 \step[fieldsource=reportNumber, final=true]% 32:8 \step[fieldset=reportnumber, origfieldval, final=true] 32:9 }%</p><p> journal Move letters from the volume field to the journal field.</p><p>32:: \map[overwrite]{ 32:; \pertype{article} 32;2 \step[fieldsource=volume, match=\reg@exp@one, final] 32;3 \step[fieldsource=volume, match=\reg@exp@two, replace={$2}] 32;4 \step[fieldsource=journal, fieldtarget=journaltitle] 32;5 \step[fieldset=journaltitle, fieldvalue={\space$1$2}, append=true] 32;6 }</p><p>73 url Remove the protocol from URL.</p><p>32;7 \map{ 32;8 \step[fieldsource=url, final=true] 32;9 \step[fieldset=protocollessurl, origfieldval, final=true] 32;: \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}] 32;; }</p><p> pmc Remove the PMC from the PMCID.</p><p>3322 \map{ 3323 \step[fieldsource=pmcid, final=true] 3324 \step[fieldset=pmc, origfieldval, final=true] 3325 \step[fieldsource=pmc, match=\reg@exp@pmc, replace={}] 3326 } 3327 }% 3328 }</p><p>\letbibmacro Provide the \letbibmacro macro for old biblatex installations.</p><p>3329 \providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} collaboration Execute the author macro even if only the collaboration information if present and override the author information with collaboration information if present.</p><p>332: \renewbibmacro*{author/translator+others}{% 332; \ifboolexpr{ 3332 test \ifuseauthor and ( 3333 not test {\ifnameundef{author}} or 3334 not test {\iffieldundef{collaboration}} 3335 ) 3336 } 3337 {\usebibmacro{author}} 3338 {\usebibmacro{translator+others}} 3339 } 333: \letbibmacro{hep@bib@author}{author} 333; \renewbibmacro*{author}{% 3342 \iffieldundef{collaboration}{% 3343 \usebibmacro{hep@bib@author}}{\textit{\printfield{collaboration}}% 3344 }% 3345 }</p><p>In: Remove spurious ‘In:’ if no journal is present.</p><p>3346 \renewbibmacro*{in:}{% 3347 \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}% 3348 } reportnumber Print the reportnumber as commalist</p><p>74 3349 %<bibliography>\RequirePackage{relsize} 334: \DeclareFieldFormat{reportnumber}{% 334; \edef\commalistbody{\forcsvfield{% 3352 \egroup\noexpand\item\unexpanded{\bgroup\smaller[.5]\textsc} 3353 }{reportnumber}}% 3354 \expandafter\commalist\commalistbody\egroup\endcommalist% 3355 }</p><p> url Show URLs without the protocol.</p><p>3356 \DeclareFieldFormat{url}{% 3357 \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% 3358 }</p><p>\bib@online Private \bib@online macro</p><p>3359 \newcommand{\bib@online}[2]{% 335: \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% 335; }</p><p> pmid Present PubMed IDs. pmcid 3362 \DeclareFieldFormat{pmid}{% 3363 \mkbibacro{PM}\addcolon\space% 3364 \bib@online{https://www.ncbi.nlm.nih.gov/pubmed/#1}{#1}% 3365 } 3366 \DeclareFieldFormat{pmc}{% 3367 \mkbibacro{PMC}\addcolon\space% 3368 \bib@online{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC#1}{#1}% 3369 }</p><p> pmcid Add the pre-print and PubMed information if present. pmid 336: \letbibmacro{hep-doi+eprint+url}{doi+eprint+url} reportnumber 336; \renewbibmacro*{doi+eprint+url}{% 3372 \usebibmacro{hep-doi+eprint+url} 3373 \iffieldundef{pmc}{% 3374 \iffieldundef{pmid}{}{\printfield{pmid}\newunit}% 3375 }{\printfield{pmc}\newunit} 3376 \iffieldundef{reportnumber}{}{% 3377 \newunitpunct\textnumero\intitlepunct% 3378 \printfield{reportnumber}\newunit% 3379 }% 337: }</p><p>I.4 Eprints</p><p>\new@eprint Private \new@eprint macro</p><p>337; \NewDocumentCommand{\new@eprint}{smm}{</p><p>75 3382 \DeclareFieldFormat{eprint:#2}{% 3383 \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}% 3384 #2\addcolon\space\bib@online{#3/\@path}{\@path}% 3385 }% 3386 }</p><p>CTAN Add CTAN as a eprint option</p><p>3387 \new@eprint{CTAN}{https://ctan.org/pkg} 3388 \DeclareFieldAlias{eprint:ctan}{eprint:CTAN}</p><p>GitHub Add GitHub as a eprint option</p><p>3389 \new@eprint*{GitHub}{https://github.com} 338: \DeclareFieldAlias{eprint:github}{eprint:GitHub}</p><p>GitLab Add GitLab as a eprint option</p><p>338; \new@eprint*{GitLab}{https://gitlab.com} 3392 \DeclareFieldAlias{eprint:gitlab}{eprint:GitLab}</p><p>Bitbucket Add Bitbucket as a eprint option</p><p>3393 \new@eprint*{Bitbucket}{https://bitbucket.org} 3394 \DeclareFieldAlias{eprint:bitbucket}{eprint:Bitbucket}</p><p>Launchpad Add Launchpad as a eprint option</p><p>3395 \new@eprint{Launchpad}{https://launchpad.net} 3396 \DeclareFieldAlias{eprint:launchpad}{eprint:Launchpad}</p><p>SourceForge Add SourceForge as a eprint option</p><p>3397 \new@eprint{SourceForge}{https://sourceforge.net/projects} 3398 \DeclareFieldAlias{eprint:launchpad}{eprint:SourceForge}</p><p>HEPForge Add HEPForge as a eprint option</p><p>3399 \DeclareFieldFormat{eprint:hepforge}{% 339: HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}% 339; } 33:2 \DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge}</p><p></package|bibliography> <*package> End check for bibliography option.</p><p>33:3 \fi</p><p>76 J Hyperlinks, Footnotes and References</p><p>Load the hyperref package [7] enable Unicode encoding and hide links.</p><p>33:4 \RequirePackage{hyperref} 33:5 \hypersetup{ 33:6 pdfencoding=auto, psdextra, 33:7 hidelinks, linktoc=all, breaklinks=true, 33:8 pdfcreator={}, pdfproducer={} 33:9 }</p><p>Set the PDF meta data according to the paper information and ensure that unneces- sary information is suppressed.</p><p>33:: \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} 33:; \pdfstringdefDisableCommands{\def\to{\textrightarrow}} 33;2 \AtBeginDocument{ 33;3 \pdfstringdefDisableCommands{\let\ensuremath\@gobble} 33;4 \pdfstringdefDisableCommands{\let\mathsurround\@gobble} 33;5 \pdfstringdefDisableCommands{\let\unskip\@gobble} 33;6 \pdfstringdefDisableCommands{\let\thanks\@gobble} 33;7 \pdfstringdefDisableCommands{\let\footnote\@gobble} 33;8 \pdfstringdefDisableCommands{\let\\\@gobble} 33;9 } 33;: \ifhep@revtex 33;; \AtBeginShipout{\hypersetup{pdftitle={\@title}}} 3422 \else 3423 \ifhep@beamer\else 3424 \AtBeginDocument{\hypersetup{pdftitle={\@title}}} 3425 \fi 3426 \fi 3427 \ifhep@title 3428 \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} 3429 \else 342: \ifhep@beamer\else 342; \ifhep@pos\else\AtBeginDocument{\hypersetup{pdfauthor={\@author}}}\fi 3432 \fi 3433 \fi</p><p>J.3 Footnotes</p><p>Place a hyperlink from the footnote back to its referencing label using the footnote- backref package [98].</p><p>3434 \def\BackrefFootnoteTag{} 3435 \RequirePackage{footnotebackref}</p><p>\footnote Ensure that no spaces appear before the footmark or at the beginning of the footnote.</p><p>3436 \let\@foot@note\footnote 3437 \renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}}</p><p>77 J.4 References Begin of references conditional</p><p>3438 \ifhep@references</p><p>\cref Improve reference using the cleveref package [35].</p><p>3439 \RequirePackage[noabbrev, nameinlink]{cleveref} 343: \newcommand{\creflastconjunction}{, and\nobreakspace} 343; \crefname{enumi}{point}{points} 3442 \crefname{inlinelisti}{point}{points}</p><p>\no@break@before Define a macro able to prevent line breaks.</p><p>3443 \newcommand\no@break@before{% 3444 \relax\ifvmode\else% 3445 \ifhmode% 3446 \ifdim\lastskip > 0pt% 3447 \relax\unskip\nobreakspace% 3448 \fi% 3449 \fi% 344: \fi% 344; }</p><p>\ref Adjust \ref{hkeyi} in order to prevent preceding line breaks.</p><p>3452 \let\hep@ref\ref 3453 \AtBeginDocument{\renewcommand\ref{\no@break@before\hep@ref}}</p><p>\eqref Adjust \eqref{hkeyi} in order to prevent preceding line breaks.</p><p>3454 \renewcommand\eqref{\no@break@before\labelcref}</p><p>\subref Adjust \subref{hkeyi} in order to prevent preceding line breaks.</p><p>3455 \let\hep@subref\subref 3456 \renewcommand\subref{\no@break@before\hep@subref} 3457 \renewcommand*\subcaption@ref[2]{\begingroup% 3458 \caption@setoptions{sub}% 3459 \subcaption@reffmt\p@subref{\hep@ref#1{sub@#2}}% 345: \endgroup}</p><p>\subcref Provide the \subcref macro.</p><p>345; \newcommand{\subcref}[1]{\cref{sub@#1}}</p><p>\eqcrefname Define the \eqcrefname macro for named equation types.</p><p>3462 \NewDocumentCommand{\eqcrefname}{mmo}{</p><p>78 3463 \crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}} 3464 \creflabelformat{#1}{(##2##1##3)} 3465 }</p><p>\labelcrefrange Define the missing \labelcrefrange{hkey3i}{hkey4i} macro.</p><p>3466 \DeclareRobustCommand{\labelcrefrange}[2]{% 3467 \@crefrangenostar{labelcref}{#1}{#2}% 3468 }</p><p>Adjust the title page</p><p>3469 \ifhep@title 346: \labelcrefmultiformat{affiliation}{#2#1#3}{% 346; \textsuperscript,#2#1#3}{\textsuperscript,#2#1#3% 3472 }{% 3473 \textsuperscript,#2#1#3% 3474 } 3475 \labelcrefrangeformat{affiliation}{#3#1#4\textsuperscript{--}#5#2#6} 3476 % \thanksmarkseries{alph} 3477 \fi</p><p>End of references conditional</p><p>3478 \fi</p><p>J.5 Citations</p><p>\cite Adjust \cite{hkeyi} in order to prevent preceding line breaks.</p><p>3479 \let\hep@cite\cite 347: \renewcommand\cite{\no@break@before\hep@cite}</p><p>Begin of bibliography if.</p><p>347; \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else</p><p>Define bibstrings for reference names.</p><p>3482 \NewBibliographyString{refname} 3483 \NewBibliographyString{refsname} 3484 \DefineBibliographyStrings{english}{% 3485 refname = {reference}, 3486 refsname = {references} 3487 }</p><p>\ccite Define clever citation macros. \Ccite 3488 \DeclareCiteCommand{\ccite}{% 3489 \ifnum\thecitetotal=1 348: \bibstring{refname}%</p><p>79 348; \else% 3492 \bibstring{refsname}% 3493 \fi% 3494 \addnbspace\bibopenbracket% 3495 \usebibmacro{cite:init}\usebibmacro{prenote}% 3496 }{\usebibmacro{citeindex}\usebibmacro{cite:comp}}{}{% 3497 \usebibmacro{cite:dump}\usebibmacro{postnote}% 3498 \bibclosebracket% 3499 } 349: 349; \newrobustcmd*{\Ccite}{\bibsentence\ccite}</p><p>End of biblatex if.</p><p>34:2 \fi</p><p>K Acronyms</p><p>Define acronyms if not deactivated.</p><p>34:3 \ifhep@glossaries</p><p></package> <*package|acronyms></p><p>Acronyms are implemented with the glossaries-extra package [99] which is an exten- sion of the glossaries package [34] and must be loaded after the hyperref package in appendix J. Set the abbreviation style.</p><p>34:4 \RequirePackage[nostyles]{glossaries-extra} 34:5 \setabbreviationstyle{long-hyphen-short-hyphen}</p><p>The entry count feature is used.</p><p>34:6 \glsenableentrycount 34:7 \glssetcategoryattribute{abbreviation}{entrycount}{1}</p><p>Provide macros for older glossaries-extra installations.</p><p>34:8 \AtEndOfPackage{ 34:9 \@ifpackageloaded{hyperref}{ 34:: \providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} 34:; \providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} 34;2 \providecommand{\gGlsXtrSetField}[3]{% 34;3 \glsxtrsetfieldifexists{#1}{#2}{% 34;4 \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% 34;5 }% 34;6 }</p><p>Hyperlinks from the abbreviation to their definition in the text are set.</p><p>34;7 \glssetcategoryattribute{abbreviation}{nohyperfirst}{true}</p><p>7: 34;8 \renewcommand*{\glsdonohyperlink}[2]{{% 34;9 \glsxtrprotectlinks\edef\fieldvalue{% 34;: \glsxtrusefield{\glslabel}{hastarget}% 34;; }% 3522 \ifdefstring\fieldvalue{true}{#2}{% 3523 \gGlsXtrSetField{\glslabel}{hastarget}{true}% 3524 \glsdohypertarget{#1}{#2}% 3525 }% 3526 }} 3527 }{\providecommand{\pdfstringdefDisableCommands}[1]{}} 3528 }</p><p>\begin@sentence Mark the beginning of a paragraph as if it would follow a full stop using the everyhook package [9:].</p><p>3529 \RequirePackage[excludeor]{everyhook} 352: \newcommand{\begin@sentence}{1001} 352; \PushPostHook{par}{{\spacefactor=\begin@sentence}}</p><p>\frenchspacing Adjust the \frenchspacing macro to be compatibel with this idea.</p><p>3532 \def\frenchspacing{% 3533 \sfcode‘\.\begin@sentence \sfcode‘\?\begin@sentence 3534 \sfcode‘\!\begin@sentence \sfcode‘\:\begin@sentence 3535 \sfcode‘\;\@m \sfcode‘\,\@m 3536 }</p><p>\if@begin@of@sentence Provide a macro checking for the beginning of a sentence by examining the length of the preceeding space.</p><p>3537 \newcommand{\if@begin@of@sentence}[2]{\leavevmode\protecting{% 3538 \ifboolexpr{ test {\ifnumcomp{\spacefactor}{=}{3000}} or% 3539 test {\ifnumcomp{\spacefactor}{=}{2000}} or% 353: test {\ifnumcomp{\spacefactor}{=}{\begin@sentence}}% 353; }{#1}{#2}% 3542 }}</p><p>\acronym The \acronymh*i[htypeset abbreviationi]{habbreviationi}h*i{hdefinitioni}[hplural definitioni] macro is defined. #3 star for omitting the ‘s’ in the short plural #4 optional typeset abbreviation #5 mandatory abbreviation #6 star for restoring the TEX default for space after text macros #7 mandatory long form #8 optional plural long form</p><p>3543 %<acronyms>\RequirePackage{xspace} 3544 \NewDocumentCommand{\acronym}{somsmo}{</p><p>7; 3545 \newabbreviation[ 3546 type=\acronymtype, 3547 sort=#3, 3548 \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}, 3549 longplural=\IfNoValueTF{#6}{#5s}{#6} 354: ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5}</p><p>Provide the singular acronym macro.</p><p>354; \expandafter\newcommand\csname#3\endcsname[1][]{% 3552 \if@begin@of@sentence{% 3553 \ifglsused{#3}{\cgls{#3}[##1]}{\cGls{#3}[##1]}% 3554 }{\cgls{#3}[##1]}% 3555 \ifnum\glsentrycurrcount{#3}>1\relax 3556 \IfBooleanTF{#4}{}{\@\xspace}% 3557 \else\@\xspace\fi 3558 }</p><p>Expand the singular acronym macro in PDF labels.</p><p>3559 \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% 355: \IfNoValueTF{#2}{#3}{#2} }% 355; }</p><p>Provide the singular acronym macro in math mode.</p><p>3562 \expandafter\mathdef\csname#3\endcsname{% 3563 \text{\glsxtrshort{#3}}\@gls@increment@currcount{#3}% 3564 }</p><p>Provide the plural acronym macro.</p><p>3565 \expandafter\newcommand\csname#3s\endcsname[1][]{% 3566 \if@begin@of@sentence{\cGlspl{#3}[##1]}{\cglspl{#3}[##1]}% 3567 \IfBooleanTF{#4}{}{\@\xspace}% 3568 }</p><p>Expand the plural acronym macro in PDF labels.</p><p>3569 \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% 356: \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% 356; }</p><p>Provide the plural acronym macro in math mode.</p><p>3572 \expandafter\mathdef\csname#3s\endcsname{% 3573 \text{\glsxtrshortpl{#3}}\@gls@increment@currcount{#3}% 3574 } 3575 }</p><p>\shortacronym The \shortacronym never expands into the long form.</p><p>3576 \NewDocumentCommand{\shortacronym}{somsmo}{</p><p>82 Provide the singular acronym macro.</p><p>3577 \expandafter\newcommand\csname#3\endcsname[1][]{% 3578 \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}##1% 3579 }</p><p>Expand the singular acronym macro in PDF labels.</p><p>357: \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% 357; \IfNoValueTF{#2}{#3}{#2} }% 3582 }</p><p>Provide the singular acronym macro in math mode.</p><p>3583 \expandafter\mathdef\csname#3\endcsname{% 3584 \text{\IfNoValueTF{#2}{#3}{#2}}% 3585 }</p><p>Provide the plural acronym macro.</p><p>3586 \expandafter\newcommand\csname#3s\endcsname[1][]{% 3587 \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% 3588 \IfBooleanTF{#4}{}{\@\xspace}##1% 3589 }</p><p>Expand the plural acronym macro in PDF labels.</p><p>358: \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% 358; \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% 3592 }</p><p>Provide the plural acronym macro in math mode.</p><p>3593 \expandafter\mathdef\csname#3s\endcsname{% 3594 \text{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}% 3595 }% 3596 }</p><p>\longacronym The \longacronym never shows the abbreviated form.</p><p>3597 \NewDocumentCommand{\longacronym}{somsmo}{</p><p>Provide the singular acronym macro.</p><p>3598 acronyms 3599 \expandafter\newcommand\csname#3\endcsname[1][]{% 359: \if@begin@of@sentence{\MakeUppercase#5}{#5}% 359; \IfBooleanTF{#4}{}{\@\xspace}##1% 35:2 }</p><p>Expand the singular acronym macro in PDF labels.</p><p>35:3 \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#5 }}</p><p>83 Provide the plural acronym macro.</p><p>35:4 \expandafter\newcommand\csname#3s\endcsname[1][]{% 35:5 \if@begin@of@sentence{% 35:6 \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% 35:7 }{% 35:8 \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}##1% 35:9 }</p><p>Expand the plural acronym macro in PDF labels.</p><p>35:: \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% 35:; \IfNoValueTF{#6}{#5s}{#6} }% 35;2 } 35;3 }</p><p>Silence warning if no acronyms are defined.</p><p>35;4 \renewcommand*{\@gls@write@entrycounts}{% 35;5 \immediate\write\@auxout{% 35;6 \string\providecommand*{\string\@gls@entry@count}[2]{} 35;7 }% 35;8 \count@=0\relax 35;9 \forallglsentries{\@glsentry}{% 35;: \glshasattribute{\@glsentry}{entrycount}{% 35;; \ifglsused{\@glsentry}{% 3622 \immediate\write\@auxout{% 3623 \string\@gls@entry@count{\@glsentry}{% 3624 \glsentrycurrcount{\@glsentry}% 3625 } 3626 }% 3627 }{}\advance\count@ by \@ne 3628 }{}% 3629 }% 362: }</p><p>\resetacronym Add two macros for acronym management. \dummyacronym 362; \newcommand{\resetacronym}[1]{\protect\glsreset{#1}} 3632 \newcommand{\dummyacronym}[1]{\protect\glsunset{#1}}</p><p> abstract Adjust the abstract environment to reset all acronym counters.</p><p>3633 \@ifundefined{endabstract}{}{% 3634 \let\end@hep@abstract\endabstract% 3635 \renewcommand\endabstract{\glsresetall\end@hep@abstract}% 3636 }</p><p>\tableofcontents Adjust the \tableofcontents macro to never show the long form of acronyms. \listoffigures 3637 \let\hep@table@of@contents\tableofcontents \listoftables</p><p>84 3638 \renewcommand\tableofcontents{% 3639 \glsunsetall\hep@table@of@contents\glsresetall% 363: } 363; \let\hep@list@of@figures\listoffigures 3642 \renewcommand\listoffigures{% 3643 \glsunsetall\hep@list@of@figures\glsresetall% 3644 } 3645 \let\hep@list@of@tables\listoftables 3646 \renewcommand\listoftables{% 3647 \glsunsetall\hep@list@of@tables\glsresetall% 3648 }</p><p>\acronyms Add a possibility to have different groups of acronyms.</p><p>3649 \NewDocumentCommand{\acronyms}{om}{% 364: \IfNoValueTF{#1}{ 364; \newglossary{#2}{#2.in}{#2.out}{#2}% 3652 \renewcommand{\acronymtype}{#2}% 3653 }{ 3654 \newglossary{#1}{#1.in}{#1.out}{#2}% 3655 \renewcommand{\acronymtype}{#1}% 3656 } 3657 }</p><p></package|acronyms> <*package> End of glossaries if.</p><p>3658 \fi</p><p></package> </package|title|font|math|floats|acronyms|bibliography></p><p>L Biblatex datamodel file</p><p><*datamodel></p><p> collaboration Define the dbx file containing the hep-paper datamodel. pmid 3659 \DeclareDatamodelFields[type=field, datatype=literal]{ pmcid 365: collaboration, pmid, pmcid, pmc, pmc 365; } reportnumber 3662 \DeclareDatamodelFields[type=field, format=xsv, datatype=literal]{ protocollessurl 3663 reportnumber, 3664 } 3665 \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} 3666 \DeclareDatamodelEntryfields{ 3667 collaboration, pmid, pmcid, pmc, reportnumber, protocollessurl, 3668 }</p><p></datamodel></p><p>85 References [3] J. Hajer. ‘The hep-paper package: Publications in high energy physics’ (423;). CTAN: hep - paper. doi: 32 . 74:3 / zenodo . 5828658. GitHub: janhajer / hep - paper. [4] D. Carlisle and H. Umeki. ‘The geometry package: Flexible and complete inter- face to document dimensions’ (3;;8). CTAN: geometry. GitHub: davidcarlisle/ geometry. [5] C. F. Rees. ‘The cfr-lm package: Enhanced support for the Latin Modern fonts’ (422:). CTAN: cfr - lm. [6] R. Schlicht. ‘The microtype package: Subliminal refinements towards typo- graphical perfection’ (4226). CTAN: microtype. [7] LATEX5 Project. ‘Hypertext marks in LATEX: a manual for hyperref: Extensive support for hypertext in LATEX’ (3;;7). CTAN: hyperref. GitHub: latex5/ hyperref. [8] J. Braams, J. Bezos, and at al. ‘Babel Localization and internationaliza- tion: Multilingual support for Plain TEX or LATEX’ (3;:;). CTAN: babel. GitHub: latex5 / babel. [9] R. Fairbairns, F. Mittelbach, and H. Partl. ‘The parskip package: Layout with zero \parindent, non-zero \parskip’(3;:;). CTAN: parskip. GitHub: FrankMittelbach / fmitex. [:] American Mathematical Society. ‘The amsfonts package: TEX fonts from the American Mathematical Society’ (3;;7). CTAN: amsfonts. url: ams.org/ tex / amsfonts. [;] O. Kummer. ‘The doublestroke font: Typeset mathematical double stroke symbols’ (3;;7). CTAN: doublestroke. [32] A. Blumensath. ‘The MnSymbol package: Mathematical symbol font for Adobe MinionPro’ (4227). CTAN: MnSymbol. [33] P. Lehman, J. Wright, A. Boruvka, and P. Kime. ‘The biblatex Package: Sophisticated Bibliographies in LATEX’ (4228). CTAN: biblatex. GitHub: plk / biblatex. [34] N. Talbot. ‘The glossaries package: Create glossaries and lists of acronyms’ (4229). CTAN: glossaries. [35] T. Cubitt. ‘The cleveref package: Intelligent cross-referencing’ (4228). CTAN: cleveref. url: dr - qubit . org / cleveref. [36] T. Tantau, J. Wright, and V. Miletić. ‘The beamer class: A LATEX class for producing presentations and slides’ (4225). CTAN: beamer. GitHub: josephwright / beamer. [37] SISSA Medialab. ‘The JHEP package’ (3;;9). url: jhep.sissa.it/jhep/help/ JHEP _ TeXclass . jsp. [38] SISSA Medialab. ‘The JCAP package’ (4224). url: jcap.sissa.it/jcap/help/ JCAP _ TeXclass . jsp. [39] American Physical Society. ‘The REVTEX class: Styles for various Physics Journals’ (3;;;). CTAN: revtex. url: journals.aps.org/revtex.</p><p>86 [3:] Springer Verlag. ‘The svjour package: Macros for Springer journals’ (3;;9). CTAN: springer. [3;] P. R. Wilson. ‘The titling package: Control over the typesetting of the \maketitle command’ (4222). CTAN: titling. [42] P. W. Daly. ‘A LATEX Package to Prepare Author and Affiliation Blocks: Support for footnote style author/affiliation’ (4223). CTAN: authblk. [43] P. Lehman and J. Wright. ‘The csquotes Package: Context sensitive quotation facilities’ (4225). CTAN: csquotes. [44] P. G. Ratcliffe. ‘The foreign package for LATEX 4ε: Systematic treatment of “foreign” words in documents’ (4234). CTAN: foreign. [45] D. Arseneau. ‘The url package: Verbatim with URL-sensitive line breaks’ (3;;8). CTAN: url. [46] J. Bezos. ‘Customizing lists with the enumitem package: Control layout of itemize, enumerate, description’ (4225). CTAN: enumitem. url: texnia.com/ enumitem.html. GitHub: jbezos/enumitem. [47] Donald E. Knuth. ‘Computer Modern fonts’ (3;:8). CTAN: cm. [48] A. Barton. ‘The sansmathfonts package: Correct placement of accents in sans- serif maths’ (4235). CTAN: sansmathfonts. [49] D. Arseneau. ‘The ulem package: Package for underlining’ (3;:;). CTAN: ulem. [4:] L. Madsen, M. Høgholm, W. Robertson, and J. Wright. ‘The mathtools package: Mathematical tools to use with amsmath’(4226). CTAN: mathtools. [4;] LATEX Team. ‘The amsmath package: AMS mathematical facilities for LATEX’ (3;;6). CTAN: amsmath. url: ams.org/tex/amslatex. [52] LATEX Team. ‘The bm package: Access bold symbols in maths mode’ (3;;5). CTAN: bm. [53] LATEX Team. ‘LATEX 4ε font selection: Docmentation of LATEX font commands’ (3;;7). CTAN: fntguide. [54] A. Reichert. ‘The units and nicefrac packages: Typeset units’ (3;;:). CTAN: units. [55] W. Schmidt. ‘The fixmath package for LATEX 4ε: Make maths comply with ISO 53-2:3;;4 to ISO 53-35:3;;4’(4222). CTAN: fixmath. [56] G. Milde. ‘The alphabeta package: LICR macros and encoding definition files for Greek’ (4235). CTAN: greek- fontenc. [57] S. C. de la Barrera. ‘The physics package: Macros supporting the Mathematics of Physics’ (4234). CTAN: physics. [58] D. Arseneau. ‘The cancel package: Place lines through maths formulae’ (4235). CTAN: cancel. [59] D. Carlisle. ‘The slashed package: Put a slash through characters’ (3;:9). CTAN: slashed. [5:] A. Sommerfeldt. ‘The subcaption package: Support for sub-captions’ (4229). CTAN: subcaption. GitLab: axelsommerfeldt/caption. [5;] D. Els and S. Fear. ‘The booktabs package: Publication quality tables in LATEX’ (3;;7). CTAN: booktabs.</p><p>87 [62] P. van Oostrum and J. Leichter. ‘The multirow, bigstrut and bigdelim packages: Create tabular cells spanning multiple rows’ (3;;6). CTAN: multirow. [63] D. Carlisle and S. Rahtz. ‘Packages in the “graphics” bundle: Enhanced support for graphics’ (3;;6). CTAN: graphicx. [64] F. Charette and P. Kime. ‘<a href="/tags/Biber_(LaTeX)/" rel="tag">biber</a>: Backend processor for BibLATEX’ (422;). GitHub: plk/biber. sourceforge: biblatex- biber. [65] arXiv Team. ‘arXiv: free distribution service and an open archive for scholarly articles’ (3;;3). url: arxiv . org. [66] D. Sutherland. ‘arxiv-collector: A little Python script to collect LATEX sources for upload to the arXiv’ (423:). GitHub: dougalsutherland/arxiv-collector. [67] W. A. Schmidt. ‘The cmbright package: Using the CM Bright typeface with LATEX’ (3;;8). CTAN: cmbright. [68] F. Mittelbach and R. Schöpf. ‘The exscale package: Implements scaling of the “cmex” fonts’ (3;;5). CTAN: exscale. [69] American Mathematical Society. ‘The amssymb package’ (3;;7). CTAN: amsfonts. [6:] J. Knappen. ‘The mathrsfs package: Support for using RSFS fonts in maths’ (3;;7). CTAN: mathrsfs. [6;] H. Oberdiek. ‘The pdftexcmds package: LuaTEX support for pdfTEX utility functions’ (4229). CTAN: pdftexcmds. [72] H. Oberdiek. ‘The kvoptions package: Key value format for package options’ (4226). CTAN: kvoptions. GitHub: ho-tex/kvoptions. [73] LATEX Team. ‘The ifluatex package: Provides the \ifluatex switch’ (4229). CTAN: ifluatex. [74] LATEX Team. ‘The iftex package: Am I running under X TE EX?’ (4228). CTAN: ifxetex. GitHub: latex5 / iftex. [75] LATEX Team. ‘The fontenc package: Standard package for selecting font en- codings’ (3;;7). CTAN: fontenc. [76] LATEX5 Project Team. ‘LATEX font encodings: Documentation of LATEX font encodings’ (3;;7). CTAN: encguide. [77] F. Mittelbach, D. Carlisle, C. Rowley, and W. Schmidt. ‘The fix-cm package: Permit Computer Modern fonts at arbitrary sizes’ (3;;5). CTAN: fix-cm. [78] B. Jackowski and J. Nowacki. ‘Latin Modern Family of Fonts: Latin modern fonts in outline formats’ (4225). CTAN: lm. url: gust.org.pl/projects/e- foundry / latin - modern. [79] LATEX Team. ‘The textcomp package: LATEX support for the Text Companion fonts’ (3;;7). CTAN: textcomp. [7:] P. Lehman and J. Wright. ‘The etoolbox package: e-TEX tools for LATEX’ (4229). CTAN: etoolbox. [7;] W. Robertson and K. Hosny. ‘The fontspec package: Advanced font selection in X LE ATEX and LuaLATEX’(4226). CTAN: fontspec. [82] LATEX Team. ‘The inputenc package: Accept different input encodings’ (3;:;). CTAN: inputenc.</p><p>88 [83] G. Milde. ‘The textalpha package: LICR macros and encoding definition files for Greek’ (4232). CTAN: greek- fontenc. [84] G. Milde. ‘The substitutefont package: Easy font substitution’ (4232). CTAN: substitutefont. [85] E. Saudrais. ‘The esint package: Extended set of integrals for Computer Mod- ern’ (4227). CTAN: esint. [86] LATEX Team. ‘The xspace package: Define commands that appear not to eat spaces’ (3;;5). CTAN: xspace. [87] D. Arseneau and M. Swift. ‘The relsize package: Set the font size relative to the current font size’ (4233). CTAN: relsize. [88] LATEX5 Project. ‘The xparse package: A generic document command parser’ (3;;;). CTAN: xparse. [89] Enrico Gregorio. ‘The xpatch package: Extending etoolbox patching com- mands’ (4234). CTAN: xpatch. [8:] H. Oberdiek. ‘The mleftright package: Variants of delimiters that act as maths open/close’ (4232). CTAN: mleftright. [8;] A. Sommerfeldt. ‘The caption package: Customising captions in floating envi- ronments’ (3;;6). CTAN: caption. GitLab: axelsommerfeldt/caption. [92] M. Schröder. ‘The ragged4e-package: Alternative versions of “ragged”-type commands’ (3;;8). CTAN: ragged4e. GitLab: hagenbuch/ragged4e. [93] D. Arseneau. ‘The varwidth package: A variable-width minipage’ (4225). CTAN: varwidth. [94] H. Oberdiek. ‘The atbegshi package: Execute stuff at shipout time’ (4229). CTAN: atbegshi. GitHub: ho- tex/atbegshi. [95] H. Oberdiek. ‘The picture package: Dimens for picture macros’ (4228). CTAN: picture. GitHub: ho - tex / picture. [96] W. Robertson. ‘The environ package: A new interface for environments in LATEX’ (4229). CTAN: environ. [97] P. R. Wilson. ‘The abstract package: Control the typesetting of the abstract environment’ (4222). CTAN: abstract. [98] H. Lange. ‘The footnotebackref package: Back-references from footnotes’ (4234). CTAN: footnotebackref. [99] N. T. Dickimaw Books. ‘The glossaries-extra package: An extension to the glossaries package’ (4237). CTAN: glossaries- extra. [9:] S. Checkoway. ‘The everyhook package: Hooks for standard TEX token lists’ (4232). CTAN: everyhook.</p><p>Change History v3.2 v3.4 General: Initial version of the style file. 3 General: Introduction of package v3.3 options...... 3 General: Transition to documented v3.5 LATEX source file...... 3 General: Inclusion of JHEP and</p><p>89 JCAP package options. Fix of v3.8 incompatibility with recent General: Implementation of the subcaption package version. Move twocolumn mode...... 3 of biblatex datamodel into its own v3.9 file ...... 3 v3.6 General: Introduction of dedicated General: If possible the compatibility style file for the title, acronyms options are selected automatically. and bibliography macros. Inclusion of PubMed IDs in Extension of the title macros. . . . 3 bibliography...... 3 v3.: v3.7 General: Expand thanks to allow for General: Reduce the numer of math reference label and fine tune the alphabets used in sans serif mode. title page. Reimplement the must Add more title options such as a relevant macros from the physics subtitle. Use standard class package. Make mathrm produce options...... 3 upright Greek...... 3</p><p>8:</p> </div> </article> </div> </div> </div> <script type="text/javascript" async crossorigin="anonymous" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8519364510543070"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script> var docId = 'cc72c2dcec312e1e9a3ba27f0e1a8653'; var endPage = 1; var totalPage = 68; var pfLoading = false; window.addEventListener('scroll', function () { if (pfLoading) return; var $now = $('.article-imgview .pf').eq(endPage - 1); if (document.documentElement.scrollTop + $(window).height() > $now.offset().top) { pfLoading = true; endPage++; if (endPage > totalPage) return; var imgEle = new Image(); var imgsrc = "//data.docslib.org/img/cc72c2dcec312e1e9a3ba27f0e1a8653-" + endPage + (endPage > 3 ? ".jpg" : ".webp"); imgEle.src = imgsrc; var $imgLoad = $('<div class="pf" id="pf' + endPage + '"><img src="/loading.gif"></div>'); $('.article-imgview').append($imgLoad); imgEle.addEventListener('load', function () { $imgLoad.find('img').attr('src', imgsrc); pfLoading = false }); if (endPage < 7) { adcall('pf' + endPage); } } }, { passive: true }); </script> <script> var sc_project = 11552861; var sc_invisible = 1; var sc_security = "b956b151"; </script> <script src="https://www.statcounter.com/counter/counter.js" async></script> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>