From 3b90242ab28c1c59546d3cf26e0663803f397407 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 2 Jun 2021 20:58:46 +0000 Subject: hep-paper (2jun21) git-svn-id: svn://tug.org/texlive/trunk@59436 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/hep-paper/bibliography.bib | 18 + .../latex/hep-paper/hep-paper-documentation.pdf | Bin 438581 -> 439620 bytes .../latex/hep-paper/hep-paper-documentation.tex | 43 +- .../latex/hep-paper/hep-paper-implementation.pdf | Bin 1052262 -> 1063749 bytes .../latex/hep-paper/hep-paper-implementation.dtx | 561 +++++++++++++++++---- .../source/latex/hep-paper/hep-paper.ins | 11 +- .../tex/latex/hep-paper/hep-acronyms.sty | 190 +++++++ .../tex/latex/hep-paper/hep-bibliography.sty | 184 +++++++ .../texmf-dist/tex/latex/hep-paper/hep-paper.dbx | 9 +- .../texmf-dist/tex/latex/hep-paper/hep-paper.sty | 327 +++++++++--- .../texmf-dist/tex/latex/hep-paper/hep-title.sty | 230 +++++++++ 11 files changed, 1372 insertions(+), 201 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/hep-paper/hep-acronyms.sty create mode 100644 Master/texmf-dist/tex/latex/hep-paper/hep-bibliography.sty create mode 100644 Master/texmf-dist/tex/latex/hep-paper/hep-title.sty diff --git a/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib b/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib index 6f37da89efe..b3e572a8510 100644 --- a/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib +++ b/Master/texmf-dist/doc/latex/hep-paper/bibliography.bib @@ -884,3 +884,21 @@ eprinttype = "ctan", eprint = "cm", } +@article{subdepth, +title = "The |subdepth| package", +subtitle = "Unify maths subscript height", +collaboration = "Will Robertson", +date = "2007", +eprinttype = "ctan", +eprint = "subdepth", +} + +@article{xpatch, +title = "The |xpatch| package", +subtitle = "Extending etoolbox patching commands", +collaboration = "Enrico Gregorio", +date = "2012", +eprinttype = "ctan", +eprint = "xpatch", +} + 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 index 4b509e1c48c..47244cfc403 100644 Binary files a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf and b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.pdf differ diff --git a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex index 6cfe5e2ab8e..6e3b0faefe2 100644 --- a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex +++ b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-documentation.tex @@ -15,7 +15,7 @@ %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. -\ProvidesFile{hep-paper-documentation.tex}[2020/12/01 v1.6 HEP-Paper documentation] +\ProvidesFile{hep-paper-documentation.tex}[2021/06/01 v1.7 HEP-Paper documentation] \RequirePackage[l2tabu, orthodox]{nag} \documentclass{ltxdoc} @@ -56,7 +56,7 @@ \title{The \textsmaller[1.5]{HEP\raisebox{.25ex}{--}PAPER} package\thanks{This document corresponds to \software{hep-paper}~\fileversion.}} \subtitle{Publications in high energy physics} \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} +\affiliation{Department of Physics, University of Basel, Klingelbergstraße 82, 4056 Basel, Switzerland} \preprint{Preprint-Number} \date{\filedate} @@ -85,6 +85,10 @@ The paper and font sizes are set to A4 and \unit[11]{pt}, respectively. Additionally, the paper geometry is adjusted using the \software{geometry} package \cite{geometry}. Furthermore, the font is changed to \LM using the \software{cfr-lm} package \cite{cfr-lm} with \software{microtype} \cite{microtype} optimizations. Finally, \PDF hyperlinks are implemented with the \software{hyperref} package \cite{hyperref}. +\DescribeMacro{hep-title} +\DescribeMacro{hep-bibliography} +\DescribeMacro{hep-acronyms} +If only subset of the functionality is needed one of the smaller style files \software{hep-title}, \software{hep-acronyms}, and \software{hep-bibliography} containing only the macros relevant to \cref{sec:title,sec:bibliography,sec:acronyms}, respectively. \subsection{Options} @@ -105,12 +109,15 @@ The possible \meta{sizes} are: The default is \unit[11]{pt}. \DescribeMacro{lang} -The |lang|=\meta{name} option switches the document language to one of the values values provided by the \software{babel} package \cite{babel}. +The |lang|=\meta{name} option switches the document language to one of the values provided by the \software{babel} package \cite{babel}. The default is |british|. \DescribeMacro{sansserif} The |sansserif| option switches the document including math to sans serif font shape. +\DescribeMacro{oldstyle} +The |oldstyle| option activates the use of oldstyle text- (\texto{123}) in favour of lining- (\textl{123}) figures in text mode. + \DescribeMacro{parskip} The |parskip| option changes how paragraphs are separated from each other using the \software{parskip} package \cite{parskip}. The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. @@ -131,9 +138,6 @@ The deactivation options can prevent such and other adjustments. \DescribeMacro{defaults} The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. -\DescribeMacro{lining} -The |lining| option deactivates the use of text- (\texto{123}) in favour of lining- (\textl{123}) figures in text mode. - \DescribeMacro{title} The |title=false| option deactivates the title page adjustments. @@ -188,14 +192,18 @@ The |eqnarray| option reactivates the depreciated |eqnarray| environment. If the global |twocolumn| option is present the page geometry is changed to cover almost the entire page. Additionally the |abstract*| environment is defined that generates a one column abstract and takes care of placing the title information. -\subsection{Title page} +\subsection{Title page} \label{sec:title} + +\DescribeMacro{\series} +The |\series|\marg{series} macro is defined using the \software{titling} package \cite{titling}. \DescribeMacro{\title} The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. \DescribeMacro{\subtitle} -The |\subtitle|\marg{subtitle} macro is defined using the \software{titling} package \cite{titling}. +The |\subtitle|\marg{subtitle} macro is defined. +\DescribeMacro{\editor} \DescribeMacro{\author} \DescribeMacro{\affiliation} \DescribeMacro{\email} @@ -307,7 +315,7 @@ References are also adjusted to not start on a new line. \DescribeMacro{\footnote} Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. -\subsubsection{Acronyms} +\subsubsection{Acronyms} \label{sec:acronyms} \DescribeMacro{\acronym} \DescribeMacro{\shortacronym} @@ -501,12 +509,11 @@ The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inver Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the \software{fixmath} \cite{fixmath} and \software{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 &= \unit[5]{\text \mu m} \ , -\label{eq:greek} +\begin{align} \label{eq:greek} +\sigma &= \unit[5]{fb} \ , & &\mbox{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \unit[5]{\text \mu m} \ , \end{align} and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. -Note that |\mathrm| and therefore |\unit| transform italic greek character to seemingly random upright characters, this can be avoided by using |\unit{\text\mu m}|. +Note that |\mathrm| and therefore |\unit| transform italic Greek character to seemingly random upright characters, this can be avoided by using |\unit{\text\mu m}|. Additionally, Greek letters can also be directly typed using Unicode. \DescribeMacro{\ev} @@ -552,17 +559,17 @@ The float environments have been adjusted to center their content. The usual behaviour can be reactivated using |\raggedright|. \begin{table} -\begin{panels}{.6} +\begin{panels}{2} \begin{verbatim} -\begin{panels}{.6} +\begin{panels}{2} code -\panel{.4} +\panel \begin{tabular}...\end{tabular} \end{panels} \end{verbatim} \caption{Code for this panel environment.} \label{tab:panels} -\panel{.4} +\panel \begin{tabular}{cccc} \toprule \multicolumn{2}{c}{one}& \multicolumn{2}{c}{two} \\ \cmidrule(r){1-2} \cmidrule(l){3-4} @@ -593,7 +600,7 @@ The \software{booktabs} \cite{booktabs} and \software{multirow} \cite{multirow} The \software{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} +\subsection{Bibliography} \label{sec:bibliography} \DescribeMacro{\bibliography} \DescribeMacro{\printbibliography} 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 index e9025b7d094..b46a793ae99 100644 Binary files a/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf and b/Master/texmf-dist/doc/latex/hep-paper/hep-paper-implementation.pdf differ diff --git a/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx b/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx index ea537d218e1..f334f869e09 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper-implementation.dtx @@ -17,10 +17,13 @@ % % \iffalse -%\NeedsTeXFormat{LaTeX2e}[2005/12/01] -%\ProvidesPackage{hep-paper}[2020/12/01 v1.6 Publications in High Energy Physics] -%\ProvidesFile{hep-paper.dbx}[2020/12/01 v1.6 HEP-Paper biblatex data model] -%\ProvidesFile{hep-paper-documentation.tex}[2020/12/01 v1.6 HEP-Paper documentation] +%\NeedsTeXFormat{LaTeX2e}[2005/12/01] +%\ProvidesPackage{hep-paper}[2021/06/01 v1.7 Publications in High Energy Physics] +%\ProvidesPackage{hep-title}[2021/06/01 v1.7 Title macros for publications in High Energy Physics] +%<bibliography>\ProvidesPackage{hep-bibliography}[2021/06/01 v1.7 Bibliography macros for publications in High Energy Physics] +%<acronyms>\ProvidesPackage{hep-acronyms}[2021/06/01 v1.7 Acronym macros for publications in High Energy Physics] +%<datamodel>\ProvidesFile{hep-paper.dbx}[2021/06/01 v1.7 HEP-Paper biblatex data model] +%<documentation>\ProvidesFile{hep-paper-documentation.tex}[2021/06/01 v1.7 HEP-Paper documentation] % %<*documentation> @@ -69,7 +72,7 @@ % % \fi % -% \CheckSum{1673} +% \CheckSum{2095} % % \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 @@ -94,6 +97,7 @@ % \changes{v1.4}{2020/09/01}{If possible the compatibility options are selected automatically. Inclusion of PubMed IDs in bibliography.} % \changes{v1.5}{2020/10/01}{Reduce the numer of math alphabets used in sans serif mode. Add more title options such as a subtitle. Use standard class options.} % \changes{v1.6}{2020/12/01}{Implementation of the twocolumn mode.} +% \changes{v1.7}{2021/16/01}{Introduction of dedicated style file for the title, acronyms and bibliography macros. Extension of the title macros.} % % \ifshort %<*documentation> @@ -104,7 +108,7 @@ \title{The \textsmaller[1.5]{HEP\raisebox{.25ex}{--}PAPER} package\thanks{This document corresponds to \software{hep-paper}~\fileversion.}} \subtitle{Publications in high energy physics} \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} +\affiliation{Department of Physics, University of Basel, Klingelbergstraße 82, 4056 Basel, Switzerland} \preprint{Preprint-Number} \date{\filedate} @@ -135,6 +139,10 @@ The paper and font sizes are set to A4 and \unit[11]{pt}, respectively. Additionally, the paper geometry is adjusted using the \software{geometry} package \cite{geometry}. Furthermore, the font is changed to \LM using the \software{cfr-lm} package \cite{cfr-lm} with \software{microtype} \cite{microtype} optimizations. Finally, \PDF hyperlinks are implemented with the \software{hyperref} package \cite{hyperref}. +\DescribeMacro{hep-title} +\DescribeMacro{hep-bibliography} +\DescribeMacro{hep-acronyms} +If only subset of the functionality is needed one of the smaller style files \software{hep-title}, \software{hep-acronyms}, and \software{hep-bibliography} containing only the macros relevant to \cref{sec:title,sec:bibliography,sec:acronyms}, respectively. \subsection{Options} @@ -155,12 +163,15 @@ The possible \meta{sizes} are: The default is \unit[11]{pt}. \DescribeMacro{lang} -The |lang|=\meta{name} option switches the document language to one of the values values provided by the \software{babel} package \cite{babel}. +The |lang|=\meta{name} option switches the document language to one of the values provided by the \software{babel} package \cite{babel}. The default is |british|. \DescribeMacro{sansserif} The |sansserif| option switches the document including math to sans serif font shape. +\DescribeMacro{oldstyle} +The |oldstyle| option activates the use of oldstyle text- (\texto{123}) in favour of lining- (\textl{123}) figures in text mode. + \DescribeMacro{parskip} The |parskip| option changes how paragraphs are separated from each other using the \software{parskip} package \cite{parskip}. The \hologo{LaTeX} default is separation via indentation the |parskip| option switches to separation via vertical space. @@ -181,9 +192,6 @@ The deactivation options can prevent such and other adjustments. \DescribeMacro{defaults} The |defaults| option prevents the adjustment of the page geometry and the font size set by the document class. -\DescribeMacro{lining} -The |lining| option deactivates the use of text- (\texto{123}) in favour of lining- (\textl{123}) figures in text mode. - \DescribeMacro{title} The |title=false| option deactivates the title page adjustments. @@ -238,14 +246,18 @@ The |eqnarray| option reactivates the depreciated |eqnarray| environment. If the global |twocolumn| option is present the page geometry is changed to cover almost the entire page. Additionally the |abstract*| environment is defined that generates a one column abstract and takes care of placing the title information. -\subsection{Title page} +\subsection{Title page} \label{sec:title} + +\DescribeMacro{\series} +The |\series|\marg{series} macro is defined using the \software{titling} package \cite{titling}. \DescribeMacro{\title} The \PDF meta information is set according to the |\title|\marg{text} and |\author| \marg{text} information. \DescribeMacro{\subtitle} -The |\subtitle|\marg{subtitle} macro is defined using the \software{titling} package \cite{titling}. +The |\subtitle|\marg{subtitle} macro is defined. +\DescribeMacro{\editor} \DescribeMacro{\author} \DescribeMacro{\affiliation} \DescribeMacro{\email} @@ -358,7 +370,7 @@ References are also adjusted to not start on a new line. \DescribeMacro{\footnote} Footnotes are adjusted to swallow white space before the footnote mark and at the beginning of the footnote text. -\subsubsection{Acronyms} +\subsubsection{Acronyms} \label{sec:acronyms} \DescribeMacro{\acronym} \DescribeMacro{\shortacronym} @@ -552,12 +564,11 @@ The macro |\inv|\oarg{power}\marg{text} allows to avoid math mode also for inver Greek letters are adjusted to always be italic and upright in math and text mode, respectively, using the \software{fixmath} \cite{fixmath} and \software{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 &= \unit[5]{\text \mu m} \ , -\label{eq:greek} +\begin{align} \label{eq:greek} +\sigma &= \unit[5]{fb} \ , & &\mbox{at \unit[5]{\sigma} C.L.} \ , & \mu &= \unit[5]{cm} \ , & l &= \unit[5]{\text \mu m} \ , \end{align} and \eg to distinguish gauge $\nu$ and mass \nu\ eigenstates in models with massive neutrinos. -Note that |\mathrm| and therefore |\unit| transform italic greek character to seemingly random upright characters, this can be avoided by using |\unit{\text\mu m}|. +Note that |\mathrm| and therefore |\unit| transform italic Greek character to seemingly random upright characters, this can be avoided by using |\unit{\text\mu m}|. Additionally, Greek letters can also be directly typed using Unicode. \DescribeMacro{\ev} @@ -603,17 +614,17 @@ The float environments have been adjusted to center their content. The usual behaviour can be reactivated using |\raggedright|. \begin{table} -\begin{panels}{.6} +\begin{panels}{2} \begin{verbatim} -\begin{panels}{.6} +\begin{panels}{2} code -\panel{.4} +\panel \begin{tabular}...\end{tabular} \end{panels} \end{verbatim} \caption{Code for this panel environment.} \label{tab:panels} -\panel{.4} +\panel \begin{tabular}{cccc} \toprule \multicolumn{2}{c}{one}& \multicolumn{2}{c}{two} \\ \cmidrule(r){1-2} \cmidrule(l){3-4} @@ -644,7 +655,7 @@ The \software{booktabs} \cite{booktabs} and \software{multirow} \cite{multirow} The \software{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} +\subsection{Bibliography} \label{sec:bibliography} \DescribeMacro{\bibliography} \DescribeMacro{\printbibliography} @@ -693,6 +704,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \appendix % % \ifshort +%<*package|title|bibliography|acronyms> %<*package> % \fi % @@ -784,7 +796,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \egroup % % Of the 16 available math alphabets, \hologo{TeX} loads four by default -% \begin{enumdescript}[start=0] +% \begin{enumdescript}[start=0,label=\arabic*)] % \item{OT1} \label{it:math text} Text (latin, upper case greek, numerals, text symbols) % \item{OML} \label{it:math italic} Math Italic (latin, greek, numerals, text symbols) % \item{OMS} \label{it:math symbol} Symbol (|\mathcal|, operators) @@ -795,7 +807,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % The symbol font \ref{it:math symbol}\strut\ of \CM is \textbf{cmsy10} |\OMS/cmsy/m/n/10|, and is replaced by \LM to be \textbf{lmsy10} |\OMS/lmsy/m/n/10|, the |sansserif| options uses \textbf{cmsssy10} |\OMS/cmsssy/m/n/10| from the \software{sansmathfonts} package \cite{sansmathfonts}. % The extension font \ref{it:math extension}\strut\ of \CM is \textbf{cmex10} |\OMX/cmex/m/n/5|, and is replaced by the \software{exscale} package \cite{exscale} to be \textbf{cmex10} |\OMX/cmex/m/n/10|, the |sansserif| option loads \textbf{cmssex10} |\OMX/cmssex/m/n/10|. % The \software{amssymb} (\software{amsfonts}) packages \cite{amssymb} load two more symbol fonts -% \begin{enumdescript}[start=4] +% \begin{enumdescript}[start=4,label=\arabic*)] % \item{msam10} \label{it:math ams a} |\U/msa/m/n/10| AMS symbol font A (special math operators) % \item{msbm10} \label{it:math ams b} |\U/msb/m/n/10| AMS symbol font B (|\mathbb|, negated operators) % \end{enumdescript} @@ -804,15 +816,15 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % % Other math alphabets are only loaded on demand, \eg |\mathsf| uses a sans serif font and |\mathbf| without the \software{bm} package uses a bold font. % The |\mathscr| macro uses the script font from the \software{mathrsfs} package \cite{mathrsfs} -% \begin{enumdescript}[start=9] +% \begin{enumdescript}[start=9,label=\arabic*)] % \item{rsfs10} |\U/rsfs/m/n/10| Math script font (capital letters) % \end{enumdescript} % The |\mathbb| macro loads the double stroke font from the \software{dsfont} package \cite{dsfont}, this can be prevented with the |symbols=ams| option. -% \begin{enumdescript}[start=10] +% \begin{enumdescript}[start=10,label=\arabic*)] % \item{dsrom10} |\U/dsrom/m/n/10| Double stroke font % \end{enumdescript} % The |\mathfrak| macro loads the fractur font from the \software{amssymb} package \cite{amssymb} -% \begin{enumdescript}[start=11] +% \begin{enumdescript}[start=11,label=\arabic*)] % \item{eufm10} |\U/euf/m/n/10| Math fraktur (Basic Latin) % \end{enumdescript} % @@ -867,6 +879,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % \end{macro} % +% \begin{macro}{lining} +% Define the |lining| option deactivating the use of text figures in text mode. +% \begin{macrocode} +\DeclareBoolOption[true]{lining} +\DeclareComplementaryOption{oldstyle}{lining} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{parskip} % Define the option pair |parindent| and |parskip| controlling the separation of paragraphs. % \begin{macrocode} @@ -891,12 +911,6 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % \end{macro} % -% \begin{macro}{lining} -% Define the |lining| option deactivating the use of text figures in text mode. -% \begin{macrocode} -\DeclareBoolOption[false]{lining} -% \end{macrocode} -% \end{macro} % \begin{macro}{title} % Provide the |title| option deactivating redefinitions of title macros. % \begin{macrocode} @@ -1130,10 +1144,16 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \begin{macrocode} \RequirePackage{fix-cm} \RequirePackage{microtype} -\ifhep@lining - \RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm} +\ifxetexorluatex + \RequirePackage{nfssext-cfr} + \RequirePackage{lmodern} +% \RequirePackage{fontsetup} % problmatic \else - \RequirePackage{cfr-lm} + \ifhep@lining + \RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm} + \else + \RequirePackage{cfr-lm} + \fi \fi \RequirePackage{etoolbox} % \AtBeginEnvironment{tabular}{\tlstyle} @@ -1177,8 +1197,13 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t }{} \else \rmfamily + \RequirePackage{slantsc} \hep@rm@fontshape{b}{sc}{<->ssub*cmr/bx/sc}{} \hep@rm@fontshape{bx}{sc}{<->ssub*cmr/bx/sc}{} + \hep@rm@fontshape{b}{scsl}{<->ssub*cmr/bx/scsl}{} + \hep@rm@fontshape{bx}{scsl}{<->ssub*cmr/bx/scit}{} + \hep@rm@fontshape{b}{scit}{<->ssub*cmr/bx/scsl}{} + \hep@rm@fontshape{bx}{scit}{<->ssub*cmr/bx/scit}{} \sffamily \hep@sf@fontshape{m}{sc}{<->ssub*xcmss/m/sc}{} \hep@sf@fontshape{b}{sc}{<->ssub*xcmss/bx/sc}{} @@ -1186,6 +1211,10 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \hep@sf@fontshape{m}{scit}{<->ssub*xcmss/m/scit}{} \hep@sf@fontshape{b}{scit}{<->ssub*xcmss/bx/scit}{} \hep@sf@fontshape{bx}{scit}{<->ssub*xcmss/bx/scit}{} + \hep@sf@fontshape{m}{scsl}{<->ssub*xcmss/m/scit}{} + \hep@sf@fontshape{b}{scsl}{<->ssub*xcmss/bx/scit}{} + \hep@sf@fontshape{bx}{scsl}{<->ssub*xcmss/bx/scit}{} + \hep@sf@fontshape{m}{ui}{<->cmssu10}{} \fi % \end{macrocode} % @@ -1278,8 +1307,16 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % Define the |\online|\marg{text}\marg{url} macro combining the features of the |\href| and the |\url| macros. % Define a macro for typesetting emails. % \begin{macrocode} -\newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} +%</package> +%<*package|title|bibliography> +\providecommand{\online}[2]{\ttfamily{#2}}% \providecommand{\email}[1]{\online{mailto:#1}{#1}} +\AtEndOfPackage{\@ifpackageloaded{hyperref}{% + \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}% + }{} +} +%</package|title|bibliography> +%<*package> % \end{macrocode} % \end{macro} % \end{macro} @@ -1323,6 +1360,28 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t }{\end{enum@descript}} % \end{macrocode} % \end{environment} +% +% \begin{environment}{commalist} +% Define a commalist environment. +% \begin{macrocode} +%</package> +%<*package|bibliography> +\RequirePackage{xparse} +\ExplSyntaxOn +\NewDocumentEnvironment{commalist}{O{\space}+b}{ + \hep@comma@list:n{#2} +}{#1} +\seq_new:N \hep@items@sequence +\cs_new_protected:Npn \hep@comma@list:n #1{ + \seq_set_split:Nnn \hep@items@sequence{\item}{#1} + \seq_pop_left:NN \hep@items@sequence \l_tmpa_tl + \seq_use:Nnnn \hep@items@sequence{~and~}{,~}{,~and~} +} +\ExplSyntaxOff +%</package|bibliography> +%<*package> +% \end{macrocode} +% \end{environment} % \section{Geometry} % @@ -1368,9 +1427,12 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % % Load the \software{mathtools} package \cite{mathtools} which loads the \software{amsmath} package \cite{amsmath}. % Allow page breaks within equations if necessary. +% Adjust the thick and med mu skips slightly. % \begin{macrocode} \RequirePackage{mathtools} \allowdisplaybreaks[1] +\thickmuskip=5mu plus 3mu minus 1mu +\medmuskip=4mu plus 2mu minus 3mu % \end{macrocode} % % \begin{macro}{\diag} @@ -1387,6 +1449,8 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % Define the |\mathdef|\marg{name}\oarg{arguments}\marg{macro} macro which \prefix{re}{defines} macros in math mode only. % This macro is implemented using the \software{xparse} package \cite{xparse}. % \begin{macrocode} +%</package> +%<*package|acronyms> \RequirePackage{xparse} \DeclareDocumentCommand{\mathdef}{mO{0}m}{% \expandafter\let\csname text\string#1\endcsname=#1 @@ -1400,6 +1464,8 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \next }% } +%</package|acronyms> +%<*package> % \end{macrocode} % \end{macro} % @@ -1459,17 +1525,21 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \RequirePackage{fixmath} \RequirePackage{alphabeta} \RequirePackage{substitutefont} - \substitutefont{LGR}{\rmdefault}{lmr} - \DeclareFontFamily{LGR}{\rmdefault}{} - \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{} - \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{} - \substitutefont{LGR}{\ttdefault}{lmtt} - \DeclareFontFamily{LGR}{\ttdefault}{} - \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*cmtt/bx/n}{} - \substitutefont{LGR}{\sfdefault}{lmss} - \DeclareFontFamily{LGR}{\sfdefault}{} - \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{} - \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{} + \ifxetexorluatex + % missing code + \else + \substitutefont{LGR}{\rmdefault}{lmr} + \DeclareFontFamily{LGR}{\rmdefault}{} + \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{} + \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{} + \substitutefont{LGR}{\ttdefault}{lmtt} + \DeclareFontFamily{LGR}{\ttdefault}{} + \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*cmtt/bx/n}{} + \substitutefont{LGR}{\sfdefault}{lmss} + \DeclareFontFamily{LGR}{\sfdefault}{} + \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{} + \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{} + \fi % \end{macrocode} % % Either load the \software{MnSymbol} package \cite{MnSymbol} or the the \software{exscale} package in order to fix Latin Modern |lmex| fonts. @@ -1607,20 +1677,58 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % % \begin{macro}{\cancel} % \begin{macro}{\slashed} -% \begin{macro}{\unit} % Load the \software{physics} package \cite{physics} which provides macros useful for publications in physics. +% Fix the |\eval| macro. % Additionally, load the \software{cancel} \cite{cancel} and \software{slashed} \cite{slashed} packages which provide the |\cancel| and |\slashed| macros. -% Finally, load the \software{units} package \cite{units} which provides the |\units| and |\nicefrac| macros. % \begin{macrocode} \ifhep@physics \RequirePackage{physics} \RequirePackage{cancel} \RequirePackage{slashed} -\RequirePackage{units} -\newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}} +\DeclareDocumentCommand\evaluated{sgd[|d(|}{% + \IfNoValueTF{#2}{% + \IfNoValueTF{#3}{% + \IfNoValueTF{#4}{\argopen.\argclose\rvert}{% + \IfBooleanTF{#1}{\vphantom{#4}}{}% + \left(\IfBooleanTF{#1}{\smash{#4}}{#4}\right\rvert% + }% + }{% + \IfBooleanTF{#1}{\vphantom{#3}}{}% + \left[\IfBooleanTF{#1}{\smash{#3}}{#3}\right\rvert% + \IfNoValueTF{#4}{}{(#4|}% + }% + }{% + \IfBooleanTF{#1}{\vphantom{#2}}{}% + \left.\IfBooleanTF{#1}{\smash{#2}}{#2}\right\rvert% + \IfNoValueTF{#3}{}{[#3|}\IfNoValueTF{#4}{}{(#4|}% + }% +} % \end{macrocode} % \end{macro} % \end{macro} + +% \begin{macro}{\unit} +% Load the \software{units} package \cite{units} which provides the |\units| and |\nicefrac| macros. +% Patch the |\unit| and |\unitfrac| macros to work with lining numerals using the \software{xpatch} package \cite{xpatch}. +% \begin{macrocode} +\RequirePackage{units} +\RequirePackage{xpatch} +\ifhep@lining\else + \xpatchcmd{\unit}{\else#1}{% + \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}% + }{}{} + \xpatchcmd{\unitfrac}{\else#1}{% + \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}% + }{}{} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\inv} +% Provide the |\textfrac| macro. +% \begin{macrocode} +\newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}} +% \end{macrocode} % \end{macro} % % \begin{macro}{\inv} @@ -1753,6 +1861,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \begin{macro}{\panel} % Define the |panels| environment and the |\panel| macro. % \begin{macrocode} +\newcommand{\hep@panels@space}{20} \newenvironment{panels}[2][b]{% % \end{macrocode} % Define an internal macro for global behaviour. @@ -1765,10 +1874,15 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % Define the |\panel| macro for the case that the number of panels is given. % \begin{macrocode} \ifdim#2pt>1pt% + \newcommand{\hep@panel@space}{% + (1-#2+\hep@panels@space)/\hep@panels@space% + }% \newcommand{\panel}[1][b]{% - \endminipage\hfill\begin@subcaption@minipage[#1]{\linewidth/#2}% + \endminipage\hfill\begin@subcaption@minipage[#1]{% + \linewidth/#2*\hep@panel@space% + }% }% - \begin@subcaption@minipage[#1]{\linewidth/#2}% + \begin@subcaption@minipage[#1]{\linewidth/#2*\hep@panel@space}% % \end{macrocode} % Define the |\panel| macro for the case that the width of the panel is given. % \begin{macrocode} @@ -1827,15 +1941,26 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \section{Title page} % -% Begin of |title| conditional. +% Begin of |title| conditional. Define internal conditionals outside. TODO: replace this hack % \begin{macrocode} +\newif\ifhep@first% +\newif\ifnewaffil% \ifhep@title % \end{macrocode} % +%</package> +% +% +% Redefine previous macros just for the title package. +% \begin{macrocode} +%<*package|title> +%<title>\newif\ifhep@first% +% \end{macrocode} +% % \begin{macro}{\date} % Allow absent date field. % \begin{macrocode} -\date{} +\date{\vspace{-4ex}} % \end{macrocode} % \end{macro} % @@ -1844,11 +1969,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % Extend the title using the \software{titling} package \cite{titling}. % \begin{macrocode} \RequirePackage{titling} +\setlength{\thanksmarkwidth}{1.5em} % \end{macrocode} % % \begin{macro}{\preprintfont} +% \begin{macro}{\seriesfont} % \begin{macro}{\titlefont} % \begin{macro}{\subtitlefont} +% \begin{macro}{\editorfont} % \begin{macro}{\authorfont} % \begin{macro}{\affiliationfont} % \begin{macro}{\datefont} @@ -1856,10 +1984,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \begin{macrocode} \let\hep@preprint@font\relax \newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}} +\let\hep@series@font\relax +\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}} \let\hep@title@font\relax \newcommand{\titlefont}[1]{\def\hep@title@font{#1}} \let\hep@subtitle@font\relax \newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}} +\let\hep@editor@font\relax +\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}} \let\hep@author@font\relax \newcommand{\authorfont}[1]{\def\hep@author@font{#1}} \let\hep@affiliation@font\relax @@ -1873,27 +2005,33 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% +% \begin{macro}{\series} +% Define a series. +% \begin{macrocode} +\newcommand{\preseries}[1]{\def\hep@pre@series{#1}} +\newcommand{\series}[1]{\def\hep@series{#1}} +\newcommand{\postseries}[1]{\def\hep@post@series{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} % % \begin{macro}{\subtitle} % Define a subtitle. % \begin{macrocode} \newcommand{\presubtitle}[1]{\def\hep@pre@sub@title{#1}} -\newcommand{\subtitle}[1]{\def\sub@title{#1}} +\newcommand{\subtitle}[1]{\def\hep@sub@title{#1}} \newcommand{\postsubtitle}[1]{\def\hep@post@sub@title{#1}} -\renewcommand{\maketitlehookb}{% - \@ifundefined{sub@title}{}{% - \hep@pre@sub@title\sub@title\hep@post@sub@title% - }% -} % \end{macrocode} % \end{macro} % % Set standard values mostly taken from the \software{titling} package, add the font hook, and reduce the |date| font size. % \begin{macrocode} -\titlefont{\ifhep@serif\tistyle\else\qtstyle\fi} +\preseries{\begin{center}\Large\hep@series@font} +\postseries{\par\end{center}} \pretitle{\begin{center}\LARGE\hep@title@font} \posttitle{\par\end{center}} -\subtitlefont{\ifhep@serif\tistyle\else\qtstyle\fi} \presubtitle{\begin{center}\Large\hep@subtitle@font} \postsubtitle{\par\end{center}} \preauthor{% @@ -1904,19 +2042,146 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \postdate{\par\end{center}} % \end{macrocode} % +% \subsection{Editors} +% +% \begin{macrocode} +\newcounter{editors} +\newcommand\hep@editorlist{} +\newcommand\hep@editors{} +% \end{macrocode} +% +% \begin{macro}{\hep@multi@ref} +% Transform reference list to list of references. +% \begin{macrocode} +\newcommand{\hep@multi@ref}[1]{% + \hep@firsttrue% + \forcsvlist{% + \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref% + }{#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\editor} +% Copy of the |authblk| author code adjusted for editors. +% \begin{macrocode} +\RequirePackage{authblk} +\newcommand\editor[2][]{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \ifnewaffil% + \addtocounter{affil}{1}% + \edef\AB@thenote{\arabic{affil}}% + \fi% + \if\relax#1\relax% + \def\AB@note{\AB@thenote}% + \else% + \def\AB@note{#1}\setcounter{Maxaffil}{0}% + \fi% + \ifnum\value{editors}>1\relax% + \@namedef{@sep\number\c@editors}{\Authsep}% + \fi% + \addtocounter{editors}{1}% + \begingroup% + \let\protect\@unexpandable@protect \let\and\AB@pand% + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\hep@editors}{% + \def\\{% + \protect\\[\@affilsep]\protect\Affilfont\protect\AB@resetsep% + }% + \xdef\hep@editor{\AB@blk@and#2}% + \ifnewaffil% + \gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}% + \xdef\hep@editors{\the\@temptokena\AB@blk@and}% + \else% + \xdef\hep@editors{\the\@temptokena\AB@as\AB@au@str}% + \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}% + \gdef\AB@as{\Authsep}% + \fi% + \gdef\AB@au@str{#2}% + }% + \@temptokena=\expandafter{\hep@editorlist}% + \let\\=\editorcr% + \xdef\hep@editorlist{% + \the\@temptokena% + \protect\@nameuse{@sep\number\c@editors}% + \protect\Authfont#2% + \if\relax#1\relax\else% + \ \protect\hep@multi@ref{\AB@note}% + \fi% + }% + \endgroup% + \ifnum\value{editors}>2\relax% + \@namedef{@sep\number\c@editors}{\Authands}% + \fi% + \newaffilfalse% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\preditor} +% \begin{macro}{\postditor} +% Set editor style +% \begin{macrocode} +\newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}} +\newcommand{\posteditor}[1]{\def\hep@post@editor{#1}} +\preeditor{\begin{center}\large\hep@editor@font\lineskip.5em + \ifnum\value{editors}>1\relax Editors\else Editor\fi: +} +\posteditor{\par\end{center}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Show subtitle and editor. +% \begin{macrocode} +\renewcommand{\maketitlehookb}{% + \@ifundefined{hep@sub@title}{}{% + \hep@pre@sub@title\hep@sub@title\hep@post@sub@title% + }% + \ifx\hep@editorlist\AB@empty\else% + \hep@pre@editor\hep@editorlist\hep@post@editor% + \fi +} +% \end{macrocode} +% % \subsection{Authors} % % \begin{macro}{\author} % Allow absent author field. % Enable the handling of multiple authors with different affiliations using the \software{authblk} package \cite{authblk}. % \begin{macrocode} -\author{} -\RequirePackage{authblk} -\renewcommand{\Affilfont}{\small\hep@affiliation@font} +% \author{} +%<title>\newif\ifhep@lining\hep@liningtrue +\ifhep@lining + \renewcommand{\Affilfont}{\small\hep@affiliation@font} +\else + \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font} +\fi \renewcommand\Authfont{\hep@author@font} % \end{macrocode} % \end{macro} % +% Switch authblk to a label ref system for affiliations. +% \begin{macrocode} +\newcounter{affiliation} +\renewcommand{\theaffiliation}{% + \textsuperscript{\normalfont\arabic{affiliation}}% +} +%<title>\RequirePackage{xpatch} +\xpatchcmd{\author}{% + \protect\Authfont#2\AB@authnote{\AB@note}% +}{% + \protect\Authfont#2% + \if\relax#1\relax\else\protect\hep@multi@ref{\AB@note}\fi% +}{}{} +\xpatchcmd{\affil}{% + \AB@affilnote{\AB@note}% +}{% + \protect\refstepcounter{affiliation}\protect\label{\AB@note}% + \if\relax#1\relax\else\protect\ref{\AB@note}\fi% +}{}{} +% \end{macrocode} +% % \begin{macro}{\email} % Redefine the email 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} @@ -1949,7 +2214,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t } % \end{macrocode} % \end{macro} - +% % \subsection{Preprint} % % \begin{macro}{\preprint} @@ -1958,6 +2223,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \let\hep@preprint\relax \newcommand\preprint[1]{\def\hep@preprint{#1}} \RequirePackage{varwidth} +%<title>\RequirePackage{relsize} \newcommand{\hep@preprint@box}{% \begin{varwidth}{\textwidth}% \smaller[.5]\hep@preprint@font\hep@preprint% @@ -1970,6 +2236,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \begin{macro}{\placepreprint} % Places a preprint number in the top right corner of the title page using the \software{atbegshi} \cite{atbegshi} and \software{picture} \cite{picture} packages. % \begin{macrocode} +%<title>\RequirePackage{calc} \RequirePackage{atbegshi} \RequirePackage{picture} \newcommand{\placepreprint}{% @@ -1980,7 +2247,12 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t ){\normalfont\hep@preprint@box} } } -\renewcommand{\maketitlehooka}{\placepreprint\vspace{-\bigskipamount}} +\renewcommand{\maketitlehooka}{% + \placepreprint\vspace{-\bigskipamount}% + \@ifundefined{hep@series}{}{% + \hep@pre@series\hep@series\hep@post@series% + }% +} % \end{macrocode} % \end{macro} @@ -2003,15 +2275,19 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \RequirePackage{abstract} \renewcommand{\abstitleskip}{-3ex} \NewEnviron{abstract*}{% - \twocolumn[\maketitle\vspace{-1.5cm}% + \twocolumn[\maketitle\vspace{-5ex}% \begin{onecolabstract}\noindent\BODY\end{onecolabstract}% \vspace{.5cm}]\saythanks% } \else \newenvironment{abstract*}{\maketitle\begin{abstract}}{\end{abstract}} \fi +%</package|title> % \end{macrocode} % \end{environment} +% +%<*package> +% % End of |title| conditional. % \begin{macrocode} \fi @@ -2024,6 +2300,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \ifnum\pdf@strcmp{\hep@bibliography}{false}=0\else % \end{macrocode} % +%</package> +% +% \begin{macrocode} +%<*package|bibliography> +%<bibliography>\def\hep@bibliography{numeric-comp} +%<bibliography>\newif\ifhep@journal\hep@journalfalse +% \end{macrocode} +% % \begin{macro}{\bibliography} % Load the \software{biblatex} package \cite{biblatex} with the datamodel defined in \cref{sec:data model}. % \begin{macrocode} @@ -2053,11 +2337,11 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \ExecuteBibliographyOptions{ sorting=hep-paper, safeinputenc, - giveninits=true + giveninits=true, + maxbibnames=7 } % \end{macrocode} % -% % Shrink the biblography in two column mode. % \begin{macrocode} \ifhep@journal\else @@ -2069,6 +2353,13 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % % \begin{macro}{erratum} +% Redefine the |translationof| string to fit better to documents without a original title. +% \begin{macrocode} +\DefineBibliographyStrings{english}{translationof={Original}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{erratum} % Add new bibliography string \enquote{Erratum} for the use in the |relatedtype| field. % \begin{macrocode} \NewBibliographyString{erratum,erratums} @@ -2077,6 +2368,12 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % \end{macro} % +% Activate the Oxford comma when using |british| and separate title and subtitle with a colon. +% \begin{macrocode} +\DefineBibliographyExtras{british}{\def\finalandcomma{\addcomma}} +\renewcommand{\subtitlepunct}{\addcolon\addspace} +% \end{macrocode} +% % \begin{macro}{\printbibliography} % Allow the bibliography to be printed sloppy % \begin{macrocode} @@ -2131,6 +2428,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % Move letters from the volume field to the journal field. % \begin{macrocode} \map[overwrite]{ + \pertype{article} \step[fieldsource=volume, match=\reg@exp@one, final] \step[fieldsource=volume, match=\reg@exp@two, replace={$2}] \step[fieldsource=journal, fieldtarget=journaltitle] @@ -2200,6 +2498,19 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % \end{macro} % +% \begin{macro}{reportnumber} +% Print the |reportnumber| as commalist +% \begin{macrocode} +%<bibliography>\RequirePackage{relsize} +\DeclareFieldFormat{reportnumber}{% + \edef\commalistbody{\forcsvfield{% + \egroup\noexpand\item\unexpanded{\bgroup\smaller[.5]\textsc} + }{reportnumber}}% + \expandafter\commalist\commalistbody\egroup\endcommalist% +} +% \end{macrocode} +% \end{macro} +% % \begin{macro}{url} % Show \URLs without the protocol. % \begin{macrocode} @@ -2247,8 +2558,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t }{\printfield{pmc}\newunit} \iffieldundef{reportnumber}{}{% \newunitpunct\textnumero\intitlepunct% - \textsc{\smaller[.5]\printfield{reportnumber}}% - \newunit% + \printfield{reportnumber}\newunit% }% } % \end{macrocode} @@ -2325,9 +2635,11 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}% } \DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge} +%</package|bibliography> % \end{macrocode} % \end{macro} % +%<*package> % % End check for bibliography option. % \begin{macrocode} @@ -2350,6 +2662,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % % \begin{macrocode} \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} +\pdfstringdefDisableCommands{\def\to{\textrightarrow}} \AtBeginDocument{ \pdfstringdefDisableCommands{\let\ensuremath\@gobble} \pdfstringdefDisableCommands{\let\mathsurround\@gobble} @@ -2369,7 +2682,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else \ifhep@beamer\else - \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \ifhep@pos\else\AtBeginDocument{\hypersetup{pdfauthor={\@author}}}\fi \fi \fi % \end{macrocode} @@ -2476,6 +2789,19 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % \end{macro} % +% Adjust the title page +% \begin{macrocode} +\ifhep@title + \labelcrefmultiformat{affiliation}{#2#1#3}{% + \textsuperscript,#2#1#3}{\textsuperscript,#2#1#3% + }{% + \textsuperscript,#2#1#3% + } + \labelcrefrangeformat{affiliation}{#3#1#4\textsuperscript{--}#5#2#6} +% \thanksmarkseries{alph} +\fi +% \end{macrocode} +% % End of |references| conditional % \begin{macrocode} \fi @@ -2532,10 +2858,14 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \section{Acronyms} % -% Acronyms are implemented with the \software{glossaries-extra} package \cite{glossaries-extra} which is an extension of the \software{glossaries} package \cite{glossaries} and must be loaded after the \software{hyperref} pacakge in \cref{sec:hyperlinks}. +% Acronyms are implemented with the \software{glossaries-extra} package \cite{glossaries-extra} which is an extension of the \software{glossaries} package \cite{glossaries} and must be loaded after the \software{hyperref} package in \cref{sec:hyperlinks}. +% Set the abbreviation style. % \begin{macrocode} \ifhep@glossaries +%</package> +%<*package|acronyms> \RequirePackage[nostyles]{glossaries-extra} +\setabbreviationstyle{long-hyphen-short-hyphen} % \end{macrocode} % The entry count feature is used. % \begin{macrocode} @@ -2544,26 +2874,30 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % Provide macros for older |glossaries-extra| installations. % \begin{macrocode} -\providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} -\providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} -\providecommand{\gGlsXtrSetField}[3]{% - \glsxtrsetfieldifexists{#1}{#2}{% - \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% - }% -} +\AtEndOfPackage{ + \@ifpackageloaded{hyperref}{ + \providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} + \providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} + \providecommand{\gGlsXtrSetField}[3]{% + \glsxtrsetfieldifexists{#1}{#2}{% + \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% + }% + } % \end{macrocode} % Hyperlinks from the abbreviation to their definition in the text are set. % \begin{macrocode} -\glssetcategoryattribute{abbreviation}{nohyperfirst}{true} -\renewcommand*{\glsdonohyperlink}[2]{{% - \glsxtrprotectlinks\edef\fieldvalue{% - \glsxtrusefield{\glslabel}{hastarget}% - }% - \ifdefstring\fieldvalue{true}{#2}{% - \gGlsXtrSetField{\glslabel}{hastarget}{true}% - \glsdohypertarget{#1}{#2}% - }% -}} + \glssetcategoryattribute{abbreviation}{nohyperfirst}{true} + \renewcommand*{\glsdonohyperlink}[2]{{% + \glsxtrprotectlinks\edef\fieldvalue{% + \glsxtrusefield{\glslabel}{hastarget}% + }% + \ifdefstring\fieldvalue{true}{#2}{% + \gGlsXtrSetField{\glslabel}{hastarget}{true}% + \glsdohypertarget{#1}{#2}% + }% + }} + }{\providecommand{\pdfstringdefDisableCommands}[1]{}} +} % \end{macrocode} % % \begin{macro}{\begin@sentence} @@ -2609,6 +2943,7 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \item optional plural long form % \end{enumerate} % \begin{macrocode} +%<acronyms>\usepackage{xspace} \NewDocumentCommand{\acronym}{somsmo}{ \newabbreviation[ type=\acronymtype, @@ -2619,10 +2954,10 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3\endcsname{% + \expandafter\newcommand\csname#3\endcsname[1][]{% \if@begin@of@sentence{% - \ifglsused{#3}{\cgls{#3}}{\cGls{#3}}% - }{\cgls{#3}}% + \ifglsused{#3}{\cgls{#3}[##1]}{\cGls{#3}[##1]}% + }{\cgls{#3}[##1]}% \ifnum\glsentrycurrcount{#3}>1\relax \IfBooleanTF{#4}{}{\@\xspace}% \else\@\xspace\fi @@ -2642,8 +2977,8 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3s\endcsname{% - \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}% + \expandafter\newcommand\csname#3s\endcsname[1][]{% + \if@begin@of@sentence{\cGlspl{#3}[##1]}{\cglspl{#3}[##1]}% \IfBooleanTF{#4}{}{\@\xspace}% } % \end{macrocode} @@ -2669,8 +3004,8 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % Provide the singular acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3\endcsname{% - \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}% + \expandafter\newcommand\csname#3\endcsname[1][]{% + \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}##1% } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. @@ -2687,9 +3022,9 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3s\endcsname{% + \expandafter\newcommand\csname#3s\endcsname[1][]{% \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% - \IfBooleanTF{#4}{}{\@\xspace}% + \IfBooleanTF{#4}{}{\@\xspace}##1% } % \end{macrocode} % Expand the plural acronym macro in \PDF labels. @@ -2713,10 +3048,10 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t \NewDocumentCommand{\longacronym}{somsmo}{ % \end{macrocode} % Provide the singular acronym macro. -% \begin{macrocode} - \expandafter\newcommand\csname#3\endcsname{% +% \begin{macrocode}acronyms + \expandafter\newcommand\csname#3\endcsname[1][]{% \if@begin@of@sentence{\MakeUppercase#5}{#5}% - \IfBooleanTF{#4}{}{\@\xspace}% + \IfBooleanTF{#4}{}{\@\xspace}##1% } % \end{macrocode} % Expand the singular acronym macro in \PDF labels. @@ -2725,11 +3060,11 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % \end{macrocode} % Provide the plural acronym macro. % \begin{macrocode} - \expandafter\newcommand\csname#3s\endcsname{% + \expandafter\newcommand\csname#3s\endcsname[1][]{% \if@begin@of@sentence{% \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% }{% - \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}% + \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}##1% } % \end{macrocode} % Expand the plural acronym macro in \PDF labels. @@ -2819,30 +3154,36 @@ The \software{arxiv-collector} python script \cite{arxiv-collector} alleviates t % % End of glossaries if. % \begin{macrocode} +%</package|acronyms> +%<*package> \fi % \end{macrocode} % % \ifshort %</package> +%</package|title|bibliography|acronyms> %<*datamodel> % \fi % % \section{Biblatex datamodel file} \label{sec:data model} % % \begin{macro}{collaboration} -% \begin{macro}{reportnumber} % \begin{macro}{pmid} % \begin{macro}{pmcid} % \begin{macro}{pmc} +% \begin{macro}{reportnumber} % \begin{macro}{protocollessurl} % Define the |dbx| file containing the |hep-paper| datamodel. % \begin{macrocode} \DeclareDatamodelFields[type=field, datatype=literal]{ - collaboration, reportnumber, pmid, pmcid, pmc, + collaboration, pmid, pmcid, pmc, +} +\DeclareDatamodelFields[type=field, format=xsv, datatype=literal]{ + reportnumber, } \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} \DeclareDatamodelEntryfields{ - collaboration, reportnumber, pmid, pmcid, pmc, protocollessurl, + collaboration, pmid, pmcid, pmc, reportnumber, protocollessurl, } % \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 ab97a338cf2..aac97891eed 100644 --- a/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins +++ b/Master/texmf-dist/source/latex/hep-paper/hep-paper.ins @@ -27,9 +27,12 @@ LaTeX version 2005/12/01 or later. \endpreamble \generate{ - \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}} + \file{hep-paper.dbx}{\from{hep-paper-implementation.dtx}{datamodel}} + \file{hep-paper.sty}{\from{hep-paper-implementation.dtx}{package}} + \file{hep-title.sty}{\from{hep-paper-implementation.dtx}{title}} + \file{hep-bibliography.sty}{\from{hep-paper-implementation.dtx}{bibliography}} + \file{hep-acronyms.sty}{\from{hep-paper-implementation.dtx}{acronyms}} } \Msg{*********************************************************} @@ -39,8 +42,8 @@ LaTeX version 2005/12/01 or later. \Msg{*} \Msg{* \space\space hep-paper.sty} \Msg{*} -\Msg{* To produce the documentation run the file hep-paper.dtx} -\Msg{* through LaTeX.} +\Msg{* To produce the documentation run the file} +\Msg{* hep-paper-documentation.dtx through LaTeX.} \Msg{*} \Msg{* Happy TeXing!} \Msg{*********************************************************} diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-acronyms.sty b/Master/texmf-dist/tex/latex/hep-paper/hep-acronyms.sty new file mode 100644 index 00000000000..a7b9da527ed --- /dev/null +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-acronyms.sty @@ -0,0 +1,190 @@ +%% +%% This is file `hep-acronyms.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% hep-paper-implementation.dtx (with options: `acronyms') +%% 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. + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{hep-acronyms}[2021/06/01 v1.7 Acronym macros for publications in High Energy Physics] + +\RequirePackage{xparse} +\DeclareDocumentCommand{\mathdef}{mO{0}m}{% + \expandafter\let\csname text\string#1\endcsname=#1 + \expandafter\newcommand\csname math\string#1\endcsname[#2]{#3} + \DeclareRobustCommand#1{% + \ifmmode + \expandafter\let\expandafter\next\csname math\string#1\endcsname + \else + \expandafter\let\expandafter\next\csname text\string#1\endcsname + \fi + \next + }% +} +\RequirePackage[nostyles]{glossaries-extra} +\setabbreviationstyle{long-hyphen-short-hyphen} +\glsenableentrycount +\glssetcategoryattribute{abbreviation}{entrycount}{1} +\AtEndOfPackage{ + \@ifpackageloaded{hyperref}{ + \providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} + \providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} + \providecommand{\gGlsXtrSetField}[3]{% + \glsxtrsetfieldifexists{#1}{#2}{% + \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% + }% + } + \glssetcategoryattribute{abbreviation}{nohyperfirst}{true} + \renewcommand*{\glsdonohyperlink}[2]{{% + \glsxtrprotectlinks\edef\fieldvalue{% + \glsxtrusefield{\glslabel}{hastarget}% + }% + \ifdefstring\fieldvalue{true}{#2}{% + \gGlsXtrSetField{\glslabel}{hastarget}{true}% + \glsdohypertarget{#1}{#2}% + }% + }} + }{\providecommand{\pdfstringdefDisableCommands}[1]{}} +} +\RequirePackage[excludeor]{everyhook} +\newcommand{\begin@sentence}{1001} +\PushPostHook{par}{{\spacefactor=\begin@sentence}} +\def\frenchspacing{% + \sfcode`\.\begin@sentence \sfcode`\?\begin@sentence + \sfcode`\!\begin@sentence \sfcode`\:\begin@sentence + \sfcode`\;\@m \sfcode`\,\@m +} +\newcommand{\if@begin@of@sentence}[2]{\leavevmode\protecting{% + \ifboolexpr{ test {\ifnumcomp{\spacefactor}{=}{3000}} or% + test {\ifnumcomp{\spacefactor}{=}{2000}} or% + test {\ifnumcomp{\spacefactor}{=}{\begin@sentence}}% + }{#1}{#2}% +}} +\usepackage{xspace} +\NewDocumentCommand{\acronym}{somsmo}{ + \newabbreviation[ + type=\acronymtype, + sort=#3, + \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}, + longplural=\IfNoValueTF{#6}{#5s}{#6} + ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} + \expandafter\newcommand\csname#3\endcsname[1][]{% + \if@begin@of@sentence{% + \ifglsused{#3}{\cgls{#3}[##1]}{\cGls{#3}[##1]}% + }{\cgls{#3}[##1]}% + \ifnum\glsentrycurrcount{#3}>1\relax + \IfBooleanTF{#4}{}{\@\xspace}% + \else\@\xspace\fi + } + \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% + \IfNoValueTF{#2}{#3}{#2} }% + } + \expandafter\mathdef\csname#3\endcsname{% + \text{\glsxtrshort{#3}}\@gls@increment@currcount{#3}% + } + \expandafter\newcommand\csname#3s\endcsname[1][]{% + \if@begin@of@sentence{\cGlspl{#3}[##1]}{\cglspl{#3}[##1]}% + \IfBooleanTF{#4}{}{\@\xspace}% + } + \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% + \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% + } + \expandafter\mathdef\csname#3s\endcsname{% + \text{\glsxtrshortpl{#3}}\@gls@increment@currcount{#3}% + } +} +\NewDocumentCommand{\shortacronym}{somsmo}{ + \expandafter\newcommand\csname#3\endcsname[1][]{% + \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}##1% + } + \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% + \IfNoValueTF{#2}{#3}{#2} }% + } + \expandafter\mathdef\csname#3\endcsname{% + \text{\IfNoValueTF{#2}{#3}{#2}}% + } + \expandafter\newcommand\csname#3s\endcsname[1][]{% + \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% + \IfBooleanTF{#4}{}{\@\xspace}##1% + } + \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% + \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% + } + \expandafter\mathdef\csname#3s\endcsname{% + \text{\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}}% + }% +} +\NewDocumentCommand{\longacronym}{somsmo}{ + \expandafter\newcommand\csname#3\endcsname[1][]{% + \if@begin@of@sentence{\MakeUppercase#5}{#5}% + \IfBooleanTF{#4}{}{\@\xspace}##1% + } + \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#5 }} + \expandafter\newcommand\csname#3s\endcsname[1][]{% + \if@begin@of@sentence{% + \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% + }{% + \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}##1% + } + \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% + \IfNoValueTF{#6}{#5s}{#6} }% + } +} +\renewcommand*{\@gls@write@entrycounts}{% + \immediate\write\@auxout{% + \string\providecommand*{\string\@gls@entry@count}[2]{} + }% + \count@=0\relax + \forallglsentries{\@glsentry}{% + \glshasattribute{\@glsentry}{entrycount}{% + \ifglsused{\@glsentry}{% + \immediate\write\@auxout{% + \string\@gls@entry@count{\@glsentry}{% + \glsentrycurrcount{\@glsentry}% + } + }% + }{}\advance\count@ by \@ne + }{}% + }% +} +\newcommand{\resetacronym}[1]{\protect\glsreset{#1}} +\newcommand{\dummyacronym}[1]{\protect\glsunset{#1}} +\@ifundefined{endabstract}{}{% + \let\end@hep@abstract\endabstract% + \renewcommand\endabstract{\glsresetall\end@hep@abstract}% +} +\let\hep@table@of@contents\tableofcontents +\renewcommand\tableofcontents{% + \glsunsetall\hep@table@of@contents\glsresetall% +} +\let\hep@list@of@figures\listoffigures +\renewcommand\listoffigures{% + \glsunsetall\hep@list@of@figures\glsresetall% +} +\let\hep@list@of@tables\listoftables +\renewcommand\listoftables{% + \glsunsetall\hep@list@of@tables\glsresetall% +} +\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}% + } +} + +\endinput +%% +%% End of file `hep-acronyms.sty'. diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-bibliography.sty b/Master/texmf-dist/tex/latex/hep-paper/hep-bibliography.sty new file mode 100644 index 00000000000..20199eb5968 --- /dev/null +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-bibliography.sty @@ -0,0 +1,184 @@ +%% +%% This is file `hep-bibliography.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% hep-paper-implementation.dtx (with options: `bibliography') +%% 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. + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{hep-bibliography}[2021/06/01 v1.7 Bibliography macros for publications in High Energy Physics] + +\providecommand{\online}[2]{\ttfamily{#2}}% +\providecommand{\email}[1]{\online{mailto:#1}{#1}} +\AtEndOfPackage{\@ifpackageloaded{hyperref}{% + \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}% + }{} +} +\RequirePackage{xparse} +\ExplSyntaxOn +\NewDocumentEnvironment{commalist}{O{\space}+b}{ + \hep@comma@list:n{#2} +}{#1} +\seq_new:N \hep@items@sequence +\cs_new_protected:Npn \hep@comma@list:n #1{ + \seq_set_split:Nnn \hep@items@sequence{\item}{#1} + \seq_pop_left:NN \hep@items@sequence \l_tmpa_tl + \seq_use:Nnnn \hep@items@sequence{~and~}{,~}{,~and~} +} +\ExplSyntaxOff +\def\hep@bibliography{numeric-comp} +\newif\ifhep@journal\hep@journalfalse +\RequirePackage[style=\hep@bibliography, datamodel=hep-paper]{biblatex} +\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}} +} +\ExecuteBibliographyOptions{ + sorting=hep-paper, + safeinputenc, + giveninits=true, + maxbibnames=7 +} +\ifhep@journal\else + \if@twocolumn + \AtBeginBibliography{\small} + \setlength\biblabelsep{\labelsep} + \fi +\fi +\DefineBibliographyStrings{english}{translationof={Original}} +\NewBibliographyString{erratum,erratums} +\DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}} +\providecommand{\relateddelimerratum}{\addsemicolon\space} +\DefineBibliographyExtras{british}{\def\finalandcomma{\addcomma}} +\renewcommand{\subtitlepunct}{\addcolon\addspace} +\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{% + \step[fieldsource=Collaboration, final=true]% + \step[fieldset=collaboration, origfieldval, final=true] + }% + \map{% + \step[fieldsource=reportNumber, final=true]% + \step[fieldset=reportnumber, origfieldval, final=true] + }% + \map[overwrite]{ + \pertype{article} + \step[fieldsource=volume, match=\reg@exp@one, final] + \step[fieldsource=volume, match=\reg@exp@two, replace={$2}] + \step[fieldsource=journal, fieldtarget=journaltitle] + \step[fieldset=journaltitle, fieldvalue={\space$1$2}, append=true] + } + \map{ + \step[fieldsource=url, final=true] + \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:}{% + \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}% +} +\RequirePackage{relsize} +\DeclareFieldFormat{reportnumber}{% + \edef\commalistbody{\forcsvfield{% + \egroup\noexpand\item\unexpanded{\bgroup\smaller[.5]\textsc} + }{reportnumber}}% + \expandafter\commalist\commalistbody\egroup\endcommalist% +} +\DeclareFieldFormat{url}{% + \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% +} +\newcommand{\bib@online}[2]{% + \ifhyperref{\online{#1}{#2}}{\nolinkurl{#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}% +} +\letbibmacro{hep-doi+eprint+url}{doi+eprint+url} +\renewbibmacro*{doi+eprint+url}{% + \usebibmacro{hep-doi+eprint+url} + \iffieldundef{pmc}{% + \iffieldundef{pmid}{}{\printfield{pmid}\newunit}% + }{\printfield{pmc}\newunit} + \iffieldundef{reportnumber}{}{% + \newunitpunct\textnumero\intitlepunct% + \printfield{reportnumber}\newunit% + }% +} + +\NewDocumentCommand{\new@eprint}{smm}{ + \DeclareFieldFormat{eprint:#2}{% + \newcommand{\@path}{\IfBooleanT{#1}{\thefield{eprintclass}/}##1}% + #2\addcolon\space\bib@online{#3/\@path}{\@path}% + }% +} +\new@eprint{CTAN}{https://ctan.org/pkg} +\DeclareFieldAlias{eprint:ctan}{eprint:CTAN} +\new@eprint*{GitHub}{https://github.com} +\DeclareFieldAlias{eprint:github}{eprint:GitHub} +\new@eprint*{GitLab}{https://gitlab.com} +\DeclareFieldAlias{eprint:gitlab}{eprint:GitLab} +\new@eprint*{Bitbucket}{https://bitbucket.org} +\DeclareFieldAlias{eprint:bitbucket}{eprint:Bitbucket} +\new@eprint{Launchpad}{https://launchpad.net} +\DeclareFieldAlias{eprint:launchpad}{eprint:Launchpad} +\new@eprint{SourceForge}{https://sourceforge.net/projects} +\DeclareFieldAlias{eprint:launchpad}{eprint:SourceForge} +\DeclareFieldFormat{eprint:hepforge}{% + HEPForge\addcolon\space\bib@online{https://#1/hepforge.org}{#1}% +} +\DeclareFieldAlias{eprint:HEPForge}{eprint:hepforge} + +\endinput +%% +%% End of file `hep-bibliography.sty'. 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 721e3334576..2665065e3d7 100644 --- a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.dbx @@ -15,14 +15,17 @@ %% and version 1.3c or later is part of all distributions of %% LaTeX version 2005/12/01 or later. -\ProvidesFile{hep-paper.dbx}[2020/12/01 v1.6 HEP-Paper biblatex data model] +\ProvidesFile{hep-paper.dbx}[2021/06/01 v1.7 HEP-Paper biblatex data model] \DeclareDatamodelFields[type=field, datatype=literal]{ - collaboration, reportnumber, pmid, pmcid, pmc, + collaboration, pmid, pmcid, pmc, +} +\DeclareDatamodelFields[type=field, format=xsv, datatype=literal]{ + reportnumber, } \DeclareDatamodelFields[type=field, datatype=uri]{protocollessurl} \DeclareDatamodelEntryfields{ - collaboration, reportnumber, pmid, pmcid, pmc, protocollessurl, + collaboration, pmid, pmcid, pmc, reportnumber, 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 a27325928df..f66ba6e8180 100644 --- a/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-paper.sty @@ -16,7 +16,7 @@ %% LaTeX version 2005/12/01 or later. \NeedsTeXFormat{LaTeX2e}[2005/12/01] -\ProvidesPackage{hep-paper}[2020/12/01 v1.6 Publications in High Energy Physics] +\ProvidesPackage{hep-paper}[2021/06/01 v1.7 Publications in High Energy Physics] \RequirePackage{pdftexcmds} \RequirePackage{kvoptions} @@ -29,11 +29,12 @@ \DeclareStringOption[british]{lang} \DeclareBoolOption[true]{serif} \DeclareComplementaryOption{sansserif}{serif} +\DeclareBoolOption[true]{lining} +\DeclareComplementaryOption{oldstyle}{lining} \DeclareBoolOption[true]{parindent} \DeclareComplementaryOption{parskip}{parindent} \DeclareStringOption[true]{symbols} \DeclareBoolOption[false]{defaults} -\DeclareBoolOption[false]{lining} \DeclareBoolOption[true]{title} \DeclareBoolOption[true]{physics} \DeclareStringOption[numeric-comp]{bibliography} @@ -128,10 +129,15 @@ \RequirePackage[\hep@encoding]{fontenc} \RequirePackage{fix-cm} \RequirePackage{microtype} -\ifhep@lining - \RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm} +\ifxetexorluatex + \RequirePackage{nfssext-cfr} + \RequirePackage{lmodern} \else - \RequirePackage{cfr-lm} + \ifhep@lining + \RequirePackage[rm={lining},sf={lining},tt={lining}]{cfr-lm} + \else + \RequirePackage{cfr-lm} + \fi \fi \RequirePackage{etoolbox} \RequirePackage{textcomp} @@ -158,8 +164,13 @@ }{} \else \rmfamily + \RequirePackage{slantsc} \hep@rm@fontshape{b}{sc}{<->ssub*cmr/bx/sc}{} \hep@rm@fontshape{bx}{sc}{<->ssub*cmr/bx/sc}{} + \hep@rm@fontshape{b}{scsl}{<->ssub*cmr/bx/scsl}{} + \hep@rm@fontshape{bx}{scsl}{<->ssub*cmr/bx/scit}{} + \hep@rm@fontshape{b}{scit}{<->ssub*cmr/bx/scsl}{} + \hep@rm@fontshape{bx}{scit}{<->ssub*cmr/bx/scit}{} \sffamily \hep@sf@fontshape{m}{sc}{<->ssub*xcmss/m/sc}{} \hep@sf@fontshape{b}{sc}{<->ssub*xcmss/bx/sc}{} @@ -167,6 +178,10 @@ \hep@sf@fontshape{m}{scit}{<->ssub*xcmss/m/scit}{} \hep@sf@fontshape{b}{scit}{<->ssub*xcmss/bx/scit}{} \hep@sf@fontshape{bx}{scit}{<->ssub*xcmss/bx/scit}{} + \hep@sf@fontshape{m}{scsl}{<->ssub*xcmss/m/scit}{} + \hep@sf@fontshape{b}{scsl}{<->ssub*xcmss/bx/scit}{} + \hep@sf@fontshape{bx}{scsl}{<->ssub*xcmss/bx/scit}{} + \hep@sf@fontshape{m}{ui}{<->cmssu10}{} \fi \ifxetexorluatex\else \RequirePackage[utf8]{inputenc} @@ -207,8 +222,12 @@ \newcommand{\software}[2][\hspace{-\fontdimen2\font}]{% {\smaller[.5]\textsc{#2}~#1}% } -\newcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}} +\providecommand{\online}[2]{\ttfamily{#2}}% \providecommand{\email}[1]{\online{mailto:#1}{#1}} +\AtEndOfPackage{\@ifpackageloaded{hyperref}{% + \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}% + }{} +} \newcommand{\prefix}[2]{(#1\mbox{-)}\allowbreak #2} \RequirePackage[inline]{enumitem} @@ -226,6 +245,18 @@ \textbf{##2}\ifx##2\empty\else~\fi\@ifnextchar\par\@gobble\relax } }{\end{enum@descript}} +\RequirePackage{xparse} +\ExplSyntaxOn +\NewDocumentEnvironment{commalist}{O{\space}+b}{ + \hep@comma@list:n{#2} +}{#1} +\seq_new:N \hep@items@sequence +\cs_new_protected:Npn \hep@comma@list:n #1{ + \seq_set_split:Nnn \hep@items@sequence{\item}{#1} + \seq_pop_left:NN \hep@items@sequence \l_tmpa_tl + \seq_use:Nnnn \hep@items@sequence{~and~}{,~}{,~and~} +} +\ExplSyntaxOff \ifhep@defaults\else \RequirePackage{geometry} @@ -255,6 +286,8 @@ \RequirePackage{mathtools} \allowdisplaybreaks[1] +\thickmuskip=5mu plus 3mu minus 1mu +\medmuskip=4mu plus 2mu minus 3mu \DeclareMathOperator{\diag}{diag} \DeclareMathOperator{\sgn}{sgn} \RequirePackage{xparse} @@ -290,17 +323,21 @@ \RequirePackage{fixmath} \RequirePackage{alphabeta} \RequirePackage{substitutefont} - \substitutefont{LGR}{\rmdefault}{lmr} - \DeclareFontFamily{LGR}{\rmdefault}{} - \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{} - \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{} - \substitutefont{LGR}{\ttdefault}{lmtt} - \DeclareFontFamily{LGR}{\ttdefault}{} - \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*cmtt/bx/n}{} - \substitutefont{LGR}{\sfdefault}{lmss} - \DeclareFontFamily{LGR}{\sfdefault}{} - \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{} - \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{} + \ifxetexorluatex + % missing code + \else + \substitutefont{LGR}{\rmdefault}{lmr} + \DeclareFontFamily{LGR}{\rmdefault}{} + \DeclareFontShape{LGR}{\rmdefault}{b}{n}{<->ssub*lmr/bx/n}{} + \DeclareFontShape{LGR}{\rmdefault}{b}{sc}{<->ssub*lmr/bx/sc}{} + \substitutefont{LGR}{\ttdefault}{lmtt} + \DeclareFontFamily{LGR}{\ttdefault}{} + \DeclareFontShape{LGR}{\ttdefault}{b}{n}{<->ssub*cmtt/bx/n}{} + \substitutefont{LGR}{\sfdefault}{lmss} + \DeclareFontFamily{LGR}{\sfdefault}{} + \DeclareFontShape{LGR}{\sfdefault}{b}{n}{<->ssub*lmss/bx/n}{} + \DeclareFontShape{LGR}{\sfdefault}{b}{sc}{<->ssub*lmss/bx/sc}{} + \fi \ifhep@minion \RequirePackage{MnSymbol} \else @@ -378,7 +415,35 @@ \RequirePackage{physics} \RequirePackage{cancel} \RequirePackage{slashed} +\DeclareDocumentCommand\evaluated{sgd[|d(|}{% + \IfNoValueTF{#2}{% + \IfNoValueTF{#3}{% + \IfNoValueTF{#4}{\argopen.\argclose\rvert}{% + \IfBooleanTF{#1}{\vphantom{#4}}{}% + \left(\IfBooleanTF{#1}{\smash{#4}}{#4}\right\rvert% + }% + }{% + \IfBooleanTF{#1}{\vphantom{#3}}{}% + \left[\IfBooleanTF{#1}{\smash{#3}}{#3}\right\rvert% + \IfNoValueTF{#4}{}{(#4|}% + }% + }{% + \IfBooleanTF{#1}{\vphantom{#2}}{}% + \left.\IfBooleanTF{#1}{\smash{#2}}{#2}\right\rvert% + \IfNoValueTF{#3}{}{[#3|}\IfNoValueTF{#4}{}{(#4|}% + }% +} + \RequirePackage{units} +\RequirePackage{xpatch} +\ifhep@lining\else + \xpatchcmd{\unit}{\else#1}{% + \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}% + }{}{} + \xpatchcmd{\unitfrac}{\else#1}{% + \else\ifthenelse{\boolean{mmode}}{#1}{\textl{#1}}% + }{}{} +\fi \newcommand{\textfrac}[2]{\ensuremath{\nicefrac{\text{#1}}{\text{#2}}}} \newcommand{\inv}[2][1]{#2\ensuremath{^{-#1}}} \AtBeginDocument{\mathdef{\d}{\dd}} @@ -451,16 +516,22 @@ \providecommand*\subcaption@minipage[2]{% \minipage#1{#2}\setcaptionsubtype\relax% } +\newcommand{\hep@panels@space}{20} \newenvironment{panels}[2][b]{% \newcommand{\begin@subcaption@minipage}[2][b]{% \caption@withoptargs\subcaption@minipage[##1]{##2}% \centering\vskip 0pt% } \ifdim#2pt>1pt% + \newcommand{\hep@panel@space}{% + (1-#2+\hep@panels@space)/\hep@panels@space% + }% \newcommand{\panel}[1][b]{% - \endminipage\hfill\begin@subcaption@minipage[#1]{\linewidth/#2}% + \endminipage\hfill\begin@subcaption@minipage[#1]{% + \linewidth/#2*\hep@panel@space% + }% }% - \begin@subcaption@minipage[#1]{\linewidth/#2}% + \begin@subcaption@minipage[#1]{\linewidth/#2*\hep@panel@space}% \else% \newcommand{\panel}[2][b]{% \endminipage\hfill\begin@subcaption@minipage[#1]{##2\linewidth}% @@ -487,33 +558,38 @@ }} \newcommand{\graphics}[1]{\graphicspath{{./#1/}}} +\newif\ifhep@first% +\newif\ifnewaffil% \ifhep@title -\date{} +\date{\vspace{-4ex}} \RequirePackage{titling} +\setlength{\thanksmarkwidth}{1.5em} \let\hep@preprint@font\relax \newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}} +\let\hep@series@font\relax +\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}} \let\hep@title@font\relax \newcommand{\titlefont}[1]{\def\hep@title@font{#1}} \let\hep@subtitle@font\relax \newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}} +\let\hep@editor@font\relax +\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}} \let\hep@author@font\relax \newcommand{\authorfont}[1]{\def\hep@author@font{#1}} \let\hep@affiliation@font\relax \newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}} \let\hep@date@font\relax \newcommand{\datefont}[1]{\def\hep@date@font{#1}} +\newcommand{\preseries}[1]{\def\hep@pre@series{#1}} +\newcommand{\series}[1]{\def\hep@series{#1}} +\newcommand{\postseries}[1]{\def\hep@post@series{#1}} \newcommand{\presubtitle}[1]{\def\hep@pre@sub@title{#1}} -\newcommand{\subtitle}[1]{\def\sub@title{#1}} +\newcommand{\subtitle}[1]{\def\hep@sub@title{#1}} \newcommand{\postsubtitle}[1]{\def\hep@post@sub@title{#1}} -\renewcommand{\maketitlehookb}{% - \@ifundefined{sub@title}{}{% - \hep@pre@sub@title\sub@title\hep@post@sub@title% - }% -} -\titlefont{\ifhep@serif\tistyle\else\qtstyle\fi} +\preseries{\begin{center}\Large\hep@series@font} +\postseries{\par\end{center}} \pretitle{\begin{center}\LARGE\hep@title@font} \posttitle{\par\end{center}} -\subtitlefont{\ifhep@serif\tistyle\else\qtstyle\fi} \presubtitle{\begin{center}\Large\hep@subtitle@font} \postsubtitle{\par\end{center}} \preauthor{% @@ -522,10 +598,101 @@ \postauthor{\end{tabular}\par\end{center}} \predate{\begin{center}\hep@date@font} \postdate{\par\end{center}} -\author{} +\newcounter{editors} +\newcommand\hep@editorlist{} +\newcommand\hep@editors{} +\newcommand{\hep@multi@ref}[1]{% + \hep@firsttrue% + \forcsvlist{% + \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref% + }{#1}% +} \RequirePackage{authblk} -\renewcommand{\Affilfont}{\small\hep@affiliation@font} +\newcommand\editor[2][]{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \ifnewaffil% + \addtocounter{affil}{1}% + \edef\AB@thenote{\arabic{affil}}% + \fi% + \if\relax#1\relax% + \def\AB@note{\AB@thenote}% + \else% + \def\AB@note{#1}\setcounter{Maxaffil}{0}% + \fi% + \ifnum\value{editors}>1\relax% + \@namedef{@sep\number\c@editors}{\Authsep}% + \fi% + \addtocounter{editors}{1}% + \begingroup% + \let\protect\@unexpandable@protect \let\and\AB@pand% + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\hep@editors}{% + \def\\{% + \protect\\[\@affilsep]\protect\Affilfont\protect\AB@resetsep% + }% + \xdef\hep@editor{\AB@blk@and#2}% + \ifnewaffil% + \gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}% + \xdef\hep@editors{\the\@temptokena\AB@blk@and}% + \else% + \xdef\hep@editors{\the\@temptokena\AB@as\AB@au@str}% + \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}% + \gdef\AB@as{\Authsep}% + \fi% + \gdef\AB@au@str{#2}% + }% + \@temptokena=\expandafter{\hep@editorlist}% + \let\\=\editorcr% + \xdef\hep@editorlist{% + \the\@temptokena% + \protect\@nameuse{@sep\number\c@editors}% + \protect\Authfont#2% + \if\relax#1\relax\else% + \ \protect\hep@multi@ref{\AB@note}% + \fi% + }% + \endgroup% + \ifnum\value{editors}>2\relax% + \@namedef{@sep\number\c@editors}{\Authands}% + \fi% + \newaffilfalse% +} +\newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}} +\newcommand{\posteditor}[1]{\def\hep@post@editor{#1}} +\preeditor{\begin{center}\large\hep@editor@font\lineskip.5em + \ifnum\value{editors}>1\relax Editors\else Editor\fi: +} +\posteditor{\par\end{center}} +\renewcommand{\maketitlehookb}{% + \@ifundefined{hep@sub@title}{}{% + \hep@pre@sub@title\hep@sub@title\hep@post@sub@title% + }% + \ifx\hep@editorlist\AB@empty\else% + \hep@pre@editor\hep@editorlist\hep@post@editor% + \fi +} +\ifhep@lining + \renewcommand{\Affilfont}{\small\hep@affiliation@font} +\else + \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font} +\fi \renewcommand\Authfont{\hep@author@font} +\newcounter{affiliation} +\renewcommand{\theaffiliation}{% + \textsuperscript{\normalfont\arabic{affiliation}}% +} +\xpatchcmd{\author}{% + \protect\Authfont#2\AB@authnote{\AB@note}% +}{% + \protect\Authfont#2% + \if\relax#1\relax\else\protect\hep@multi@ref{\AB@note}\fi% +}{}{} +\xpatchcmd{\affil}{% + \AB@affilnote{\AB@note}% +}{% + \protect\refstepcounter{affiliation}\protect\label{\AB@note}% + \if\relax#1\relax\else\protect\ref{\AB@note}\fi% +}{}{} \let\hep@author\author \def\author{% \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% @@ -547,7 +714,6 @@ \newcommand{\affiliation}{% \begingroup\hep@cat@comma@active\hep@affiliation% } - \let\hep@preprint\relax \newcommand\preprint[1]{\def\hep@preprint{#1}} \RequirePackage{varwidth} @@ -567,7 +733,12 @@ ){\normalfont\hep@preprint@box} } } -\renewcommand{\maketitlehooka}{\placepreprint\vspace{-\bigskipamount}} +\renewcommand{\maketitlehooka}{% + \placepreprint\vspace{-\bigskipamount}% + \@ifundefined{hep@series}{}{% + \hep@pre@series\hep@series\hep@post@series% + }% +} \@ifundefined{abstract}{}{% \let\hep@abstract\abstract% @@ -578,7 +749,7 @@ \RequirePackage{abstract} \renewcommand{\abstitleskip}{-3ex} \NewEnviron{abstract*}{% - \twocolumn[\maketitle\vspace{-1.5cm}% + \twocolumn[\maketitle\vspace{-5ex}% \begin{onecolabstract}\noindent\BODY\end{onecolabstract}% \vspace{.5cm}]\saythanks% } @@ -602,7 +773,8 @@ \ExecuteBibliographyOptions{ sorting=hep-paper, safeinputenc, - giveninits=true + giveninits=true, + maxbibnames=7 } \ifhep@journal\else \if@twocolumn @@ -610,9 +782,12 @@ \setlength\biblabelsep{\labelsep} \fi \fi +\DefineBibliographyStrings{english}{translationof={Original}} \NewBibliographyString{erratum,erratums} \DefineBibliographyStrings{english}{erratum={Erratum},erratums={Errata}} \providecommand{\relateddelimerratum}{\addsemicolon\space} +\DefineBibliographyExtras{british}{\def\finalandcomma{\addcomma}} +\renewcommand{\subtitlepunct}{\addcolon\addspace} \let\hep@printbibliography\printbibliography \renewcommand{\printbibliography}{\sloppy\hep@printbibliography} @@ -631,6 +806,7 @@ \step[fieldset=reportnumber, origfieldval, final=true] }% \map[overwrite]{ + \pertype{article} \step[fieldsource=volume, match=\reg@exp@one, final] \step[fieldsource=volume, match=\reg@exp@two, replace={$2}] \step[fieldsource=journal, fieldtarget=journaltitle] @@ -668,6 +844,12 @@ \renewbibmacro*{in:}{% \iffieldundef{journaltitle}{}{\printtext{\bibstring{in}\intitlepunct}}% } +\DeclareFieldFormat{reportnumber}{% + \edef\commalistbody{\forcsvfield{% + \egroup\noexpand\item\unexpanded{\bgroup\smaller[.5]\textsc} + }{reportnumber}}% + \expandafter\commalist\commalistbody\egroup\endcommalist% +} \DeclareFieldFormat{url}{% \mkbibacro{URL}\addcolon\space\online{#1}{\thefield{protocollessurl}}% } @@ -690,8 +872,7 @@ }{\printfield{pmc}\newunit} \iffieldundef{reportnumber}{}{% \newunitpunct\textnumero\intitlepunct% - \textsc{\smaller[.5]\printfield{reportnumber}}% - \newunit% + \printfield{reportnumber}\newunit% }% } @@ -726,6 +907,7 @@ pdfcreator={}, pdfproducer={} } \pdfstringdefDisableCommands{\def\varepsilon{\textepsilon}} +\pdfstringdefDisableCommands{\def\to{\textrightarrow}} \AtBeginDocument{ \pdfstringdefDisableCommands{\let\ensuremath\@gobble} \pdfstringdefDisableCommands{\let\mathsurround\@gobble} @@ -745,7 +927,7 @@ \AtBeginDocument{\hypersetup{pdfauthor=\AB@authlist}} \else \ifhep@beamer\else - \AtBeginDocument{\hypersetup{pdfauthor={\@author}}} + \ifhep@pos\else\AtBeginDocument{\hypersetup{pdfauthor={\@author}}}\fi \fi \fi @@ -785,6 +967,14 @@ \DeclareRobustCommand{\labelcrefrange}[2]{% \@crefrangenostar{labelcref}{#1}{#2}% } +\ifhep@title + \labelcrefmultiformat{affiliation}{#2#1#3}{% + \textsuperscript,#2#1#3}{\textsuperscript,#2#1#3% + }{% + \textsuperscript,#2#1#3% + } + \labelcrefrangeformat{affiliation}{#3#1#4\textsuperscript{--}#5#2#6} +\fi \fi \let\hep@cite\cite @@ -814,25 +1004,30 @@ \ifhep@glossaries \RequirePackage[nostyles]{glossaries-extra} +\setabbreviationstyle{long-hyphen-short-hyphen} \glsenableentrycount \glssetcategoryattribute{abbreviation}{entrycount}{1} -\providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} -\providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} -\providecommand{\gGlsXtrSetField}[3]{% - \glsxtrsetfieldifexists{#1}{#2}{% - \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% - }% +\AtEndOfPackage{ + \@ifpackageloaded{hyperref}{ + \providecommand{\glsxtrusefield}[2]{\@gls@entry@field{#1}{#2}} + \providecommand{\glsxtrsetfieldifexists}[3]{\glsdoifexists{#1}{#3}} + \providecommand{\gGlsXtrSetField}[3]{% + \glsxtrsetfieldifexists{#1}{#2}{% + \csgdef{glo@\glsdetoklabel{#1}@#2}{#3}% + }% + } + \glssetcategoryattribute{abbreviation}{nohyperfirst}{true} + \renewcommand*{\glsdonohyperlink}[2]{{% + \glsxtrprotectlinks\edef\fieldvalue{% + \glsxtrusefield{\glslabel}{hastarget}% + }% + \ifdefstring\fieldvalue{true}{#2}{% + \gGlsXtrSetField{\glslabel}{hastarget}{true}% + \glsdohypertarget{#1}{#2}% + }% + }} + }{\providecommand{\pdfstringdefDisableCommands}[1]{}} } -\glssetcategoryattribute{abbreviation}{nohyperfirst}{true} -\renewcommand*{\glsdonohyperlink}[2]{{% - \glsxtrprotectlinks\edef\fieldvalue{% - \glsxtrusefield{\glslabel}{hastarget}% - }% - \ifdefstring\fieldvalue{true}{#2}{% - \gGlsXtrSetField{\glslabel}{hastarget}{true}% - \glsdohypertarget{#1}{#2}% - }% -}} \RequirePackage[excludeor]{everyhook} \newcommand{\begin@sentence}{1001} \PushPostHook{par}{{\spacefactor=\begin@sentence}} @@ -854,10 +1049,10 @@ \glsshortpluralkey=\IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}, longplural=\IfNoValueTF{#6}{#5s}{#6} ]{#3}{\IfNoValueTF{#2}{#3}{#2}}{#5} - \expandafter\newcommand\csname#3\endcsname{% + \expandafter\newcommand\csname#3\endcsname[1][]{% \if@begin@of@sentence{% - \ifglsused{#3}{\cgls{#3}}{\cGls{#3}}% - }{\cgls{#3}}% + \ifglsused{#3}{\cgls{#3}[##1]}{\cGls{#3}[##1]}% + }{\cgls{#3}[##1]}% \ifnum\glsentrycurrcount{#3}>1\relax \IfBooleanTF{#4}{}{\@\xspace}% \else\@\xspace\fi @@ -868,8 +1063,8 @@ \expandafter\mathdef\csname#3\endcsname{% \text{\glsxtrshort{#3}}\@gls@increment@currcount{#3}% } - \expandafter\newcommand\csname#3s\endcsname{% - \if@begin@of@sentence{\cGlspl{#3}}{\cglspl{#3}}% + \expandafter\newcommand\csname#3s\endcsname[1][]{% + \if@begin@of@sentence{\cGlspl{#3}[##1]}{\cglspl{#3}[##1]}% \IfBooleanTF{#4}{}{\@\xspace}% } \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% @@ -880,8 +1075,8 @@ } } \NewDocumentCommand{\shortacronym}{somsmo}{ - \expandafter\newcommand\csname#3\endcsname{% - \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}% + \expandafter\newcommand\csname#3\endcsname[1][]{% + \IfNoValueTF{#2}{#3}{#2}\IfBooleanTF{#4}{}{\@\xspace}##1% } \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{% \IfNoValueTF{#2}{#3}{#2} }% @@ -889,9 +1084,9 @@ \expandafter\mathdef\csname#3\endcsname{% \text{\IfNoValueTF{#2}{#3}{#2}}% } - \expandafter\newcommand\csname#3s\endcsname{% + \expandafter\newcommand\csname#3s\endcsname[1][]{% \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}}% - \IfBooleanTF{#4}{}{\@\xspace}% + \IfBooleanTF{#4}{}{\@\xspace}##1% } \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% \IfBooleanTF{#1}{#3}{\IfNoValueTF{#2}{#3s}{#2s}} }% @@ -901,16 +1096,16 @@ }% } \NewDocumentCommand{\longacronym}{somsmo}{ - \expandafter\newcommand\csname#3\endcsname{% + \expandafter\newcommand\csname#3\endcsname[1][]{% \if@begin@of@sentence{\MakeUppercase#5}{#5}% - \IfBooleanTF{#4}{}{\@\xspace}% + \IfBooleanTF{#4}{}{\@\xspace}##1% } \pdfstringdefDisableCommands{\expandafter\def\csname#3\endcsname{#5 }} - \expandafter\newcommand\csname#3s\endcsname{% + \expandafter\newcommand\csname#3s\endcsname[1][]{% \if@begin@of@sentence{% \IfNoValueTF{#6}{\MakeUppercase#5s}{\MakeUppercase#6}% }{% - \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}% + \IfNoValueTF{#6}{#5s}{#6}}\IfBooleanTF{#4}{}{\@\xspace}##1% } \pdfstringdefDisableCommands{\expandafter\def\csname#3s\endcsname{% \IfNoValueTF{#6}{#5s}{#6} }% diff --git a/Master/texmf-dist/tex/latex/hep-paper/hep-title.sty b/Master/texmf-dist/tex/latex/hep-paper/hep-title.sty new file mode 100644 index 00000000000..6a9c236ac0e --- /dev/null +++ b/Master/texmf-dist/tex/latex/hep-paper/hep-title.sty @@ -0,0 +1,230 @@ +%% +%% This is file `hep-title.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% hep-paper-implementation.dtx (with options: `title') +%% 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. + +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesPackage{hep-title}[2021/06/01 v1.7 Title macros for publications in High Energy Physics] + +\providecommand{\online}[2]{\ttfamily{#2}}% +\providecommand{\email}[1]{\online{mailto:#1}{#1}} +\AtEndOfPackage{\@ifpackageloaded{hyperref}{% + \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}% + }{} +} +\newif\ifhep@first% +\date{\vspace{-4ex}} +\RequirePackage{titling} +\setlength{\thanksmarkwidth}{1.5em} +\let\hep@preprint@font\relax +\newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}} +\let\hep@series@font\relax +\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}} +\let\hep@title@font\relax +\newcommand{\titlefont}[1]{\def\hep@title@font{#1}} +\let\hep@subtitle@font\relax +\newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}} +\let\hep@editor@font\relax +\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}} +\let\hep@author@font\relax +\newcommand{\authorfont}[1]{\def\hep@author@font{#1}} +\let\hep@affiliation@font\relax +\newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}} +\let\hep@date@font\relax +\newcommand{\datefont}[1]{\def\hep@date@font{#1}} +\newcommand{\preseries}[1]{\def\hep@pre@series{#1}} +\newcommand{\series}[1]{\def\hep@series{#1}} +\newcommand{\postseries}[1]{\def\hep@post@series{#1}} +\newcommand{\presubtitle}[1]{\def\hep@pre@sub@title{#1}} +\newcommand{\subtitle}[1]{\def\hep@sub@title{#1}} +\newcommand{\postsubtitle}[1]{\def\hep@post@sub@title{#1}} +\preseries{\begin{center}\Large\hep@series@font} +\postseries{\par\end{center}} +\pretitle{\begin{center}\LARGE\hep@title@font} +\posttitle{\par\end{center}} +\presubtitle{\begin{center}\Large\hep@subtitle@font} +\postsubtitle{\par\end{center}} +\preauthor{% + \begin{center}\large\hep@author@font\lineskip.5em\begin{tabular}[t]{c}% +} +\postauthor{\end{tabular}\par\end{center}} +\predate{\begin{center}\hep@date@font} +\postdate{\par\end{center}} +\newcounter{editors} +\newcommand\hep@editorlist{} +\newcommand\hep@editors{} +\newcommand{\hep@multi@ref}[1]{% + \hep@firsttrue% + \forcsvlist{% + \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref% + }{#1}% +} +\RequirePackage{authblk} +\newcommand\editor[2][]{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \ifnewaffil% + \addtocounter{affil}{1}% + \edef\AB@thenote{\arabic{affil}}% + \fi% + \if\relax#1\relax% + \def\AB@note{\AB@thenote}% + \else% + \def\AB@note{#1}\setcounter{Maxaffil}{0}% + \fi% + \ifnum\value{editors}>1\relax% + \@namedef{@sep\number\c@editors}{\Authsep}% + \fi% + \addtocounter{editors}{1}% + \begingroup% + \let\protect\@unexpandable@protect \let\and\AB@pand% + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\hep@editors}{% + \def\\{% + \protect\\[\@affilsep]\protect\Affilfont\protect\AB@resetsep% + }% + \xdef\hep@editor{\AB@blk@and#2}% + \ifnewaffil% + \gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}% + \xdef\hep@editors{\the\@temptokena\AB@blk@and}% + \else% + \xdef\hep@editors{\the\@temptokena\AB@as\AB@au@str}% + \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}% + \gdef\AB@as{\Authsep}% + \fi% + \gdef\AB@au@str{#2}% + }% + \@temptokena=\expandafter{\hep@editorlist}% + \let\\=\editorcr% + \xdef\hep@editorlist{% + \the\@temptokena% + \protect\@nameuse{@sep\number\c@editors}% + \protect\Authfont#2% + \if\relax#1\relax\else% + \ \protect\hep@multi@ref{\AB@note}% + \fi% + }% + \endgroup% + \ifnum\value{editors}>2\relax% + \@namedef{@sep\number\c@editors}{\Authands}% + \fi% + \newaffilfalse% +} +\newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}} +\newcommand{\posteditor}[1]{\def\hep@post@editor{#1}} +\preeditor{\begin{center}\large\hep@editor@font\lineskip.5em + \ifnum\value{editors}>1\relax Editors\else Editor\fi: +} +\posteditor{\par\end{center}} +\renewcommand{\maketitlehookb}{% + \@ifundefined{hep@sub@title}{}{% + \hep@pre@sub@title\hep@sub@title\hep@post@sub@title% + }% + \ifx\hep@editorlist\AB@empty\else% + \hep@pre@editor\hep@editorlist\hep@post@editor% + \fi +} +\newif\ifhep@lining\hep@liningtrue +\ifhep@lining + \renewcommand{\Affilfont}{\small\hep@affiliation@font} +\else + \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font} +\fi +\renewcommand\Authfont{\hep@author@font} +\newcounter{affiliation} +\renewcommand{\theaffiliation}{% + \textsuperscript{\normalfont\arabic{affiliation}}% +} +\RequirePackage{xpatch} +\xpatchcmd{\author}{% + \protect\Authfont#2\AB@authnote{\AB@note}% +}{% + \protect\Authfont#2% + \if\relax#1\relax\else\protect\hep@multi@ref{\AB@note}\fi% +}{}{} +\xpatchcmd{\affil}{% + \AB@affilnote{\AB@note}% +}{% + \protect\refstepcounter{affiliation}\protect\label{\AB@note}% + \if\relax#1\relax\else\protect\ref{\AB@note}\fi% +}{}{} +\let\hep@author\author +\def\author{% + \renewcommand{\email}[1]{\unskip\thanks{\online{mailto:##1}{##1}}}% + \hep@author +} +\newcommand\hep@penalty{\if@twocolumn85\else50\fi} +\newcommand\hep@active@comma{,\penalty-\hep@penalty\relax} +\newcommand\hep@cat@comma@active{\catcode`\,\active} +{\hep@cat@comma@active\gdef,{\hep@active@comma}} +\newcommand\hep@affil[1]{% + \endgroup\@flushglue=0pt plus .5\linewidth\affil{#1}% +} +\def\hep@affil@opt[#1]#2{% + \endgroup\@flushglue=0pt plus .5\linewidth\affil[#1]{#2}% +} +\DeclareRobustCommand\hep@affiliation{% + \@ifnextchar[{\hep@affil@opt}{\hep@affil}% +} +\newcommand{\affiliation}{% + \begingroup\hep@cat@comma@active\hep@affiliation% +} +\let\hep@preprint\relax +\newcommand\preprint[1]{\def\hep@preprint{#1}} +\RequirePackage{varwidth} +\RequirePackage{relsize} +\newcommand{\hep@preprint@box}{% + \begin{varwidth}{\textwidth}% + \smaller[.5]\hep@preprint@font\hep@preprint% + \end{varwidth}% +} +\preprintfont{\scshape} +\RequirePackage{calc} +\RequirePackage{atbegshi} +\RequirePackage{picture} +\newcommand{\placepreprint}{% + \AtBeginShipoutFirst{% + \put( + \textwidth+\oddsidemargin-\widthof{\hep@preprint@box}, + -2pt-\topmargin-\heightof{\hep@preprint@box} + ){\normalfont\hep@preprint@box} + } +} +\renewcommand{\maketitlehooka}{% + \placepreprint\vspace{-\bigskipamount}% + \@ifundefined{hep@series}{}{% + \hep@pre@series\hep@series\hep@post@series% + }% +} + +\@ifundefined{abstract}{}{% + \let\hep@abstract\abstract% + \renewcommand\abstract{\hep@abstract\noindent\ignorespaces}% +} +\if@twocolumn + \RequirePackage{environ} + \RequirePackage{abstract} + \renewcommand{\abstitleskip}{-3ex} + \NewEnviron{abstract*}{% + \twocolumn[\maketitle\vspace{-5ex}% + \begin{onecolabstract}\noindent\BODY\end{onecolabstract}% + \vspace{.5cm}]\saythanks% + } +\else + \newenvironment{abstract*}{\maketitle\begin{abstract}}{\end{abstract}} +\fi + +\endinput +%% +%% End of file `hep-title.sty'. -- cgit v1.2.3