% \iffalse meta-comment % % Copyright (C) 2019-2020 by Jan Hajer % ----------------------------------- % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in: % % http://www.latex-project.org/lppl.txt % % and version 1.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % \fi % % \iffalse % %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesPackage{hep-paper}[2020/05/01 v1.3 Publications in High Energy Physics] %\ProvidesFile{hep-paper.dbx}[2020/05/01 v1.3 HEP-Paper biblatex data model] % %<*driver> \documentclass{ltxdoc} \MacroIndent=1.5em % \makeatletter % \newenvironment{decl}[1][]% % {\par\small\addvspace{4.5ex plus 1ex}% % \vskip -\parskip % \ifx\relax#1\relax % \def\@decl@date{}% % \else % \def\@decl@date{\NEWfeature{#1}}% % \fi % \noindent\hspace{-\leftmargini}% % \begin{tabular}{|l|}\hline\ignorespaces}% % {\\\hline\end{tabular}\nobreak\@decl@date\par\nobreak % \vspace{2.3ex}\vskip -\parskip} % \makeatother \usepackage[parskip]{hep-paper} \bibliography{bibliography} \acronym{PDF}{portable document format} \usepackage{hologo} \usepackage{multicol} \usepackage{titletoc} \titlecontents{section}[0em]{\medskip\bfseries}{\thecontentslabel\hspace{.8em}}{}{\hfill\contentspage} \newenvironment{columns}[1][.5]{% \begin{minipage}[t]{\linewidth}% \begin{minipage}[t]{#1\linewidth} \newcommand{\column}{% \end{minipage}% \begin{minipage}[t]{\linewidth-#1\linewidth}% }% }{\end{minipage}\end{minipage}} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{hep-paper.dtx} \end{document} % % % \fi % % \CheckSum{1140} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \changes{v1.0}{2019/01/01}{Initial version of the style file} % \changes{v1.1}{2020/01/01}{Transition to documented \hologo{LaTeX} source file} % \changes{v1.2}{2020/03/01}{Introduction of package options} % \changes{v1.3}{2020/05/01}{Inclusion of JHEP and JCAP package options, fix incompatibility with recent subcaption package version, move biblatex datamodel into its own file} % % \GetFileInfo{hep-paper.sty} % % \DoNotIndex{\,,\@} % \DoNotIndex{\@affiliation,\@affil@opt,\@affil} % % \title{The |hep-paper| package\thanks{This document corresponds to \protecting{|hep-paper|}~\fileversion.}} % \author{Jan Hajer \email{jan.hajer@uclouvain.be}} % \affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium} % \preprint{Preprint-Number} % \date{\normalfont\filedate} % % \maketitle % % \begin{abstract} % The |hep-paper| package aims to provide a single style file containing most configurations and macros necessary to write appealing publications in High Energy Physics. % Instead of reinventing the wheel by introducing newly created macros |hep-paper| preferably loads third party packages as long as they are lightweight enough. % \end{abstract} % % \clearpage\tableofcontents\clearpage % % \newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} % % \section{Introduction} % % For usual publications it is enough to load additionally to the |article| class without optional arguments only the |hep-paper| package \cite{hep-paper}. % % | \documentclass{article}|\\ % | \usepackage{hep-paper}| % % The most notable changes after loading the |hep-paper| package is the change of some \hologo{LaTeX} defaults. % The paper and font sizes are set to A4 and \unit[11]{pt}, respectively. % Additionally, the paper geometry is set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}. % Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. % Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. % % \subsection{Options} % % \DescribeMacro{paper} % The |paper=|\meta{format} option loads the specified paper format. % The possible \meta{formats} are: % |a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|, % |b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, % |c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, % |ansia|, |ansib|, |ansic|, |ansid|, |ansie|, % |letter|, |executive|, |legal|. % % \DescribeMacro{font} % The |font=|\meta{size} option loads the specified font size. % The possible \meta{sizes} are: % |8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|. % % \DescribeMacro{defaults} % The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. % % \DescribeMacro{lang} % The |lang|=\meta{name} option switches the document language to the chosen value. % The possible values are given by the |babel| package \cite{babel}. % The default is |british|. % % \DescribeMacro{parskip} % The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. % The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. % \footnote{The |parskip| option is used for this document.} % % \DescribeMacro{sansserif} % The |sansserif| option switches the document including math to sans serif font shape. % % \DescribeMacro{title} % The |title=false| option deactivates the title page adjustments. % % \DescribeMacro{manualplacement} % The |manualplacement| option reactivates manual float placement. % % \DescribeMacro{bibliography} % The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|. % Otherwise the \meta{key} is passed as |style| string to the |biblatex| package. % % \DescribeMacro{glossaries} % The |glossaries=false| option deactives the use of the |glossaries| package \cite{glossaries}. % % \DescribeMacro{jhep} % The |jhep| option activates the |JHEP| \cite{jhep} compatibility mode. % % \DescribeMacro{jcap} % The |jcap| option activates the |JCAP| \cite{jcap} compatibility mode. % % \DescribeMacro{revtex} % The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode. % % \DescribeMacro{pos} % The |pos| option activates the |PoS| compatibility mode. % % \DescribeMacro{eqnarray} % The |eqnarray| option reactivates the depreciated |eqnarray| environment. % % \section{Macros and environments} % % \subsection{Title page} % % \DescribeMacro{\author} % \DescribeMacro{\affiliation} % \DescribeMacro{\email} % In order to facilitate multiple authors with different affiliations the |authblk| package \cite{authblk} is loaded. % The following lines add \eg two authors with different affiliations % % | \author[1]{Author one \email{Email one}}|\\ % | \affiliation[1]{Affiliation one}|\\ % | \author[2]{Author two \email{Email two}}|\\ % | \affiliation[1,2]{Affiliation two}| % % \DescribeMacro{\title} % The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. % % \DescribeMacro{\preprint} % The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. % % \DescribeEnv{abstract} % The |abstract| environment is adjusted to not start with an indentation. % % \subsection{Text} % % Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package. % \DescribeMacro{\enquote} % \DescribeMacro{\MakeOuterQuote} % The latter package provides the convenient macros |\enquote|\marg{text} and |\MakeOuterQuote{"}| allowing to leave the choice of quotation marks to \hologo{LaTeX} and use |"| instead of the pair |``| and |''|, respectively. % % \DescribeMacro{\eg} % \DescribeMacro{\vs} % The |foreign| package \cite{foreign} defines macros such as |\eg|, |\ie|, |\cf|, and |\vs| which are typeset as \eg, \ie, \cf, and \vs. % % \DescribeMacro{\no} % The |\no|\marg{number} macro is typeset as \no{123}. % % \DescribeMacro{\software} % The |\software|\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}. % % \DescribeMacro{\online} % The |\online|\marg{url}\marg{text} macro combines the features of the |\href|\marg{url} \marg{text} \cite{hyperref} and the |\url|\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}. % % The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. % % \DescribeMacro{inlinelist} % \begin{columns} % |The three main points are| % % |\begin{inlinelist}| % % | \item one| % % | \item two| % % | \item three| % % |\end{inlinelist}| % \column % The three main points are % \begin{inlinelist} % \item one % \item two % \item three % \end{inlinelist} % \end{columns} % % \DescribeMacro{enumdescript} % \begin{columns}[.6] % |\begin{enumdescript}[label=\Roman*)]| % % | \item{First} one| % % | \item{Second} two| % % | \item{Third} three| % % |\end{enumdescript}| % \column % \begin{enumdescript}[label=\Roman*)] % \item{First} one % \item{Second} two % \item{Third} three % \end{enumdescript} % \end{columns} % % \DescribeMacro{\textsc} % A sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}. % % \DescribeMacro{\underline} % \DescribeMacro{\overline} % The |\underline| macro is redefined to allow linebreaks using the |soul| package \cite{soul}. % The |\overline| macro is extended to also \overline{overline} text outside of math environments. % % \DescribeMacro{\useparskip} % \DescribeMacro{\useparindent} % If the |parskip| option is activated the |\useparindent| macro switches back the usual parindent mode, while the |\useparskip| macro switches to the parskip mode. % % \subsubsection{References and footnotes} % % \DescribeMacro{\cref} % References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{Figure 1}. % Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}. % % \DescribeMacro{\cite} % Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}. % % \DescribeMacro{\ref} % \DescribeMacro{\eqref} % \DescribeMacro{\subref} % References are also adjusted to not start on a new line and are redefined in order to handle multiple references at once. % % \DescribeMacro{\footnote} % Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. % % \subsubsection{Acronyms} % % \DescribeMacro{\acronym} % \DescribeMacro{\shortacronym} % \DescribeMacro{\longacronym} % The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singluar |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros. % % The first star prevents the addition of an \enquote{s} to the abbreviation plural. % The second star restores the \hologo{TeX} default of swallowing subsequent white space. % The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form. % Capitalization at the beginning of paragraphs and sentences is ensured. % The |\shortacronym| and |\longacronym| macros only show the short or long form of their acronym. % \DescribeMacro{\resetacronym} % \DescribeMacro{\dummyacronym} % The first use form of the acronym can be enforced by resetting the acronym counter. % If the acronym counter equals one at the end of the document the short form of the acronym is not introduced. % Placing a |\dummyacronym|\marg{key} at the end of the document ensures that the short form is introduced. % % \subsection{Math} % % The |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. % They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. % Details about the font handling in \hologo{TeX} can be found in \cite{fntguide}. % \DescribeMacro{\mathbf} % Bold math, including |\mathbf| is provided by the |bm| package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$). % Macros switching to |bfseries| such as |\section|\marg{text} are ensured to also typeset math in bold. % This may cause trouble if bold symbols carry an additional non-implicit meaning. % \DescribeMacro{\text} % The |\text|\marg{text} macro makes it possible to write text within math mode, \ie ($ \text A \text b \text \Gamma \text \delta \text{\textbf A} \text{\textbf b} \text{\textbf \Gamma} \text{\textbf \delta}$). % The often used |\mathrm|\marg{text} and |\rm|\marg{text} macros are \emph{not} the correct tool for this purpose, as they switch to roman font shape. % This behaviour conflicts \eg with the |sansserif| package option. % \DescribeMacro{\mathsf} % The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$). % \DescribeMacro{\mathscr} % The |\mathcal| font \ie ($\mathcal{ABCD}$) is accompanied by the |\mathscr| font \ie ($\mathscr{ABCD}$). % \DescribeMacro{\mathbb} % The |\mathbb| font is changed by the |bbm| \cite{bbm-macros} package and adjusted depending on the |sansserif| option \ie ($\mathbb{Ab1}${\mathversion{bold}$\mathbb{Ab1}$}). % % \DescribeMacro{\nicefrac} % \DescribeMacro{\flatfrac} % The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$. % \DescribeMacro{\diag} % % A diagonal matrix operator is defined |\diag|. % % \DescribeMacro{\mathdef} % The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition. % % \DescribeMacro{\i} % \DescribeMacro{\d} % The imaginary unit $\i$ and the differential $\d$ are defined using this functionality. % % \DescribeMacro{\numberwithin} % For longer paper it can be useful to re-number the equation in accordance with the section numbering |\numberwithin{equation}{section}|. % \DescribeMacro{subequations} % In order to further reduce the size the of equation counter it can be useful to wrap |align| environments with multiple rows in a |subequations| environment. % Both macros are provided by the \hologo{AmSLaTeX} package. % % \DescribeMacro{eqnarray} % The depreciated |eqnarray| environment is undefined as long this behaviour is not prevented by the |eqnarray| package option. % The |split|, |multline|, |align|, |multlined|, |aligned|, |alignedat|, and |cases| environments should be used instead. % % \subsubsection{Physics} % % Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the |fixmath| \cite{fixmath} and |alphabeta| \cite{alphabeta} packages. % This allows differentiations like % \begin{align} % \sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ , % \label{eq:greek} % \end{align} % and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. % Additionally, Greek letters can also be directly typed using Unicode. % % \DescribeMacro{\ev} % \DescribeMacro{\pdv} % \DescribeMacro{\comm} % \DescribeMacro{\order} % The |physics| package \cite{physics} provides additional macros such as % \begin{align} % &\ev{\phi} \ , % &&\pdv[n]{f}{x} \ , % &&\comm{A}{B} \ , % &&\order{x^2} \ , % &&\eval*{x}_0^\infty \ , % &&\det(M)\ . % \end{align} % % \DescribeMacro{\slashed} % The |\slashed|\marg{character} macro from the |slashed| \cite{slashed} package allows to use the Dirac slash notation. % % \DescribeMacro{\overleftright} % A better looking over left right arrow is defined \ie $\overleftright{\partial}$. % % \DescribeMacro{\unit} % \DescribeMacro{\inv} % The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro |\unit|\oarg{value} \marg{unit} from the |units| package \cite{units} which can also be used in text mode. % The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via |\unit[5]{\inv{fb}}|. % % \subsection{Floats} % % \DescribeEnv{figure} % \DescribeEnv{table} % Automatic float placement is adjusted to place a single float at the top of pages and to reduce the number of float pages. % The most useful float placement is usually archived by placing the float \emph{in front} of the paragraph it is referenced in first. % Additionally, manual float placement is deactivated but can be reactivated using the |manualplacement| package option. % \DescribeMacro{\raggedright} % The float environments have been adjusted to center their content. % The usual behaviour can be reactivated using |\raggedright|. % % \begin{table} % \begin{panels}{.6} % \raggedright % |\begin{panels}{.6}|\\ % |code|\\ % |\panel{.4}|\\ % |\begin{tabular}...\end{tabular}|\\ % |\end{panels}|\\ % \caption{Code for this panel environment.} % \label{tab:panels} % \panel{.4} % \begin{tabular}{cccc} % \toprule % \multicolumn{2}{c}{one}& \multicolumn{2}{c}{two} \\ \cmidrule(r){1-2} \cmidrule(l){3-4} % \multirow{2}{*}{a} & b & c & d \\ % & b & c & d \\ % \bottomrule % \end{tabular} % % \caption{The \protecting{|booktabs|} and \protecting{|multirow|} features.} % \label{tab:booktabs} % \end{panels} % \caption{Example use of the \protecting{|panels|} environment in Panel \subref{tab:panels} and the features from the \protecting{|booktabs|} and \protecting{|multirow|} packages in Panel \subref{tab:booktabs}. % } \label{tab:table} % \end{table} % % \DescribeEnv{panels} % \DescribeMacro{\panel} % The |panels| environment makes use of the |subcaption| package \cite{subcaption}. % It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the |\linewidth|. % Within the |\begin{panels}|\oarg{vertical alignment}\marg{width} environment the |\panel| macro initiates a new sub-float. % In the case that the width of the first sub-float has been given as an optional argument to the |panels| environment the |\panel|\marg{width} macro takes the width of the next sub-float as mandatory argument. % The example code is presented in \cref{tab:panels}. % % \DescribeEnv{tabular} % The |booktabs| \cite{booktabs} and |multirow| \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}. % % \DescribeMacro{\graphic} % \DescribeMacro{\graphics} % The |graphicx| package \cite{graphicx} is loaded and the |\graphic|\oarg{width}\marg{figure} macro is defined, which is a wrapper for the |\includegraphics|\marg{figure} macro and takes the figure width as fraction of the |\linewidth| as optional argument (default~1). % If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}. % % \subsection{Bibliography} % % \DescribeMacro{\bibliography} % \DescribeMacro{\printbibliography} % The |biblatex| package \cite{biblatex} is loaded for bibliography management. % The user has to add the line |\bibliography|\marg{my.bib} to the preamble of the document and |\printbibliography| at the end of the document. % The bibliography is generated by \software{Biber} \cite{biber}. % |biblatex| is extended to be able to cope with the |collaboration| and |reportNumber| fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed. % Additionally, \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are recognized as |eprinttype|s. % \DescribeMacro{erratum} % Errata can be included using the |related| feature. % % | \article{|\meta{key1}|,|\\ % | |\dots|,|\\ % | relatedtype="erratum",|\\ % | related="|\meta{key2}|",|\\ % | }|\\ % | \article{|\meta{key2}|,|\\ % | |\dots|,|\\ % | }| % % \section{Conclusion} % % The |hep-paper| package provides a matching selection of preloaded packages and additional macros enabling the user to focus on the content instead of the layout by reducing the amount of manual tasks. % The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. % % \DescribeMacro{arxiv-collector} % ArXiv.org \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv. % The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures). % % \StopEventually{ % \printbibliography % \PrintChanges % } % % \appendix % % \section{Options} % %<*package> % Load the |pdftexcmds| \cite{pdftexcmds} and |kvoptions| \cite{kvoptions} packages and define a |hep| namespace. % \DoNotIndex{\RequirePackage,\SetupKeyvalOptions} % \begin{macrocode} \RequirePackage{pdftexcmds} \RequirePackage{kvoptions} \SetupKeyvalOptions{ family=hep, prefix=hep@ } % \end{macrocode} % % \begin{macro}{paper} % Define a |paper=|\meta{size} option. % Make A4 paper the default. % \DoNotIndex{\DeclareStringOption} % \begin{macrocode} \DeclareStringOption[a4]{paper} % \end{macrocode} % \end{macro} % % \begin{macro}{font} % Define a |font=|\meta{size} option. % Make \unit[11]{pt} the default font size. % \begin{macrocode} \DeclareStringOption[11pt]{font} % \end{macrocode} % \end{macro} % % \begin{macro}{defaults} % Define the |defaults| option which deactivates the |paper| and |font| options and prevents the change of the class defaults by this package. % \DoNotIndex{\DeclareBoolOption,\ifhep@defaults} % \begin{macrocode} \DeclareBoolOption[false]{defaults} % \end{macrocode} % \end{macro} % % \begin{macro}{lang} % Define the |lang| option, which takes the values provided by the |babel| package \cite{babel}. % Make |british| the default language. % \begin{macrocode} \DeclareStringOption[british]{lang} % \end{macrocode} % \end{macro} % % \begin{macro}{parskip} % Define the option pair |parindent| and |parskip| controlling the separation of paragraphs. % \DoNotIndex{\DeclareComplementaryOption,\ifhep@parindent} % \begin{macrocode} \DeclareBoolOption[true]{parindent} \DeclareComplementaryOption{parskip}{parindent} % \end{macrocode} % \end{macro} % % \begin{macro}{sansserif} % Define the option pair |serif| and |sansserif| controling the font shape of the whole document. % \DoNotIndex{\ifhep@serif} % \begin{macrocode} \DeclareBoolOption[true]{serif} \DeclareComplementaryOption{sansserif}{serif} % \end{macrocode} % \end{macro} % % \begin{macro}{eqnarray} % Provide the option |eqnarray| for reactivating the |eqnarray| environment. % \DoNotIndex{\ifhep@eqnarray} % \begin{macrocode} \DeclareBoolOption[false]{eqnarray} % \end{macrocode} % \end{macro} % % \begin{macro}{bibliography} % Provide the option |bibliography| for passing a |style| string to the |biblatex| package \cite{biblatex} or disabling the automatic loading of |biblatex|. % \begin{macrocode} \DeclareStringOption[numeric-comp]{bibliography} % \end{macrocode} % \end{macro} % % \begin{macro}{glossaries} % Provide the option |glossaries| able to turn of the use of the |glossaries| package \cite{glossaries}. % \DoNotIndex{\ifhep@glossaries} % \begin{macrocode} \DeclareBoolOption[true]{glossaries} % \end{macrocode} % \end{macro} % % \begin{macro}{manualplacement} % Provide the |manualplacement| option for reactivating the manual placement of floats. % \DoNotIndex{\ifhep@manualplacement} % \begin{macrocode} \DeclareBoolOption[false]{manualplacement} % \end{macrocode} % \end{macro} % % \begin{macro}{title} % Provide the option |title| for deactivating redefinition of title macros. % \DoNotIndex{\ifhep@title} % \begin{macrocode} \DeclareBoolOption[true]{title} % \end{macrocode} % \end{macro} % % \begin{macro}{revtex} % Provide the option |revtex| for REV\hologo{TeX} \cite{revtex} compatibility mode. % \begin{macrocode} \DeclareBoolOption[false]{revtex} % \end{macrocode} % \end{macro} % % \begin{macro}{jhep} % Provide the option |jhep| for |JHEP| \cite{jhep} compatibility mode. % \begin{macrocode} \DeclareBoolOption[false]{jhep} % \end{macrocode} % \end{macro} % % \begin{macro}{jcap} % Provide the option |jcap| for |JCAP| \cite{jcap} compatibility mode. % \begin{macrocode} \DeclareBoolOption[false]{jcap} % \end{macrocode} % \end{macro} % % \begin{macro}{pos} % Provide the option |pos| for |PoS| compatibility mode. % \begin{macrocode} \DeclareBoolOption[false]{pos} % \end{macrocode} % \end{macro} % % \subsection{Process options} % % \begin{macrocode} \ProcessKeyvalOptions* % \end{macrocode} % % Set the |pos| compatibility options. % \DoNotIndex{\ifhep@pos,\setkeys,\fi} % \begin{macrocode} \ifhep@pos \setkeys{hep}{title=false, defaults} \fi % \end{macrocode} % % Set the |revtex| compatibility options. % \DoNotIndex{\ifhep@revtex} % \begin{macrocode} \ifhep@revtex \setkeys{hep}{defaults, title=false, lang=american, bibliography=false} \fi % \end{macrocode} % % Define the SISSA conditional. % \begin{macrocode} \newif\ifhep@sissa \ifhep@jhep\hep@sissatrue \else \ifhep@jcap\hep@sissatrue \else\hep@sissafalse \fi \fi % \end{macrocode} % % Set the SISSA compatibility options. % \begin{macrocode} \ifhep@sissa \setkeys{hep}{title=false, bibliography=false} \PassOptionsToPackage{ colorlinks=true, linktocpage=true, pdfproducer=medialab, pdfa=true, urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue, linkcolor=blue, menucolor=blue, pagecolor=blue }{hyperref} \hoffset 0pt \voffset 0pt \fi % \end{macrocode} % \section{Engine} % % \begin{macro}{\ifxetexorluatex} % Load the |ifluatex| \cite{ifluatex} and |ifxetex| \cite{ifxetex} packages. % Define the |\ifxetexorluatex| conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}. % \DoNotIndex{\newif,\ifxetex,\xetexorluatextrue,\else,\ifluatex,\xetexorluatexfalse,\fi} % \begin{macrocode} \RequirePackage{ifluatex} \RequirePackage{ifxetex} \newif\ifxetexorluatex \ifxetex\xetexorluatextrue \else \ifluatex\xetexorluatextrue \else\xetexorluatexfalse \fi \fi % \end{macrocode} % \end{macro} % \section{Text} % % Load the |alphabeta| package \cite{alphabeta} first in order to archive the correct behaviour. % The |alphabeta| package provides upright Greek letters in text mode. % \begin{macrocode} \RequirePackage{alphabeta} % \end{macrocode} % % Set the whole text to sans serif if requested. % Load the |sansmathfonts| package \cite{sansmathfonts} first. % Although, most fonts will later be overwritten by the |lmodern| package \cite{lmodern} some mathematical objects are ensured to be in sans serif. % \DoNotIndex{\ifhep@serif,\renewcommand,\familydefault,\sfdefault} % \begin{macrocode} \ifhep@serif\else \RequirePackage{sansmathfonts} \renewcommand\familydefault{\sfdefault} \fi % \end{macrocode} % % Pick the correct font encoding depending on the engine used and load the |fontenc| package \cite{fontenc} with this encoding. % For details of the font encoding see \cite{encguide}. % \DoNotIndex{\def,\@encoding} % \begin{macrocode} \ifxetexorluatex \def\@encoding{TU} \else \def\@encoding{T1} \fi \RequirePackage[\@encoding]{fontenc} % \end{macrocode} % Load the |lmodern| font \cite{lmodern}, the |textcomp| extension \cite{textcomp}, and the |microtype| font optimization \cite{microtype}. % \begin{macrocode} \RequirePackage{lmodern} \RequirePackage{textcomp} \RequirePackage{microtype} % \end{macrocode} % % Define sans serif small caps font shapes. % The font abbreviations are % \begin{description}[nosep] % \item[lmss] Latin modern sans serif font % \item[cmss] Computer modern sans serif font % \item[xcmss] Extended computer modern sans serif font (from the |sansmathfonts| package \cite{sansmathfonts}) % \item[bx] Bold extended series % \item[m] Medium weight and width series % \item[c] Medium weight, condensed width series % \item[sc] Caps and small caps font shape % \end{description} % \DoNotIndex{\DeclareFontShape,\sffamily} % \begin{macrocode} \ifxetexorluatex \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} \DeclareFontShape{\@encoding}{lmss}{m}{sc}{% <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% }{} \else \sffamily \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} \DeclareFontShape{\@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} \fi % \end{macrocode} % Load the |inputenc| \cite{inputenc} package. % \begin{macrocode} \ifxetexorluatex\else \RequirePackage[utf8]{inputenc} \fi % \end{macrocode} % % Load the |babel| \cite{babel} package for hyphenation and the recommended |csquotes| package \cite{csquotes}. % \DoNotIndex{\hep@lang} % \begin{macrocode} \RequirePackage[\hep@lang]{babel} \RequirePackage{csquotes} % \end{macrocode} % % \begin{macro}{\underline} % Load the |soul| package \cite{soul} for hyphenable underlined text. % \DoNotIndex{\let} % \begin{macrocode} \RequirePackage{soul} \let\underline\ul % \end{macrocode} % \end{macro} % % \subsection{Font size} \label{sec:font size} % % Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option. % \DoNotIndex{\remove@pt,\edef,\@ptsize,\expandafter,\small,\relax,\footnotesize,\scriptsize} % \begin{macrocode} \ifhep@defaults\else \def\remove@pt#1pt{#1} \edef\@ptsize{\expandafter\remove@pt\hep@font} \let\small\relax \let\footnotesize\relax \let\scriptsize\relax \let\tiny\relax \let\large\relax \let\Large\relax \let\LARGE\relax \let\huge\relax \let\Huge\relax \input{size\@ptsize.clo} \fi % \end{macrocode} % \subsection{Text macros} % %\begin{macro}{\vs} % Load the |foreign| package \cite{foreign} in order to highlight abbreviations and vocabularies from foreign languages. % Add the missing |\vs| command. % \DoNotIndex{\DeclareRobustCommand,\xperiodafter,\foreignabbrfont,\pdf@strcmp,\hep@lang@foreign} % \begin{macrocode} \ifnum\pdf@strcmp{\hep@lang}{american}=0 \newcommand{\hep@lang@foreign}{USenglish} \else \ifnum\pdf@strcmp{\hep@lang}{USenglish}=0 \newcommand{\hep@lang@foreign}{USenglish} \else \newcommand{\hep@lang@foreign}{british} \fi \fi \RequirePackage[all, \hep@lang@foreign]{foreign} \DeclareRobustCommand\vs{\xperiodafter{{\foreignabbrfont{vs}}}} % \end{macrocode} % \end{macro} % % The |foreign| package relies on the |xspace| package \cite{xspace}. % Ensure that |\xspace| is compatible with the |\enquote| macro from the |csquote| package. % \begin{macrocode} \xspaceaddexceptions{\csq@qclose@i} % \end{macrocode} %\begin{macro}{\no} % Define the macro |\no|\marg{number} for the use of \textnumero\ with appropriate spacing. % \begin{macrocode} \newcommand{\no}[1]{\textnumero~#1} % \end{macrocode} % \end{macro} % %\begin{macro}{\software} % Define a macro for software with optional version information |\software|\linebreak[1]\oarg{version}\linebreak[1]\marg{name}, using the |relsize| package \cite{relsize}. % \DoNotIndex{\hspace,\fontdimen,\font,\smaller,\textsc} % \begin{macrocode} \RequirePackage{relsize} \newcommand{\software}[2][\hspace{-\fontdimen2\font}]{% {\smaller\textsc{#2}~#1}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\online} % The |\online|\marg{text}\marg{url} macro combines the features of the |\href| and the |\url| macros. % \DoNotIndex{\href,\url} % \begin{macrocode} \newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} % \end{macrocode} % \end{macro} % \subsection{Lists} % % Load the |enumitem| package \cite{enumitem}. % \begin{macrocode} \RequirePackage[inline]{enumitem} % \end{macrocode} % % \begin{environment}{inlinelist} % Define an inline list environment. % \DoNotIndex{\newlist,\setlist*,\ } % \begin{macrocode} \newlist{inlinelist}{enumerate*}{1} \setlist*[inlinelist,1]{% label=\roman*), itemjoin={,\ }, itemjoin*={, and\ }, after=.% } % \end{macrocode} % \end{environment} % % \begin{environment}{enumdescript} % Define an enumdescript list environment. % \DoNotIndex{\arabic*,\old@item,\item,ifx,\textbf,\empty,\@ifnextchar,\par,\@gobble} % \begin{macrocode} \newlist{enum@descript}{enumerate}{2} \setlist[enum@descript]{label=\arabic*.} \newenvironment{enumdescript}[1][]{ \begin{enum@descript}[#1] \let\old@item\item \renewcommand{\item}[2][]{ \ifx&##1&\old@item\else\old@item[##1]\fi \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax } }{\end{enum@descript}} % \end{macrocode} % \end{environment} % \subsection{Footnotes} % % \begin{macro}{\footnote} % Ensure that no spaces appear before the footmark or at the beginning of the footnote. % \DoNotIndex{\unskip,\@foot@note,\ignorespaces} % \begin{macrocode} \let\@foot@note\footnote \renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} % \end{macrocode} % \end{macro} % \section{Geometry} % % Load the |geometry| package \cite{geometry} and adjust the text width and height to the values of the |a4wide| package \cite{a4wide}. % This step must happen after readjusting the font size in \cref{sec:font size}. % \DoNotIndex{\ifhep@defaults,\hep@paper,\geometry} % \begin{macrocode} \ifhep@defaults\else \RequirePackage[\hep@paper paper]{geometry} \geometry{hscale=.75, vscale=.8, vmarginratio=3:4, includeheadfoot} \fi % \end{macrocode} %\begin{macro}{\useparskip} %\begin{macro}{\useparindent} % Load the |parskip| package \cite{parskip} if requested and provide two commands switching between the two paragraph modes. % \DoNotIndex{\ifhep@parindent,\setlength,\parskip,\baselineskip,\parindent} % \begin{macrocode} \ifhep@parindent\else \RequirePackage{parskip} \newcommand{\useparskip}{% \setlength{\parskip}{.5\baselineskip plus 2pt}% \setlength{\parindent}{0pt}% } \newcommand{\useparindent}{% \setlength{\parskip}{0pt}% \setlength{\parindent}{15pt}% \if@twocolumn\setlength\parindent{1em} \else\setlength\parindent{1.5em} \fi } \fi % \end{macrocode} % \end{macro} % \end{macro} % \section{Math} % % Load the |mathtools| package \cite{mathtools} which loads the |amsmath| package \cite{amsmath}. % Additionally, load the |amssymb| package \cite{amsfonts} which provides further math symbols and also loads the |amsfont| package \cite{amsfonts}. % Allow page breaks within equations if necessary. % \begin{macrocode} \RequirePackage{mathtools} \RequirePackage{amssymb} \allowdisplaybreaks[1] % \end{macrocode} % \begin{macro}{\diag} % Provide a diag operator % \begin{macrocode} \DeclareMathOperator{\diag}{diag} % \end{macrocode} % \end{macro} % \begin{macro}{\mathdef} % Define the |\mathdef|\marg{name}\oarg{arguments}\marg{macro} macro which (re-)defines macros in math mode only. % This macro is implemented using the |xparse| package \cite{xparse}. % \begin{macrocode} \RequirePackage{xparse} \DeclareDocumentCommand{\mathdef}{mO{0}m}{% \expandafter\let\csname text\string#1\endcsname=#1 \expandafter\newcommand\csname math\string#1\endcsname[#2]{#3} \DeclareRobustCommand#1{% \ifmmode \expandafter\let\expandafter\next\csname math\string#1\endcsname \else \expandafter\let\expandafter\next\csname text\string#1\endcsname \fi \next }% } % \end{macrocode} % \end{macro} % \begin{macro}{\i} % Provide an upright imaginary unit in math mode. % \begin{macrocode} \AtBeginDocument{\mathdef{\i}{\operatorname{i}}} % \end{macrocode} % \end{macro} % \begin{macro}{\overline} % Redefine |\overline| to be a text macro using the |soul| package \cite{soul}. % Extend it as a math macro with the original definition from |amsmath| \cite{amsmath}. % \begin{macrocode} \def\overline#1{{\setul{-2ex}{}\ul{#1}}} \DeclareRobustCommand{\over@line}[1]{\@@overline{#1}} \mathdef{\overline}{\over@line} % \end{macrocode} % \end{macro} % \begin{macro}{eqnarray} % Undefine the |eqnarray| environment. % \begin{macrocode} \ifhep@eqnarray\else \let\eqnarray\@undefined \let\endeqnarray\@undefined \fi % \end{macrocode} % \end{macro} % \subsection{Math fonts} % % \begin{macro}{\mathbf} % Load the |bm| package \cite{bm} for superior boldmath after limiting the number of allocated math alphabets. % Make math symbols bold whenever they appear in bold macros such as |\section|\marg{text}. % \begin{macrocode} \newcommand{\bmmax}{2} \RequirePackage{bm} \let\mathbf\bm \g@addto@macro\bfseries{\boldmath} % \end{macrocode} % \end{macro} % % \begin{macro}{\mathsf} % Load the |fixmath| package \cite{fixmath} which ensures that upper Greek letters in math mode are italic. % Ensure that also math mode is sans serif using the |sfmath| package \cite{sfmath} if the option sans serif is passed to the package. % Ensure that |\mathsf| is italic as well as sans serif and sans for sans and sans serif documents, respectively. % The font abbreviations are % \begin{description}[nosep] % \item[OML] \hologo{TeX} math italic font encoding % \item[cmm] Computer modern math italic font % \item[cmbr] Computer modern bright font % \item[bx] Bold extended series % \item[m] Medium weight and width series % \item[it] Italic font shape % \end{description} % \begin{macrocode} \ifhep@serif \RequirePackage{fixmath} \DeclareMathAlphabet{\mathsf}{OML}{cmbr}{m}{it} \SetMathAlphabet{\mathsf}{bold}{OML}{cmbr}{bx}{it} \else \RequirePackage[slantedGreek]{sfmath} \RequirePackage{sansmathfonts} \DeclareMathAlphabet{\mathsf}{OML}{cmm}{m}{it} \SetMathAlphabet{\mathsf}{bold}{OML}{cmm}{bx}{it} \fi % \end{macrocode} % \end{macro} % \begin{macro}{\mathscr} % Load the |mathrsfs| package for the |\mathscr| math script font. % \begin{macrocode} \RequirePackage{mathrsfs} % \end{macrocode} % \end{macro} % \begin{macro}{\mathbb} % Load the |bbm| package \cite{bbm-macros} for the |\mathbb| math blackboard style font in (sans-) serif. % \begin{macrocode} \RequirePackage{bbm} \ifhep@serif \let\mathbb\mathbbm \else \let\mathbb\mathbbmss \fi % \end{macrocode} % \end{macro} % \subsection{Physics notation} % % \begin{macro}{\slashed} % \begin{macro}{\unit} % Load the |physics| package \cite{physics} which provides macros useful for publications in physics. % Additionally, load the |slashed| package \cite{slashed} which provides the slashed macro for Dirac notation. % Finally, load the |units| package \cite{units} which provides the |\units| and |\nicefrac| macros. % \begin{macrocode} \RequirePackage{physics} \RequirePackage{slashed} \RequirePackage{units} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\inv} % Provide a macro for the inverse, useful in combination with the unit macro in text mode. % \begin{macrocode} \newcommand{\inv}[2][1]{#2\ensuremath{^{-#1}}} % \end{macrocode} % \end{macro} % \begin{macro}{\d} % Provide a differential |\d|. % \begin{macrocode} \AtBeginDocument{\mathdef{\d}{\dd}} % \end{macrocode} % \end{macro} % \begin{macro}{\oset} % Define a new overset macro |\oset|\oarg{offset}\marg{over}\marg{base} % \begin{macrocode} \newcommand{\oset}[3][-1pt]{% \raisebox{1pt}{\ensuremath{\mathop{#3}\limits^{% \vbox to#1{\kern-2\ex@\hbox{$\scriptscriptstyle#2$}\vss}% }}}% } % \end{macrocode} % \end{macro} % \begin{macro}{\overleftright} % Define a over left right arrow |\overleftright|\marg{base}. % \begin{macrocode} \newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}} % \end{macrocode} % \end{macro} % \section{Floats} % % Adjust the \hologo{LaTeX} float placement defaults % \begin{macrocode} \renewcommand{\textfraction}{0.01} \setcounter{topnumber}{1} \renewcommand{\topfraction}{.9} \setcounter{bottomnumber}{0} \renewcommand{\floatpagefraction}{.8} % \end{macrocode} % \begin{environment}{figure} % \begin{environment}{table} % Center the content of |figure| and |table| environments. % Ignore the manual placement if the |manualplacement| option is set to false. % \begin{macrocode} \let\@figure@\figure% \let\@end@figure@\endfigure% \let\@table@\table% \let\@end@table@\endtable% \ifhep@manualplacement% \renewenvironment{figure}[1][tbp]{% \@figure@[#1]\centering% }{\@end@figure@}% \renewenvironment{table}[1][tbp]{% \@table@[#1]\centering% }{\@end@table@}% \else% \renewenvironment{figure}[1][]{% \@figure@\centering% }{\@end@figure@}% \renewenvironment{table}[1][]{% \@table@\centering% }{\@end@table@} \fi% % \end{macrocode} % \end{environment} % \end{environment} % \subsection{Sub-floats} % % Prevent the |caption| package \cite{caption} from complaining about the |revtex| class. % \begin{macrocode} \ifhep@revtex \setlength\abovecaptionskip{\f@size\p@} \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip \sbox\@tempboxa{#1: #2}% \ifdim \wd\@tempboxa >\hsize #1: #2\par \else \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \vskip\belowcaptionskip% } \fi % \end{macrocode} % % Load the |subcaption| package \cite{subcaption}. % Provide old |\subcaption@minipage| macro. % \begin{macrocode} \RequirePackage[subrefformat=parens]{subcaption} \captionsetup{font=small} \captionsetup[sub]{font=small} \providecommand*\subcaption@minipage[2]{% \minipage#1{#2}\setcaptionsubtype\relax% } % \end{macrocode} % \begin{environment}{panels} % \begin{macro}{\panel} % Define the |panels| environment and the |\panel| macro. % \begin{macrocode} \newenvironment{panels}[2][b]{% % \end{macrocode} % Define an internal macro for global behaviour. % \begin{macrocode} \newcommand{\begin@subcaption@minipage}[2][b]{% \caption@withoptargs\subcaption@minipage[##1]{##2}% \centering\vskip 0pt% } % \end{macrocode} % Define the |\panel| macro for the case that the number of panels is given. % \begin{macrocode} \ifdim#2pt>1pt% \newcommand{\panel}[1][b]{% \endminipage\hfill\begin@subcaption@minipage[#1]{\linewidth/#2}% }% \begin@subcaption@minipage[#1]{\linewidth/#2}% % \end{macrocode} % Define the |\panel| macro for the case that the width of the panel is given. % \begin{macrocode} \else% \newcommand{\panel}[2][b]{% \endminipage\hfill\begin@subcaption@minipage[#1]{##2\linewidth}% }% \begin@subcaption@minipage[#1]{#2\linewidth}% \fi% }{\endminipage} % \end{macrocode} % \end{macro} % \end{environment} % Reajust the captions to the revtex class using the |ragged2e| package \cite{ragged2e}. % \begin{macrocode} \ifhep@revtex \RequirePackage{ragged2e} \DeclareCaptionFormat{revtex}{#1#2\justifying{#3}} \captionsetup{font=small, format=revtex} \captionsetup[sub]{font=footnotesize, format=plain} \renewcommand{\figurename}{Figure} \renewcommand{\tablename}{Table} \fi % \end{macrocode} % \subsection{Tables} % % \begin{environment}{tabular} % Enhance tabulars with the |booktabs| and |multirow| packages \cite{booktabs, multirow}. % \begin{macrocode} \RequirePackage{booktabs} \RequirePackage{multirow} % \end{macrocode} % \end{environment} % \subsection{Figures} % % \begin{macro}{\graphic} % Provide the |\graphic| macro for the inclusion of figures using the |graphicx| package \cite{graphicx}. % \begin{macrocode} \RequirePackage{graphicx} \providecommand{\tikzsetnextfilename}[1]{} \newcommand{\graphic}[2][1]{\tikzsetnextfilename{#2}{% \centering\includegraphics[width=#1\linewidth]{#2}\par% }} % \end{macrocode} % \end{macro} % % \begin{macro}{\graphics} % Provide the |\graphics| macro for the inclusion of figures located in a subfolder. % \begin{macrocode} \newcommand{\graphics}[1]{\graphicspath{{./#1/}}} % \end{macrocode} % \end{macro} % \section{Title page} % % \begin{macro}{\date} % Allow empty date field. % \begin{macrocode} \ifhep@title \date{} % \end{macrocode} % \end{macro} % \subsection{Authors} % % \begin{macro}{\author} % Allow empty author field. % \begin{macrocode} \author{} % \end{macrocode} % \end{macro} % \begin{macro}{\email} % Define a macro for the email of authors used as |\author{|$\langle name\rangle$| \email{|$\langle email\rangle$|}}|. % \begin{macrocode} \AtEndOfClass{\newcommand{\email}[1]{% \unskip\thanks{\online{mailto:#1}{#1}} }} % \end{macrocode} % \end{macro} % % Enable the handling of multiple authors with different affiliations using the |authblk| package \cite{authblk}. % \begin{macrocode} \RequirePackage{authblk} \renewcommand\Affilfont{\footnotesize} % \end{macrocode} % % \begin{macro}{\affiliation} % Define the |\affiliation| macro, ensure that linebreaks happen after a comma. % \begin{macrocode} \newcommand\active@comma{,\penalty-5\relax} \newcommand\cat@comma@active{\catcode`\,\active} {\cat@comma@active\gdef,{\active@comma}} \newcommand\@affil[1]{% \endgroup\@flushglue=0pt plus .5\linewidth\affil{#1}% } \def\@affil@opt[#1]#2{% \endgroup\@flushglue=0pt plus .5\linewidth\affil[#1]{#2}% } \DeclareRobustCommand\@affiliation{\@ifnextchar[{\@affil@opt}{\@affil}} \newcommand{\affiliation}{\begingroup\cat@comma@active\@affiliation} % \end{macrocode} % \end{macro} % \subsection{Preprint} % % \begin{macro}{\preprint} % Define the |\preprint| macro using the |varwidth| package \cite{varwidth}. % \begin{macrocode} \let\@preprint\relax \newcommand\preprint[1]{\long\gdef\@preprint{#1}} \RequirePackage{varwidth} \newcommand{\@preprint@box}{% \begin{varwidth}{\textwidth}% \textsc{\small\@preprint}% \end{varwidth}% } % \end{macrocode} % \end{macro} % \begin{macro}{\maketitle} % Places a preprint number in the top right corner of the title page using the |atbegshi| \cite{atbegshi} and |picture| \cite{picture} packages. % \begin{macrocode} \RequirePackage{atbegshi} \RequirePackage{picture} \let\old@maketitle\maketitle \renewcommand{\maketitle}{% \old@maketitle% \AtBeginShipoutFirst{% \put( \textwidth+\oddsidemargin-\widthof{\@preprint@box}, -2pt-\topmargin-\heightof{\@preprint@box} ){\normalfont\@preprint@box} } } % \end{macrocode} % \end{macro} % \subsection{Abstract} % % \begin{environment}{abstract} % Adjust the |abstract| environment to not start with indentation. % \begin{macrocode} \@ifundefined{abstract}{}{% \let\old@abstract\abstract% \renewcommand\abstract{\old@abstract\noindent\ignorespaces}% } % \end{macrocode} % \end{environment} % End of check for |title| option. % \begin{macrocode} \fi % \end{macrocode} % \section{Bibliography} % % Check if bibliography management is requested. % \begin{macrocode} \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else % \end{macrocode} % % \begin{macro}{\bibliography} % Load the |biblatex| package \cite{biblatex} with the datamodel defined in \cref{sec:data model}. % \begin{macrocode} \RequirePackage[style=\hep@bibliography, datamodel=hep-paper]{biblatex} % \end{macrocode} % \end{macro} % % \begin{macro}{hep-paper} % Define a new sorting template that sorts only multi key |\cite| entries according to their date and leaves the rest of the bibliography entries in the order they appear in the text. % Provide the |\DeclareSortingTemplate| macro for older |biblatex| installations. % \begin{macrocode} \providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme} \DeclareSortingTemplate{hep-paper}{ \sort{\citeorder} \sort[final]{ \field{sortkey} } \sort{ \field{sortyear} \field{year} \literal{9999} } \sort{ \field{month} } \sort{ \field{eprint} \field{doi} } \sort{ \field{sorttitle} \field{title} } \sort{ \field{subtitle} \field{volume} } } % \end{macrocode} % \end{macro} % % Use the new sorting scheme and abbreviat all first names. % \begin{macrocode} \ExecuteBibliographyOptions{ sorting=hep-paper, giveninits=true } % \end{macrocode} % % \begin{macro}{erratum} % Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field. % \begin{macrocode} \NewBibliographyString{erratum} \DefineBibliographyStrings{english}{erratum={Erratum}} % \end{macrocode} % \end{macro} % % \begin{macro}{\printbibliography} % Allow the bibliography to be printed sloppy % \begin{macrocode} \let\old@printbibliography\printbibliography \renewcommand{\printbibliography}{\sloppy\old@printbibliography} % \end{macrocode} % \end{macro} % \subsection{Sourcemap} % % \begin{macro}{\reg@exp@one} % \begin{macro}{\reg@exp@two} % \begin{macro}{\reg@exp@url} % Define regular expressions in order to deal with inconsistent journal title and volume naming as well as URL protocols. % \begin{macrocode} \newcommand{\reg@exp@one}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}} \newcommand{\reg@exp@two}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}} \newcommand{\reg@exp@url}{\regexp{\A(ht|f)tp(s)?:\/\/}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\DeclareSourcemap} % Use the |\DeclareSourcemap| feature. % \begin{macrocode} \DeclareSourcemap{% \maps[datatype=bibtex, overwrite=true]{% % \end{macrocode} % \begin{macro}{collaboration} % Read the collaboration information if present. % \begin{macrocode} \map{% \step[fieldsource=Collaboration, final=true]% \step[fieldset=collaboration, origfieldval, final=true] }% % \end{macrocode} % \end{macro} % \begin{macro}{reportnumber} % Read the pre-print information if present. % \begin{macrocode} \map{% \step[fieldsource=reportNumber, final=true]% \step[fieldset=reportnumber, origfieldval, final=true] }% % \end{macrocode} % \end{macro} % \begin{macro}{journal} % Move letters from the volume field to the journal field. % \begin{macrocode} \map[overwrite]{ \step[fieldsource=volume, match=\reg@exp@one, final] \step[fieldsource=volume, match=\reg@exp@two, replace={$2}] \step[fieldsource=journal, fieldtarget=journaltitle] \step[fieldset=journaltitle, fieldvalue={\space$1$2}, append=true] } % \end{macrocode} % \end{macro} % \begin{macro}{url} % Remove the protocol from URL. % \begin{macrocode} \map{ \step[fieldsource=url, final=true] \step[fieldset=protocollessurl, origfieldval, final=true] \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}] } }% } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{In:} % Remove spurious \enquote{In:} if no journal is present. % \begin{macrocode} \renewbibmacro*{in:}{% \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}% } % \end{macrocode} % \end{macro} % % \begin{macro}{url} % Show URLs without the protocol. % \begin{macrocode} \DeclareFieldFormat{url}{% \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% } % \end{macrocode} % \end{macro} % % \begin{macro}{collaboration} % Override the author information with collaboration information if present. % \begin{macrocode} \renewbibmacro*{author}{% \iffieldundef{collaboration}{% \printnames{author}}{\textbf{\printfield{collaboration}}% }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\letbibmacro} % Provide the |\letbibmacro| macro for old |biblatex| installations. % \begin{macrocode} \providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} % \end{macrocode} % \end{macro} % % \begin{macro}{reportnumber} % Add the pre-print information if present. % \begin{macrocode} \letbibmacro{doi+eprint+url-old}{doi+eprint+url} \renewbibmacro*{doi+eprint+url}{% \usebibmacro{doi+eprint+url-old} \iffieldundef{reportnumber}{}{\textls[0]{% \newunitpunct\textnumero\intitlepunct% \textsc{\small\printfield{reportnumber}}% }}% } % \end{macrocode} % \end{macro} % \subsection{Eprints} % % \begin{macro}{\bib@online} % Private |\bib@online| macro % \begin{macrocode} \newcommand{\bib@online}[2]{% \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\new@eprint} % Private |\new@eprint| macro % \begin{macrocode} \NewDocumentCommand{\new@eprint}{smm}{ \DeclareFieldFormat{eprint:#2}{% \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}% #2\addcolon\space\bib@online{#3/\@path}{\@path}% }% } % \end{macrocode} % \end{macro} % % \begin{macro}{CTAN} % Add CTAN as a eprint option % \begin{macrocode} \new@eprint{CTAN}{https://ctan.org/pkg} \DeclareFieldAlias{eprint:ctan}{eprint:CTAN} % \end{macrocode} % \end{macro} % % \begin{macro}{GitHub} % Add GitHub as a eprint option % \begin{macrocode} \new@eprint*{GitHub}{https://github.com} \DeclareFieldAlias{eprint:github}{eprint:GitHub} % \end{macrocode} % \end{macro} % % \begin{macro}{GitLab} % Add GitLab as a eprint option % \begin{macrocode} \new@eprint*{GitLab}{https://gitlab.com} \DeclareFieldAlias{eprint:gitlab}{eprint:GitLab} % \end{macrocode} % \end{macro} % % \begin{macro}{Bitbucket} % Add Bitbucket as a eprint option % \begin{macrocode} \new@eprint*{Bitbucket}{https://bitbucket.org} \DeclareFieldAlias{eprint:bitbucket}{eprint:Bitbucket} % \end{macrocode} % \end{macro} % % \begin{macro}{Launchpad} % Add Launchpad as a eprint option % \begin{macrocode} \new@eprint{Launchpad}{https://launchpad.net} \DeclareFieldAlias{eprint:launchpad}{eprint:Launchpad} % \end{macrocode} % \end{macro} % % \begin{macro}{SourceForge} % Add SourceForge as a eprint option % \begin{macrocode} \new@eprint{SourceForge}{https://sourceforge.net/projects} \DeclareFieldAlias{eprint:launchpad}{eprint:SourceForge} % \end{macrocode} % \end{macro} % % \begin{macro}{HEPForge} % Add HEPForge as a eprint option % \begin{macrocode} \DeclareFieldFormat{eprint:hepforge}{% HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}% } \DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge} % \end{macrocode} % \end{macro} % % End check for bibliography option. % \begin{macrocode} \fi % \end{macrocode} % \section{Hyperlinks and References} % % Load the |hyperref| package \cite{hyperref} enable Unicode encoding and hide links. % % \begin{macrocode} \RequirePackage{hyperref} \hypersetup{ pdfencoding=auto, psdextra, hidelinks, linktoc=all, breaklinks=true, pdfcreator={}, pdfproducer={} } % \end{macrocode} % Set the \PDF meta data according to the paper information and ensure that unnecessary information is suppressed. % % \begin{macrocode} \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} \AtBeginDocument{ \pdfstringdefDisableCommands{\let\ensuremath\@gobble} \pdfstringdefDisableCommands{\let\mathsurround\@gobble} \pdfstringdefDisableCommands{\let\unskip\@gobble} \pdfstringdefDisableCommands{\let\thanks\@gobble} \pdfstringdefDisableCommands{\let\footnote\@gobble} \pdfstringdefDisableCommands{\let\\\@gobble} } \ifhep@revtex \AtBeginShipout{\hypersetup{pdftitle={\@title}}} \else \AtBeginDocument{\hypersetup{pdftitle={\@title}}} \fi \ifhep@title \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} \fi % \end{macrocode} % \begin{macro}{\cref} % Improve reference using the |cleveref| package \cite{cleveref}. % % \begin{macrocode} \RequirePackage[noabbrev, nameinlink]{cleveref} \newcommand{\creflastconjunction}{, and\nobreakspace} \crefname{enumi}{point}{points} \Crefname{enumi}{Point}{Points} % \end{macrocode} % \end{macro} %\begin{macro}{\no@break@before} % Define a macro able to prevent line breaks. % \DoNotIndex{\no@break@before,\ifvmode,\ifhmode,\ifdim,\lastskip,\unskip,\nobreakspace} % \begin{macrocode} \newcommand\no@break@before{% \relax\ifvmode\else% \ifhmode% \ifdim\lastskip > 0pt% \relax\unskip\nobreakspace% \fi% \fi% \fi% } % \end{macrocode} % \end{macro} % \begin{macro}{\ref} % Adjust |\ref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple references at once. % \begin{macrocode} \let\old@ref\ref \AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}} % \end{macrocode} % \end{macro} % ! Bug ! in equations the additional brackets from the cleveref macro conflict with the traditional |(\ref|\marg{key}|)| approach % \begin{macro}{\eqref} % Adjust |\eqref|\marg{key} in order to prevent preceding line breaks and to enable the possibility to reference multiple equations at once. % \begin{macrocode} \renewcommand\eqref{\no@break@before\labelcref} % \end{macrocode} % \end{macro} % \begin{macro}{\subref} % Adjust |\subref|\marg{key} in order to prevent preceding line breaks. % \begin{macrocode} \let\old@subref\subref \renewcommand\subref{\no@break@before\old@subref} \renewcommand*\subcaption@ref[2]{\begingroup% \caption@setoptions{sub}% \subcaption@reffmt\p@subref{\old@ref#1{sub@#2}}% \endgroup} % \end{macrocode} % \end{macro} % \begin{macro}{\subcref} % Provide the |\subcref| macro. % \begin{macrocode} \newcommand{\subcref}[1]{\cref{sub@#1}} % \end{macrocode} % \end{macro} % \begin{macro}{\eqcrefname} % Define the |\eqcrefname| macro for named equation types. % \begin{macrocode} \NewDocumentCommand{\eqcrefname}{mmo}{ \crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}} \creflabelformat{#1}{(##2##1##3)} } % \end{macrocode} % \end{macro} % \begin{macro}{\labelcrefrange} % Define the missing |\labelcrefrange|\marg{key1}\marg{key2} macro. % \begin{macrocode} \DeclareRobustCommand{\labelcrefrange}[2]{% \@crefrangenostar{labelcref}{#1}{#2}% } % \end{macrocode} % \end{macro} % \subsection{Citations} % % \begin{macro}{\cite} % Adjust |\cite|\marg{key} in order to prevent preceding line breaks. % \begin{macrocode} \let\old@cite\cite \renewcommand\cite{\no@break@before\old@cite} % \end{macrocode} % \end{macro} % Begin of bibliography if. % \begin{macrocode} \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else % \end{macrocode} % Define bibstrings for reference names. % \begin{macrocode} \NewBibliographyString{refname} \NewBibliographyString{refsname} \DefineBibliographyStrings{english}{% refname = {reference}, refsname = {references} } % \end{macrocode} % \begin{macro}{\ccite} % \begin{macro}{\Ccite} % Define \emph{clever} citation macros. % \begin{macrocode} \DeclareCiteCommand{\ccite}{% \ifnum\thecitetotal=1 \bibstring{refname}% \else% \bibstring{refsname}% \fi% \addnbspace\bibopenbracket% \usebibmacro{cite:init}\usebibmacro{prenote}% }{\usebibmacro{citeindex}\usebibmacro{cite:comp}}{}{% \usebibmacro{cite:dump}\usebibmacro{postnote}% \bibclosebracket% } \newrobustcmd*{\Ccite}{\bibsentence\ccite} % \end{macrocode} % \end{macro} % \end{macro} % End of biblatex if. % \begin{macrocode} \fi % \end{macrocode} % \section{Acronyms} % % Acronyms are implemented with the |glossaries-extra| package \cite{glossaries-extra} which is an extension of the |glossaries| package \cite{glossaries}. % \begin{macrocode} \ifhep@glossaries \RequirePackage[nostyles]{glossaries-extra} % \end{macrocode} % The entry count feature is used. % \begin{macrocode} \glsenableentrycount \glssetcategoryattribute{abbreviation}{entrycount}{1} % \end{macrocode} % Provide macros for older |glossaries-extra| installations. % \begin{macrocode} \providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} \providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} \providecommand{\gGlsXtrSetField}[3]{% \glsxtrsetfieldifexists{#1}{#2}{% \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% }% } % \end{macrocode} % Hyperlinks from the abbreviation to their definition in the text are set. % \begin{macrocode} \glssetcategoryattribute{abbreviation}{nohyperfirst}{true} \renewcommand*{\glsdonohyperlink}[2]{{% \glsxtrprotectlinks\edef\fieldvalue{% \glsxtrusefield{\glslabel}{hastarget}% }% \ifdefstring\fieldvalue{true}{#2}{% \gGlsXtrSetField{\glslabel}{hastarget}{true}% \glsdohypertarget{#1}{#2}% }% }} % \end{macrocode} % \begin{macro}{\begin@sentence} % Mark the beginning of a paragraph as if it would follow a full stop using the |everyhook| package \cite{everyhook}. % \begin{macrocode} \RequirePackage[excludeor]{everyhook} \newcommand{\begin@sentence}{1001} \PushPostHook{par}{{\spacefactor=\begin@sentence}} % \end{macrocode} % \end{macro} % \begin{macro}{\frenchspacing} % Adjust the |\frenchspacing| macro to be compatibel with this idea. % \begin{macrocode} \def\frenchspacing{% \sfcode`\.\begin@sentence \sfcode`\?\begin@sentence \sfcode`\!\begin@sentence \sfcode`\:\begin@sentence \sfcode`\;\@m \sfcode`\,\@m } % \end{macrocode} % \end{macro} % \begin{macro}{\if@begin@of@sentence} % Provide a macro checking for the beginning of a sentence by examining the length of the preceeding space. % \begin{macrocode} \newcommand{\if@begin@of@sentence}[2]{\leavevmode\protecting{% \ifboolexpr{ test {\ifnumcomp{\spacefactor}{=}{3000}} or% test {\ifnumcomp{\spacefactor}{=}{2000}} or% test {\ifnumcomp{\spacefactor}{=}{\begin@sentence}}% }{#1}{#2}% }} % \end{macrocode} % \end{macro} % \begin{macro}{\acronym} % The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined. % \begin{enumerate}[nosep, label=\#\arabic*] % \item star for omitting the \enquote{s} in the short plural % \item optional typeset abbreviation % \item mandatory abbreviation % \item star for restoring the \hologo{TeX} default for space after text macros % \item mandatory long form % \item optional plural long form % \end{enumerate} % \begin{macrocode} \NewDocumentCommand{\acronym}{somsmo}{ \newabbreviation[ longplural=\IfNoValueTF{#6}{#5s}{#6}, \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3\endcsname{% \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}% \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. % \begin{macrocode} \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% \IfNoValueTF{#2}{#3}{#2} }% } % \end{macrocode} % Provide the singular acronym macro in math mode. % \begin{macrocode} \expandafter\mathdef\csname#3\endcsname{% \text{\glsxtrshort{#3}}\@gls@increment@currcount{#3}% } % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3s\endcsname{% \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}% \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the plural acronym macro in \PDF labels. % \begin{macrocode} \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% } % \end{macrocode} % Provide the plural acronym macro in math mode. % \begin{macrocode} \expandafter\mathdef\csname#3s\endcsname{% \text{\glsxtrshortpl{#3}}\@gls@increment@currcount{#3}% } } % \end{macrocode} % \end{macro} % % \begin{macro}{\shortacronym} % The |\shortacronym| never expands into the long form. % \begin{macrocode} \NewDocumentCommand{\shortacronym}{somsmo}{ % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3\endcsname{% \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. % \begin{macrocode} \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% \IfNoValueTF{#2}{#3}{#2} }% } % \end{macrocode} % Provide the singular acronym macro in math mode. % \begin{macrocode} \expandafter\mathdef\csname#3\endcsname{% \text{\IfNoValueTF{#2}{#3}{#2}}% } % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3s\endcsname{% \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the plural acronym macro in \PDF labels. % \begin{macrocode} \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% } % \end{macrocode} % Provide the plural acronym macro in math mode. % \begin{macrocode} \expandafter\mathdef\csname#3s\endcsname{% \text{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}% }% } % \end{macrocode} % \end{macro} % % \begin{macro}{\longacronym} % The |\longacronym| never shows the abbreviated form. % \begin{macrocode} \NewDocumentCommand{\longacronym}{somsmo}{ % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3\endcsname{% \if@begin@of@sentence{\MakeUppercase#5}{#5}% \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. % \begin{macrocode} \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#5 }} % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3s\endcsname{% \if@begin@of@sentence{% \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% }{% \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the plural acronym macro in \PDF labels. % \begin{macrocode} \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% \IfNoValueTF{#6}{#5s}{#6} }% } } % \end{macrocode} % \end{macro} % Silence warning if no acronyms are defined. % \begin{macrocode} \renewcommand*{\@gls@write@entrycounts}{% \immediate\write\@auxout{% \string\providecommand*{\string\@gls@entry@count}[2]{} }% \count@=0\relax \forallglsentries{\@glsentry}{% \glshasattribute{\@glsentry}{entrycount}{% \ifglsused{\@glsentry}{% \immediate\write\@auxout{% \string\@gls@entry@count{\@glsentry}{% \glsentrycurrcount{\@glsentry}% } }% }{}\advance\count@ by \@ne }{}% }% } % \end{macrocode} % \begin{macro}{\resetacronym} % \begin{macro}{\dummyacronym} % Add two macros for acronym management. % \begin{macrocode} \newcommand{\resetacronym}[1]{\protect\glsreset{#1}} \newcommand{\dummyacronym}[1]{\protect\glsunset{#1}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{abstract} % Adjust the |abstract| environment to reset all acronym counters. % \begin{macrocode} \@ifundefined{abstract}{}{% \let\end@old@abstract\endabstract% \renewcommand\endabstract{\glsresetall\end@old@abstract}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\tableofcontents} % Adjust the |\tableofcontents| macro to never show the long form of acronyms. % \begin{macrocode} \let\old@table@of@contents\tableofcontents \renewcommand\tableofcontents{% \glsunsetall\old@table@of@contents\glsresetall% } % \end{macrocode} % \end{macro} % % End of glossaries if. % \begin{macrocode} \fi % \end{macrocode} % % % % \section{Biblatex datamodel file} \label{sec:data model} % %<*datamodel> % \begin{macro}{reportnumber} % \begin{macro}{collaboration} % \begin{macro}{protocollessurl} % Define the |dbx| file containing the |hep-paper| datamodel. % \begin{macrocode} \DeclareDatamodelFields[type=field, datatype=literal]{ reportnumber, collaboration, } \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} \DeclareDatamodelEntryfields{ reportnumber, collaboration, protocollessurl, } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % % % \Finale \endinput % \PrintIndex % makeindex -s gglo.ist -o hep-paper.gls hep-paper.glo % makeindex -s gglo.ist -o hep-paper.ind hep-paper.idx % \begin{macro}{\refstepcounter@...} % Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|. % \begin{macrocode} \def\refstepcounter@noarg#1{% \cref@old@refstepcounter{#1}% \cref@constructprefix{#1}{\cref@result}% \@ifundefined{cref@#1@alias}% {\def\@tempa{#1}}% {\def\@tempa{\csname cref@#1@alias\endcsname}}% \protected@edef\cref@currentlabel{% [\@tempa][\arabic{#1}][\cref@result]% \noexpand\@currentlabel% }% changed } \def\refstepcounter@optarg[#1]#2{% \cref@old@refstepcounter{#2}% \cref@constructprefix{#2}{\cref@result}% \@ifundefined{cref@#1@alias}% {\def\@tempa{#1}}% {\def\@tempa{\csname cref@#1@alias\endcsname}}% \protected@edef\cref@currentlabel{% [\@tempa][\arabic{#2}][\cref@result]% \noexpand\@currentlabel% changed }% } % \end{macrocode} % \end{macro}