diff options
author | Karl Berry <karl@freefriends.org> | 2020-05-02 21:03:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-05-02 21:03:03 +0000 |
commit | bbae342b9a92bd7abbb840d473d99780fa823a75 (patch) | |
tree | e3fa79ee4942c2d043e945b7fdc58565d3e3e5fb /Master/texmf-dist/source | |
parent | e38cb450335966e7893f59eeb831bda04ee30d81 (diff) |
hep-paper (2may20)
git-svn-id: svn://tug.org/texlive/trunk@54974 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r-- | Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx | 898 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/hep-paper/hep-paper.ins | 5 |
2 files changed, 638 insertions, 265 deletions
diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx b/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx index 9ba0f10dcd7..5c9841bc6a7 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx @@ -16,10 +16,13 @@ % \fi % % \iffalse +% %<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01] -%<package>\ProvidesPackage{hep-paper}[2020/03/01 v1.2 Publications in High Energy Physics] - +%<package>\ProvidesPackage{hep-paper}[2020/05/01 v1.3 Publications in High Energy Physics] +%<datamodel>\ProvidesFile{hep-paper.dbx}[2020/05/01 v1.3 HEP-Paper biblatex data model] +% %<*driver> + \documentclass{ltxdoc} \MacroIndent=1.5em @@ -39,26 +42,27 @@ % \vspace{2.3ex}\vskip -\parskip} % \makeatother -\newenvironment{example}[1][.5]{% - \begin{minipage}[t]{\linewidth}% - \begin{minipage}[t]{#1\linewidth} - \newcommand{\second}{% - \end{minipage}% - \begin{minipage}[t]{\linewidth-#1\linewidth}% - }% -}{\end{minipage}\end{minipage}} - \usepackage[parskip]{hep-paper} \bibliography{bibliography} \acronym{PDF}{portable document format} -\listfiles +\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 @@ -66,10 +70,12 @@ \begin{document} \DocInput{hep-paper.dtx} \end{document} + %</driver> +% % \fi % -% \CheckSum{0} +% \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 @@ -88,8 +94,9 @@ % Right brace \} Tilde \~} % % \changes{v1.0}{2019/01/01}{Initial version of the style file} -% \changes{v1.1}{2020/01/01}{Transition to documented \LaTeX\ source file} -% \changes{v1.2}{2020/03/01}{Inclusion of package options} +% \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} % @@ -100,8 +107,7 @@ % \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{\today} -% \date{\normalsize\filedate} +% \date{\normalfont\filedate} % % \maketitle % @@ -121,11 +127,11 @@ % | \documentclass{article}|\\ % | \usepackage{hep-paper}| % -% The most notable changes after loading the |hep-paper| package is the change of some \LaTeX\ defaults. +% 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}. -% Finally, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. -% \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. +% 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} % @@ -153,26 +159,36 @@ % % \DescribeMacro{parskip} % The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. -% The \LaTeX\ default is separation via indentation the |parskip| option switches to separation via vertical space. +% 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 titlepage adjustments. +% 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} for \meta{key}=|false| or passes the \meta{key} as |style| string to the |biblatex| package. +% 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, glossaries-extra}. +% 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 switches the |hep-paper| package into a |revtex| \cite{revtex} compatibility mode. +% 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. @@ -181,7 +197,6 @@ % % \subsection{Title page} % -% The \PDF meta information is set according to the |\title|\marg{text} and |\author|\marg{text} information. % \DescribeMacro{\author} % \DescribeMacro{\affiliation} % \DescribeMacro{\email} @@ -193,18 +208,21 @@ % | \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 first page. +% The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. % % \DescribeEnv{abstract} -% The |abstract| environment has been adjusted to not start with an indentation. +% The |abstract| environment is adjusted to not start with an indentation. % % \subsection{Text} % -% \DescribeMacro{\enquote} % 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 macro |\MakeOuterQuote{"}| allowing to simply use |"| instead of the pair |``| and |''|. +% 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} @@ -217,12 +235,12 @@ % 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} and the |\url|\marg{text} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}. +% 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}. % -% \DescribeMacro{inlinelist} -% Using the |enumitem| package \cite{enumitem} the |inlinelist| +% The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. % -% \begin{example} +% \DescribeMacro{inlinelist} +% \begin{columns} % |The three main points are| % % |\begin{inlinelist}| @@ -234,19 +252,17 @@ % | \item three| % % |\end{inlinelist}| -% \second +% \column % The three main points are % \begin{inlinelist} % \item one % \item two % \item three % \end{inlinelist} -% \end{example} +% \end{columns} % % \DescribeMacro{enumdescript} -% and the |enumdescript| environments are defined -% -% \begin{example}[.6] +% \begin{columns}[.6] % |\begin{enumdescript}[label=\Roman*)]| % % | \item{First} one| @@ -256,16 +272,21 @@ % | \item{Third} three| % % |\end{enumdescript}| -% \second +% \column % \begin{enumdescript}[label=\Roman*)] % \item{First} one % \item{Second} two % \item{Third} three % \end{enumdescript} -% \end{example} +% \end{columns} % % \DescribeMacro{\textsc} -% A sans serif version of \textsf{\textsc{Small Caps}} is provided. +% 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} @@ -274,8 +295,8 @@ % \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 'Figure 1'. -% Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key} (similar to the |\cite|\marg{key} macro). +% 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}. @@ -293,8 +314,9 @@ % \DescribeMacro{\acronym} % \DescribeMacro{\shortacronym} % \DescribeMacro{\longacronym} -% The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singluar |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros. -% The starred version does not add an \enquote{s} to the abbreviation plural. +% 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. @@ -307,7 +329,8 @@ % \subsection{Math} % % The |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. -% They in turn load the |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. +% 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. @@ -318,32 +341,34 @@ % 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}$). -% Details about the font handling in \TeX\ can be found in \cite{fntguide}. % \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} -% \begin{align} -% \frac12 \ ,&& \nicefrac 12 \ ,&& \flatfrac 12\ . -% \end{align} +% 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} -% The imaginary unit $\i$ is defined using this functionality. +% \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} +% \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 |align| environment should be used instead. +% The |split|, |multline|, |align|, |multlined|, |aligned|, |alignedat|, and |cases| environments should be used instead. % % \subsubsection{Physics} % @@ -353,7 +378,7 @@ % \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 light neutrinos. +% 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} @@ -374,10 +399,11 @@ % 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 $\overleftright{\partial}$. +% 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 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} @@ -420,7 +446,7 @@ % \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{vert}\marg{width} environment the |\panel| macro initiates a new sub-float. +% 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}. % @@ -438,9 +464,9 @@ % \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 |biber| \cite{biber}. +% 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://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are recognized as |eprinttype|s. +% 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. % @@ -459,7 +485,7 @@ % The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. % % \DescribeMacro{arxiv-collector} -% ArXiv 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. +% 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{ @@ -471,9 +497,12 @@ % % \section{Options} % -% Load the |kvoptions| package and define a |hep| namespace. +%<*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, @@ -548,7 +577,7 @@ % \end{macro} % % \begin{macro}{glossaries} -% Provide the option |glossaries| able to turn of the use of the |glossaries-extra| package \cite{glossaries-extra}. +% Provide the option |glossaries| able to turn of the use of the |glossaries| package \cite{glossaries}. % \DoNotIndex{\ifhep@glossaries} % \begin{macrocode} \DeclareBoolOption[true]{glossaries} @@ -572,39 +601,94 @@ % \end{macro} % % \begin{macro}{revtex} -% Provide the option |revtex| for |revtex| \cite{revtex} compatibility mode. +% 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,\setkeys,\fi} +% \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. +% 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 +\ifxetex\xetexorluatextrue +\else \ifluatex\xetexorluatextrue - \else\xetexorluatexfalse + \else\xetexorluatexfalse \fi \fi % \end{macrocode} @@ -612,12 +696,23 @@ % \section{Text} % -% Load |alphabeta| package \cite{alphabeta} first in order to archive the correct behaviour. +% 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} @@ -635,8 +730,18 @@ \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 @@ -657,22 +762,14 @@ \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} - -% Set the whole text to sans serif if requested. -% \DoNotIndex{\ifhep@serif,\renewcommand,\familydefault,\sfdefault} -% \begin{macrocode} -\ifhep@serif\else - \renewcommand\familydefault{\sfdefault} -\fi -% \end{macrocode} - +% % \begin{macro}{\underline} % Load the |soul| package \cite{soul} for hyphenable underlined text. % \DoNotIndex{\let} @@ -681,10 +778,10 @@ \let\underline\ul % \end{macrocode} % \end{macro} - -% \subsection{Font size} % -% Undefine previously defined font sizes and load the \LaTeX\ font size file corresponding to the font size option. +% \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 @@ -710,18 +807,25 @@ % Add the missing |\vs| command. % \DoNotIndex{\DeclareRobustCommand,\xperiodafter,\foreignabbrfont,\pdf@strcmp,\hep@lang@foreign} % \begin{macrocode} -\RequirePackage{pdftexcmds} -\newcommand{\hep@lang@foreign}{british} -\ifnum\pdf@strcmp{\hep@lang}{american}=0% - \renewcommand{\hep@lang@foreign}{USenglish}% -\fi -\ifnum\pdf@strcmp{\hep@lang}{USenglish}=0% - \renewcommand{\hep@lang@foreign}{USenglish}% +\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. @@ -729,7 +833,7 @@ \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} @@ -740,17 +844,17 @@ } % \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}{\url{#2}}} +\newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} % \end{macrocode} % \end{macro} % \subsection{Lists} - +% % Load the |enumitem| package \cite{enumitem}. % \begin{macrocode} \RequirePackage[inline]{enumitem} @@ -798,6 +902,7 @@ % \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 @@ -808,7 +913,7 @@ %\begin{macro}{\useparskip} %\begin{macro}{\useparindent} -% Load the |parskip| package \cite{parskip} and provide two commands switching between the two paragraph modes. +% 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 @@ -853,13 +958,13 @@ % \begin{macrocode} \RequirePackage{xparse} \DeclareDocumentCommand{\mathdef}{mO{0}m}{% - \expandafter\let\csname old\string#1\endcsname=#1 - \expandafter\newcommand\csname new\string#1\endcsname[#2]{#3} + \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 new\string#1\endcsname + \expandafter\let\expandafter\next\csname math\string#1\endcsname \else - \expandafter\let\expandafter\next\csname old\string#1\endcsname + \expandafter\let\expandafter\next\csname text\string#1\endcsname \fi \next }% @@ -874,10 +979,20 @@ % \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% +\ifhep@eqnarray\else \let\eqnarray\@undefined \let\endeqnarray\@undefined \fi @@ -887,9 +1002,10 @@ % \subsection{Math fonts} % % \begin{macro}{\mathbf} -% Load the |bm| package \cite{bm} for superior boldmath. +% 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} @@ -900,6 +1016,15 @@ % 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} @@ -907,6 +1032,7 @@ \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 @@ -918,11 +1044,22 @@ \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}{\units} +% \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. @@ -941,6 +1078,13 @@ % \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} @@ -960,7 +1104,7 @@ % \section{Floats} % -% Adjust the \LaTeX\ float placement defaults +% Adjust the \hologo{LaTeX} float placement defaults % \begin{macrocode} \renewcommand{\textfraction}{0.01} \setcounter{topnumber}{1} @@ -1019,14 +1163,18 @@ % \end{macrocode} % % Load the |subcaption| package \cite{subcaption}. +% Provide old |\subcaption@minipage| macro. % \begin{macrocode} -\RequirePackage[subrefformat = parens]{subcaption} +\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} -% Load the |subcaption| package \cite{subcaption} and define the |panels| environment as well as the |\panel| macro. +% Define the |panels| environment and the |\panel| macro. % \begin{macrocode} \newenvironment{panels}[2][b]{% % \end{macrocode} @@ -1058,15 +1206,15 @@ % \end{macro} % \end{environment} -% Reajust the captions to the revtex class. +% Reajust the captions to the revtex class using the |ragged2e| package \cite{ragged2e}. % \begin{macrocode} \ifhep@revtex - \renewcommand{\figurename}{Figure} - \renewcommand{\tablename}{Table} \RequirePackage{ragged2e} \DeclareCaptionFormat{revtex}{#1#2\justifying{#3}} - \captionsetup{font = small, format = revtex} - \captionsetup[sub]{font = footnotesize, format = plain} + \captionsetup{font=small, format=revtex} + \captionsetup[sub]{font=footnotesize, format=plain} + \renewcommand{\figurename}{Figure} + \renewcommand{\tablename}{Table} \fi % \end{macrocode} @@ -1088,7 +1236,7 @@ \RequirePackage{graphicx} \providecommand{\tikzsetnextfilename}[1]{} \newcommand{\graphic}[2][1]{\tikzsetnextfilename{#2}{% - \centering\includegraphics[width=#1\linewidth]{#2}% + \centering\includegraphics[width=#1\linewidth]{#2}\par% }} % \end{macrocode} % \end{macro} @@ -1119,7 +1267,7 @@ % \end{macrocode} % \end{macro} % \begin{macro}{\email} -% Provide macro for the email of authors used as |\author{|$\langle name\rangle$| \email{|$\langle email\rangle$|}}|. +% 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}} @@ -1153,8 +1301,7 @@ % \subsection{Preprint} % % \begin{macro}{\preprint} -% Places a preprint number in the top right corner of the first page. -% This code uses the |varwidth| \cite{varwidth}, |atbegshi| \cite{atbegshi}, and |picture| \cite{picture} packages. +% Define the |\preprint| macro using the |varwidth| package \cite{varwidth}. % \begin{macrocode} \let\@preprint\relax \newcommand\preprint[1]{\long\gdef\@preprint{#1}} @@ -1164,13 +1311,23 @@ \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} -\AtBeginShipoutFirst{% - \put( - \textwidth+\oddsidemargin-\widthof{\@preprint@box}, - -2pt-\topmargin-\heightof{\@preprint@box} - ){\normalfont\@preprint@box} +\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} @@ -1180,8 +1337,10 @@ % \begin{environment}{abstract} % Adjust the |abstract| environment to not start with indentation. % \begin{macrocode} -\let\old@abstract\abstract -\renewcommand\abstract{\old@abstract\noindent\ignorespaces} +\@ifundefined{abstract}{}{% + \let\old@abstract\abstract% + \renewcommand\abstract{\old@abstract\noindent\ignorespaces}% +} % \end{macrocode} % \end{environment} % End of check for |title| option. @@ -1191,143 +1350,272 @@ % \section{Bibliography} % -% Check if bibliography management is requested using the |pdftexcmds| package \cite{pdftexcmds}. +% 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 a JHEP like bibliography style. +% 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} -\RequirePackage[style=\hep@bibliography]{biblatex} \ExecuteBibliographyOptions{ - sorting=none, + 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} -% Read the collaboration and pre-print information if present. -% Move letters from the volume field to the journal field. +% +% \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} -\newcommand{\@reg@exp}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}} -\newcommand{\@reg@exp@}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}} \DeclareSourcemap{% - \maps[datatype=bibtex,overwrite=true]{% + \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=usere,origfieldval,final=true] + \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=userf,origfieldval,final=true] + \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, final] - \step[fieldsource=volume, match=\@reg@exp@, replace={$2}] + \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} - -% Override the author information with collaboration information if present. +% \end{macro} +% \end{macro} +% +% \begin{macro}{In:} +% Remove spurious \enquote{In:} if no journal is present. % \begin{macrocode} -\renewbibmacro*{author}{% - \iffieldundef{usere}{\printnames{author}}{\textbf{\printfield{usere}}}% +\renewbibmacro*{in:}{% + \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}% } % \end{macrocode} - -% Remove spurious `In:' if no journal is present. +% \end{macro} +% +% \begin{macro}{url} +% Show URLs without the protocol. % \begin{macrocode} -\renewbibmacro*{in:}{% - \iffieldundef{journal}{}{\printtext{\bibstring{in}\intitlepunct}}% +\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{userf}{}{\textls[0]{% + \iffieldundef{reportnumber}{}{\textls[0]{% \newunitpunct\textnumero\intitlepunct% - \textsc{\small\printfield{userf}}% + \textsc{\small\printfield{reportnumber}}% }}% } % \end{macrocode} +% \end{macro} -% Add CTAN as a pre-print option +% \subsection{Eprints} +% +% \begin{macro}{\bib@online} +% Private |\bib@online| macro % \begin{macrocode} -\DeclareFieldFormat{eprint:ctan}{% - CTAN\addcolon\space\ifhyperref{% - \href{https://ctan.org/pkg/#1}{\nolinkurl{#1}}% - }{\nolinkurl{#1}}% +\newcommand{\bib@online}[2]{% + \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% } -\DeclareFieldAlias{eprint:CTAN}{eprint:ctan} % \end{macrocode} - -% Add GitHub as a pre-print option +% \end{macro} +% +% \begin{macro}{\new@eprint} +% Private |\new@eprint| macro % \begin{macrocode} -\DeclareFieldFormat{eprint:github}{% - GitHub\addcolon\space\ifhyperref{\href{% - https://github.com/\thefield{eprintclass}/#1% - }{\nolinkurl{\thefield{eprintclass}/#1}}% - }{\nolinkurl{\thefield{eprintclass}/#1}}% +\NewDocumentCommand{\new@eprint}{smm}{ + \DeclareFieldFormat{eprint:#2}{% + \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}% + #2\addcolon\space\bib@online{#3/\@path}{\@path}% + }% } -\DeclareFieldAlias{eprint:GitHub}{eprint:github} % \end{macrocode} - -% Add GitLab as a pre-print option +% \end{macro} +% +% \begin{macro}{CTAN} +% Add CTAN as a eprint option % \begin{macrocode} -\DeclareFieldFormat{eprint:gitlab}{% - GitLab\addcolon\space\ifhyperref{\href{% - https://gitlab.com/\thefield{eprintclass}/#1% - }{\nolinkurl{\thefield{eprintclass}/#1}}% - }{\nolinkurl{\thefield{eprintclass}/#1}}% -} -\DeclareFieldAlias{eprint:GitLab}{eprint:gitlab} +\new@eprint{CTAN}{https://ctan.org/pkg} +\DeclareFieldAlias{eprint:ctan}{eprint:CTAN} % \end{macrocode} - -% Add SourceForge as a pre-print option +% \end{macro} +% +% \begin{macro}{GitHub} +% Add GitHub as a eprint option % \begin{macrocode} -\DeclareFieldFormat{eprint:sourceforge}{% - SourceForge\addcolon\space\ifhyperref{% - \href{https://sourceforge.net/projects/#1}{\nolinkurl{#1}}% - }{\nolinkurl{#1}}% -} -\DeclareFieldAlias{eprint:SourceForge}{eprint:sourceforge} +\new@eprint*{GitHub}{https://github.com} +\DeclareFieldAlias{eprint:github}{eprint:GitHub} % \end{macrocode} - -% Add HEPForge as a pre-print option +% \end{macro} +% +% \begin{macro}{GitLab} +% Add GitLab as a eprint option % \begin{macrocode} -\DeclareFieldFormat{eprint:hepforge}{% - HEPForge\addcolon\space\ifhyperref{% - \href{https://#1/hepforge.org/}{\nolinkurl{#1}}% - }{\nolinkurl{#1}}% -} -\DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge} +\new@eprint*{GitLab}{https://gitlab.com} +\DeclareFieldAlias{eprint:gitlab}{eprint:GitLab} % \end{macrocode} - -% Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field. +% \end{macro} +% +% \begin{macro}{Bitbucket} +% Add Bitbucket as a eprint option % \begin{macrocode} -\NewBibliographyString{erratum} -\DefineBibliographyStrings{english}{erratum={Erratum:}} +\new@eprint*{Bitbucket}{https://bitbucket.org} +\DeclareFieldAlias{eprint:bitbucket}{eprint:Bitbucket} % \end{macrocode} - -% \begin{macro}{\printbibliography} -% Allow the bibliography to be printed sloppy +% \end{macro} +% +% \begin{macro}{Launchpad} +% Add Launchpad as a eprint option % \begin{macrocode} -\let\old@printbibliography\printbibliography -\renewcommand{\printbibliography}{\sloppy\old@printbibliography} +\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 @@ -1361,7 +1649,11 @@ \pdfstringdefDisableCommands{\let\footnote\@gobble} \pdfstringdefDisableCommands{\let\\\@gobble} } -\AtBeginShipout{\hypersetup{pdftitle={\@title}}} +\ifhep@revtex + \AtBeginShipout{\hypersetup{pdftitle={\@title}}} +\else + \AtBeginDocument{\hypersetup{pdftitle={\@title}}} +\fi \ifhep@title \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else @@ -1373,43 +1665,15 @@ % Improve reference using the |cleveref| package \cite{cleveref}. % % \begin{macrocode} -\RequirePackage[noabbrev, capitalize, nameinlink]{cleveref} +\RequirePackage[noabbrev, nameinlink]{cleveref} +\newcommand{\creflastconjunction}{, and\nobreakspace} \crefname{enumi}{point}{points} \Crefname{enumi}{Point}{Points} % \end{macrocode} % \end{macro} -% \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} - %\begin{macro}{\no@break@before} -% Provide macro able to prevent line breaks. +% Define a macro able to prevent line breaks. % \DoNotIndex{\no@break@before,\ifvmode,\ifhmode,\ifdim,\lastskip,\unskip,\nobreakspace} % \begin{macrocode} \newcommand\no@break@before{% @@ -1431,6 +1695,7 @@ \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. @@ -1461,7 +1726,7 @@ % \begin{macro}{\eqcrefname} % Define the |\eqcrefname| macro for named equation types. % \begin{macrocode} -\DeclareDocumentCommand{\eqcrefname}{mmo}{ +\NewDocumentCommand{\eqcrefname}{mmo}{ \crefname{#1}{#2}{\IfValueTF{#3}{#3}{#2s}} \creflabelformat{#1}{(##2##1##3)} } @@ -1477,7 +1742,7 @@ % \end{macrocode} % \end{macro} -% \subsection{Citation macros} +% \subsection{Citations} % % \begin{macro}{\cite} % Adjust |\cite|\marg{key} in order to prevent preceding line breaks. @@ -1496,8 +1761,8 @@ \NewBibliographyString{refname} \NewBibliographyString{refsname} \DefineBibliographyStrings{english}{% - refname = {Reference}, - refsname = {References} + refname = {reference}, + refsname = {references} } % \end{macrocode} % \begin{macro}{\ccite} @@ -1505,7 +1770,7 @@ % Define \emph{clever} citation macros. % \begin{macrocode} \DeclareCiteCommand{\ccite}{% - \ifnum\thecitetotal=1% + \ifnum\thecitetotal=1 \bibstring{refname}% \else% \bibstring{refsname}% @@ -1562,40 +1827,60 @@ }} % \end{macrocode} -% \begin{macro}{\if@begin@of@sentence} +% \begin{macro}{\begin@sentence} % Mark the beginning of a paragraph as if it would follow a full stop using the |everyhook| package \cite{everyhook}. -% Provide a macro checking for the beginning of a sentence by examining the length of the preceeding space. (This breaks if |\frenchspacing| is activated) % \begin{macrocode} -\usepackage[excludeor]{everyhook} -\PushPostHook{par}{{\spacefactor=3000}} +\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}}% + 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}\marg{definition}\oarg{plural\linebreak[4] definition} macro is defined. +% 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} -\DeclareDocumentCommand{\acronym}{sommo}{ +\NewDocumentCommand{\acronym}{somsmo}{ \newabbreviation[ - longplural=\IfNoValueTF{#5}{#4s}{#5}, + longplural=\IfNoValueTF{#6}{#5s}{#6}, \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} - ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#4} + ]{#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}}\@\xspace% + \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}% + \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. @@ -1607,13 +1892,14 @@ % Provide the singular acronym macro in math mode. % \begin{macrocode} \expandafter\mathdef\csname#3\endcsname{% - \text{\glsxtrshort{#3}}\glsunset{#3}% + \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}}\@\xspace% + \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}% + \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} % Expand the plural acronym macro in \PDF labels. @@ -1625,7 +1911,7 @@ % Provide the plural acronym macro in math mode. % \begin{macrocode} \expandafter\mathdef\csname#3s\endcsname{% - \text{\glsxtrshortpl{#3}}\glsunset{#3}% + \text{\glsxtrshortpl{#3}}\@gls@increment@currcount{#3}% } } % \end{macrocode} @@ -1634,14 +1920,13 @@ % \begin{macro}{\shortacronym} % The |\shortacronym| never expands into the long form. % \begin{macrocode} -\DeclareDocumentCommand{\shortacronym}{somm}{ - \newabbreviation[ - \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} - ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#4} +\NewDocumentCommand{\shortacronym}{somsmo}{ % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3\endcsname{\cgls*{#3}\@\xspace} + \expandafter\newcommand\csname#3\endcsname{% + \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}% + } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. % \begin{macrocode} @@ -1651,11 +1936,16 @@ % \end{macrocode} % Provide the singular acronym macro in math mode. % \begin{macrocode} - \expandafter\mathdef\csname#3\endcsname{\text{\glsxtrshort*{#3}}} + \expandafter\mathdef\csname#3\endcsname{% + \text{\IfNoValueTF{#2}{#3}{#2}}% + } % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3s\endcsname{\cglspl*{#3}\@\xspace} + \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} @@ -1665,8 +1955,9 @@ % \end{macrocode} % Provide the plural acronym macro in math mode. % \begin{macrocode} - \expandafter\mathdef\csname#3s\endcsname{\text{\glsxtrshortpl*{#3}}}% - \glsunset{#3} + \expandafter\mathdef\csname#3s\endcsname{% + \text{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}% + }% } % \end{macrocode} % \end{macro} @@ -1674,31 +1965,32 @@ % \begin{macro}{\longacronym} % The |\longacronym| never shows the abbreviated form. % \begin{macrocode} -\DeclareDocumentCommand{\longacronym}{sommo}{ +\NewDocumentCommand{\longacronym}{somsmo}{ % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} \expandafter\newcommand\csname#3\endcsname{% - \if@begin@of@sentence{\MakeUppercase#4}{#4}\@\xspace% + \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{#4 }} + \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{#5}{\MakeUppercase#4s}{\MakeUppercase#5}% + \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% }{% - \IfNoValueTF{#5}{#4s}{#5}}\@\xspace% + \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{#5}{#4s}{#5} }% + \IfNoValueTF{#6}{#5s}{#6} }% } } % \end{macrocode} @@ -1732,11 +2024,60 @@ % \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} % +%</package> +% +% \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} +% +%</datamodel> +% % \Finale \endinput @@ -1744,3 +2085,32 @@ % \PrintIndex % makeindex -s gglo.ist -o hep-paper.gls hep-paper.glo % makeindex -s gglo.ist -o hep-paper.ind hep-paper.idx + +% \begin{macro}{\refstepcounter@...} +% Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|. +% \begin{macrocode} +\def\refstepcounter@noarg#1{% + \cref@old@refstepcounter{#1}% + \cref@constructprefix{#1}{\cref@result}% + \@ifundefined{cref@#1@alias}% + {\def\@tempa{#1}}% + {\def\@tempa{\csname cref@#1@alias\endcsname}}% + \protected@edef\cref@currentlabel{% + [\@tempa][\arabic{#1}][\cref@result]% + \noexpand\@currentlabel% + }% changed +} + +\def\refstepcounter@optarg[#1]#2{% + \cref@old@refstepcounter{#2}% + \cref@constructprefix{#2}{\cref@result}% + \@ifundefined{cref@#1@alias}% + {\def\@tempa{#1}}% + {\def\@tempa{\csname cref@#1@alias\endcsname}}% + \protected@edef\cref@currentlabel{% + [\@tempa][\arabic{#2}][\cref@result]% + \noexpand\@currentlabel% changed + }% +} +% \end{macrocode} +% \end{macro} diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins index b88c8423a57..881f9745b5c 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins @@ -28,7 +28,10 @@ and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later. \endpreamble -\generate{\file{hep-paper.sty}{\from{hep-paper.dtx}{package}}} +\generate{ + \file{hep-paper.sty}{\from{hep-paper.dtx}{package}} + \file{hep-paper.dbx}{\from{hep-paper.dtx}{datamodel}} +} \Msg{*********************************************************} \Msg{*} |