%%
%% 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/08/01 v1.8 Title macros for publications in High Energy Physics]

\providecommand{\online}[2]{\ttfamily{#2}}%
\newcommand{\hep@email}[1]{\online{mailto:#1}{#1}}
\providecommand\email{\hep@email}
\AtEndOfPackage{\@ifpackageloaded{hyperref}{%
    \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}%
  }{}
}
\newif\ifhep@first%
\newcommand{\hep@multi@ref}[1]{%
  \hep@firsttrue%
  \forcsvlist{%
    \ifhep@first\hep@firstfalse\else\textsuperscript,\fi\ref%
  }{#1}%
}
\renewcommand{\email}[2][]{\unskip\thanks[#1]{\hep@email{#2}}}%
\AtBeginDocument{
  \let\hep@maketitle\maketitle
  \renewcommand\maketitle{\hep@maketitle\let\email\hep@email}
}
\let\hep@preprint@font\relax
\newcommand{\preprintfont}[1]{\def\hep@preprint@font{#1}}
\preprintfont{\scshape\small}
\let\hep@preprint\relax
\newcommand\preprint[1]{\def\hep@preprint{#1}}
\RequirePackage{varwidth}
\newcommand{\hep@preprint@box}{%
  \begin{varwidth}{\textwidth}%
    \hep@preprint@font\hep@preprint%
  \end{varwidth}%
}
\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}
  }
}
\newcommand{\preseries}[1]{\def\hep@pre@series{#1}}
\newcommand{\series}[1]{\def\hep@series{#1}}
\newcommand{\postseries}[1]{\def\hep@post@series{#1}}
\let\hep@series@font\relax
\newcommand{\seriesfont}[1]{\def\hep@series@font{#1}}
\preseries{\begin{center}\Large\hep@series@font}
\postseries{\par\end{center}}
\RequirePackage{titling}
\setlength{\thanksmarkwidth}{1.5em}
\renewcommand{\maketitlehooka}{%
  \placepreprint\vspace{-\bigskipamount}%
  \@ifundefined{hep@series}{}{%
    \hep@pre@series\hep@series\hep@post@series%
  }%
  \vspace{-\bigskipamount}%
}
\let\hep@title@font\relax
\newcommand{\titlefont}[1]{\def\hep@title@font{#1}}
\pretitle{\begin{center}\LARGE\hep@title@font}
\posttitle{\par\end{center}}

\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}}

\let\hep@subtitle@font\relax
\newcommand{\subtitlefont}[1]{\def\hep@subtitle@font{#1}}
\presubtitle{\begin{center}\Large\hep@subtitle@font}
\postsubtitle{\par\end{center}}
\RequirePackage{authblk}
\newcounter{editors}
\newcommand\hep@editorlist{}
\newcommand\hep@editors{}
\newcommand\editor[2][]{%
  \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%
}
\let\hep@editor@font\relax
\newcommand{\editorfont}[1]{\def\hep@editor@font{#1}}
\newcommand{\preeditor}[1]{\def\hep@pre@editor{#1}}
\newcommand{\posteditor}[1]{\def\hep@post@editor{#1}}
\newcommand{\editortitle}[2]{
  \def\hep@editor@title{#1}
  \def\hep@editor@title@pl{#2}
}
\newcommand{\editortitlefont}[1]{\def\hep@editor@title@font{#1}}
\newcommand{\preeditortitle}[1]{\def\hep@pre@editor@title{#1}}
\newcommand{\posteditortitle}[1]{\def\hep@post@editor@title{#1}}
\editortitle{Editor}{Editors}
\editortitlefont{\itshape}
\preeditortitle{\hep@editor@title@font}
\posteditortitle{: }
\preeditor{%
  \begin{center}%
    \large\hep@editor@font\lineskip.5em%
    \begin{tabular}[t]{c}{%
      \hep@pre@editor@title%
      \ifnum\value{editors}>1\relax%
        \hep@editor@title@pl%
      \else%
        \hep@editor@title%
      \fi%
      \hep@post@editor@title%
    }%
}
\posteditor{\end{tabular}\par\end{center}}
\renewcommand{\maketitlehookb}{%
  \@ifundefined{hep@sub@title}{}{%
    \hep@pre@sub@title\hep@sub@title\hep@post@sub@title%
  }%
  \smallskip%
  \ifx\hep@editorlist\AB@empty\else%
    \hep@pre@editor\hep@editorlist\hep@post@editor%
  \fi
}
\RequirePackage{xpatch}
\xpatchcmd{\author}{%
  \protect\Authfont#2\AB@authnote{\AB@note}%
}{%
  \protect\Authfont#2%
  \if\relax#1\relax\else\unskip\protect\hep@multi@ref{\AB@note}\fi%
}{}{}
\let\hep@author@font\relax
\newcommand{\authorfont}[1]{\def\hep@author@font{#1}}
\renewcommand\Authfont{\hep@author@font}
\newcommand{\authortitle}[2]{
  \def\hep@author@title{#1}
  \def\hep@author@title@pl{#2}
}
\newcommand{\authortitlefont}[1]{\def\hep@author@title@font{#1}}
\newcommand{\preauthortitle}[1]{\def\hep@pre@author@title{#1}}
\newcommand{\postauthortitle}[1]{\def\hep@post@author@title{#1}}
\authortitle{Author}{Authors}
\authortitlefont{\itshape}
\preauthortitle{\hep@author@title@font}
\postauthortitle{: }
\preauthor{%
  \begin{center}%
    \large\hep@author@font\lineskip.5em%
    \begin{tabular}[t]{c}{%
      \ifnum\value{editors}>0\relax%
        \hep@pre@author@title%
        \ifnum\value{authors}>1\relax%
          \hep@author@title@pl\else\hep@author@title%
        \fi\hep@post@author@title%
      \fi%
    }%
}
\postauthor{\end{tabular}\par\end{center}}
\newcounter{affiliation}
\renewcommand{\theaffiliation}{%
  \textsuperscript{\normalfont\alph{affiliation}}%
}
\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@affiliation@font\relax
\newcommand{\affiliationfont}[1]{\def\hep@affiliation@font{#1}}
\newif\ifhep@lining\hep@liningtrue
\ifhep@lining
  \renewcommand{\Affilfont}{\small\hep@affiliation@font}
\else
  \renewcommand{\Affilfont}{\small\ostyle\hep@affiliation@font}
\fi
\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%
}
\date{\vspace{-4ex}}
\let\hep@date@font\relax
\newcommand{\datefont}[1]{\def\hep@date@font{#1}}
\predate{\begin{center}\hep@date@font}
\postdate{\par\end{center}}
\@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
}
\let\hep@thanks\thanks
\AtEndDocument{\let\thanks\hep@thanks}
\DeclareRobustCommand\thanks[2][]{%
  \AfterEndPreamble{%
    \if\relax#1\relax%
      \footnotemark%
    \else%
      \renewcommand\thefootnote{\textsuperscript{\@fnsymbol\c@footnote}}%
      \protect\refstepcounter{footnote}\protect\label{#1}%
      \renewcommand\thefootnote{\@arabic\c@footnote}%
    \fi%
    \protected@xdef\@thanks{%
      \@thanks\protect\footnotetext[\the\c@footnote]{#2}%
    }
    \if@twocolumn
      \protected@xdef\@bs@thanks{%
        \@bs@thanks\protect\footnotetext[\the\c@footnote]{#2}%
      }%
    \fi%
  }%
}

\endinput
%%
%% End of file `hep-title.sty'.
