diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/hep-paper/README.md | 8 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hep-paper/bibliography.bib | 84 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf | bin | 0 -> 454890 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex | 609 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf | bin | 0 -> 535891 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf | bin | 525662 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx (renamed from Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx) | 1709 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/hep-paper/hep-paper.ins | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty | 347 |
10 files changed, 1953 insertions, 821 deletions
diff --git a/Master/texmf-dist/doc/latex/hep-paper/README.md b/Master/texmf-dist/doc/latex/hep-paper/README.md index e35410f36ec..fe6ce7a1058 100644 --- a/Master/texmf-dist/doc/latex/hep-paper/README.md +++ b/Master/texmf-dist/doc/latex/hep-paper/README.md @@ -12,6 +12,14 @@ For usual publications it is enough to load additionally to the `article` class \documentclass{article} \usepackage{hep-paper} +## Installation + +Running `pdflatex hep-paper.ins` will generate the main style file `hep-paper.sty` together with the necessary datamodel file `hep-paper.dbx`. +These two files must be moved into a folder the `tex` installation is aware of, e.g. the folder containing the document that should use the `hep-paper` package. +Additionally the documentation file `hep-paper-documentation.tex` will be generated. +Subsequently running `pdflatex hep-paper-documentation.tex` will generate the documentation `hep-paper-documentation.pdf`. +Finally running `pdflatex hep-paper-implementation.dtx` will generate the complete documentation of the implementation `hep-paper-implementation.pdf` + ## Author Jan Hajer diff --git a/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib b/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib index d63b7339470..63e5ad9916e 100644 --- a/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib +++ b/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib @@ -1,6 +1,6 @@ @article{hep-paper, title = "The |hep-paper| package", -subtitle = "Publications in High Energy Physics", +subtitle = "Publications in high energy physics", author = "Jan Hajer", year = "2019", eprinttype = "ctan", @@ -123,7 +123,6 @@ eprint = "mathtools", @article{amsmath, title = "The |amsmath| package", subtitle = "AMS mathematical facilities for \hologo{LaTeX}", -author = "\hologo{LaTeX}", collaboration = "\hologo{LaTeX} Team", date = "1994", url = "https://ams.org/tex/amslatex", @@ -348,7 +347,9 @@ eprint = "iftex", @article{fontspec, title = "The |fontspec| package", +subtitle = "Advanced font selection in \hologo{XeLaTeX} and \hologo{LuaLaTeX}", author = "Will Robertson and Khaled Hosny", +date = "2004", eprinttype = "ctan", eprint = "fontspec", } @@ -494,7 +495,6 @@ eprint = "fmitex", title = "\hologo{LaTeX2e}\ font selection", subtitle = "Docmentation of \hologo{LaTeX} font commands", collaboration = "\hologo{LaTeX} Team", -author = "\hologo{LaTeX} Team", date = "1995", eprinttype = "ctan", eprint = "fntguide", @@ -516,6 +516,15 @@ eprinttype = "ctan", eprint = "soul", } +@article{ulem, +title = "The |ulem| package", +subtitle = "Package for underlining", +author = "Donald Arseneau", +date = "1989", +eprinttype = "ctan", +eprint = "ulem", +} + @article{glossaries, title = "The |glossaries| package", subtitle = "Create glossaries and lists of acronyms", @@ -555,13 +564,15 @@ eprint = "pdftexcmds", @article{fix-cm, title = "The |fix-cm| package", +subtitle = "Permit Computer Modern fonts at arbitrary sizes", author = "Frank Mittelbach and David Carlisle and Chris Rowley and Walter Schmidt", +date = "1993", eprinttype = "ctan", eprint = "fix-cm", } @article{revtex, -title = "The REV\hologo{TeX} package", +title = "The REV\hologo{TeX} class", subtitle = "Styles for various Physics Journals", author = "Mark Doyle and Arthur Ogawa", collaboration = "American Physical Society", @@ -656,7 +667,6 @@ eprint = "url", @article{jhep, title = "The |JHEP| package", -author = "SISSA Medialab", collaboration = "SISSA Medialab", date = "1997", url = "https://jhep.sissa.it/jhep/help/JHEP_TeXclass.jsp", @@ -664,7 +674,6 @@ url = "https://jhep.sissa.it/jhep/help/JHEP_TeXclass.jsp", @article{jcap, title = "The |JCAP| package", -author = "SISSA Medialab", collaboration = "SISSA Medialab", date = "2002", url = "https://jcap.sissa.it/jcap/help/JCAP_TeXclass.jsp", @@ -682,7 +691,7 @@ related = "bbm" @article{bbm, title = "|bbm|", subtitle = "\enquote{Blackboard-style} cm fonts", -author = " Gilles Robert", +author = "Gilles Robert", date = "1993", eprinttype = "ctan", eprint = "bbm", @@ -698,3 +707,64 @@ year = "1991", organization = "Cornell University", ReportNumber = "test", } + +@article{dsfont, +title = "The |doublestroke| font", +subtitle = "Typeset mathematical double stroke symbols", +author = "Olaf Kummer", +date = "1995", +eprinttype = "ctan", +eprint = "doublestroke", +} + +@article{mleftright, +title = "The |mleftright| package", +subtitle = "Variants of delimiters that act as maths open/close", +author = "Heiko Oberdiek", +date = "2010", +eprinttype = "ctan", +eprint = "mleftright", +} + +@article{urwchancal, +title = "A virtual font for URW Chancery Math", +subtitle = "Use URW's clone of Zapf Chancery as a maths alphabet", +author = "Michael Sharpe", +date = "2011", +eprinttype = "ctan", +eprint = "urwchancal", +} + +@article{footnotebackref, +title = "The |footnotebackref| package", +subtitle = "Back-references from footnotes", +author = "Holger Lange", +date = "2012", +eprinttype = "ctan", +eprint = "footnotebackref", +} + +@article{cancel, +title = "The |cancel| package", +subtitle = "Place lines through maths formulae", +author = "Donald Arseneau", +date = "2013", +eprinttype = "ctan", +eprint = "cancel", +} + +@article{beamer, +title = "The |beamer| class", +subtitle = "A \hologo{LaTeX} class for producing presentations and slides", +author = "Till Tantau and Joseph Wright and Vedran Miletić", +date = "2003", +eprinttype = "ctan", +eprint = "beamer", +related = "beamer-1", +} + +@manual{beamer-1, +eprinttype = "github", +eprintclass = "josephwright", +eprint = "beamer", +} diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf Binary files differnew file mode 100644 index 00000000000..7e8d9dbdb59 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex new file mode 100644 index 00000000000..0f5e7957649 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex @@ -0,0 +1,609 @@ +%% +%% This is file `hep-paper-documentation.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% hep-paper-implementation.dtx (with options: `documentation') +%% This is a generated file. +%% Copyright (C) 2019-2020 by Jan Hajer +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. The latest version of this license is in: +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +\RequirePackage[l2tabu, orthodox]{nag} +\documentclass{ltxdoc} + +\EnableCrossrefs +\CodelineIndex +\RecordChanges + +\MacroIndent=1.5em + +\usepackage[parskip]{hep-paper} + +\bibliography{bibliography} + +\acronym{PDF}{portable document format} +\acronym{URL}{uniform resource locator} + +\usepackage{hologo} + +\newenvironment{columns}[1][.5]{% + \begin{minipage}[t]{\linewidth}% + \begin{minipage}[t]{#1\linewidth}% + \newcommand{\column}{% + \end{minipage}% + \begin{minipage}[t]{\linewidth-#1\linewidth}% + }% +}{\end{minipage}\end{minipage}} + +\setlength{\fboxsep}{1pt} + +\begin{document} + +\GetFileInfo{hep-paper.sty} + +\title{The |hep-paper| package\thanks{This document corresponds to \protecting{|hep-paper|}~\fileversion.}} +\author{Jan Hajer \email{jan.hajer@uclouvain.be}} +\affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium} +\preprint{Preprint-Number} +\date{\normalfont\filedate} + +\maketitle + +\begin{abstract} +The |hep-paper| package aims to provide a single style file containing most configurations and macros necessary to write appealing publications in High Energy Physics. +Instead of reinventing the wheel by introducing newly created macros |hep-paper| preferably loads third party packages as long as they are lightweight enough. +\end{abstract} + +\tableofcontents\clearpage + +\newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} + +\section{Introduction} + +For usual publications it is enough to load additionally to the |article| class without optional arguments only the |hep-paper| package \cite{hep-paper}. + +| \documentclass{article}|\\ +| \usepackage{hep-paper}| + +The most notable changes after loading the |hep-paper| package is the change of some \hologo{LaTeX} defaults. +The paper and font sizes are set to A4 and \unit[11]{pt}, respectively. +Additionally, the paper geometry is set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}. +Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. +Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. + +\subsection{Options} + +\DescribeMacro{paper} +The |paper=|\meta{format} option loads the specified paper format. +The possible \meta{formats} are: +|a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|, +|b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, +|c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, +|ansia|, |ansib|, |ansic|, |ansid|, |ansie|, +|letter|, |executive|, |legal|. +The default is |a4|. + +\DescribeMacro{font} +The |font=|\meta{size} option loads the specified font size. +The possible \meta{sizes} are: +|8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|. +The default is \unit[11]{pt}. + +\DescribeMacro{lang} +The |lang|=\meta{name} option switches the document language to the chosen value. +The possible values are given by the |babel| package \cite{babel}. +The default is |british|. + +\DescribeMacro{sansserif} +The |sansserif| option switches the document including math to the sans serif font shape. + +\DescribeMacro{parskip} +The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. +The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. +\footnote{Although the |parskip| option is used for this document, it is recommended only for very few document types such as technical manuals or answers to referees.} + +\subsubsection{Deactivation} + +The \software{hep-paper} package loads few bigger packages which have a large impact on the document. +The deactivation options prevent such adjustments. + +\DescribeMacro{defaults} +The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. + +\DescribeMacro{title} +The |title=false| option deactivates the title page adjustments. + +\DescribeMacro{bibliography} +The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|. +Otherwise the \meta{key} is passed as |style| string to the |biblatex| package. + +\DescribeMacro{glossaries} +The |glossaries=false| option deactives acronyms and the use of the |glossaries| package \cite{glossaries}. + +\DescribeMacro{references} +The |references=false| option prevents the |cleveref| pacakge \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros. + +\subsubsection{Compatibility} + +The compatibility options activate the compatibility mode for certain classes and packages used for publications in high energy physics. +They are mostly suitable combinations of options described in the previous section. +If \software{hep-paper} is able to detect the presence of such a class or package, \ie if it is loaded before the \software{hep-paper} package, the compatibility mode is activated automatically. + +\DescribeMacro{beamer} +The |beamer| option activates the \software{beamer} \cite{beamer} compatibility mode. + +\DescribeMacro{jhep} +The |jhep| option activates the \software{JHEP} \cite{jhep} compatibility mode. + +\DescribeMacro{jcap} +The |jcap| option activates the \software{JCAP} \cite{jcap} compatibility mode. + +\DescribeMacro{revtex} +The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode. + +\DescribeMacro{pos} +The |pos| option activates the \software{PoS} compatibility mode. + +\subsubsection{Reactivation} + +The \software{hep-paper} package deactivates unrecommended macros, which can be reactivated manually. + +\DescribeMacro{manualplacement} +The |manualplacement| option reactivates manual float placement. + +\DescribeMacro{eqnarray} +The |eqnarray| option reactivates the depreciated |eqnarray| environment. + +\section{Macros and environments} + +\subsection{Title page} + +\DescribeMacro{\author} +\DescribeMacro{\affiliation} +\DescribeMacro{\email} +In order to facilitate multiple authors with different affiliations the |authblk| package \cite{authblk} is loaded. +The following lines add \eg two authors with different affiliations + +| \author[1]{Author one \email{Email one}}|\\ +| \affiliation[1]{Affiliation one}|\\ +| \author[2]{Author two \email{Email two}}|\\ +| \affiliation[1,2]{Affiliation two}| + +\DescribeMacro{\title} +The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. + +\DescribeMacro{\preprint} +The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. + +\DescribeEnv{abstract} +The |abstract| environment is adjusted to not start with an indentation. + +\subsection{Text} + +Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package. +\DescribeMacro{\enquote} +\DescribeMacro{\MakeOuterQuote} +The latter package provides the convenient macros |\enquote|\marg{text} and |\MakeOuterQuote{"}| allowing to leave the choice of quotation marks to \hologo{LaTeX} and use |"| instead of the pair |``| and |''|, respectively. + +\DescribeMacro{\eg} +\DescribeMacro{\vs} +The |foreign| package \cite{foreign} defines macros such as |\eg|, |\ie|, |\cf|, and |\vs| which are typeset as \eg, \ie, \cf, and \vs. + +\DescribeMacro{\no} +The |\no|\marg{number} macro is typeset as \no{123}. + +\DescribeMacro{\software} +The |\software|\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}. + +\DescribeMacro{\online} +The |\online|\marg{url}\marg{text} macro combines the features of the |\href|\marg{url} \marg{text} \cite{hyperref} and the |\url|\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}. + +The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. + +\DescribeMacro{inlinelist} +\begin{columns} +|The three main points are| +|\begin{inlinelist}| + +| \item one| + +| \item two| + +| \item three| + +|\end{inlinelist}| +\column +The three main points are +\begin{inlinelist} + \item one + \item two + \item three +\end{inlinelist} +\end{columns} + +\DescribeMacro{enumdescript} +\begin{columns}[.6] +|\begin{enumdescript}[label=\Roman*)]| + +| \item{First} one| + +| \item{Second} two| + +| \item{Third} three| + +|\end{enumdescript}| +\column +\begin{enumdescript}[label=\Roman*)] + \item{First} one + \item{Second} two + \item{Third} three +\end{enumdescript} +\end{columns} + +\DescribeMacro{\textsc} +A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}. + +\DescribeMacro{\underline} +\DescribeMacro{\overline} +The |\underline| macro is redefined to allow line-breaks using the |ulem| package \cite{ulem}. +The |\overline| macro is extended to also \overline{overline} text outside of math environments. + +\DescribeMacro{\useparskip} +\DescribeMacro{\useparindent} +If the |parskip| option is activated the |\useparindent| macro switches back the usual parindent mode, while the |\useparskip| macro switches to the parskip mode. + +\subsubsection{References and footnotes} + +\DescribeMacro{\cref} +References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{figure 1}. +Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}. + +\DescribeMacro{\cite} +Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}. + +\DescribeMacro{\ref} +\DescribeMacro{\eqref} +\DescribeMacro{\subref} +References are also adjusted to not start on a new line and are redefined in order to handle multiple references at once. + +\DescribeMacro{\footnote} +Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. + +\subsubsection{Acronyms} + +\DescribeMacro{\acronym} +\DescribeMacro{\shortacronym} +\DescribeMacro{\longacronym} +The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singular |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros. +The first star prevents the addition of an \enquote{s} to the abbreviation plural. +The second star restores the \hologo{TeX} default of swallowing subsequent white space. +The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form. +Capitalization at the beginning of paragraphs and sentences is ensured. +The |\shortacronym| and |\longacronym| macros are drop-in replacements of the |\acronym| macro showing only the short or long form of their acronym. +\DescribeMacro{\resetacronym} +\DescribeMacro{\dummyacronym} +The first use form of the acronym can be enforced by resetting the acronym counter with |\resetacronym|\marg{key}. +If the acronym counter equals one at the end of the document the short form of the acronym is not introduced. +Placing a |\dummyacronym|\marg{key} at the end of the document ensures that the short form is introduced. + +\subsection{Math} + +The |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. +They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. +\DescribeMacro{\mathbf} +Bold math, via |\mathbf| is improved by the |bm| package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$). +Macros switching to |bfseries| such as |\section|\marg{text} are ensured to also typeset math in bold. +This may cause trouble if bold symbols carry an additional non-implicit meaning. +\DescribeMacro{\text} +The |\text|\marg{text} macro makes it possible to write text within math mode, \ie ($ \text A \text b \text \Gamma \text \delta \text{\textbf A} \text{\textbf b} \text{\textbf \Gamma} \text{\textbf \delta}$). +The often used |\mathrm|\marg{text} and |{\rm|\meta{text}|}| macros are \emph{not} the correct tool for this purpose, as they switch to roman font shape. +This behaviour conflicts \eg with the |sansserif| package option. +\DescribeMacro{\mathsf} +The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$). +\DescribeMacro{\mathscr} +The |\mathcal| font \ie ($\mathcal{ABCD}$) is accompanied by the |\mathscr| font \ie ($\mathscr{ABCD}$). +\DescribeMacro{\mathbb} +The |\mathbb| font is improved by the |doublestroke| package \cite{dsfont} and adjusted depending on the |sansserif| option \ie ($\mathbb{Ah1}$). +\DescribeMacro{\mathfrak} +Finally, the |\mathfrak| font is also available \ie ($\mathfrak{AaBb12}$). +Details about the font handling in \hologo{TeX} can be found in \ccite{fntguide}. + +\DescribeMacro{\nicefrac} +\DescribeMacro{\flatfrac} +The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$. +\DescribeMacro{\diag} +\DescribeMacro{\sgn} +Diagonal matrix |\diag| and signum |\sgn| operators are defined. + +\DescribeMacro{\mathdef} +The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition. + +\DescribeMacro{\i} +\DescribeMacro{\d} +The imaginary unit $\i$ and the differential $\d$ are defined using this functionality. + +\DescribeMacro{\numberwithin} +For longer paper it can be useful to re-number the equation in accordance with the section numbering |\numberwithin{equation}{section}|. +\DescribeMacro{subequations} +In order to further reduce the size the of equation counter it can be useful to wrap |align| environments with multiple rows in a |subequations| environment. +Both macros are provided by the |amsmath| package. + +\DescribeMacro{eqnarray} +The depreciated |eqnarray| environment is undefined as long this behaviour is not prevented by the |eqnarray| package option. +The |split|, |multline|, |align|, |multlined|, |aligned|, |alignedat|, and |cases| environments of the |amsmath| and |mathtools| packages should be used instead. + +\DescribeMacro{equation} +Use the |equation| environment for short equations. + +\begin{columns} +|\begin{equation}| + +| left = right \ .| + +|\end{equation}| +\column +\begin{equation} +\framebox[2em]{left\strut} = \framebox[7em]{right\strut} \ . +\end{equation} +\end{columns} + +\DescribeMacro{multline} +Use the |multline| environment for longer equations. + +\begin{columns} +|\begin{multline}| + +| left = right 1 \\| + +| + right 2 \ .| + +|\end{multline}| +\column +\begin{multline} +\framebox[2em]{left\strut} = \framebox[7em]{right 1\strut} \\ +\framebox[7em]{+ right 2\strut} \ . + \end{multline} +\end{columns} + +\DescribeMacro{split} +Use the |split| sub environment for equations in which multiple equal signs should be aligned. + +\begin{columns} +|\begin{equation} \begin{split}| + +| left &= right 1 \\| + +| &= right 2 \ .| + +|\end{split} \end{equation}| +\column +\begin{equation} +\begin{split} +\framebox[2em]{left\strut} &= \framebox[7em]{right 1\strut} \\ +&= \framebox[7em]{right 2\strut} \ . +\end{split} +\end{equation} +\end{columns} + +\DescribeMacro{align} +Use the |align| environment for the vertical alignment and horizontal distribution of multiple equations. + +\begin{columns} +|\begin{subequations}| +|\begin{align}| + +| left &= right \ , &| +| left &= right \ , \\| +| left &= right \ , &| +| left &= right \ .| + +|\end{align}| +|\end{subequations}| +\column +\begin{subequations} +\begin{align} +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , & +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , \\ +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , & +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ . +\end{align} +\end{subequations} +\end{columns} + +\DescribeMacro{aligned} +Use the |aligned| environment within a |equation| environment if the aligned equations should be labeled with a single equation number. + +\DescribeMacro{multlined} +Use the |multlined| environment if either |split| or |align| contain very long lines. + +\begin{columns} +|\begin{equation} \begin{split}| + +| left &= right 1 \\ &=| +| \begin{multlined}[t]| +| right 2 \\ + right 3 \ .| +| \end{multlined}| +|\end{split} \end{equation}| +\column +\begin{equation} +\begin{split} +\framebox[2em]{left\strut} &= \framebox[7em]{right 1\strut} \\ &= + \begin{multlined}[t] + \framebox[7em]{right 2\strut} \\ + \framebox[7em]{+ right 3\strut} \ . +\end{multlined} +\end{split} +\end{equation} +\end{columns} + +\DescribeMacro{alignat} +Use the |alignat| environment together with the |\mathllap| macro for the alignment of multiple equations with vastly different lengths. + +\begin{columns} +|\begin{subequations}| +|\begin{alignat}{2}| + +| left &= long right && \ , \\| + +| le. 2 &= ri. 2 \ , &| + +| \mathllap{le. 3 = ri. 3} & \ .| +|\end{alignat}| +|\end{subequations}| +\column +\begin{subequations} +\begin{alignat}{2} +\framebox[2em]{left\strut} &= +\framebox[11em]{long right\strut} && \ , \\ +\framebox[2em]{le.\ 2\strut} +&= \framebox[2.5em]{ri.\ 2\strut} \ , & +\mathllap{\framebox[2em]{le.\ 3\strut} += \framebox[2.5em]{ri.\ 3\strut}} & \ . +\end{alignat} +\end{subequations} +\end{columns} + +As a rule of thumb if you have to use |\notag|, |\nonumber|, or perform manual spacing via |\quad| you are probably using the wrong environment. + +\subsubsection{Physics} + +Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the |fixmath| \cite{fixmath} and |alphabeta| \cite{alphabeta} packages. +This allows differentiations like +\begin{align} +\sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ , +\label{eq:greek} +\end{align} +and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. +Additionally, Greek letters can also be directly typed using Unicode. + +\DescribeMacro{\ev} +\DescribeMacro{\pdv} +\DescribeMacro{\comm} +\DescribeMacro{\order} +The |physics| package \cite{physics} provides additional macros such as +\begin{align} +&\ev{\phi} \ , +&&\pdv[n]{f}{x} \ , +&&\comm{A}{B} \ , +&&\order{x^2} \ , +&&\eval{x}_0^\infty \ , +&&\det(M)\ . +\end{align} + +\DescribeMacro{\cancel} +\DescribeMacro{\slashed} +The |\cancel|\marg{characters} macro from the |cancel| \cite{cancel} package and the |\slashed| \marg{character} macro from the |slashed| \cite{slashed} package allow to $\cancel{\text{cancel}}$ math and use the Dirac slash notation \ie $\slashed \partial$, respectively. + +\DescribeMacro{\overleftright} +A better looking over left right arrow is defined \ie $\overleftright{\partial}$. + +\DescribeMacro{\unit} +\DescribeMacro{\inv} +The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro |\unit|\oarg{value} \marg{unit} from the |units| package \cite{units} which can also be used in text mode. +The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via |\unit[5]{\inv{fb}}|. + +\subsection{Floats} + +\DescribeEnv{figure} +\DescribeEnv{table} +Automatic float placement is adjusted to place a single float at the top of pages and to reduce the number of float pages, using the \hologo{LaTeX} macros. + +|\setcounter{bottomnumber}{0}| \hfill no floats at the bottom of a page (default 1) \\ +|\setcounter{topnumber}{1}| \hfill a single float at the top of a page (default 2) \\ +|\setcounter{dbltopnumber}{1}| \hfill same for full widths floats in two-column mode \\ +|\renewcommand{\textfraction}{.1}| \hfill large floats are allowed (default 0.2)\\ +|\renewcommand{\topfraction}{.9}| \hfill (default 0.7) \\ +|\renewcommand{\dbltopfraction}{.9}| \hfill (default 0.7) \\ +|\renewcommand{\floatpagefraction}{.8}| \hfill float pages must be full (default 0.5) + +Additionally, manual float placement is deactivated but can be reactivated using the |manualplacement| package option. +It is however recommended to archive the desired design by adjusting above macros. +The most useful float placement is usually archived by placing the float \emph{in front} of the paragraph it is referenced in first. +\DescribeMacro{\raggedright} +The float environments have been adjusted to center their content. +The usual behaviour can be reactivated using |\raggedright|. + +\begin{table} +\begin{panels}{.6} +\raggedright +|\begin{panels}{.6}|\\ +|code|\\ +|\panel{.4}|\\ +|\begin{tabular}...\end{tabular}|\\ +|\end{panels}|\\ +\caption{Code for this panel environment.} +\label{tab:panels} +\panel{.4} +\begin{tabular}{cccc} +\toprule +\multicolumn{2}{c}{one}& \multicolumn{2}{c}{two} \\ \cmidrule(r){1-2} \cmidrule(l){3-4} +\multirow{2}{*}{a} & b & c & d \\ + & b & c & d \\ +\bottomrule +\end{tabular} +\caption{The \protecting{|booktabs|} and \protecting{|multirow|} features.} +\label{tab:booktabs} +\end{panels} +\caption{Example use of the \protecting{|panels|} environment in Panel \subref{tab:panels} and the features from the \protecting{|booktabs|} and \protecting{|multirow|} packages in Panel \subref{tab:booktabs}. +} \label{tab:table} +\end{table} + +\DescribeEnv{panels} +\DescribeMacro{\panel} +The |panels| environment makes use of the |subcaption| package \cite{subcaption}. +It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the |\linewidth|. +Within the |\begin{panels}|\oarg{vertical alignment}\marg{width} environment the |\panel| macro initiates a new sub-float. +In the case that the width of the first sub-float has been given as an optional argument to the |panels| environment the |\panel|\marg{width} macro takes the width of the next sub-float as mandatory argument. +The example code is presented in \cref{tab:panels}. + +\DescribeEnv{tabular} +The |booktabs| \cite{booktabs} and |multirow| \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}. + +\DescribeMacro{\graphic} +\DescribeMacro{\graphics} +The |graphicx| package \cite{graphicx} is loaded and the |\graphic|\oarg{width}\marg{figure} macro is defined, which is a wrapper for the |\includegraphics|\marg{figure} macro and takes the figure width as fraction of the |\linewidth| as optional argument (default~1). +If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}. + +\subsection{Bibliography} + +\DescribeMacro{\bibliography} +\DescribeMacro{\printbibliography} +The |biblatex| package \cite{biblatex} is loaded for bibliography management. +The user has to add the line |\bibliography|\marg{my.bib} to the preamble of the document and |\printbibliography| at the end of the document. +The bibliography is generated by \software{Biber} \cite{biber}. +|biblatex| is extended to be able to cope with the |collaboration| and |reportNumber| fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed. +Additionally, the PubMed IDs are recognized and \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are valid |eprinttype|s. +\DescribeMacro{erratum} +Errata can be included using the |related| feature. + +| \article{|\meta{key1}|,|\\ +| |\dots|,|\\ +| relatedtype="erratum",|\\ +| related="|\meta{key2}|",|\\ +| }|\\ +| \article{|\meta{key2}|,|\\ +| |\dots|,|\\ +| }| + +\section{Conclusion} + +The |hep-paper| package provides a matching selection of preloaded packages and additional macros enabling the user to focus on the content instead of the layout by reducing the amount of manual tasks. +The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. + +\DescribeMacro{arxiv-collector} +\nolinkurl{arxiv.org} \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv. +The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures). + +\printbibliography + +\end{document} + +\endinput +%% +%% End of file `hep-paper-documentation.tex'. diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf Binary files differnew file mode 100644 index 00000000000..b087bd542ea --- /dev/null +++ b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf b/Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf Binary files differdeleted file mode 100644 index 4142b2afe7d..00000000000 --- a/Master/texmf-dist/doc/latex/hep-paper/hep-paper.pdf +++ /dev/null diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx b/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx index 5c9841bc6a7..f8bddd02e49 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.dtx +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx @@ -18,64 +18,51 @@ % \iffalse % %<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01] -%<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] +%<package>\ProvidesPackage{hep-paper}[2020/08/01 v1.4 Publications in High Energy Physics] +%<datamodel>\ProvidesFile{hep-paper.dbx}[2020/08/01 v1.4 HEP-Paper biblatex data model] % -%<*driver> - +%<*documentation> +\RequirePackage[l2tabu, orthodox]{nag} \documentclass{ltxdoc} -\MacroIndent=1.5em +\EnableCrossrefs +\CodelineIndex +\RecordChanges -% \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 +\MacroIndent=1.5em \usepackage[parskip]{hep-paper} \bibliography{bibliography} \acronym{PDF}{portable document format} +\acronym{URL}{uniform resource locator} \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} + \begin{minipage}[t]{#1\linewidth}% \newcommand{\column}{% \end{minipage}% \begin{minipage}[t]{\linewidth-#1\linewidth}% }% }{\end{minipage}\end{minipage}} -\EnableCrossrefs -\CodelineIndex -\RecordChanges +\setlength{\fboxsep}{1pt} +%</documentation> +%<*driver> +\expandafter\newif\csname ifshort\endcsname +\shortfalse \begin{document} -\DocInput{hep-paper.dtx} +\DocInput{hep-paper-implementation.dtx} \end{document} - %</driver> % % \fi % -% \CheckSum{1140} +% \CheckSum{1302} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -93,414 +80,597 @@ % 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} +% \changes{v1.0}{2019/01/01}{Initial version of the style file.} +% \changes{v1.1}{2020/01/01}{Transition to documented \hologo{LaTeX} source file.} +% \changes{v1.2}{2020/03/01}{Introduction of package options.} +% \changes{v1.3}{2020/05/01}{Inclusion of JHEP and JCAP package options. Fix of incompatibility with recent subcaption package version. Move of biblatex datamodel into its own file} +% \changes{v1.4}{2020/08/01}{If possible the compatibility options are selected automatically. Inclusion of PubMed IDs in bibliography.} % -% 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. +% \ifshort +%<*documentation> % -% \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| +\begin{document} +% \fi + +\GetFileInfo{hep-paper.sty} + +\title{The |hep-paper| package\thanks{This document corresponds to \protecting{|hep-paper|}~\fileversion.}} +\author{Jan Hajer \email{jan.hajer@uclouvain.be}} +\affiliation{Centre for Cosmology, Particle Physics and Phenomenology, Université catholique de Louvain, Louvain-la-Neuve B-1348, Belgium} +\preprint{Preprint-Number} +\date{\normalfont\filedate} + +\maketitle + +\begin{abstract} +The |hep-paper| package aims to provide a single style file containing most configurations and macros necessary to write appealing publications in High Energy Physics. +Instead of reinventing the wheel by introducing newly created macros |hep-paper| preferably loads third party packages as long as they are lightweight enough. +\end{abstract} + +\tableofcontents\clearpage + +\newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} + +\section{Introduction} + +For usual publications it is enough to load additionally to the |article| class without optional arguments only the |hep-paper| package \cite{hep-paper}. + +| \documentclass{article}|\\ +| \usepackage{hep-paper}| + +The most notable changes after loading the |hep-paper| package is the change of some \hologo{LaTeX} defaults. +The paper and font sizes are set to A4 and \unit[11]{pt}, respectively. +Additionally, the paper geometry is set to the values known from the (depreciated) |a4wide| package \cite{a4wide} using the |geometry| package \cite{geometry}. +Furthermore, the font is changed to |lmodern| \cite{lmodern} with |microtype| \cite{microtype} optimizations. +Finally, \PDF hyperlinks are implemented with the |hyperref| package \cite{hyperref}. + +\subsection{Options} + +\DescribeMacro{paper} +The |paper=|\meta{format} option loads the specified paper format. +The possible \meta{formats} are: +|a0|, |a1|, |a2|, |a3|, |a4|, |a5|, |a6|, +|b0|, |b1|, |b2|, |b3|, |b4|, |b5|, |b6|, +|c0|, |c1|, |c2|, |c3|, |c4|, |c5|, |c6|, +|ansia|, |ansib|, |ansic|, |ansid|, |ansie|, +|letter|, |executive|, |legal|. +The default is |a4|. + +\DescribeMacro{font} +The |font=|\meta{size} option loads the specified font size. +The possible \meta{sizes} are: +|8pt|, |9pt|, |10pt|, |11pt|, |12pt|, |14pt|, |17pt|, |20pt|. +The default is \unit[11]{pt}. + +\DescribeMacro{lang} +The |lang|=\meta{name} option switches the document language to the chosen value. +The possible values are given by the |babel| package \cite{babel}. +The default is |british|. + +\DescribeMacro{sansserif} +The |sansserif| option switches the document including math to the sans serif font shape. + +\DescribeMacro{parskip} +The |parskip| option makes use of the |parskip| package \cite{parskip} and changes how two paragraphs are separated from each other. +The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. +\footnote{Although the |parskip| option is used for this document, it is recommended only for very few document types such as technical manuals or answers to referees.} + +\subsubsection{Deactivation} + +The \software{hep-paper} package loads few bigger packages which have a large impact on the document. +The deactivation options prevent such adjustments. + +\DescribeMacro{defaults} +The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. + +\DescribeMacro{title} +The |title=false| option deactivates the title page adjustments. + +\DescribeMacro{bibliography} +The |bibliography|=\meta{key} option prevents the automatic loading of the |biblatex| package \cite{biblatex} if \meta{key}=|false|. +Otherwise the \meta{key} is passed as |style| string to the |biblatex| package. + +\DescribeMacro{glossaries} +The |glossaries=false| option deactives acronyms and the use of the |glossaries| package \cite{glossaries}. + +\DescribeMacro{references} +The |references=false| option prevents the |cleveref| pacakge \cite{cleveref} from being loaded and deactivates further redefinitions of reference macros. + +\subsubsection{Compatibility} + +The compatibility options activate the compatibility mode for certain classes and packages used for publications in high energy physics. +They are mostly suitable combinations of options described in the previous section. +If \software{hep-paper} is able to detect the presence of such a class or package, \ie if it is loaded before the \software{hep-paper} package, the compatibility mode is activated automatically. + +\DescribeMacro{beamer} +The |beamer| option activates the \software{beamer} \cite{beamer} compatibility mode. + +\DescribeMacro{jhep} +The |jhep| option activates the \software{JHEP} \cite{jhep} compatibility mode. + +\DescribeMacro{jcap} +The |jcap| option activates the \software{JCAP} \cite{jcap} compatibility mode. + +\DescribeMacro{revtex} +The |revtex| option activates the REV\hologo{TeX} \cite{revtex} compatibility mode. + +\DescribeMacro{pos} +The |pos| option activates the \software{PoS} compatibility mode. + +\subsubsection{Reactivation} + +The \software{hep-paper} package deactivates unrecommended macros, which can be reactivated manually. + +\DescribeMacro{manualplacement} +The |manualplacement| option reactivates manual float placement. + +\DescribeMacro{eqnarray} +The |eqnarray| option reactivates the depreciated |eqnarray| environment. + +\section{Macros and environments} + +\subsection{Title page} + +\DescribeMacro{\author} +\DescribeMacro{\affiliation} +\DescribeMacro{\email} +In order to facilitate multiple authors with different affiliations the |authblk| package \cite{authblk} is loaded. +The following lines add \eg two authors with different affiliations + +| \author[1]{Author one \email{Email one}}|\\ +| \affiliation[1]{Affiliation one}|\\ +| \author[2]{Author two \email{Email two}}|\\ +| \affiliation[1,2]{Affiliation two}| + +\DescribeMacro{\title} +The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. + +\DescribeMacro{\preprint} +The |\preprint|\marg{numer} macro places a pre-print number in the upper right corner of the title page. + +\DescribeEnv{abstract} +The |abstract| environment is adjusted to not start with an indentation. + +\subsection{Text} + +Hyphenation is provided by the |babel| package \cite{babel} and quotation commands are provided by the |csquotes| package \cite{csquotes} recommended by the |babel| package. +\DescribeMacro{\enquote} +\DescribeMacro{\MakeOuterQuote} +The latter package provides the convenient macros |\enquote|\marg{text} and |\MakeOuterQuote{"}| allowing to leave the choice of quotation marks to \hologo{LaTeX} and use |"| instead of the pair |``| and |''|, respectively. + +\DescribeMacro{\eg} +\DescribeMacro{\vs} +The |foreign| package \cite{foreign} defines macros such as |\eg|, |\ie|, |\cf|, and |\vs| which are typeset as \eg, \ie, \cf, and \vs. + +\DescribeMacro{\no} +The |\no|\marg{number} macro is typeset as \no{123}. + +\DescribeMacro{\software} +The |\software|\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}. + +\DescribeMacro{\online} +The |\online|\marg{url}\marg{text} macro combines the features of the |\href|\marg{url} \marg{text} \cite{hyperref} and the |\url|\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-paper}{ctan.org/pkg/hep-paper}. + +The |inlinelist| and |enumdescript| environments are defined using the |enumitem| package \cite{enumitem}. + +\DescribeMacro{inlinelist} +\begin{columns} +|The three main points are| +|\begin{inlinelist}| + +| \item one| + +| \item two| + +| \item three| + +|\end{inlinelist}| +\column +The three main points are +\begin{inlinelist} + \item one + \item two + \item three +\end{inlinelist} +\end{columns} + +\DescribeMacro{enumdescript} +\begin{columns}[.6] +|\begin{enumdescript}[label=\Roman*)]| + +| \item{First} one| + +| \item{Second} two| + +| \item{Third} three| + +|\end{enumdescript}| +\column +\begin{enumdescript}[label=\Roman*)] + \item{First} one + \item{Second} two + \item{Third} three +\end{enumdescript} +\end{columns} + +\DescribeMacro{\textsc} +A bold versions \textbf{\textsc{Small Caps}} and a sans serif version of \textsf{\textsc{Small Caps}} is provided, using the |sansmathfonts| package \cite{sansmathfonts}. + +\DescribeMacro{\underline} +\DescribeMacro{\overline} +The |\underline| macro is redefined to allow line-breaks using the |ulem| package \cite{ulem}. +The |\overline| macro is extended to also \overline{overline} text outside of math environments. + +\DescribeMacro{\useparskip} +\DescribeMacro{\useparindent} +If the |parskip| option is activated the |\useparindent| macro switches back the usual parindent mode, while the |\useparskip| macro switches to the parskip mode. + +\subsubsection{References and footnotes} + +\DescribeMacro{\cref} +References are extended with the |cleveref| package \cite{cleveref}, which allows to \eg just type |\cref|\marg{key} in order to write \enquote{figure 1}. +Furthermore, the |cleveref| package allows to reference multiple objects within one |\cref|\marg{key1,key2}. + +\DescribeMacro{\cite} +Citations are adjusted to not start on a new line in order to avoid the repeated use of |~\cite|\marg{key}. + +\DescribeMacro{\ref} +\DescribeMacro{\eqref} +\DescribeMacro{\subref} +References are also adjusted to not start on a new line and are redefined in order to handle multiple references at once. + +\DescribeMacro{\footnote} +Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. + +\subsubsection{Acronyms} + +\DescribeMacro{\acronym} +\DescribeMacro{\shortacronym} +\DescribeMacro{\longacronym} +The |\acronym|\meta{*}\oarg{typeset abbreviation}\marg{abbreviation}\meta{*}\marg{definition}\oarg{plural\linebreak[4]definition} macro generates the singular |\|\meta{abbreviation} and plural |\|\meta{abbreviation}|s| macros. +The first star prevents the addition of an \enquote{s} to the abbreviation plural. +The second star restores the \hologo{TeX} default of swallowing subsequent white space. +The long form is only shown at the first appearance of these macros, later appearances generate the abbreviation with a hyperlink to the long form. +Capitalization at the beginning of paragraphs and sentences is ensured. +The |\shortacronym| and |\longacronym| macros are drop-in replacements of the |\acronym| macro showing only the short or long form of their acronym. +\DescribeMacro{\resetacronym} +\DescribeMacro{\dummyacronym} +The first use form of the acronym can be enforced by resetting the acronym counter with |\resetacronym|\marg{key}. +If the acronym counter equals one at the end of the document the short form of the acronym is not introduced. +Placing a |\dummyacronym|\marg{key} at the end of the document ensures that the short form is introduced. + +\subsection{Math} + +The |mathtools| \cite{mathtools} and |amssymb| \cite{amsfonts} packages are loaded. +They in turn load the \hologo{AmSLaTeX} |amsmath| \cite{amsmath} and |amsfonts| \cite{amsfonts} packages. +\DescribeMacro{\mathbf} +Bold math, via |\mathbf| is improved by the |bm| package \cite{bm}, \ie ($ A b \Gamma \delta \mathbf A \mathbf b \mathbf \Gamma \mathbf \delta$). +Macros switching to |bfseries| such as |\section|\marg{text} are ensured to also typeset math in bold. +This may cause trouble if bold symbols carry an additional non-implicit meaning. +\DescribeMacro{\text} +The |\text|\marg{text} macro makes it possible to write text within math mode, \ie ($ \text A \text b \text \Gamma \text \delta \text{\textbf A} \text{\textbf b} \text{\textbf \Gamma} \text{\textbf \delta}$). +The often used |\mathrm|\marg{text} and |{\rm|\meta{text}|}| macros are \emph{not} the correct tool for this purpose, as they switch to roman font shape. +This behaviour conflicts \eg with the |sansserif| package option. +\DescribeMacro{\mathsf} +The math sans serif alphabet is redefined to be italic sans serif if the main text is serif and italic serif if the main text is sans serif, \ie ($\mathsf A \mathsf b \mathsf \Gamma \mathsf \delta \mathbf{\mathsf A} \mathbf{\mathsf b} \mathbf{\mathsf \Gamma} \mathbf{\mathsf \delta}$). +\DescribeMacro{\mathscr} +The |\mathcal| font \ie ($\mathcal{ABCD}$) is accompanied by the |\mathscr| font \ie ($\mathscr{ABCD}$). +\DescribeMacro{\mathbb} +The |\mathbb| font is improved by the |doublestroke| package \cite{dsfont} and adjusted depending on the |sansserif| option \ie ($\mathbb{Ah1}$). +\DescribeMacro{\mathfrak} +Finally, the |\mathfrak| font is also available \ie ($\mathfrak{AaBb12}$). +Details about the font handling in \hologo{TeX} can be found in \ccite{fntguide}. + +\DescribeMacro{\nicefrac} +\DescribeMacro{\flatfrac} +The |\frac|\marg{number}\marg{number} macro is accompanied by |\nicefrac|\linebreak[1]\marg{number}\linebreak[1]\marg{number} and |\flatfrac|\marg{number}\marg{number} leading to $\frac12$, $\nicefrac 12$, and $\flatfrac 12$. +\DescribeMacro{\diag} +\DescribeMacro{\sgn} +Diagonal matrix |\diag| and signum |\sgn| operators are defined. + +\DescribeMacro{\mathdef} +The |\mathdef|\marg{name}\oarg{arguments}\marg{code} macro (re-)defines macros only within math mode without changing the text mode definition. + +\DescribeMacro{\i} +\DescribeMacro{\d} +The imaginary unit $\i$ and the differential $\d$ are defined using this functionality. + +\DescribeMacro{\numberwithin} +For longer paper it can be useful to re-number the equation in accordance with the section numbering |\numberwithin{equation}{section}|. +\DescribeMacro{subequations} +In order to further reduce the size the of equation counter it can be useful to wrap |align| environments with multiple rows in a |subequations| environment. +Both macros are provided by the |amsmath| package. + +\DescribeMacro{eqnarray} +The depreciated |eqnarray| environment is undefined as long this behaviour is not prevented by the |eqnarray| package option. +The |split|, |multline|, |align|, |multlined|, |aligned|, |alignedat|, and |cases| environments of the |amsmath| and |mathtools| packages should be used instead. + +\DescribeMacro{equation} +Use the |equation| environment for short equations. + +\begin{columns} +|\begin{equation}| + +| left = right \ .| + +|\end{equation}| +\column +\begin{equation} +\framebox[2em]{left\strut} = \framebox[7em]{right\strut} \ . +\end{equation} +\end{columns} + +\DescribeMacro{multline} +Use the |multline| environment for longer equations. + +\begin{columns} +|\begin{multline}| + +| left = right 1 \\| + +| + right 2 \ .| + +|\end{multline}| +\column +\begin{multline} +\framebox[2em]{left\strut} = \framebox[7em]{right 1\strut} \\ +\framebox[7em]{+ right 2\strut} \ . + \end{multline} +\end{columns} + +\DescribeMacro{split} +Use the |split| sub environment for equations in which multiple equal signs should be aligned. + +\begin{columns} +|\begin{equation} \begin{split}| + +| left &= right 1 \\| + +| &= right 2 \ .| + +|\end{split} \end{equation}| +\column +\begin{equation} +\begin{split} +\framebox[2em]{left\strut} &= \framebox[7em]{right 1\strut} \\ +&= \framebox[7em]{right 2\strut} \ . +\end{split} +\end{equation} +\end{columns} + +\DescribeMacro{align} +Use the |align| environment for the vertical alignment and horizontal distribution of multiple equations. + +\begin{columns} +|\begin{subequations}| +|\begin{align}| + +| left &= right \ , &| +| left &= right \ , \\| +| left &= right \ , &| +| left &= right \ .| + +|\end{align}| +|\end{subequations}| +\column +\begin{subequations} +\begin{align} +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , & +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , \\ +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ , & +\framebox[2em]{left\strut} &= \framebox[3em]{right\strut} \ . +\end{align} +\end{subequations} +\end{columns} + +\DescribeMacro{aligned} +Use the |aligned| environment within a |equation| environment if the aligned equations should be labeled with a single equation number. + +\DescribeMacro{multlined} +Use the |multlined| environment if either |split| or |align| contain very long lines. + +\begin{columns} +|\begin{equation} \begin{split}| + +| left &= right 1 \\ &=| +| \begin{multlined}[t]| +| right 2 \\ + right 3 \ .| +| \end{multlined}| +|\end{split} \end{equation}| +\column +\begin{equation} +\begin{split} +\framebox[2em]{left\strut} &= \framebox[7em]{right 1\strut} \\ &= + \begin{multlined}[t] + \framebox[7em]{right 2\strut} \\ + \framebox[7em]{+ right 3\strut} \ . +\end{multlined} +\end{split} +\end{equation} +\end{columns} + +\DescribeMacro{alignat} +Use the |alignat| environment together with the |\mathllap| macro for the alignment of multiple equations with vastly different lengths. + +\begin{columns} +|\begin{subequations}| +|\begin{alignat}{2}| + +| left &= long right && \ , \\| + +| le. 2 &= ri. 2 \ , &| + +| \mathllap{le. 3 = ri. 3} & \ .| +|\end{alignat}| +|\end{subequations}| +\column +\begin{subequations} +\begin{alignat}{2} +\framebox[2em]{left\strut} &= +\framebox[11em]{long right\strut} && \ , \\ +\framebox[2em]{le.\ 2\strut} +&= \framebox[2.5em]{ri.\ 2\strut} \ , & +\mathllap{\framebox[2em]{le.\ 3\strut} += \framebox[2.5em]{ri.\ 3\strut}} & \ . +\end{alignat} +\end{subequations} +\end{columns} + +As a rule of thumb if you have to use |\notag|, |\nonumber|, or perform manual spacing via |\quad| you are probably using the wrong environment. + +\subsubsection{Physics} + +Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the |fixmath| \cite{fixmath} and |alphabeta| \cite{alphabeta} packages. +This allows differentiations like +\begin{align} +\sigma &= \unit[5]{fb} \ , & &\text{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \text{\unit[5]{\mu m}} \ , +\label{eq:greek} +\end{align} +and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. +Additionally, Greek letters can also be directly typed using Unicode. + +\DescribeMacro{\ev} +\DescribeMacro{\pdv} +\DescribeMacro{\comm} +\DescribeMacro{\order} +The |physics| package \cite{physics} provides additional macros such as +\begin{align} +&\ev{\phi} \ , +&&\pdv[n]{f}{x} \ , +&&\comm{A}{B} \ , +&&\order{x^2} \ , +&&\eval{x}_0^\infty \ , +&&\det(M)\ . +\end{align} + +\DescribeMacro{\cancel} +\DescribeMacro{\slashed} +The |\cancel|\marg{characters} macro from the |cancel| \cite{cancel} package and the |\slashed| \marg{character} macro from the |slashed| \cite{slashed} package allow to $\cancel{\text{cancel}}$ math and use the Dirac slash notation \ie $\slashed \partial$, respectively. + +\DescribeMacro{\overleftright} +A better looking over left right arrow is defined \ie $\overleftright{\partial}$. + +\DescribeMacro{\unit} +\DescribeMacro{\inv} +The correct spacing for units, \cf \cref{eq:greek}, is provided by the macro |\unit|\oarg{value} \marg{unit} from the |units| package \cite{units} which can also be used in text mode. +The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inverse units such as \unit[5]{\inv{fb}} typeset via |\unit[5]{\inv{fb}}|. + +\subsection{Floats} + +\DescribeEnv{figure} +\DescribeEnv{table} +Automatic float placement is adjusted to place a single float at the top of pages and to reduce the number of float pages, using the \hologo{LaTeX} macros. + +|\setcounter{bottomnumber}{0}| \hfill no floats at the bottom of a page (default 1) \\ +|\setcounter{topnumber}{1}| \hfill a single float at the top of a page (default 2) \\ +|\setcounter{dbltopnumber}{1}| \hfill same for full widths floats in two-column mode \\ +|\renewcommand{\textfraction}{.1}| \hfill large floats are allowed (default 0.2)\\ +|\renewcommand{\topfraction}{.9}| \hfill (default 0.7) \\ +|\renewcommand{\dbltopfraction}{.9}| \hfill (default 0.7) \\ +|\renewcommand{\floatpagefraction}{.8}| \hfill float pages must be full (default 0.5) + +Additionally, manual float placement is deactivated but can be reactivated using the |manualplacement| package option. +It is however recommended to archive the desired design by adjusting above macros. +The most useful float placement is usually archived by placing the float \emph{in front} of the paragraph it is referenced in first. +\DescribeMacro{\raggedright} +The float environments have been adjusted to center their content. +The usual behaviour can be reactivated using |\raggedright|. + +\begin{table} +\begin{panels}{.6} +\raggedright +|\begin{panels}{.6}|\\ +|code|\\ +|\panel{.4}|\\ +|\begin{tabular}...\end{tabular}|\\ +|\end{panels}|\\ +\caption{Code for this panel environment.} +\label{tab:panels} +\panel{.4} +\begin{tabular}{cccc} +\toprule +\multicolumn{2}{c}{one}& \multicolumn{2}{c}{two} \\ \cmidrule(r){1-2} \cmidrule(l){3-4} +\multirow{2}{*}{a} & b & c & d \\ + & b & c & d \\ +\bottomrule +\end{tabular} +\caption{The \protecting{|booktabs|} and \protecting{|multirow|} features.} +\label{tab:booktabs} +\end{panels} +\caption{Example use of the \protecting{|panels|} environment in Panel \subref{tab:panels} and the features from the \protecting{|booktabs|} and \protecting{|multirow|} packages in Panel \subref{tab:booktabs}. +} \label{tab:table} +\end{table} + +\DescribeEnv{panels} +\DescribeMacro{\panel} +The |panels| environment makes use of the |subcaption| package \cite{subcaption}. +It provides sub-floats and takes as mandatory argument either the number of sub-floats (default~2) or the width of the first sub-float as fraction of the |\linewidth|. +Within the |\begin{panels}|\oarg{vertical alignment}\marg{width} environment the |\panel| macro initiates a new sub-float. +In the case that the width of the first sub-float has been given as an optional argument to the |panels| environment the |\panel|\marg{width} macro takes the width of the next sub-float as mandatory argument. +The example code is presented in \cref{tab:panels}. + +\DescribeEnv{tabular} +The |booktabs| \cite{booktabs} and |multirow| \cite{multirow} packages are loaded enabling publication quality tabulars such as in \cref{tab:booktabs}. + +\DescribeMacro{\graphic} +\DescribeMacro{\graphics} +The |graphicx| package \cite{graphicx} is loaded and the |\graphic|\oarg{width}\marg{figure} macro is defined, which is a wrapper for the |\includegraphics|\marg{figure} macro and takes the figure width as fraction of the |\linewidth| as optional argument (default~1). +If the graphics are located in a sub-folder its path can be indicated by |\graphics|\marg{subfolder}. + +\subsection{Bibliography} + +\DescribeMacro{\bibliography} +\DescribeMacro{\printbibliography} +The |biblatex| package \cite{biblatex} is loaded for bibliography management. +The user has to add the line |\bibliography|\marg{my.bib} to the preamble of the document and |\printbibliography| at the end of the document. +The bibliography is generated by \software{Biber} \cite{biber}. +|biblatex| is extended to be able to cope with the |collaboration| and |reportNumber| fields provided by \online{https://inspirehep.net}{inspirehep.net} and a bug in the volume number is fixed. +Additionally, the PubMed IDs are recognized and \online{https://ctan.org}{ctan.org}, \online{https://github.com}{github.com}, \online{https://gitlab.com}{gitlab.com}, \online{https://bitbucket.org}{bitbucket.org}, \online{https://www.launchpad.net}{launchpad.net}, \online{https://sourceforge.net}{sourceforge.net}, and \online{https://hepforge.org}{hepforge.org} are valid |eprinttype|s. +\DescribeMacro{erratum} +Errata can be included using the |related| feature. + +| \article{|\meta{key1}|,|\\ +| |\dots|,|\\ +| relatedtype="erratum",|\\ +| related="|\meta{key2}|",|\\ +| }|\\ +| \article{|\meta{key2}|,|\\ +| |\dots|,|\\ +| }| + +\section{Conclusion} + +The |hep-paper| package provides a matching selection of preloaded packages and additional macros enabling the user to focus on the content instead of the layout by reducing the amount of manual tasks. +The majority of the loaded packages are fairly lightweight, the others can be deactivated with package options. + +\DescribeMacro{arxiv-collector} +\nolinkurl{arxiv.org} \cite{arxiv} requires the setup dependent |bbl| files instead of the original |bib| files, which causes trouble if the local \hologo{LaTeX} version differs from the one used by arXiv. +The |arxiv-collector| python script \cite{arxiv-collector} alleviates this problem by collecting all files necessary for publication on arXiv (including figures). + +% \ifshort +\printbibliography + +\end{document} % -% |\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). +%</documentation> +% \fi % % \StopEventually{ % \printbibliography % \PrintChanges % } % +% \addtocontents{toc}{\protect\clearpage} +% \clearpage % \appendix % +% \ifshort +%<*package> +% \fi +% % \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} @@ -513,7 +683,6 @@ % \begin{macro}{paper} % Define a |paper=|\meta{size} option. % Make A4 paper the default. -% \DoNotIndex{\DeclareStringOption} % \begin{macrocode} \DeclareStringOption[a4]{paper} % \end{macrocode} @@ -527,14 +696,6 @@ % \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. @@ -543,29 +704,35 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{sansserif} +% Define the option pair |serif| and |sansserif| controling the font shape of the whole document. +% \begin{macrocode} +\DeclareBoolOption[true]{serif} +\DeclareComplementaryOption{sansserif}{serif} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{parskip} % Define the option pair |parindent| and |parskip| controlling the separation of paragraphs. -% \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} +% \subsection{Deactivation} +% +% \begin{macro}{defaults} +% Define the |defaults| option which deactivates the |paper| and |font| options and prevents the change of the class defaults by this package. % \begin{macrocode} -\DeclareBoolOption[true]{serif} -\DeclareComplementaryOption{sansserif}{serif} +\DeclareBoolOption[false]{defaults} % \end{macrocode} % \end{macro} % -% \begin{macro}{eqnarray} -% Provide the option |eqnarray| for reactivating the |eqnarray| environment. -% \DoNotIndex{\ifhep@eqnarray} +% \begin{macro}{title} +% Provide the option |title| for deactivating redefinition of title macros. % \begin{macrocode} -\DeclareBoolOption[false]{eqnarray} +\DeclareBoolOption[true]{title} % \end{macrocode} % \end{macro} % @@ -578,25 +745,24 @@ % % \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{macro}{references} +% Provide the option |references| for preventing the |cleveref| package from being loaded redefinitions of reference macros. % \begin{macrocode} -\DeclareBoolOption[false]{manualplacement} +\DeclareBoolOption[true]{references} % \end{macrocode} % \end{macro} % -% \begin{macro}{title} -% Provide the option |title| for deactivating redefinition of title macros. -% \DoNotIndex{\ifhep@title} +% \subsection{Compatibility} +% +% \begin{macro}{beamer} +% Provide the option |beamer| for \software{beamer} \cite{beamer} compatibility mode. % \begin{macrocode} -\DeclareBoolOption[true]{title} +\DeclareBoolOption[false]{beamer} % \end{macrocode} % \end{macro} % @@ -628,30 +794,61 @@ % \end{macrocode} % \end{macro} % +% \subsection{Reactivation} +% +% \begin{macro}{eqnarray} +% Provide the option |eqnarray| for reactivating the |eqnarray| environment. +% \begin{macrocode} +\DeclareBoolOption[false]{eqnarray} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{manualplacement} +% Provide the |manualplacement| option for reactivating the manual placement of floats. +% \begin{macrocode} +\DeclareBoolOption[false]{manualplacement} +% \end{macrocode} +% \end{macro} +% % \subsection{Process options} % % \begin{macrocode} \ProcessKeyvalOptions* % \end{macrocode} % +% \subsection{Set compatibility} +% % Set the |pos| compatibility options. -% \DoNotIndex{\ifhep@pos,\setkeys,\fi} % \begin{macrocode} +\@ifclassloaded{PoS}{\setkeys{hep}{pos}}{} \ifhep@pos - \setkeys{hep}{title=false, defaults} + \setkeys{hep}{defaults, title=false} + \DeclareRobustCommand\boldmath{\@nomath\boldmath\mathversion{bold}} +\fi +% \end{macrocode} +% +% Set the |beamer| compatibility options. +% \begin{macrocode} +\@ifclassloaded{beamer}{\setkeys{hep}{beamer}}{} +\ifhep@beamer + \setkeys{hep}{defaults, title=false, references=false, sansserif} \fi % \end{macrocode} % % Set the |revtex| compatibility options. -% \DoNotIndex{\ifhep@revtex} % \begin{macrocode} +\@ifclassloaded{revtex4}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-1}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-2}{\setkeys{hep}{revtex}}{} \ifhep@revtex - \setkeys{hep}{defaults, title=false, lang=american, bibliography=false} + \setkeys{hep}{defaults, title=false, bibliography=false, lang=american} \fi % \end{macrocode} % % Define the SISSA conditional. % \begin{macrocode} +\@ifpackageloaded{jheppub}{\setkeys{hep}{jhep}}{} +\@ifpackageloaded{jcappub}{\setkeys{hep}{jcap}}{} \newif\ifhep@sissa \ifhep@jhep\hep@sissatrue \else @@ -670,29 +867,16 @@ urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue, linkcolor=blue, menucolor=blue, pagecolor=blue }{hyperref} - \hoffset 0pt - \voffset 0pt + \PassOptionsToPackage{reset}{geometry} \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} +% Set the JHEP compatibility options. % \begin{macrocode} -\RequirePackage{ifluatex} -\RequirePackage{ifxetex} -\newif\ifxetexorluatex -\ifxetex\xetexorluatextrue -\else - \ifluatex\xetexorluatextrue - \else\xetexorluatexfalse - \fi +\ifhep@jhep + \voffset 0in + \hoffset 0in \fi % \end{macrocode} -% \end{macro} % \section{Text} % @@ -705,7 +889,6 @@ % 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} @@ -713,46 +896,76 @@ \fi % \end{macrocode} % +% \begin{macro}{\ifxetexorluatex} +% Load the |ifluatex| \cite{ifluatex} and |ifxetex| \cite{ifxetex} packages. +% Define the |\ifxetexorluatex| conditional checking if the package is executed by \hologo{LuaLaTeX} or \hologo{XeLaTeX}. +% \begin{macrocode} +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} +\newif\ifxetexorluatex +\ifxetex\xetexorluatextrue +\else + \ifluatex\xetexorluatextrue + \else\xetexorluatexfalse + \fi +\fi +% \end{macrocode} +% \end{macro} +% % Pick the correct font encoding depending on the engine used and load the |fontenc| package \cite{fontenc} with this encoding. % For details of the font encoding see \cite{encguide}. -% \DoNotIndex{\def,\@encoding} % \begin{macrocode} \ifxetexorluatex - \def\@encoding{TU} + \def\hep@encoding{TU} \else - \def\@encoding{T1} + \def\hep@encoding{T1} \fi -\RequirePackage[\@encoding]{fontenc} +\RequirePackage[\hep@encoding]{fontenc} % \end{macrocode} -% Load the |lmodern| font \cite{lmodern}, the |textcomp| extension \cite{textcomp}, and the |microtype| font optimization \cite{microtype}. +% Fix the remaining coputer modern fonts \cite{fix-cm}, load the |lmodern| font \cite{lmodern}, the |textcomp| extension \cite{textcomp}, and the |microtype| font optimization \cite{microtype}. % \begin{macrocode} +\RequirePackage{fix-cm} \RequirePackage{lmodern} \RequirePackage{textcomp} \RequirePackage{microtype} % \end{macrocode} % -% Define sans serif small caps font shapes. +% Define bold and sans serif small caps font shapes using the fontspec package \cite{fontspec}. % The font abbreviations are % \begin{description}[nosep] +% \item[lmr] Latin modern roman font % \item[lmss] Latin modern sans serif font % \item[cmss] Computer modern sans serif font % \item[xcmss] Extended computer modern sans serif font (from the |sansmathfonts| package \cite{sansmathfonts}) % \item[bx] Bold extended series +% \item[b] Bold series % \item[m] Medium weight and width series % \item[c] Medium weight, condensed width series % \item[sc] Caps and small caps font shape % \end{description} -% \DoNotIndex{\DeclareFontShape,\sffamily} % \begin{macrocode} \ifxetexorluatex - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{% + \RequirePackage{fontspec} + \setmainfont{Latin Modern Roman}[ + UprightFeatures={SmallCapsFont={[lmromancaps10-regular.otf]}}, + BoldFeatures={ + SmallCapsFeatures={Letters=SmallCaps}, + SmallCapsFont={[cmunbx.otf]} + } + ] + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{% <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% }{} \else + \rmfamily + \DeclareFontShape{\hep@encoding}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{} \sffamily - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} \fi % \end{macrocode} @@ -764,29 +977,26 @@ % \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} +% Load the |ulem| package \cite{ulem} for hyphenable underlined text. % \begin{macrocode} -\RequirePackage{soul} -\let\underline\ul +\RequirePackage[normalem]{ulem} +\let\underline\uline % \end{macrocode} % \end{macro} % % \subsection{Font size} \label{sec:font size} % % Undefine previously defined font sizes and load the \hologo{LaTeX} font size file corresponding to the font size option. -% \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} + \def\hep@remove@pt#1pt{#1} + \edef\hep@pt@size{\expandafter\hep@remove@pt\hep@font} \let\small\relax \let\footnotesize\relax \let\scriptsize\relax @@ -796,7 +1006,7 @@ \let\LARGE\relax \let\huge\relax \let\Huge\relax - \input{size\@ptsize.clo} + \input{size\hep@pt@size.clo} \fi % \end{macrocode} @@ -805,7 +1015,6 @@ %\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} @@ -836,7 +1045,6 @@ % %\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}]{% @@ -846,8 +1054,7 @@ % \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} +% Define the |\online|\marg{text}\marg{url} macro combining the features of the |\href| and the |\url| macros. % \begin{macrocode} \newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} % \end{macrocode} @@ -862,7 +1069,6 @@ % % \begin{environment}{inlinelist} % Define an inline list environment. -% \DoNotIndex{\newlist,\setlist*,\ } % \begin{macrocode} \newlist{inlinelist}{enumerate*}{1} \setlist*[inlinelist,1]{% @@ -873,48 +1079,40 @@ % % \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 + \let\hep@item\item \renewcommand{\item}[2][]{ - \ifx&##1&\old@item\else\old@item[##1]\fi + \ifx&##1&\hep@item\else\hep@item[##1]\fi \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax } }{\end{enum@descript}} % \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} + \RequirePackage{geometry} + \geometry{% + \hep@paper paper, + hscale=.75, + vscale=.8, + vmarginratio=3:4, + includeheadfoot + } \fi % \end{macrocode} %\begin{macro}{\useparskip} %\begin{macro}{\useparindent} % Load the |parskip| package \cite{parskip} if requested and provide two commands switching between the two paragraph modes. -% \DoNotIndex{\ifhep@parindent,\setlength,\parskip,\baselineskip,\parindent} % \begin{macrocode} \ifhep@parindent\else \RequirePackage{parskip} @@ -946,11 +1144,14 @@ % \end{macrocode} % \begin{macro}{\diag} -% Provide a diag operator +% \begin{macro}{\sgn} +% Provide the |\diag| and |\sgn| operators % \begin{macrocode} \DeclareMathOperator{\diag}{diag} +\DeclareMathOperator{\sgn}{sgn} % \end{macrocode} % \end{macro} +% \end{macro} % \begin{macro}{\mathdef} % Define the |\mathdef|\marg{name}\oarg{arguments}\marg{macro} macro which (re-)defines macros in math mode only. @@ -980,17 +1181,28 @@ % \end{macro} % \begin{macro}{\overline} -% Redefine |\overline| to be a text macro using the |soul| package \cite{soul}. +% Redefine |\overline| to be a text macro using the |ulem| package \cite{ulem}. % Extend it as a math macro with the original definition from |amsmath| \cite{amsmath}. % \begin{macrocode} -\def\overline#1{{\setul{-2ex}{}\ul{#1}}} +\def\overline#1{{\renewcommand{\ULdepth}{-1.9ex}{}\uline{#1}}} \DeclareRobustCommand{\over@line}[1]{\@@overline{#1}} \mathdef{\overline}{\over@line} % \end{macrocode} % \end{macro} +% \begin{macro}{\left} +% \begin{macro}{\right} +% Load the |mleftright| package \cite{mleftright} and adjust the spacing around |\left| and |\right|. +% \begin{macrocode} +\RequirePackage{mleftright} +\mleftright +% \end{macrocode} +% \end{macro} +% \end{macro} + + % \begin{macro}{eqnarray} -% Undefine the |eqnarray| environment. +% Undefine the |eqnarray| environment if not prevented by package option. % \begin{macrocode} \ifhep@eqnarray\else \let\eqnarray\@undefined @@ -1005,7 +1217,7 @@ % 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} +\ifhep@serif\providecommand{\bmmax}{2}\else\providecommand{\bmmax}{1}\fi \RequirePackage{bm} \let\mathbf\bm \g@addto@macro\bfseries{\boldmath} @@ -1014,7 +1226,7 @@ % % \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 also math mode is sans serif using the |sfmath| package \cite{sfmath} if the sans serif option is used. % Ensure that |\mathsf| is italic as well as sans serif and sans for sans and sans serif documents, respectively. % The font abbreviations are % \begin{description}[nosep] @@ -1028,48 +1240,51 @@ % \begin{macrocode} \ifhep@serif \RequirePackage{fixmath} - \DeclareMathAlphabet{\mathsf}{OML}{cmbr}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmbr}{bx}{it} + \newcommand\hep@sf@font{cmbr} \else \RequirePackage[slantedGreek]{sfmath} \RequirePackage{sansmathfonts} - \DeclareMathAlphabet{\mathsf}{OML}{cmm}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmm}{bx}{it} + \newcommand\hep@sf@font{cmm} \fi +\SetMathAlphabet{\mathsf}{normal}{OML}{\hep@sf@font}{m}{it} +\SetMathAlphabet{\mathsf}{bold}{OML}{\hep@sf@font}{bx}{it} % \end{macrocode} % \end{macro} % \begin{macro}{\mathscr} % Load the |mathrsfs| package for the |\mathscr| math script font. % \begin{macrocode} -\RequirePackage{mathrsfs} +\DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n} % \end{macrocode} % \end{macro} % \begin{macro}{\mathbb} -% Load the |bbm| package \cite{bbm-macros} for the |\mathbb| math blackboard style font in (sans-) serif. +% Load the |dsfont| package \cite{dsfont} and adjust the |\mathbb| math blackboard style font according to the (sans-) serif option. % \begin{macrocode} -\RequirePackage{bbm} \ifhep@serif - \let\mathbb\mathbbm + \newcommand\hep@bb@font{dsrom} \else - \let\mathbb\mathbbmss + \newcommand\hep@bb@font{dsss} \fi +\SetMathAlphabet{\mathbb}{normal}{U}{\hep@bb@font}{m}{n} % \end{macrocode} % \end{macro} % \subsection{Physics notation} % +% \begin{macro}{\cancel} % \begin{macro}{\slashed} % \begin{macro}{\unit} % Load the |physics| package \cite{physics} which provides macros useful for publications in physics. -% Additionally, load the |slashed| package \cite{slashed} which provides the slashed macro for Dirac notation. +% Additionally, load the |cancel| \cite{cancel} and |slashed| \cite{slashed} packages which provide the |\cancel| and |\slashed| macros. % Finally, load the |units| package \cite{units} which provides the |\units| and |\nicefrac| macros. % \begin{macrocode} \RequirePackage{physics} +\RequirePackage{cancel} \RequirePackage{slashed} \RequirePackage{units} % \end{macrocode} % \end{macro} % \end{macro} +% \end{macro} % \begin{macro}{\inv} % Provide a macro for the inverse, useful in combination with the unit macro in text mode. @@ -1106,11 +1321,13 @@ % % 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} +\setcounter{bottomnumber}{0} % 1 +\setcounter{topnumber}{1} % 2 +\setcounter{dbltopnumber}{1} % 2 +\renewcommand{\topfraction}{.9} % .7 +\renewcommand{\dbltopfraction}{.9} % .7 +\renewcommand{\textfraction}{.1} % .2 +\renewcommand{\floatpagefraction}{.8} % .5 % \end{macrocode} % \begin{environment}{figure} @@ -1143,9 +1360,25 @@ % \subsection{Sub-floats} % -% Prevent the |caption| package \cite{caption} from complaining about the |revtex| class. +% \begin{macro}{\ifhep@journal} +% Define a new journal conditional. % \begin{macrocode} -\ifhep@revtex +\newif\ifhep@journal +\ifhep@sissa\hep@journaltrue +\else + \ifhep@revtex\hep@journaltrue + \else + \ifhep@pos\hep@journaltrue + \else\hep@journalfalse + \fi + \fi +\fi +% \end{macrocode} +% \end{macro} +% +% Prevent the |caption| package \cite{caption} from complaining about the journal classes and packages. +% \begin{macrocode} +\ifhep@journal \setlength\abovecaptionskip{\f@size\p@} \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% @@ -1163,7 +1396,7 @@ % \end{macrocode} % % Load the |subcaption| package \cite{subcaption}. -% Provide old |\subcaption@minipage| macro. +% Provide the old |\subcaption@minipage| macro. % \begin{macrocode} \RequirePackage[subrefformat=parens]{subcaption} \captionsetup{font=small} @@ -1250,30 +1483,26 @@ % \section{Title page} % -% \begin{macro}{\date} -% Allow empty date field. +% Begin of |title| conditional. % \begin{macrocode} \ifhep@title +% \end{macrocode} +% +% \begin{macro}{\date} +% Allow absent date field. +% \begin{macrocode} \date{} % \end{macrocode} % \end{macro} - +% % \subsection{Authors} % % \begin{macro}{\author} -% Allow empty author field. +% Allow absent 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} @@ -1281,6 +1510,19 @@ \renewcommand\Affilfont{\footnotesize} % \end{macrocode} % +% \begin{macro}{\email} +% Define a macro for typesetting emails. +% Redefine this macro to place the email address in a footnote if called from within the |\author| macro |\author{|$\langle name\rangle$ |\email{|$\langle email\rangle$|}}|. +% \begin{macrocode} +\newcommand{\email}[1]{\online{mailto:#1}{#1}} +\let\hep@author\author +\def\author{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \hep@author +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\affiliation} % Define the |\affiliation| macro, ensure that linebreaks happen after a comma. % \begin{macrocode} @@ -1319,9 +1561,9 @@ % \begin{macrocode} \RequirePackage{atbegshi} \RequirePackage{picture} -\let\old@maketitle\maketitle +\let\hep@maketitle\maketitle \renewcommand{\maketitle}{% - \old@maketitle% + \hep@maketitle% \AtBeginShipoutFirst{% \put( \textwidth+\oddsidemargin-\widthof{\@preprint@box}, @@ -1338,12 +1580,12 @@ % Adjust the |abstract| environment to not start with indentation. % \begin{macrocode} \@ifundefined{abstract}{}{% - \let\old@abstract\abstract% - \renewcommand\abstract{\old@abstract\noindent\ignorespaces}% + \let\hep@abstract\abstract% + \renewcommand\abstract{\hep@abstract\noindent\ignorespaces}% } % \end{macrocode} % \end{environment} -% End of check for |title| option. +% End of |title| conditional. % \begin{macrocode} \fi % \end{macrocode} @@ -1363,35 +1605,18 @@ % \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. +% Define a new sorting template that sorts only multi key |\cite| entries according to their date and leaves the rest of the bibliography entries in the order they appear in the text. % \begin{macrocode} \providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme} \DeclareSortingTemplate{hep-paper}{ \sort{\citeorder} - \sort[final]{ - \field{sortkey} - } - \sort{ - \field{sortyear} - \field{year} - \literal{9999} - } - \sort{ - \field{month} - } - \sort{ - \field{eprint} - \field{doi} - } - \sort{ - \field{sorttitle} - \field{title} - } - \sort{ - \field{subtitle} - \field{volume} - } + \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} @@ -1407,16 +1632,17 @@ % \begin{macro}{erratum} % Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field. % \begin{macrocode} -\NewBibliographyString{erratum} -\DefineBibliographyStrings{english}{erratum={Erratum}} +\NewBibliographyString{erratum,erratums} +\DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}} +\providecommand{\relateddelimerratum}{\addsemicolon\space} % \end{macrocode} % \end{macro} % % \begin{macro}{\printbibliography} % Allow the bibliography to be printed sloppy % \begin{macrocode} -\let\old@printbibliography\printbibliography -\renewcommand{\printbibliography}{\sloppy\old@printbibliography} +\let\hep@printbibliography\printbibliography +\renewcommand{\printbibliography}{\sloppy\hep@printbibliography} % \end{macrocode} % \end{macro} @@ -1425,15 +1651,18 @@ % \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{macro}{\reg@exp@pmc} +% Define regular expressions in order to deal with inconsistent journal title and volume naming as well as \URL protocols and the PMCID. % \begin{macrocode} \newcommand{\reg@exp@one}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}} \newcommand{\reg@exp@two}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}} \newcommand{\reg@exp@url}{\regexp{\A(ht|f)tp(s)?:\/\/}} +\newcommand{\reg@exp@pmc}{\regexp{\A(PMC)?}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\DeclareSourcemap} % Use the |\DeclareSourcemap| feature. @@ -1471,19 +1700,58 @@ % \end{macrocode} % \end{macro} % \begin{macro}{url} -% Remove the protocol from URL. +% Remove the protocol from \URL. % \begin{macrocode} \map{ \step[fieldsource=url, final=true] \step[fieldset=protocollessurl, origfieldval, final=true] \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}] } +% \end{macrocode} +% \end{macro} +% \begin{macro}{pmc} +% Remove the PMC from the PMCID. +% \begin{macrocode} + \map{ + \step[fieldsource=pmcid, final=true] + \step[fieldset=pmc, origfieldval, final=true] + \step[fieldsource=pmc, match=\reg@exp@pmc, replace={}] + } }% } % \end{macrocode} % \end{macro} % \end{macro} % +% \begin{macro}{\letbibmacro} +% Provide the |\letbibmacro| macro for old |biblatex| installations. +% \begin{macrocode} +\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{collaboration} +% Execute the author macro even if only the collaboration information if present and override the author information with collaboration information if present. +% \begin{macrocode} +\renewbibmacro*{author/translator+others}{% + \ifboolexpr{ + test \ifuseauthor and ( + not test {\ifnameundef{author}} or + not test {\iffieldundef{collaboration}} + ) + } + {\usebibmacro{author}} + {\usebibmacro{translator+others}} +} +\letbibmacro{hep@bib@author}{author} +\renewbibmacro*{author}{% + \iffieldundef{collaboration}{% + \usebibmacro{hep@bib@author}}{\textit{\printfield{collaboration}}% + }% +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{In:} % Remove spurious \enquote{In:} if no journal is present. % \begin{macrocode} @@ -1494,7 +1762,7 @@ % \end{macro} % % \begin{macro}{url} -% Show URLs without the protocol. +% Show \URLs without the protocol. % \begin{macrocode} \DeclareFieldFormat{url}{% \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% @@ -1502,49 +1770,55 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{collaboration} -% Override the author information with collaboration information if present. +% \begin{macro}{\bib@online} +% Private |\bib@online| macro % \begin{macrocode} -\renewbibmacro*{author}{% - \iffieldundef{collaboration}{% - \printnames{author}}{\textbf{\printfield{collaboration}}% - }% +\newcommand{\bib@online}[2]{% + \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% } % \end{macrocode} % \end{macro} % -% \begin{macro}{\letbibmacro} -% Provide the |\letbibmacro| macro for old |biblatex| installations. +% \begin{macro}{pmid} +% \begin{macro}{pmcid} +% Present PubMed IDs. % \begin{macrocode} -\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} +\DeclareFieldFormat{pmid}{% + \mkbibacro{PM}\addcolon\space% + \bib@online{https://www.ncbi.nlm.nih.gov/pubmed/#1}{#1}% +} +\DeclareFieldFormat{pmc}{% + \mkbibacro{PMC}\addcolon\space% + \bib@online{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC#1}{#1}% +} % \end{macrocode} % \end{macro} +% \end{macro} % +% \begin{macro}{pmcid} +% \begin{macro}{pmid} % \begin{macro}{reportnumber} -% Add the pre-print information if present. +% Add the pre-print and PubMed information if present. % \begin{macrocode} -\letbibmacro{doi+eprint+url-old}{doi+eprint+url} +\letbibmacro{hep-doi+eprint+url}{doi+eprint+url} \renewbibmacro*{doi+eprint+url}{% - \usebibmacro{doi+eprint+url-old} - \iffieldundef{reportnumber}{}{\textls[0]{% + \usebibmacro{hep-doi+eprint+url} + \iffieldundef{pmc}{% + \iffieldundef{pmid}{}{\printfield{pmid}\newunit}% + }{\printfield{pmc}\newunit} + \iffieldundef{reportnumber}{}{% \newunitpunct\textnumero\intitlepunct% \textsc{\small\printfield{reportnumber}}% - }}% + \newunit% + }% } % \end{macrocode} % \end{macro} +% \end{macro} +% \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} @@ -1615,26 +1889,22 @@ % \end{macrocode} % \end{macro} % - +% % End check for bibliography option. % \begin{macrocode} \fi % \end{macrocode} -% \section{Hyperlinks and References} +% \section{Hyperlinks, Footnotes and References} \label{sec:hyperlinks} % % Load the |hyperref| package \cite{hyperref} enable Unicode encoding and hide links. % % \begin{macrocode} \RequirePackage{hyperref} \hypersetup{ - pdfencoding=auto, - psdextra, - hidelinks, - linktoc=all, - breaklinks=true, - pdfcreator={}, - pdfproducer={} + 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. @@ -1652,15 +1922,42 @@ \ifhep@revtex \AtBeginShipout{\hypersetup{pdftitle={\@title}}} \else - \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \fi \fi \ifhep@title \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else - \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \fi \fi % \end{macrocode} +% \subsection{Footnotes} +% +% Place a hyperlink from the footnote back to its referencing label using the |footnotebackref| package \cite{footnotebackref}. +% \begin{macrocode} +\def\BackrefFootnoteTag{} +\RequirePackage{footnotebackref} +% \end{macrocode} +% +% \begin{macro}{\footnote} +% Ensure that no spaces appear before the footmark or at the beginning of the footnote. +% \begin{macrocode} +\let\@foot@note\footnote +\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} +% \end{macrocode} +% \end{macro} + +% \subsection{References} +% +% Begin of |references| conditional +% \begin{macrocode} +\ifhep@references +% \end{macrocode} +% % \begin{macro}{\cref} % Improve reference using the |cleveref| package \cite{cleveref}. % @@ -1668,13 +1965,12 @@ \RequirePackage[noabbrev, nameinlink]{cleveref} \newcommand{\creflastconjunction}{, and\nobreakspace} \crefname{enumi}{point}{points} -\Crefname{enumi}{Point}{Points} +\crefname{inlinelisti}{point}{points} % \end{macrocode} % \end{macro} - +% %\begin{macro}{\no@break@before} % Define a macro able to prevent line breaks. -% \DoNotIndex{\no@break@before,\ifvmode,\ifhmode,\ifdim,\lastskip,\unskip,\nobreakspace} % \begin{macrocode} \newcommand\no@break@before{% \relax\ifvmode\else% @@ -1687,11 +1983,11 @@ } % \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 +\let\hep@ref\ref \AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}} % \end{macrocode} % \end{macro} @@ -1707,11 +2003,11 @@ % \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} +\let\hep@subref\subref +\renewcommand\subref{\no@break@before\hep@subref} \renewcommand*\subcaption@ref[2]{\begingroup% \caption@setoptions{sub}% - \subcaption@reffmt\p@subref{\old@ref#1{sub@#2}}% + \subcaption@reffmt\p@subref{\hep@ref#1{sub@#2}}% \endgroup} % \end{macrocode} % \end{macro} @@ -1741,14 +2037,19 @@ } % \end{macrocode} % \end{macro} +% +% End of |references| conditional +% \begin{macrocode} +\fi +% \end{macrocode} % \subsection{Citations} % % \begin{macro}{\cite} % Adjust |\cite|\marg{key} in order to prevent preceding line breaks. % \begin{macrocode} -\let\old@cite\cite -\renewcommand\cite{\no@break@before\old@cite} +\let\hep@cite\cite +\renewcommand\cite{\no@break@before\hep@cite} % \end{macrocode} % \end{macro} @@ -1793,7 +2094,7 @@ % \section{Acronyms} % -% Acronyms are implemented with the |glossaries-extra| package \cite{glossaries-extra} which is an extension of the |glossaries| package \cite{glossaries}. +% Acronyms are implemented with the |glossaries-extra| package \cite{glossaries-extra} which is an extension of the |glossaries| package \cite{glossaries} and must be loaded after the |hyperref| pacakge in \cref{sec:hyperlinks}. % \begin{macrocode} \ifhep@glossaries \RequirePackage[nostyles]{glossaries-extra} @@ -1872,15 +2173,21 @@ % \begin{macrocode} \NewDocumentCommand{\acronym}{somsmo}{ \newabbreviation[ - longplural=\IfNoValueTF{#6}{#5s}{#6}, - \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} + type=\acronymtype, + sort=#3, + \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}, + longplural=\IfNoValueTF{#6}{#5s}{#6} ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} % \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}% + \if@begin@of@sentence{% + \ifglsused{#3}{\cgls{#3}}{\cGls{#3}}% + }{\cgls{#3}}% + \ifnum\glsentrycurrcount{#3}>1\relax + \IfBooleanTF{#4}{}{\@\xspace}% + \else\@\xspace\fi } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. @@ -2028,19 +2335,46 @@ % \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}% +\@ifundefined{endabstract}{}{% + \let\end@hep@abstract\endabstract% + \renewcommand\endabstract{\glsresetall\end@hep@abstract}% } % \end{macrocode} % \end{macro} % % \begin{macro}{\tableofcontents} +% \begin{macro}{\listoffigures} +% \begin{macro}{\listoftables} % Adjust the |\tableofcontents| macro to never show the long form of acronyms. % \begin{macrocode} -\let\old@table@of@contents\tableofcontents +\let\hep@table@of@contents\tableofcontents \renewcommand\tableofcontents{% - \glsunsetall\old@table@of@contents\glsresetall% + \glsunsetall\hep@table@of@contents\glsresetall% +} +\let\hep@list@of@figures\listoffigures +\renewcommand\listoffigures{% + \glsunsetall\hep@list@of@figures\glsresetall% +} +\let\hep@list@of@tables\listoftables +\renewcommand\listoftables{% + \glsunsetall\hep@list@of@tables\glsresetall% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\acronyms} +% Add a possibility to have different groups of acronyms. +% \begin{macrocode} +\NewDocumentCommand{\acronyms}{om}{% + \IfNoValueTF{#1}{ + \newglossary{#2}{#2.in}{#2.out}{#2}% + \renewcommand{\acronymtype}{#2}% + }{ + \newglossary{#1}{#1.in}{#1.out}{#2}% + \renewcommand{\acronymtype}{#1}% + } } % \end{macrocode} % \end{macro} @@ -2050,67 +2384,90 @@ \fi % \end{macrocode} % +% \ifshort %</package> +%<*datamodel> +% \fi % % \section{Biblatex datamodel file} \label{sec:data model} % -%<*datamodel> - -% \begin{macro}{reportnumber} % \begin{macro}{collaboration} +% \begin{macro}{reportnumber} +% \begin{macro}{pmid} +% \begin{macro}{pmcid} +% \begin{macro}{pmc} % \begin{macro}{protocollessurl} % Define the |dbx| file containing the |hep-paper| datamodel. % \begin{macrocode} \DeclareDatamodelFields[type=field, datatype=literal]{ - reportnumber, - collaboration, + collaboration, reportnumber, pmid, pmcid, pmc, } \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} \DeclareDatamodelEntryfields{ - reportnumber, - collaboration, - protocollessurl, + collaboration, reportnumber, pmid, pmcid, pmc, protocollessurl, } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % +% \ifshort %</datamodel> +% \fi % % \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 +% makeindex -s gglo.ist -o hep-paper-implementation.gls hep-paper-implementation.glo +% makeindex -s gglo.ist -o hep-paper-implementation.ind hep-paper-implementation.idx % \begin{macro}{\refstepcounter@...} % Adjust the |cleveref| |\refstepcounter@noarg| and |\refstepcounter@optarg| to use the |\@currentlabel| in order to fix problems with |\subref|. % \begin{macrocode} -\def\refstepcounter@noarg#1{% - \cref@old@refstepcounter{#1}% - \cref@constructprefix{#1}{\cref@result}% - \@ifundefined{cref@#1@alias}% - {\def\@tempa{#1}}% - {\def\@tempa{\csname cref@#1@alias\endcsname}}% - \protected@edef\cref@currentlabel{% - [\@tempa][\arabic{#1}][\cref@result]% - \noexpand\@currentlabel% - }% changed -} +% \def\refstepcounter@noarg#1{% +% \cref@old@refstepcounter{#1}% +% \cref@constructprefix{#1}{\cref@result}% +% \@ifundefined{cref@#1@alias}% +% {\def\@tempa{#1}}% +% {\def\@tempa{\csname cref@#1@alias\endcsname}}% +% \protected@edef\cref@currentlabel{% +% [\@tempa][\arabic{#1}][\cref@result]% +% \noexpand\@currentlabel% +% }% changed +% } +% +% \def\refstepcounter@optarg[#1]#2{% +% \cref@old@refstepcounter{#2}% +% \cref@constructprefix{#2}{\cref@result}% +% \@ifundefined{cref@#1@alias}% +% {\def\@tempa{#1}}% +% {\def\@tempa{\csname cref@#1@alias\endcsname}}% +% \protected@edef\cref@currentlabel{% +% [\@tempa][\arabic{#2}][\cref@result]% +% \noexpand\@currentlabel% changed +% }% +% } +% % \end{macrocode} +% % \end{macro} +% +% +% \usepackage{contour} +% \renewcommand{\ULdepth}{1.8pt} +% \contourlength{0.8pt} +% \newcommand{\myuline}[1]{% +% \uline{\phantom{#1}}\llap{\contour{white}{#1}}% +% } -\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 - }% -} +% \begin{macro}{\mathpzc} +% Define the |\mathpzc| math script font based on the Zapf Chancery PostScript font. +% \begin{macrocode} +% \DeclareFontFamily{OT1}{pzc}{} +% \DeclareFontShape{OT1}{pzc}{m}{it}{<-> s * [1.15] pzcmi7t}{} +% \DeclareMathAlphabet{\mathpzc}{OT1}{pzc}{m}{it} % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins index 881f9745b5c..8de85de7c6c 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins @@ -11,7 +11,6 @@ %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. %% - \input docstrip.tex \keepsilent \usedir{tex/latex/hep-paper} @@ -29,8 +28,9 @@ LaTeX version 2005/12/01 or later. \endpreamble \generate{ - \file{hep-paper.sty}{\from{hep-paper.dtx}{package}} - \file{hep-paper.dbx}{\from{hep-paper.dtx}{datamodel}} + \file{hep-paper.sty}{\from{hep-paper-implementation.dtx}{package}} + \file{hep-paper.dbx}{\from{hep-paper-implementation.dtx}{datamodel}} + \file{hep-paper-documentation.tex}{\from{hep-paper-implementation.dtx}{documentation}} } \Msg{*********************************************************} diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx index aa450a9d6ca..d19b0be720e 100644 --- a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% hep-paper.dtx (with options: `datamodel') +%% hep-paper-implementation.dtx (with options: `datamodel') %% This is a generated file. %% Copyright (C) 2019-2020 by Jan Hajer %% This file may be distributed and/or modified under the @@ -14,17 +14,14 @@ %% http://www.latex-project.org/lppl.txt %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. -\ProvidesFile{hep-paper.dbx}[2020/05/01 v1.3 HEP-Paper biblatex data model] +\ProvidesFile{hep-paper.dbx}[2020/08/01 v1.4 HEP-Paper biblatex data model] \DeclareDatamodelFields[type=field, datatype=literal]{ - reportnumber, - collaboration, + collaboration, reportnumber, pmid, pmcid, pmc, } \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} \DeclareDatamodelEntryfields{ - reportnumber, - collaboration, - protocollessurl, + collaboration, reportnumber, pmid, pmcid, pmc, protocollessurl, } \endinput diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty index de375a04761..3885186def3 100644 --- a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% hep-paper.dtx (with options: `package') +%% hep-paper-implementation.dtx (with options: `package') %% This is a generated file. %% Copyright (C) 2019-2020 by Jan Hajer %% This file may be distributed and/or modified under the @@ -15,7 +15,7 @@ %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{hep-paper}[2020/05/01 v1.3 Publications in High Energy Physics] +\ProvidesPackage{hep-paper}[2020/08/01 v1.4 Publications in High Energy Physics] \RequirePackage{pdftexcmds} \RequirePackage{kvoptions} @@ -25,28 +25,41 @@ } \DeclareStringOption[a4]{paper} \DeclareStringOption[11pt]{font} -\DeclareBoolOption[false]{defaults} \DeclareStringOption[british]{lang} -\DeclareBoolOption[true]{parindent} -\DeclareComplementaryOption{parskip}{parindent} \DeclareBoolOption[true]{serif} \DeclareComplementaryOption{sansserif}{serif} -\DeclareBoolOption[false]{eqnarray} +\DeclareBoolOption[true]{parindent} +\DeclareComplementaryOption{parskip}{parindent} +\DeclareBoolOption[false]{defaults} +\DeclareBoolOption[true]{title} \DeclareStringOption[numeric-comp]{bibliography} \DeclareBoolOption[true]{glossaries} -\DeclareBoolOption[false]{manualplacement} -\DeclareBoolOption[true]{title} +\DeclareBoolOption[true]{references} +\DeclareBoolOption[false]{beamer} \DeclareBoolOption[false]{revtex} \DeclareBoolOption[false]{jhep} \DeclareBoolOption[false]{jcap} \DeclareBoolOption[false]{pos} +\DeclareBoolOption[false]{eqnarray} +\DeclareBoolOption[false]{manualplacement} \ProcessKeyvalOptions* +\@ifclassloaded{PoS}{\setkeys{hep}{pos}}{} \ifhep@pos - \setkeys{hep}{title=false, defaults} + \setkeys{hep}{defaults, title=false} + \DeclareRobustCommand\boldmath{\@nomath\boldmath\mathversion{bold}} +\fi +\@ifclassloaded{beamer}{\setkeys{hep}{beamer}}{} +\ifhep@beamer + \setkeys{hep}{defaults, title=false, references=false, sansserif} \fi +\@ifclassloaded{revtex4}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-1}{\setkeys{hep}{revtex}}{} +\@ifclassloaded{revtex4-2}{\setkeys{hep}{revtex}}{} \ifhep@revtex - \setkeys{hep}{defaults, title=false, lang=american, bibliography=false} + \setkeys{hep}{defaults, title=false, bibliography=false, lang=american} \fi +\@ifpackageloaded{jheppub}{\setkeys{hep}{jhep}}{} +\@ifpackageloaded{jcappub}{\setkeys{hep}{jcap}}{} \newif\ifhep@sissa \ifhep@jhep\hep@sissatrue \else @@ -61,10 +74,18 @@ urlcolor=blue, anchorcolor=blue, citecolor=blue, filecolor=blue, linkcolor=blue, menucolor=blue, pagecolor=blue }{hyperref} - \hoffset 0pt - \voffset 0pt + \PassOptionsToPackage{reset}{geometry} +\fi +\ifhep@jhep + \voffset 0in + \hoffset 0in \fi +\RequirePackage{alphabeta} +\ifhep@serif\else + \RequirePackage{sansmathfonts} + \renewcommand\familydefault{\sfdefault} +\fi \RequirePackage{ifluatex} \RequirePackage{ifxetex} \newif\ifxetexorluatex @@ -74,30 +95,38 @@ \else\xetexorluatexfalse \fi \fi - -\RequirePackage{alphabeta} -\ifhep@serif\else - \RequirePackage{sansmathfonts} - \renewcommand\familydefault{\sfdefault} -\fi \ifxetexorluatex - \def\@encoding{TU} + \def\hep@encoding{TU} \else - \def\@encoding{T1} + \def\hep@encoding{T1} \fi -\RequirePackage[\@encoding]{fontenc} +\RequirePackage[\hep@encoding]{fontenc} +\RequirePackage{fix-cm} \RequirePackage{lmodern} \RequirePackage{textcomp} \RequirePackage{microtype} \ifxetexorluatex - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{% + \RequirePackage{fontspec} + \setmainfont{Latin Modern Roman}[ + UprightFeatures={SmallCapsFont={[lmromancaps10-regular.otf]}}, + BoldFeatures={ + SmallCapsFeatures={Letters=SmallCaps}, + SmallCapsFont={[cmunbx.otf]} + } + ] + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->cmssbxcsc10}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{% <-9>cmsscsc8<9-10>cmsscsc9<10->cmsscsc10% }{} \else + \rmfamily + \DeclareFontShape{\hep@encoding}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{} \sffamily - \DeclareFontShape{\@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} - \DeclareFontShape{\@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{bx}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{b}{sc}{<->ssub*xcmss/bx/sc}{} + \DeclareFontShape{\hep@encoding}{lmss}{m}{sc}{<->ssub*xcmss/m/sc}{} \fi \ifxetexorluatex\else @@ -105,11 +134,11 @@ \fi \RequirePackage[\hep@lang]{babel} \RequirePackage{csquotes} -\RequirePackage{soul} -\let\underline\ul +\RequirePackage[normalem]{ulem} +\let\underline\uline \ifhep@defaults\else - \def\remove@pt#1pt{#1} - \edef\@ptsize{\expandafter\remove@pt\hep@font} + \def\hep@remove@pt#1pt{#1} + \edef\hep@pt@size{\expandafter\hep@remove@pt\hep@font} \let\small\relax \let\footnotesize\relax \let\scriptsize\relax @@ -119,7 +148,7 @@ \let\LARGE\relax \let\huge\relax \let\Huge\relax - \input{size\@ptsize.clo} + \input{size\hep@pt@size.clo} \fi \ifnum\pdf@strcmp{\hep@lang}{american}=0 @@ -151,19 +180,22 @@ \setlist[enum@descript]{label=\arabic*.} \newenvironment{enumdescript}[1][]{ \begin{enum@descript}[#1] - \let\old@item\item + \let\hep@item\item \renewcommand{\item}[2][]{ - \ifx&##1&\old@item\else\old@item[##1]\fi + \ifx&##1&\hep@item\else\hep@item[##1]\fi \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax } }{\end{enum@descript}} -\let\@foot@note\footnote -\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} - \ifhep@defaults\else - \RequirePackage[\hep@paper paper]{geometry} - \geometry{hscale=.75, vscale=.8, vmarginratio=3:4, includeheadfoot} + \RequirePackage{geometry} + \geometry{% + \hep@paper paper, + hscale=.75, + vscale=.8, + vmarginratio=3:4, + includeheadfoot + } \fi \ifhep@parindent\else @@ -186,6 +218,7 @@ \allowdisplaybreaks[1] \DeclareMathOperator{\diag}{diag} +\DeclareMathOperator{\sgn}{sgn} \RequirePackage{xparse} \DeclareDocumentCommand{\mathdef}{mO{0}m}{% @@ -203,38 +236,42 @@ \AtBeginDocument{\mathdef{\i}{\operatorname{i}}} -\def\overline#1{{\setul{-2ex}{}\ul{#1}}} +\def\overline#1{{\renewcommand{\ULdepth}{-1.9ex}{}\uline{#1}}} \DeclareRobustCommand{\over@line}[1]{\@@overline{#1}} \mathdef{\overline}{\over@line} +\RequirePackage{mleftright} +\mleftright + \ifhep@eqnarray\else \let\eqnarray\@undefined \let\endeqnarray\@undefined \fi -\newcommand{\bmmax}{2} +\ifhep@serif\providecommand{\bmmax}{2}\else\providecommand{\bmmax}{1}\fi \RequirePackage{bm} \let\mathbf\bm \g@addto@macro\bfseries{\boldmath} \ifhep@serif \RequirePackage{fixmath} - \DeclareMathAlphabet{\mathsf}{OML}{cmbr}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmbr}{bx}{it} + \newcommand\hep@sf@font{cmbr} \else \RequirePackage[slantedGreek]{sfmath} \RequirePackage{sansmathfonts} - \DeclareMathAlphabet{\mathsf}{OML}{cmm}{m}{it} - \SetMathAlphabet{\mathsf}{bold}{OML}{cmm}{bx}{it} + \newcommand\hep@sf@font{cmm} \fi -\RequirePackage{mathrsfs} -\RequirePackage{bbm} +\SetMathAlphabet{\mathsf}{normal}{OML}{\hep@sf@font}{m}{it} +\SetMathAlphabet{\mathsf}{bold}{OML}{\hep@sf@font}{bx}{it} +\DeclareMathAlphabet{\mathscr}{U}{rsfs}{m}{n} \ifhep@serif - \let\mathbb\mathbbm + \newcommand\hep@bb@font{dsrom} \else - \let\mathbb\mathbbmss + \newcommand\hep@bb@font{dsss} \fi +\SetMathAlphabet{\mathbb}{normal}{U}{\hep@bb@font}{m}{n} \RequirePackage{physics} +\RequirePackage{cancel} \RequirePackage{slashed} \RequirePackage{units} @@ -249,11 +286,13 @@ } \newcommand{\overleftright}[1]{\oset{\leftrightarrow}{#1}} -\renewcommand{\textfraction}{0.01} -\setcounter{topnumber}{1} -\renewcommand{\topfraction}{.9} -\setcounter{bottomnumber}{0} -\renewcommand{\floatpagefraction}{.8} +\setcounter{bottomnumber}{0} % 1 +\setcounter{topnumber}{1} % 2 +\setcounter{dbltopnumber}{1} % 2 +\renewcommand{\topfraction}{.9} % .7 +\renewcommand{\dbltopfraction}{.9} % .7 +\renewcommand{\textfraction}{.1} % .2 +\renewcommand{\floatpagefraction}{.8} % .5 \let\@figure@\figure% \let\@end@figure@\endfigure% @@ -275,7 +314,17 @@ }{\@end@table@} \fi% -\ifhep@revtex +\newif\ifhep@journal +\ifhep@sissa\hep@journaltrue +\else + \ifhep@revtex\hep@journaltrue + \else + \ifhep@pos\hep@journaltrue + \else\hep@journalfalse + \fi + \fi +\fi +\ifhep@journal \setlength\abovecaptionskip{\f@size\p@} \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% @@ -335,13 +384,15 @@ \ifhep@title \date{} - \author{} -\AtEndOfClass{\newcommand{\email}[1]{% - \unskip\thanks{\online{mailto:#1}{#1}} -}} \RequirePackage{authblk} \renewcommand\Affilfont{\footnotesize} +\newcommand{\email}[1]{\online{mailto:#1}{#1}} +\let\hep@author\author +\def\author{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \hep@author +} \newcommand\active@comma{,\penalty-5\relax} \newcommand\cat@comma@active{\catcode`\,\active} {\cat@comma@active\gdef,{\active@comma}} @@ -365,9 +416,9 @@ \RequirePackage{atbegshi} \RequirePackage{picture} -\let\old@maketitle\maketitle +\let\hep@maketitle\maketitle \renewcommand{\maketitle}{% - \old@maketitle% + \hep@maketitle% \AtBeginShipoutFirst{% \put( \textwidth+\oddsidemargin-\widthof{\@preprint@box}, @@ -377,8 +428,8 @@ } \@ifundefined{abstract}{}{% - \let\old@abstract\abstract% - \renewcommand\abstract{\old@abstract\noindent\ignorespaces}% + \let\hep@abstract\abstract% + \renewcommand\abstract{\hep@abstract\noindent\ignorespaces}% } \fi @@ -387,42 +438,27 @@ \providecommand{\DeclareSortingTemplate}{\DeclareSortingScheme} \DeclareSortingTemplate{hep-paper}{ \sort{\citeorder} - \sort[final]{ - \field{sortkey} - } - \sort{ - \field{sortyear} - \field{year} - \literal{9999} - } - \sort{ - \field{month} - } - \sort{ - \field{eprint} - \field{doi} - } - \sort{ - \field{sorttitle} - \field{title} - } - \sort{ - \field{subtitle} - \field{volume} - } + \sort[final]{\field{sortkey}} + \sort{\field{sortyear} \field{year} \literal{9999}} + \sort{\field{month}} + \sort{\field{eprint} \field{doi}} + \sort{\field{sorttitle} \field{title}} + \sort{\field{subtitle} \field{volume}} } \ExecuteBibliographyOptions{ sorting=hep-paper, giveninits=true } -\NewBibliographyString{erratum} -\DefineBibliographyStrings{english}{erratum={Erratum}} -\let\old@printbibliography\printbibliography -\renewcommand{\printbibliography}{\sloppy\old@printbibliography} +\NewBibliographyString{erratum,erratums} +\DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}} +\providecommand{\relateddelimerratum}{\addsemicolon\space} +\let\hep@printbibliography\printbibliography +\renewcommand{\printbibliography}{\sloppy\hep@printbibliography} \newcommand{\reg@exp@one}{\regexp{\A(\p{L}+)?\d+(\p{L}+)?\Z}} \newcommand{\reg@exp@two}{\regexp{\A(\p{L}+)?(\d+)(\p{L}+)?\Z}} \newcommand{\reg@exp@url}{\regexp{\A(ht|f)tp(s)?:\/\/}} +\newcommand{\reg@exp@pmc}{\regexp{\A(PMC)?}} \DeclareSourcemap{% \maps[datatype=bibtex, overwrite=true]{% \map{% @@ -444,6 +480,28 @@ \step[fieldset=protocollessurl, origfieldval, final=true] \step[fieldsource=protocollessurl, match=\reg@exp@url, replace={}] } + \map{ + \step[fieldsource=pmcid, final=true] + \step[fieldset=pmc, origfieldval, final=true] + \step[fieldsource=pmc, match=\reg@exp@pmc, replace={}] + } + }% +} +\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} +\renewbibmacro*{author/translator+others}{% + \ifboolexpr{ + test \ifuseauthor and ( + not test {\ifnameundef{author}} or + not test {\iffieldundef{collaboration}} + ) + } + {\usebibmacro{author}} + {\usebibmacro{translator+others}} +} +\letbibmacro{hep@bib@author}{author} +\renewbibmacro*{author}{% + \iffieldundef{collaboration}{% + \usebibmacro{hep@bib@author}}{\textit{\printfield{collaboration}}% }% } \renewbibmacro*{in:}{% @@ -452,24 +510,30 @@ \DeclareFieldFormat{url}{% \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% } -\renewbibmacro*{author}{% - \iffieldundef{collaboration}{% - \printnames{author}}{\textbf{\printfield{collaboration}}% - }% +\newcommand{\bib@online}[2]{% + \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% } -\providecommand{\letbibmacro}[2]{\csletcs{abx@macro@#1}{abx@macro@#2}} -\letbibmacro{doi+eprint+url-old}{doi+eprint+url} +\DeclareFieldFormat{pmid}{% + \mkbibacro{PM}\addcolon\space% + \bib@online{https://www.ncbi.nlm.nih.gov/pubmed/#1}{#1}% +} +\DeclareFieldFormat{pmc}{% + \mkbibacro{PMC}\addcolon\space% + \bib@online{https://www.ncbi.nlm.nih.gov/pmc/articles/PMC#1}{#1}% +} +\letbibmacro{hep-doi+eprint+url}{doi+eprint+url} \renewbibmacro*{doi+eprint+url}{% - \usebibmacro{doi+eprint+url-old} - \iffieldundef{reportnumber}{}{\textls[0]{% + \usebibmacro{hep-doi+eprint+url} + \iffieldundef{pmc}{% + \iffieldundef{pmid}{}{\printfield{pmid}\newunit}% + }{\printfield{pmc}\newunit} + \iffieldundef{reportnumber}{}{% \newunitpunct\textnumero\intitlepunct% \textsc{\small\printfield{reportnumber}}% - }}% + \newunit% + }% } -\newcommand{\bib@online}[2]{% - \ifhyperref{\online{#1}{#2}}{\nolinkurl{#2}}% -} \NewDocumentCommand{\new@eprint}{smm}{ \DeclareFieldFormat{eprint:#2}{% \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}% @@ -492,18 +556,13 @@ HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}% } \DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge} - \fi \RequirePackage{hyperref} \hypersetup{ - pdfencoding=auto, - psdextra, - hidelinks, - linktoc=all, - breaklinks=true, - pdfcreator={}, - pdfproducer={} + pdfencoding=auto, psdextra, + hidelinks, linktoc=all, breaklinks=true, + pdfcreator={}, pdfproducer={} } \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} \AtBeginDocument{ @@ -517,19 +576,28 @@ \ifhep@revtex \AtBeginShipout{\hypersetup{pdftitle={\@title}}} \else - \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdftitle={\@title}}} + \fi \fi \ifhep@title \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else - \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \ifhep@beamer\else + \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \fi \fi +\def\BackrefFootnoteTag{} +\RequirePackage{footnotebackref} +\let\@foot@note\footnote +\renewcommand{\footnote}[1]{\unskip\@foot@note{\ignorespaces#1}} + +\ifhep@references \RequirePackage[noabbrev, nameinlink]{cleveref} \newcommand{\creflastconjunction}{, and\nobreakspace} \crefname{enumi}{point}{points} -\Crefname{enumi}{Point}{Points} - +\crefname{inlinelisti}{point}{points} \newcommand\no@break@before{% \relax\ifvmode\else% \ifhmode% @@ -539,17 +607,16 @@ \fi% \fi% } - -\let\old@ref\ref +\let\hep@ref\ref \AtBeginDocument{\renewcommand\ref{\no@break@before\labelcref}} \renewcommand\eqref{\no@break@before\labelcref} -\let\old@subref\subref -\renewcommand\subref{\no@break@before\old@subref} +\let\hep@subref\subref +\renewcommand\subref{\no@break@before\hep@subref} \renewcommand*\subcaption@ref[2]{\begingroup% \caption@setoptions{sub}% - \subcaption@reffmt\p@subref{\old@ref#1{sub@#2}}% + \subcaption@reffmt\p@subref{\hep@ref#1{sub@#2}}% \endgroup} \newcommand{\subcref}[1]{\cref{sub@#1}} @@ -562,9 +629,10 @@ \DeclareRobustCommand{\labelcrefrange}[2]{% \@crefrangenostar{labelcref}{#1}{#2}% } +\fi -\let\old@cite\cite -\renewcommand\cite{\no@break@before\old@cite} +\let\hep@cite\cite +\renewcommand\cite{\no@break@before\hep@cite} \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else \NewBibliographyString{refname} @@ -630,12 +698,18 @@ \NewDocumentCommand{\acronym}{somsmo}{ \newabbreviation[ - longplural=\IfNoValueTF{#6}{#5s}{#6}, - \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} + type=\acronymtype, + sort=#3, + \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}, + longplural=\IfNoValueTF{#6}{#5s}{#6} ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} \expandafter\newcommand\csname#3\endcsname{% - \if@begin@of@sentence{\cGls{#3}}{\cgls{#3}}% - \IfBooleanTF{#4}{}{\@\xspace}% + \if@begin@of@sentence{% + \ifglsused{#3}{\cgls{#3}}{\cGls{#3}}% + }{\cgls{#3}}% + \ifnum\glsentrycurrcount{#3}>1\relax + \IfBooleanTF{#4}{}{\@\xspace}% + \else\@\xspace\fi } \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% \IfNoValueTF{#2}{#3}{#2} }% @@ -710,13 +784,30 @@ } \newcommand{\resetacronym}[1]{\protect\glsreset{#1}} \newcommand{\dummyacronym}[1]{\protect\glsunset{#1}} -\@ifundefined{abstract}{}{% - \let\end@old@abstract\endabstract% - \renewcommand\endabstract{\glsresetall\end@old@abstract}% +\@ifundefined{endabstract}{}{% + \let\end@hep@abstract\endabstract% + \renewcommand\endabstract{\glsresetall\end@hep@abstract}% } -\let\old@table@of@contents\tableofcontents +\let\hep@table@of@contents\tableofcontents \renewcommand\tableofcontents{% - \glsunsetall\old@table@of@contents\glsresetall% + \glsunsetall\hep@table@of@contents\glsresetall% +} +\let\hep@list@of@figures\listoffigures +\renewcommand\listoffigures{% + \glsunsetall\hep@list@of@figures\glsresetall% +} +\let\hep@list@of@tables\listoftables +\renewcommand\listoftables{% + \glsunsetall\hep@list@of@tables\glsresetall% +} +\NewDocumentCommand{\acronyms}{om}{% + \IfNoValueTF{#1}{ + \newglossary{#2}{#2.in}{#2.out}{#2}% + \renewcommand{\acronymtype}{#2}% + }{ + \newglossary{#1}{#1.in}{#1.out}{#2}% + \renewcommand{\acronymtype}{#1}% + } } \fi |