Merge branch 'main' of https://gitea.zacharybillman.com/zpb/.stowdots
This commit is contained in:
commit
121bc6f0a1
527
texmf/tex/latex/elife-doi-fix/elife-doi-fix.cls
Executable file
527
texmf/tex/latex/elife-doi-fix/elife-doi-fix.cls
Executable file
@ -0,0 +1,527 @@
|
||||
% A template for eLife submissions.
|
||||
%
|
||||
% Created by Overleaf (writeLaTeX).
|
||||
%
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesClass{elife}[2022/06/01, v1.11]
|
||||
|
||||
%% Move all option processing before loading class
|
||||
\newif\if@reqslineno
|
||||
\DeclareOption{lineno}{\@reqslinenotrue}
|
||||
|
||||
%% Linespacing.
|
||||
\newif\if@onehalfspacing
|
||||
\newif\if@doublespacing
|
||||
\DeclareOption{onehalfspacing}{\@onehalfspacingtrue}
|
||||
\DeclareOption{doublespacing}{\@doublespacingtrue}
|
||||
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}}
|
||||
\ExecuteOptions{}
|
||||
\ProcessOptions\relax
|
||||
\LoadClass{extarticle}
|
||||
|
||||
\RequirePackage[english]{babel}
|
||||
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{regexpatch}
|
||||
\RequirePackage{ifxetex,ifluatex}
|
||||
|
||||
\newif\ifxetexorluatex
|
||||
\ifxetex
|
||||
\xetexorluatextrue
|
||||
\else
|
||||
\ifluatex
|
||||
\xetexorluatextrue
|
||||
\else
|
||||
\xetexorluatexfalse
|
||||
\fi
|
||||
\fi
|
||||
|
||||
\RequirePackage{amsmath}
|
||||
\RequirePackage{mdframed}
|
||||
|
||||
\RequirePackage{lineno}
|
||||
\if@reqslineno\linenumbers\fi
|
||||
|
||||
% Note v1.0 of elife.cls used Trueno font; this was
|
||||
% changed to use Open Sans in v1.1
|
||||
\ifxetexorluatex
|
||||
\RequirePackage{unicode-math}
|
||||
% v1.7: xits-math font name changed to XITSMath in TL2019
|
||||
\RequirePackage[default]{opensans}
|
||||
\setmonofont[Scale=MatchUppercase]{Latin Modern Mono}
|
||||
% XITSMath is really STIX. Really.
|
||||
% https://tex.stackexchange.com/questions/227216/stix-versus-xits
|
||||
\setmathfont[Extension = .otf,BoldFont = XITSMath-Bold,]{XITSMath-Regular}
|
||||
\else
|
||||
\RequirePackage[T1]{fontenc}
|
||||
\RequirePackage[utf8]{inputenc}
|
||||
\RequirePackage{stix}
|
||||
\RequirePackage[default]{opensans}
|
||||
\renewcommand{\ttdefault}{lmtt}
|
||||
\fi
|
||||
|
||||
\RequirePackage{microtype}
|
||||
|
||||
% Trueno/Open Sans requires a bigger "single" linespread.
|
||||
\linespread{1.2}
|
||||
\if@onehalfspacing\linespread{1.5}\fi
|
||||
\if@doublespacing\linespread{2.0}\fi
|
||||
|
||||
\RequirePackage{graphicx,xcolor}
|
||||
\definecolor{eLifeDarkBlue}{HTML}{273B81}
|
||||
\definecolor{eLifeLightBlue}{HTML}{0A9DD9}
|
||||
\definecolor{eLifeMediumGrey}{HTML}{6D6E70}
|
||||
\definecolor{eLifeLightGrey}{HTML}{929497}
|
||||
|
||||
\RequirePackage{booktabs}
|
||||
\RequirePackage{authblk}
|
||||
|
||||
\RequirePackage[left=6cm,%
|
||||
marginparwidth=4cm,%
|
||||
marginparsep=0.5cm,%
|
||||
right=1.3cm,%
|
||||
top=2cm,%
|
||||
bottom=2.5cm,%
|
||||
headheight=21pt,%
|
||||
headsep=2\baselineskip,%
|
||||
columnsep=2em,%
|
||||
letterpaper]{geometry}%
|
||||
\RequirePackage{changepage}
|
||||
|
||||
\RequirePackage{silence}
|
||||
\WarningFilter{caption}{The option `hypcap=true' will be ignored}
|
||||
|
||||
\RequirePackage[labelfont={bf},%
|
||||
labelsep=period,%
|
||||
justification=raggedright,%
|
||||
singlelinecheck=false,%
|
||||
tableposition=top,font=small]
|
||||
{caption}
|
||||
|
||||
% \captionsetup*[table]{skip=\medskipamount}
|
||||
|
||||
|
||||
\RequirePackage{natbib}
|
||||
\renewcommand{\bibfont}{\small}
|
||||
% modifed from https://github.com/gbhutani/vancouver_authoryear_bibstyle/
|
||||
\IfFileExists{vancouver-elife-doi-fix.bst}
|
||||
{\bibliographystyle{vancouver-elife-doi-fix}}
|
||||
{\PackageWarning{elife}{vancouver-elife-doi-fix.bst not found; falling back to apalike bibliography style.}\bibliographystyle{apalike}}
|
||||
% Make author in citation italic
|
||||
\renewcommand{\NAT@nmfmt}[1]{{\bfseries\itshape\color{eLifeMediumGrey} #1}}
|
||||
|
||||
% ...as well as the year
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}}
|
||||
{\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@nmfmt{\NAT@date}}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\else\unskip\NAT@spacechar\NAT@hyper@{\NAT@date}}
|
||||
{\else\unskip\NAT@spacechar\NAT@hyper@{\NAT@nmfmt{\NAT@date}}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\hyper@natlinkbreak{\NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb}\NAT@date}
|
||||
{\hyper@natlinkbreak{\NAT@nmfmt{\NAT@aysep\NAT@spacechar}}{\@citeb\@extra@b@citeb}\NAT@nmfmt{\NAT@date}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\@citea\NAT@hyper@{\NAT@date}}
|
||||
{\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@date}}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{{\@citeb\@extra@b@citeb}\NAT@date}
|
||||
{{\@citeb\@extra@b@citeb}\NAT@nmfmt{\NAT@date}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
%% There, we're finally done with patching the year in citations.
|
||||
|
||||
%
|
||||
% headers and footers
|
||||
%
|
||||
\RequirePackage{fancyhdr} % custom headers/footers
|
||||
\RequirePackage{lastpage} % Number of pages in the document
|
||||
\pagestyle{fancy} % Enables the custom headers/footers
|
||||
\addtolength{\headwidth}{\marginparsep}
|
||||
\addtolength{\headwidth}{\marginparwidth}
|
||||
\fancyhf{}
|
||||
% Removing header in v1.9
|
||||
% \chead{%
|
||||
% \setlength{\fboxsep}{3pt}
|
||||
% \colorbox{eLifeMediumGrey}{\begin{minipage}{\headwidth}\centering\color{white} Manuscript submitted to eLife\end{minipage}}%
|
||||
% }
|
||||
|
||||
% Footers
|
||||
\rfoot{\small\color{eLifeMediumGrey}\thepage\space of\space\pageref{LastPage}}%
|
||||
\preto{\footrule}{\color{eLifeMediumGrey}}
|
||||
\renewcommand{\headrulewidth}{0pt}% % No header rule
|
||||
\renewcommand{\footrulewidth}{0.4pt}% % No footer rule
|
||||
|
||||
%
|
||||
% section/subsection/paragraph set-up
|
||||
%
|
||||
\setcounter{secnumdepth}{0}
|
||||
\RequirePackage[explicit]{titlesec}
|
||||
\titleformat{\section}
|
||||
{\color{eLifeMediumGrey}\Large\bfseries}
|
||||
{\thesection}{}{#1}[]
|
||||
\titleformat{\subsection}
|
||||
{\large\bfseries}
|
||||
{\thesubsection}{}{#1}[]
|
||||
\titleformat{\subsubsection}
|
||||
{\large}
|
||||
{\thesubsubsection}{}{#1}[]
|
||||
\titleformat{\paragraph}
|
||||
{\color{eLifeMediumGrey}\large}
|
||||
{\theparagraph}{}{#1}[]
|
||||
\titlespacing*{\section}{0pc}{3ex \@plus4pt \@minus3pt}{0pt}
|
||||
\titlespacing*{\subsection}{0pc}{2.5ex \@plus3pt \@minus2pt}{0pt}
|
||||
\titlespacing*{\subsubsection}{0pc}{2ex \@plus2.5pt \@minus1.5pt}{0pt}
|
||||
\titlespacing*{\paragraph}{0pc}{1.5ex \@plus2pt \@minus1pt}{0pt}
|
||||
|
||||
\RequirePackage{enumitem}
|
||||
\setlist{noitemsep}
|
||||
|
||||
\RequirePackage{alphalph}
|
||||
\newalphalph{\fnsymbolmult}[mult]{\@fnsymbol}{5}
|
||||
|
||||
\newcounter{authorfn}
|
||||
\setcounter{authorfn}{1}
|
||||
\newcommand{\authfn}[1]{%
|
||||
\fnsymbolmult{\numexpr\value{authorfn}+#1}%
|
||||
}
|
||||
|
||||
\def\@correspondence{}
|
||||
\def\@contribution{}
|
||||
\def\@presentaddress{}
|
||||
\def\@deceased{}
|
||||
|
||||
\newcommand{\corr}[2]{%
|
||||
\ifx\empty\@correspondence\else\appto{\@correspondence}{; }{}{}\fi
|
||||
\appto{\@correspondence}{%
|
||||
\url{#1}%
|
||||
\ifx\empty#2\else\space(#2)\fi
|
||||
}{}{}%
|
||||
}
|
||||
|
||||
\newcommand{\contrib}[2][]{
|
||||
\appto{\@contribution}{%
|
||||
\ifx\empty#1\else\textsuperscript{#1}\fi
|
||||
#2\\
|
||||
}{}{}
|
||||
}
|
||||
|
||||
\newcommand{\presentadd}[2][]{
|
||||
\ifx\empty\@presentaddress\else\appto{\@presentaddress}{; }{}{}\fi
|
||||
\appto{\@presentaddress}{%
|
||||
\ifx\empty#1\else\textsuperscript{#1}\fi
|
||||
#2%
|
||||
}{}{}
|
||||
}
|
||||
|
||||
\newcommand{\deceased}[1]{\def\@deceased{\textsuperscript{#1}Deceased}}
|
||||
|
||||
\reversemarginpar
|
||||
|
||||
%
|
||||
% custom title page
|
||||
%
|
||||
\renewcommand{\Authfont}{\bfseries\large\raggedright}
|
||||
\renewcommand{\Affilfont}{\mdseries\large\raggedright}
|
||||
\renewcommand{\Authands}{, }
|
||||
\setlength{\affilsep}{16pt}
|
||||
\renewcommand{\AB@affilsepx}{; \protect\Affilfont}
|
||||
|
||||
\newcommand{\themetadata}{%
|
||||
\textbf{*For correspondence:\\} \@correspondence\par
|
||||
\ifx\empty\@contribution\else
|
||||
\bigskip\@contribution\par\fi
|
||||
\ifx\empty\@presentaddress\else
|
||||
\bigskip\textbf{Present address: }\@presentaddress\par\fi
|
||||
\bigskip
|
||||
\ifx\empty\@deceased\else\@deceased\par\fi
|
||||
}
|
||||
|
||||
\patchcmd{\@author}{\AB@authlist\\[\affilsep]\AB@affillist}{\AB@authlist\\[\affilsep]
|
||||
\marginpar{\raggedright\footnotesize\themetadata\par}\AB@affillist}{}{}
|
||||
|
||||
\renewcommand{\maketitle}{%
|
||||
\vskip36pt%
|
||||
{\color{eLifeDarkBlue}\raggedright\bfseries\fontsize{22}{27}\selectfont \@title\par}%
|
||||
\vskip16pt
|
||||
{\@author\par}
|
||||
\vskip8pt
|
||||
}
|
||||
|
||||
\renewenvironment{abstract}{%
|
||||
\setlength{\parindent}{0pt}\raggedright
|
||||
\textcolor{eLifeMediumGrey}{\rule{\textwidth}{2pt}}
|
||||
\vskip16pt
|
||||
\textcolor{eLifeLightBlue}{\large\bfseries\abstractname\space}
|
||||
}{%
|
||||
\vskip8pt
|
||||
\textcolor{eLifeMediumGrey}{\rule{\textwidth}{2pt}}
|
||||
\vskip16pt
|
||||
}
|
||||
|
||||
%% Insert a grey line to separate floats from main text
|
||||
\newcommand{\topfigrule}{\vskip8pt\noindent{\rule{\linewidth}{1pt}}}
|
||||
\newcommand{\botfigrule}{\noindent{\rule{\linewidth}{1pt}}\vskip8pt}
|
||||
|
||||
\RequirePackage{newfloat}
|
||||
\RequirePackage{wrapfig}
|
||||
\AtEndEnvironment{wrapfigure}{\vskip8pt\noindent{\rule{\hsize}{1pt}}}
|
||||
% \RequirePackage[lflt]{floatflt}
|
||||
% \AtEndEnvironment{floatingfigure}{\vskip8pt\noindent\textcolor{eLifeMediumGrey}{\rule{\hsize}{2pt}}}
|
||||
|
||||
\DeclareFloatingEnvironment[placement=btp,name=Box]{featurebox}
|
||||
\captionsetup[featurebox]{font={Large,bf,color=eLifeDarkBlue}}
|
||||
|
||||
% v1.11 2022-06 Updated many caption casing and dashes
|
||||
\newcounter{featurefigure}
|
||||
\newcounter{featuretable}
|
||||
\AtBeginEnvironment{featurebox}{%
|
||||
\setcounter{featurefigure}{0}%
|
||||
\setcounter{featuretable}{0}%
|
||||
\newcommand{\featurefig}[1]{%
|
||||
\refstepcounter{featurefigure}%
|
||||
\vskip\smallskipamount%
|
||||
{\small\textbf{\color{eLifeDarkBlue}Box \arabic{featurebox}---figure \arabic{featurefigure}.}\space #1\par}\medskip}
|
||||
\newcommand{\featuretable}[1]{%
|
||||
\refstepcounter{featuretable}%
|
||||
\vskip\smallskipamount%
|
||||
{\small\textbf{\color{eLifeDarkBlue}Box \arabic{featurebox}---table \arabic{featuretable}.}\space #1\par}\medskip}
|
||||
|
||||
}
|
||||
\apptocmd{\featurebox}{%
|
||||
\begin{mdframed}[linewidth=0pt,backgroundcolor=eLifeLightBlue!10,fontcolor=eLifeDarkBlue]
|
||||
\if@reqslineno\addtolength{\linenumbersep}{1em}\internallinenumbers\fi%
|
||||
}{}{}
|
||||
\pretocmd{\endfeaturebox}{\end{mdframed}}{}{}
|
||||
|
||||
|
||||
\newenvironment{fullwidth}{%
|
||||
\begin{adjustwidth}{-4.5cm}{}%
|
||||
\hsize=\linewidth%
|
||||
}{\end{adjustwidth}}
|
||||
|
||||
\appto{\appendix}{%
|
||||
\captionsetup*[figure]{name={Appendix \arabic{appendix}---figure },font={color=eLifeDarkBlue,small},skip=\smallskipamount}%
|
||||
\captionsetup*[table]{name={Appendix \arabic{appendix}---table },font={color=eLifeDarkBlue,small}}%
|
||||
}
|
||||
|
||||
\newcounter{figsupp}
|
||||
\setcounter{figsupp}{0}
|
||||
\newcounter{data}
|
||||
\setcounter{data}{0}
|
||||
%% Added videos 2021/03/07
|
||||
\newcounter{srccode}
|
||||
\setcounter{srccode}{0}
|
||||
%% Added fig supp data and source code 2022/06
|
||||
\newcounter{fsdata}
|
||||
\setcounter{fsdata}{0}
|
||||
\newcounter{fssrccode}
|
||||
\setcounter{fssrccode}{0}
|
||||
%% Added videos 2018/06/03
|
||||
\newcounter{video}
|
||||
\setcounter{video}{0}
|
||||
\newcounter{videosupp}
|
||||
\setcounter{videosupp}{0}
|
||||
\def\supplist{}
|
||||
|
||||
\RequirePackage{newfile}
|
||||
\newoutputstream{suppinfo}
|
||||
\openoutputfile{\jobname.suppinfo}{suppinfo}
|
||||
\addtostream{suppinfo}{\protect\setcounter{figure}{0}}
|
||||
|
||||
% Added video source data and code 2022/06
|
||||
\DeclareRobustCommand{\video}[1]{%
|
||||
\refstepcounter{video}%
|
||||
\setcounter{data}{0}%
|
||||
\setcounter{srccode}{0}%
|
||||
\bigskip%
|
||||
\noindent{\small\textbf{Video \arabic{video}.} #1\par}%
|
||||
\bigskip
|
||||
}
|
||||
\DeclareRobustCommand{\videodata}[1]{%
|
||||
\refstepcounter{data}%
|
||||
\par\noindent{\small\textbf{Video~\thevideo---source data \arabic{data}.} #1}\par
|
||||
}
|
||||
\DeclareRobustCommand{\videosrccode}[1]{%
|
||||
\refstepcounter{srccode}%
|
||||
\par\noindent{\small\textbf{Video~\thevideo---source code \arabic{srccode}.} #1}\par
|
||||
}
|
||||
|
||||
% Added fig supp source data and code 2022/06
|
||||
\DeclareRobustCommand{\figsuppsrccode}[1]{%
|
||||
\protect\refstepcounter{fssrccode}%
|
||||
\par\small\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}---source code~\arabic{fssrccode}. } #1\par
|
||||
}
|
||||
\DeclareRobustCommand{\figsuppdata}[1]{%
|
||||
\protect\refstepcounter{fsdata}%
|
||||
\par\small\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}---source data~\arabic{fsdata}. } #1\par
|
||||
}
|
||||
|
||||
|
||||
\AtBeginEnvironment{figure}{%
|
||||
\setcounter{figsupp}{0}
|
||||
\setcounter{data}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\addtostream{suppinfo}{
|
||||
\protect\setcounter{figsupp}{0}
|
||||
\protect\refstepcounter{figure}
|
||||
}
|
||||
}
|
||||
|
||||
\AtBeginEnvironment{wrapfigure}{%
|
||||
\setcounter{figsupp}{0}
|
||||
\setcounter{data}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\addtostream{suppinfo}{
|
||||
\protect\setcounter{figsupp}{0}
|
||||
\protect\refstepcounter{figure}
|
||||
}
|
||||
}
|
||||
|
||||
%% Updated 2017/06/30 to allow optional argument
|
||||
\DeclareRobustCommand{\figsupp}[3][]{%
|
||||
\refstepcounter{figsupp}%
|
||||
\addtostream{suppinfo}{%
|
||||
\protect\refstepcounter{figsupp}
|
||||
\protect\setcounter{fsdata}{0}
|
||||
\protect\setcounter{fssrccode}{0}
|
||||
}%
|
||||
{%
|
||||
\ifstrequal{#1}{none}{}{%
|
||||
\small\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}.}
|
||||
\ifstrempty{#1}{%
|
||||
\renewcommand\figsuppdata[1]{}%
|
||||
\renewcommand\figsuppsrccode[1]{}%
|
||||
#2}{%
|
||||
\renewcommand\figsuppdata[1]{}%
|
||||
\renewcommand\figsuppsrccode[1]{}%
|
||||
#1}}}\raggedright\par
|
||||
\addtostream{suppinfo}{%
|
||||
\noindent\protect\begin{minipage}{\linewidth}
|
||||
\protect #3\noexpand\par
|
||||
\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}.} #2\noexpand\par
|
||||
\vskip8pt
|
||||
\protect\end{minipage}
|
||||
\vskip16pt
|
||||
}
|
||||
}
|
||||
\DeclareRobustCommand{\figdata}[1]{%
|
||||
\refstepcounter{data}
|
||||
{\small\textbf{\figurename~\thefigure---source data \arabic{data}.} #1}\par
|
||||
}
|
||||
%% Added 2021/03/07
|
||||
\DeclareRobustCommand{\figsrccode}[1]{%
|
||||
\refstepcounter{srccode}
|
||||
{\small\textbf{\figurename~\thefigure---source code \arabic{srccode}.} #1}\par
|
||||
}
|
||||
%% Added 2018/06/03
|
||||
\DeclareRobustCommand{\videosupp}[1]{%
|
||||
\refstepcounter{videosupp}
|
||||
{\small\textbf{\figurename~\thefigure---video \arabic{videosupp}.} #1}\par
|
||||
}
|
||||
|
||||
% Added table source data and code 2022/06
|
||||
\AtBeginEnvironment{table}{%
|
||||
\setcounter{data}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
}
|
||||
|
||||
\AtBeginEnvironment{wraptable}{%
|
||||
\setcounter{data}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
}
|
||||
|
||||
\DeclareRobustCommand{\tabledata}[1]{%
|
||||
\refstepcounter{data}
|
||||
{\small\textbf{\tablename~\thetable---source data \arabic{data}.} #1}\par
|
||||
}
|
||||
\DeclareRobustCommand{\tablesrccode}[1]{%
|
||||
\refstepcounter{srccode}
|
||||
{\small\textbf{\tablename~\thetable---source code \arabic{srccode}.} #1}\par
|
||||
}
|
||||
|
||||
|
||||
\AtEndDocument{%
|
||||
\closeoutputstream{suppinfo}
|
||||
% \pagestyle{empty}
|
||||
\renewcommand{\footrule}{}
|
||||
\rfoot{}
|
||||
\input{\jobname.suppinfo}
|
||||
}
|
||||
|
||||
\newcounter{appendix}
|
||||
\setcounter{appendix}{0}
|
||||
\newenvironment{appendixbox}{%
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{table}{0}
|
||||
\refstepcounter{appendix}%
|
||||
\clearpage%
|
||||
\patchcmd{\ttlf@section}{eLifeMediumGrey}{eLifeDarkBlue}{}{}
|
||||
\noindent{\bfseries\Large\color{eLifeMediumGrey}Appendix \arabic{appendix}\par}
|
||||
\nolinenumbers%
|
||||
\begin{mdframed}[hidealllines=true,backgroundcolor=eLifeLightBlue!10,fontcolor=eLifeDarkBlue,leftline=true,linecolor=eLifeLightBlue,linewidth=1em]
|
||||
\if@reqslineno\addtolength{\linenumbersep}{2em}\internallinenumbers\fi
|
||||
}{%
|
||||
\end{mdframed}
|
||||
}
|
||||
|
||||
\RequirePackage{hyperref}
|
||||
\hypersetup{colorlinks=true,allcolors=black,citecolor=eLifeMediumGrey,linkcolor=eLifeMediumGrey,urlcolor=eLifeLightBlue,hypertexnames=false}
|
||||
\urlstyle{sf}
|
||||
|
||||
% Other desired commands
|
||||
\renewcommand{\equationautorefname}{Eq.}
|
||||
%% Added autoref support for \figsupp, \figdata, \video, \videosupp, (2021-03-04) \figsrccode
|
||||
% Added support for figsupp, video source data and code 2022/06
|
||||
\newcommand{\figsuppautorefname}{figure Supplement}
|
||||
\newcommand{\dataautorefname}{source data}
|
||||
\newcommand{\videoautorefname}{Video}
|
||||
\newcommand{\videosuppautorefname}{video}
|
||||
\newcommand{\srccodeautorefname}{source code}
|
||||
\newcommand{\FIGSUPP}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{figsupp:#2}%
|
||||
}
|
||||
\newcommand{\FIGDATA}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{figdata:#2}%
|
||||
}
|
||||
\newcommand{\TABLEDATA}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{tab:#1}---}\autoref{tabdata:#2}%
|
||||
}
|
||||
\newcommand{\VIDEODATA}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{video:#1}---}\autoref{viddata:#2}%
|
||||
}
|
||||
|
||||
\newcommand{\FIGSRCCODE}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{figsrccode:#2}%
|
||||
}
|
||||
\newcommand{\TABLESRCCODE}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{tab:#1}---}\autoref{tabsrccode:#2}%
|
||||
}
|
||||
\newcommand{\VIDEOSRCCODE}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{video:#1}---}\autoref{vidsrccode:#2}%
|
||||
}
|
||||
|
||||
\newcommand{\VIDEOSUPP}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{videosupp:#2}%
|
||||
}
|
||||
\newcommand{\FIG}[1]{\autoref{fig:#1}}
|
||||
\newcommand{\TABLE}[1]{\autoref{tab:#1}}
|
||||
\newcommand{\VIDEO}[1]{\autoref{video:#1}}
|
||||
\newcommand{\EQ}[1]{\autoref{eq:#1}}
|
||||
\newcommand{\BOX}[1]{\autoref{box:#1}}
|
||||
\let\oldautoref\autoref
|
||||
\renewcommand{\autoref}[1]{\emph{\textbf{\oldautoref{#1}}}}
|
||||
|
||||
\endinput
|
527
texmf/tex/latex/elife/elife.cls
Executable file
527
texmf/tex/latex/elife/elife.cls
Executable file
@ -0,0 +1,527 @@
|
||||
% A template for eLife submissions.
|
||||
%
|
||||
% Created by Overleaf (writeLaTeX).
|
||||
%
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\ProvidesClass{elife}[2022/06/01, v1.11]
|
||||
|
||||
%% Move all option processing before loading class
|
||||
\newif\if@reqslineno
|
||||
\DeclareOption{lineno}{\@reqslinenotrue}
|
||||
|
||||
%% Linespacing.
|
||||
\newif\if@onehalfspacing
|
||||
\newif\if@doublespacing
|
||||
\DeclareOption{onehalfspacing}{\@onehalfspacingtrue}
|
||||
\DeclareOption{doublespacing}{\@doublespacingtrue}
|
||||
|
||||
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}}
|
||||
\ExecuteOptions{}
|
||||
\ProcessOptions\relax
|
||||
\LoadClass{extarticle}
|
||||
|
||||
\RequirePackage[english]{babel}
|
||||
|
||||
\RequirePackage{calc}
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{regexpatch}
|
||||
\RequirePackage{ifxetex,ifluatex}
|
||||
|
||||
\newif\ifxetexorluatex
|
||||
\ifxetex
|
||||
\xetexorluatextrue
|
||||
\else
|
||||
\ifluatex
|
||||
\xetexorluatextrue
|
||||
\else
|
||||
\xetexorluatexfalse
|
||||
\fi
|
||||
\fi
|
||||
|
||||
\RequirePackage{amsmath}
|
||||
\RequirePackage{mdframed}
|
||||
|
||||
\RequirePackage{lineno}
|
||||
\if@reqslineno\linenumbers\fi
|
||||
|
||||
% Note v1.0 of elife.cls used Trueno font; this was
|
||||
% changed to use Open Sans in v1.1
|
||||
\ifxetexorluatex
|
||||
\RequirePackage{unicode-math}
|
||||
% v1.7: xits-math font name changed to XITSMath in TL2019
|
||||
\RequirePackage[default]{opensans}
|
||||
\setmonofont[Scale=MatchUppercase]{Latin Modern Mono}
|
||||
% XITSMath is really STIX. Really.
|
||||
% https://tex.stackexchange.com/questions/227216/stix-versus-xits
|
||||
\setmathfont[Extension = .otf,BoldFont = XITSMath-Bold,]{XITSMath-Regular}
|
||||
\else
|
||||
\RequirePackage[T1]{fontenc}
|
||||
\RequirePackage[utf8]{inputenc}
|
||||
\RequirePackage{stix}
|
||||
\RequirePackage[default]{opensans}
|
||||
\renewcommand{\ttdefault}{lmtt}
|
||||
\fi
|
||||
|
||||
\RequirePackage{microtype}
|
||||
|
||||
% Trueno/Open Sans requires a bigger "single" linespread.
|
||||
\linespread{1.2}
|
||||
\if@onehalfspacing\linespread{1.5}\fi
|
||||
\if@doublespacing\linespread{2.0}\fi
|
||||
|
||||
\RequirePackage{graphicx,xcolor}
|
||||
\definecolor{eLifeDarkBlue}{HTML}{273B81}
|
||||
\definecolor{eLifeLightBlue}{HTML}{0A9DD9}
|
||||
\definecolor{eLifeMediumGrey}{HTML}{6D6E70}
|
||||
\definecolor{eLifeLightGrey}{HTML}{929497}
|
||||
|
||||
\RequirePackage{booktabs}
|
||||
\RequirePackage{authblk}
|
||||
|
||||
\RequirePackage[left=6cm,%
|
||||
marginparwidth=4cm,%
|
||||
marginparsep=0.5cm,%
|
||||
right=1.3cm,%
|
||||
top=2cm,%
|
||||
bottom=2.5cm,%
|
||||
headheight=21pt,%
|
||||
headsep=2\baselineskip,%
|
||||
columnsep=2em,%
|
||||
letterpaper]{geometry}%
|
||||
\RequirePackage{changepage}
|
||||
|
||||
\RequirePackage{silence}
|
||||
\WarningFilter{caption}{The option `hypcap=true' will be ignored}
|
||||
|
||||
\RequirePackage[labelfont={bf},%
|
||||
labelsep=period,%
|
||||
justification=raggedright,%
|
||||
singlelinecheck=false,%
|
||||
tableposition=top,font=small]
|
||||
{caption}
|
||||
|
||||
% \captionsetup*[table]{skip=\medskipamount}
|
||||
|
||||
|
||||
\RequirePackage{natbib}
|
||||
\renewcommand{\bibfont}{\small}
|
||||
% modifed from https://github.com/gbhutani/vancouver_authoryear_bibstyle/
|
||||
\IfFileExists{vancouver-elife.bst}
|
||||
{\bibliographystyle{vancouver-elife}}
|
||||
{\PackageWarning{elife}{vancouver-elife.bst not found; falling back to apalike bibliography style.}\bibliographystyle{apalike}}
|
||||
% Make author in citation italic
|
||||
\renewcommand{\NAT@nmfmt}[1]{{\bfseries\itshape\color{eLifeMediumGrey} #1}}
|
||||
|
||||
% ...as well as the year
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}}
|
||||
{\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@nmfmt{\NAT@date}}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\else\unskip\NAT@spacechar\NAT@hyper@{\NAT@date}}
|
||||
{\else\unskip\NAT@spacechar\NAT@hyper@{\NAT@nmfmt{\NAT@date}}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\hyper@natlinkbreak{\NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb}\NAT@date}
|
||||
{\hyper@natlinkbreak{\NAT@nmfmt{\NAT@aysep\NAT@spacechar}}{\@citeb\@extra@b@citeb}\NAT@nmfmt{\NAT@date}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{\@citea\NAT@hyper@{\NAT@date}}
|
||||
{\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@date}}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
|
||||
\xpatchcmd{\NAT@citex}
|
||||
{{\@citeb\@extra@b@citeb}\NAT@date}
|
||||
{{\@citeb\@extra@b@citeb}\NAT@nmfmt{\NAT@date}}
|
||||
{}{\PackageWarning{eLife}{Failed to patch year format in citation}}
|
||||
%% There, we're finally done with patching the year in citations.
|
||||
|
||||
%
|
||||
% headers and footers
|
||||
%
|
||||
\RequirePackage{fancyhdr} % custom headers/footers
|
||||
\RequirePackage{lastpage} % Number of pages in the document
|
||||
\pagestyle{fancy} % Enables the custom headers/footers
|
||||
\addtolength{\headwidth}{\marginparsep}
|
||||
\addtolength{\headwidth}{\marginparwidth}
|
||||
\fancyhf{}
|
||||
% Removing header in v1.9
|
||||
% \chead{%
|
||||
% \setlength{\fboxsep}{3pt}
|
||||
% \colorbox{eLifeMediumGrey}{\begin{minipage}{\headwidth}\centering\color{white} Manuscript submitted to eLife\end{minipage}}%
|
||||
% }
|
||||
|
||||
% Footers
|
||||
\rfoot{\small\color{eLifeMediumGrey}\thepage\space of\space\pageref{LastPage}}%
|
||||
\preto{\footrule}{\color{eLifeMediumGrey}}
|
||||
\renewcommand{\headrulewidth}{0pt}% % No header rule
|
||||
\renewcommand{\footrulewidth}{0.4pt}% % No footer rule
|
||||
|
||||
%
|
||||
% section/subsection/paragraph set-up
|
||||
%
|
||||
\setcounter{secnumdepth}{0}
|
||||
\RequirePackage[explicit]{titlesec}
|
||||
\titleformat{\section}
|
||||
{\color{eLifeMediumGrey}\Large\bfseries}
|
||||
{\thesection}{}{#1}[]
|
||||
\titleformat{\subsection}
|
||||
{\large\bfseries}
|
||||
{\thesubsection}{}{#1}[]
|
||||
\titleformat{\subsubsection}
|
||||
{\large}
|
||||
{\thesubsubsection}{}{#1}[]
|
||||
\titleformat{\paragraph}
|
||||
{\color{eLifeMediumGrey}\large}
|
||||
{\theparagraph}{}{#1}[]
|
||||
\titlespacing*{\section}{0pc}{3ex \@plus4pt \@minus3pt}{0pt}
|
||||
\titlespacing*{\subsection}{0pc}{2.5ex \@plus3pt \@minus2pt}{0pt}
|
||||
\titlespacing*{\subsubsection}{0pc}{2ex \@plus2.5pt \@minus1.5pt}{0pt}
|
||||
\titlespacing*{\paragraph}{0pc}{1.5ex \@plus2pt \@minus1pt}{0pt}
|
||||
|
||||
\RequirePackage{enumitem}
|
||||
\setlist{noitemsep}
|
||||
|
||||
\RequirePackage{alphalph}
|
||||
\newalphalph{\fnsymbolmult}[mult]{\@fnsymbol}{5}
|
||||
|
||||
\newcounter{authorfn}
|
||||
\setcounter{authorfn}{1}
|
||||
\newcommand{\authfn}[1]{%
|
||||
\fnsymbolmult{\numexpr\value{authorfn}+#1}%
|
||||
}
|
||||
|
||||
\def\@correspondence{}
|
||||
\def\@contribution{}
|
||||
\def\@presentaddress{}
|
||||
\def\@deceased{}
|
||||
|
||||
\newcommand{\corr}[2]{%
|
||||
\ifx\empty\@correspondence\else\appto{\@correspondence}{; }{}{}\fi
|
||||
\appto{\@correspondence}{%
|
||||
\url{#1}%
|
||||
\ifx\empty#2\else\space(#2)\fi
|
||||
}{}{}%
|
||||
}
|
||||
|
||||
\newcommand{\contrib}[2][]{
|
||||
\appto{\@contribution}{%
|
||||
\ifx\empty#1\else\textsuperscript{#1}\fi
|
||||
#2\\
|
||||
}{}{}
|
||||
}
|
||||
|
||||
\newcommand{\presentadd}[2][]{
|
||||
\ifx\empty\@presentaddress\else\appto{\@presentaddress}{; }{}{}\fi
|
||||
\appto{\@presentaddress}{%
|
||||
\ifx\empty#1\else\textsuperscript{#1}\fi
|
||||
#2%
|
||||
}{}{}
|
||||
}
|
||||
|
||||
\newcommand{\deceased}[1]{\def\@deceased{\textsuperscript{#1}Deceased}}
|
||||
|
||||
\reversemarginpar
|
||||
|
||||
%
|
||||
% custom title page
|
||||
%
|
||||
\renewcommand{\Authfont}{\bfseries\large\raggedright}
|
||||
\renewcommand{\Affilfont}{\mdseries\large\raggedright}
|
||||
\renewcommand{\Authands}{, }
|
||||
\setlength{\affilsep}{16pt}
|
||||
\renewcommand{\AB@affilsepx}{; \protect\Affilfont}
|
||||
|
||||
\newcommand{\themetadata}{%
|
||||
\textbf{*For correspondence:\\} \@correspondence\par
|
||||
\ifx\empty\@contribution\else
|
||||
\bigskip\@contribution\par\fi
|
||||
\ifx\empty\@presentaddress\else
|
||||
\bigskip\textbf{Present address: }\@presentaddress\par\fi
|
||||
\bigskip
|
||||
\ifx\empty\@deceased\else\@deceased\par\fi
|
||||
}
|
||||
|
||||
\patchcmd{\@author}{\AB@authlist\\[\affilsep]\AB@affillist}{\AB@authlist\\[\affilsep]
|
||||
\marginpar{\raggedright\footnotesize\themetadata\par}\AB@affillist}{}{}
|
||||
|
||||
\renewcommand{\maketitle}{%
|
||||
\vskip36pt%
|
||||
{\color{eLifeDarkBlue}\raggedright\bfseries\fontsize{22}{27}\selectfont \@title\par}%
|
||||
\vskip16pt
|
||||
{\@author\par}
|
||||
\vskip8pt
|
||||
}
|
||||
|
||||
\renewenvironment{abstract}{%
|
||||
\setlength{\parindent}{0pt}\raggedright
|
||||
\textcolor{eLifeMediumGrey}{\rule{\textwidth}{2pt}}
|
||||
\vskip16pt
|
||||
\textcolor{eLifeLightBlue}{\large\bfseries\abstractname\space}
|
||||
}{%
|
||||
\vskip8pt
|
||||
\textcolor{eLifeMediumGrey}{\rule{\textwidth}{2pt}}
|
||||
\vskip16pt
|
||||
}
|
||||
|
||||
%% Insert a grey line to separate floats from main text
|
||||
\newcommand{\topfigrule}{\vskip8pt\noindent{\rule{\linewidth}{1pt}}}
|
||||
\newcommand{\botfigrule}{\noindent{\rule{\linewidth}{1pt}}\vskip8pt}
|
||||
|
||||
\RequirePackage{newfloat}
|
||||
\RequirePackage{wrapfig}
|
||||
\AtEndEnvironment{wrapfigure}{\vskip8pt\noindent{\rule{\hsize}{1pt}}}
|
||||
% \RequirePackage[lflt]{floatflt}
|
||||
% \AtEndEnvironment{floatingfigure}{\vskip8pt\noindent\textcolor{eLifeMediumGrey}{\rule{\hsize}{2pt}}}
|
||||
|
||||
\DeclareFloatingEnvironment[placement=btp,name=Box]{featurebox}
|
||||
\captionsetup[featurebox]{font={Large,bf,color=eLifeDarkBlue}}
|
||||
|
||||
% v1.11 2022-06 Updated many caption casing and dashes
|
||||
\newcounter{featurefigure}
|
||||
\newcounter{featuretable}
|
||||
\AtBeginEnvironment{featurebox}{%
|
||||
\setcounter{featurefigure}{0}%
|
||||
\setcounter{featuretable}{0}%
|
||||
\newcommand{\featurefig}[1]{%
|
||||
\refstepcounter{featurefigure}%
|
||||
\vskip\smallskipamount%
|
||||
{\small\textbf{\color{eLifeDarkBlue}Box \arabic{featurebox}---figure \arabic{featurefigure}.}\space #1\par}\medskip}
|
||||
\newcommand{\featuretable}[1]{%
|
||||
\refstepcounter{featuretable}%
|
||||
\vskip\smallskipamount%
|
||||
{\small\textbf{\color{eLifeDarkBlue}Box \arabic{featurebox}---table \arabic{featuretable}.}\space #1\par}\medskip}
|
||||
|
||||
}
|
||||
\apptocmd{\featurebox}{%
|
||||
\begin{mdframed}[linewidth=0pt,backgroundcolor=eLifeLightBlue!10,fontcolor=eLifeDarkBlue]
|
||||
\if@reqslineno\addtolength{\linenumbersep}{1em}\internallinenumbers\fi%
|
||||
}{}{}
|
||||
\pretocmd{\endfeaturebox}{\end{mdframed}}{}{}
|
||||
|
||||
|
||||
\newenvironment{fullwidth}{%
|
||||
\begin{adjustwidth}{-4.5cm}{}%
|
||||
\hsize=\linewidth%
|
||||
}{\end{adjustwidth}}
|
||||
|
||||
\appto{\appendix}{%
|
||||
\captionsetup*[figure]{name={Appendix \arabic{appendix}---figure },font={color=eLifeDarkBlue,small},skip=\smallskipamount}%
|
||||
\captionsetup*[table]{name={Appendix \arabic{appendix}---table },font={color=eLifeDarkBlue,small}}%
|
||||
}
|
||||
|
||||
\newcounter{figsupp}
|
||||
\setcounter{figsupp}{0}
|
||||
\newcounter{data}
|
||||
\setcounter{data}{0}
|
||||
%% Added videos 2021/03/07
|
||||
\newcounter{srccode}
|
||||
\setcounter{srccode}{0}
|
||||
%% Added fig supp data and source code 2022/06
|
||||
\newcounter{fsdata}
|
||||
\setcounter{fsdata}{0}
|
||||
\newcounter{fssrccode}
|
||||
\setcounter{fssrccode}{0}
|
||||
%% Added videos 2018/06/03
|
||||
\newcounter{video}
|
||||
\setcounter{video}{0}
|
||||
\newcounter{videosupp}
|
||||
\setcounter{videosupp}{0}
|
||||
\def\supplist{}
|
||||
|
||||
\RequirePackage{newfile}
|
||||
\newoutputstream{suppinfo}
|
||||
\openoutputfile{\jobname.suppinfo}{suppinfo}
|
||||
\addtostream{suppinfo}{\protect\setcounter{figure}{0}}
|
||||
|
||||
% Added video source data and code 2022/06
|
||||
\DeclareRobustCommand{\video}[1]{%
|
||||
\refstepcounter{video}%
|
||||
\setcounter{data}{0}%
|
||||
\setcounter{srccode}{0}%
|
||||
\bigskip%
|
||||
\noindent{\small\textbf{Video \arabic{video}.} #1\par}%
|
||||
\bigskip
|
||||
}
|
||||
\DeclareRobustCommand{\videodata}[1]{%
|
||||
\refstepcounter{data}%
|
||||
\par\noindent{\small\textbf{Video~\thevideo---source data \arabic{data}.} #1}\par
|
||||
}
|
||||
\DeclareRobustCommand{\videosrccode}[1]{%
|
||||
\refstepcounter{srccode}%
|
||||
\par\noindent{\small\textbf{Video~\thevideo---source code \arabic{srccode}.} #1}\par
|
||||
}
|
||||
|
||||
% Added fig supp source data and code 2022/06
|
||||
\DeclareRobustCommand{\figsuppsrccode}[1]{%
|
||||
\protect\refstepcounter{fssrccode}%
|
||||
\par\small\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}---source code~\arabic{fssrccode}. } #1\par
|
||||
}
|
||||
\DeclareRobustCommand{\figsuppdata}[1]{%
|
||||
\protect\refstepcounter{fsdata}%
|
||||
\par\small\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}---source data~\arabic{fsdata}. } #1\par
|
||||
}
|
||||
|
||||
|
||||
\AtBeginEnvironment{figure}{%
|
||||
\setcounter{figsupp}{0}
|
||||
\setcounter{data}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\addtostream{suppinfo}{
|
||||
\protect\setcounter{figsupp}{0}
|
||||
\protect\refstepcounter{figure}
|
||||
}
|
||||
}
|
||||
|
||||
\AtBeginEnvironment{wrapfigure}{%
|
||||
\setcounter{figsupp}{0}
|
||||
\setcounter{data}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\addtostream{suppinfo}{
|
||||
\protect\setcounter{figsupp}{0}
|
||||
\protect\refstepcounter{figure}
|
||||
}
|
||||
}
|
||||
|
||||
%% Updated 2017/06/30 to allow optional argument
|
||||
\DeclareRobustCommand{\figsupp}[3][]{%
|
||||
\refstepcounter{figsupp}%
|
||||
\addtostream{suppinfo}{%
|
||||
\protect\refstepcounter{figsupp}
|
||||
\protect\setcounter{fsdata}{0}
|
||||
\protect\setcounter{fssrccode}{0}
|
||||
}%
|
||||
{%
|
||||
\ifstrequal{#1}{none}{}{%
|
||||
\small\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}.}
|
||||
\ifstrempty{#1}{%
|
||||
\renewcommand\figsuppdata[1]{}%
|
||||
\renewcommand\figsuppsrccode[1]{}%
|
||||
#2}{%
|
||||
\renewcommand\figsuppdata[1]{}%
|
||||
\renewcommand\figsuppsrccode[1]{}%
|
||||
#1}}}\raggedright\par
|
||||
\addtostream{suppinfo}{%
|
||||
\noindent\protect\begin{minipage}{\linewidth}
|
||||
\protect #3\noexpand\par
|
||||
\textbf{\figurename~\thefigure---figure supplement \arabic{figsupp}.} #2\noexpand\par
|
||||
\vskip8pt
|
||||
\protect\end{minipage}
|
||||
\vskip16pt
|
||||
}
|
||||
}
|
||||
\DeclareRobustCommand{\figdata}[1]{%
|
||||
\refstepcounter{data}
|
||||
{\small\textbf{\figurename~\thefigure---source data \arabic{data}.} #1}\par
|
||||
}
|
||||
%% Added 2021/03/07
|
||||
\DeclareRobustCommand{\figsrccode}[1]{%
|
||||
\refstepcounter{srccode}
|
||||
{\small\textbf{\figurename~\thefigure---source code \arabic{srccode}.} #1}\par
|
||||
}
|
||||
%% Added 2018/06/03
|
||||
\DeclareRobustCommand{\videosupp}[1]{%
|
||||
\refstepcounter{videosupp}
|
||||
{\small\textbf{\figurename~\thefigure---video \arabic{videosupp}.} #1}\par
|
||||
}
|
||||
|
||||
% Added table source data and code 2022/06
|
||||
\AtBeginEnvironment{table}{%
|
||||
\setcounter{data}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
}
|
||||
|
||||
\AtBeginEnvironment{wraptable}{%
|
||||
\setcounter{data}{0}
|
||||
\setcounter{srccode}{0}
|
||||
\setcounter{videosupp}{0}
|
||||
}
|
||||
|
||||
\DeclareRobustCommand{\tabledata}[1]{%
|
||||
\refstepcounter{data}
|
||||
{\small\textbf{\tablename~\thetable---source data \arabic{data}.} #1}\par
|
||||
}
|
||||
\DeclareRobustCommand{\tablesrccode}[1]{%
|
||||
\refstepcounter{srccode}
|
||||
{\small\textbf{\tablename~\thetable---source code \arabic{srccode}.} #1}\par
|
||||
}
|
||||
|
||||
|
||||
\AtEndDocument{%
|
||||
\closeoutputstream{suppinfo}
|
||||
% \pagestyle{empty}
|
||||
\renewcommand{\footrule}{}
|
||||
\rfoot{}
|
||||
\input{\jobname.suppinfo}
|
||||
}
|
||||
|
||||
\newcounter{appendix}
|
||||
\setcounter{appendix}{0}
|
||||
\newenvironment{appendixbox}{%
|
||||
\setcounter{figure}{0}
|
||||
\setcounter{table}{0}
|
||||
\refstepcounter{appendix}%
|
||||
\clearpage%
|
||||
\patchcmd{\ttlf@section}{eLifeMediumGrey}{eLifeDarkBlue}{}{}
|
||||
\noindent{\bfseries\Large\color{eLifeMediumGrey}Appendix \arabic{appendix}\par}
|
||||
\nolinenumbers%
|
||||
\begin{mdframed}[hidealllines=true,backgroundcolor=eLifeLightBlue!10,fontcolor=eLifeDarkBlue,leftline=true,linecolor=eLifeLightBlue,linewidth=1em]
|
||||
\if@reqslineno\addtolength{\linenumbersep}{2em}\internallinenumbers\fi
|
||||
}{%
|
||||
\end{mdframed}
|
||||
}
|
||||
|
||||
\RequirePackage{hyperref}
|
||||
\hypersetup{colorlinks=true,allcolors=black,citecolor=eLifeMediumGrey,linkcolor=eLifeMediumGrey,urlcolor=eLifeLightBlue,hypertexnames=false}
|
||||
\urlstyle{sf}
|
||||
|
||||
% Other desired commands
|
||||
\renewcommand{\equationautorefname}{Eq.}
|
||||
%% Added autoref support for \figsupp, \figdata, \video, \videosupp, (2021-03-04) \figsrccode
|
||||
% Added support for figsupp, video source data and code 2022/06
|
||||
\newcommand{\figsuppautorefname}{figure Supplement}
|
||||
\newcommand{\dataautorefname}{source data}
|
||||
\newcommand{\videoautorefname}{Video}
|
||||
\newcommand{\videosuppautorefname}{video}
|
||||
\newcommand{\srccodeautorefname}{source code}
|
||||
\newcommand{\FIGSUPP}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{figsupp:#2}%
|
||||
}
|
||||
\newcommand{\FIGDATA}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{figdata:#2}%
|
||||
}
|
||||
\newcommand{\TABLEDATA}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{tab:#1}---}\autoref{tabdata:#2}%
|
||||
}
|
||||
\newcommand{\VIDEODATA}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{video:#1}---}\autoref{viddata:#2}%
|
||||
}
|
||||
|
||||
\newcommand{\FIGSRCCODE}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{figsrccode:#2}%
|
||||
}
|
||||
\newcommand{\TABLESRCCODE}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{tab:#1}---}\autoref{tabsrccode:#2}%
|
||||
}
|
||||
\newcommand{\VIDEOSRCCODE}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{video:#1}---}\autoref{vidsrccode:#2}%
|
||||
}
|
||||
|
||||
\newcommand{\VIDEOSUPP}[2][]{%
|
||||
\ifstrequal{#1}{}{}{\autoref{fig:#1}---}\autoref{videosupp:#2}%
|
||||
}
|
||||
\newcommand{\FIG}[1]{\autoref{fig:#1}}
|
||||
\newcommand{\TABLE}[1]{\autoref{tab:#1}}
|
||||
\newcommand{\VIDEO}[1]{\autoref{video:#1}}
|
||||
\newcommand{\EQ}[1]{\autoref{eq:#1}}
|
||||
\newcommand{\BOX}[1]{\autoref{box:#1}}
|
||||
\let\oldautoref\autoref
|
||||
\renewcommand{\autoref}[1]{\emph{\textbf{\oldautoref{#1}}}}
|
||||
|
||||
\endinput
|
Loading…
Reference in New Issue
Block a user