Created
January 14, 2021 21:57
-
-
Save MatthewRalston/68f1e4f262712b0f2a60b3b617a3c8cb to your computer and use it in GitHub Desktop.
DCNorris' Peerj Latex template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$} | |
$if(fontfamily)$ | |
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$} | |
$else$ | |
\usepackage{lmodern} | |
$endif$ | |
% Originally coded by Matt Ralston, Jan 14 2021 | |
% Alex Ball's tutorial LaTeX code for making a bibLaTeX oxyear style (biblatex-oxref) | |
% Bibliography. | |
% I used the following document, hosted on the CTAN servers of math.utah.edu | |
% to create the bibliography using Alex's style guide. | |
% Thank you, sincerely, Alex for the awesome library. | |
% http://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/biblatex-contrib/biblatex-oxref/oxref.pdf | |
% $if(biblatex)$ | |
% $if(biblio-title)$ | |
% | |
% \RequireBibliographyStyle{oxref} | |
% \ExecuteBibliographOptions{giveninits,labeldateparts,sorting=nyt,pagetracker,mergedate,maxcitenames=2} | |
% | |
% \RequireCitationStyle{authoryear-comp} | |
% \ExecuteBibliographOptions{uniquename=init} | |
% $endif$ | |
% $endif$ | |
\usepackage{biorxiv} % github.com/alexsbaldwin/biorxiv-inspired-latex-style | |
\usepackage{lineno} | |
\newlength{\cslhangindent} | |
\setlength{\cslhangindent}{1.5em} | |
\newenvironment{CSLReferences}% | |
{\setlength{\parindent}{0pt}% | |
\everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces}% | |
{\par} | |
$if(linestretch)$ | |
\usepackage{setspace} | |
\setstretch{$linestretch$} | |
$endif$ | |
\usepackage{amssymb,amsmath} | |
\usepackage{ifxetex,ifluatex} | |
\usepackage{fixltx2e} % provides \textsubscript | |
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} | |
\usepackage[utf8]{inputenc} | |
$if(euro)$ | |
\usepackage{eurosym} | |
$endif$ | |
\else % if luatex or xelatex | |
\ifxetex | |
\usepackage{mathspec} | |
\else | |
\usepackage{fontspec} | |
\fi | |
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase} | |
$for(fontfamilies)$ | |
\newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$} | |
$endfor$ | |
$if(euro)$ | |
\newcommand{\euro}{€} | |
$endif$ | |
$if(mainfont)$ | |
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$} | |
$endif$ | |
$if(sansfont)$ | |
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$} | |
$endif$ | |
$if(monofont)$ | |
\setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$} | |
$endif$ | |
$if(mathfont)$ | |
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$} | |
$endif$ | |
$if(CJKmainfont)$ | |
\usepackage{xeCJK} | |
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$} | |
$endif$ | |
\fi | |
% use upquote if available, for straight quotes in verbatim environments | |
\IfFileExists{upquote.sty}{\usepackage{upquote}}{} | |
% use microtype if available | |
\IfFileExists{microtype.sty}{% | |
\usepackage{microtype} | |
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts | |
}{} | |
$if(geometry)$ | |
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry} | |
$endif$ | |
\usepackage[unicode=true]{hyperref} | |
$if(colorlinks)$ | |
\PassOptionsToPackage{usenames,dvipsnames}{color} % color is loaded by hyperref | |
$endif$ | |
\hypersetup{ | |
$if(title-meta)$ | |
pdftitle={$title-meta$}, | |
$endif$ | |
$if(author-meta)$ | |
pdfauthor={$author-meta$}, | |
$endif$ | |
$if(keywords)$ | |
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$}, | |
$endif$ | |
$if(colorlinks)$ | |
colorlinks=true, | |
linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$, | |
citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$, | |
urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$, | |
$else$ | |
pdfborder={0 0 0}, | |
$endif$ | |
breaklinks=true} | |
\urlstyle{same} % don't use monospace font for urls | |
$if(lang)$ | |
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel} | |
$if(babel-newcommands)$ | |
$babel-newcommands$ | |
$endif$ | |
\else | |
\usepackage{polyglossia} | |
\setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$} | |
$for(polyglossia-otherlangs)$ | |
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$} | |
$endfor$ | |
\fi | |
$endif$ | |
% Import biblatex | |
$if(biblatex)$ | |
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex} | |
$for(bibliography)$ | |
\addbibresource{$bibliography$} | |
$endfor$ | |
$endif$ | |
$if(listings)$ | |
\usepackage{listings} | |
$endif$ | |
$if(lhs)$ | |
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{} | |
$endif$ | |
$if(highlighting-macros)$ | |
$highlighting-macros$ | |
$endif$ | |
$if(verbatim-in-note)$ | |
\usepackage{fancyvrb} | |
\VerbatimFootnotes % allows verbatim text in footnotes | |
$endif$ | |
$if(tables)$ | |
\usepackage{longtable,booktabs} | |
% Fix footnotes in tables (requires footnote package) | |
\IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{long table}}{} | |
$endif$ | |
$if(graphics)$ | |
\usepackage{graphicx,grffile} | |
\makeatletter | |
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} | |
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} | |
\makeatother | |
% Scale images if necessary, so that they will not overflow the page | |
% margins by default, and it is still possible to overwrite the defaults | |
% using explicit options in \includegraphics[width, height, ...]{} | |
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} | |
$endif$ | |
$if(links-as-notes)$ | |
% Make links footnotes instead of hotlinks: | |
\renewcommand{\href}[2]{#2\footnote{\url{#1}}} | |
$endif$ | |
$if(strikeout)$ | |
\usepackage[normalem]{ulem} | |
% avoid problems with \sout in headers with hyperref: | |
\pdfstringdefDisableCommands{\renewcommand{\sout}{}} | |
$endif$ | |
$if(indent)$ | |
$else$ | |
\IfFileExists{parskip.sty}{% | |
\usepackage{parskip} | |
}{% else | |
\setlength{\parindent}{0pt} | |
\setlength{\parskip}{6pt plus 2pt minus 1pt} | |
} | |
$endif$ | |
\setlength{\emergencystretch}{3em} % prevent overfull lines | |
\providecommand{\tightlist}{% | |
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} | |
$if(numbersections)$ | |
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$} | |
$else$ | |
\setcounter{secnumdepth}{0} | |
$endif$ | |
$if(subparagraph)$ | |
$else$ | |
% Redefines (sub)paragraphs to behave more like sections | |
\ifx\paragraph\undefined\else | |
\let\oldparagraph\paragraph | |
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}} | |
\fi | |
\ifx\subparagraph\undefined\else | |
\let\oldsubparagraph\subparagraph | |
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}} | |
\fi | |
$endif$ | |
$if(dir)$ | |
\ifxetex | |
% load bidi as late as possible as it modifies e.g. graphicx | |
$if(latex-dir-rtl)$ | |
\usepackage[RTLdocument]{bidi} | |
$else$ | |
\usepackage{bidi} | |
$endif$ | |
\fi | |
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex | |
\TeXXeTstate=1 | |
\newcommand{\RL}[1]{\beginR #1\endR} | |
\newcommand{\LR}[1]{\beginL #1\endL} | |
\newenvironment{RTL}{\beginR}{\endR} | |
\newenvironment{LTR}{\beginL}{\endL} | |
\fi | |
$endif$ | |
% set default figure placement to htbp | |
\makeatletter | |
\def\fps@figure{htbp} | |
\makeatother | |
$for(header-includes)$ | |
$header-includes$ | |
$endfor$ | |
$if(title)$ | |
\title{$title$} | |
$else$ | |
\typeout{A TITLE MUST BE PROVIDED}\QUIT | |
$endif$ | |
$if(author)$ | |
$for(author)$% | |
\author[$author.no$]{$author.name$} | |
\affil[$author.no$]{$author.affil$} | |
$if(author.email)$% | |
\corrauthor[$author.no$]{$author.name$}{$author.email$} | |
$endif$ | |
$if(author.thanks)$% | |
\thanks{$author.thanks$} | |
$endif$ | |
$endfor$ | |
$else$ | |
\typeout{AT LEAST ONE AUTHOR MUST BE LISTED}\QUIT | |
$endif$ | |
$if(abstract)$ | |
\begin{abstract} | |
$abstract$ | |
\end{abstract} | |
$endif$ | |
$if(keywords)$ | |
\subsection*{Keywords}\label{keywords} | |
$for(keywords)$$keywords$$sep$, $endfor$ | |
$endif$ | |
$for(include-before)$ | |
$include-before$ | |
$endfor$ | |
$if(toc)$ | |
{ | |
$if(colorlinks)$ | |
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$} | |
$endif$ | |
\setcounter{tocdepth}{$toc-depth$} | |
\tableofcontents | |
} | |
$endif$ | |
$if(lot)$ | |
\listoftables | |
$endif$ | |
$if(lof)$ | |
\listoffigures | |
$endif$ | |
\rfoot{\small\sffamily\bfseries\thepage/\pageref{endmain}} | |
\begin{document} | |
\linenumbers | |
\flushbottom | |
\thispagestyle{empty} | |
\maketitle | |
% $if(bibliography)$ | |
% \newcommand{\pjbibliography}{\small\bibliographystyle{unsrtnat}% | |
% \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}% | |
% \label{endmain}% | |
% } | |
% $endif$ | |
$body$ | |
$if(biblatex)$ | |
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ | |
$endif$ | |
$for(include-after)$ | |
$include-after$ | |
$endfor$ | |
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% | |
% An unofficial LaTeX class for PeerJ articles. | |
% | |
% Created by Overleaf (writeLaTeX). | |
% | |
% Based on the SelfArx document class. | |
% | |
\NeedsTeXFormat{LaTeX2e} | |
\ProvidesClass{wlpeerj}[18/08/2016, v1.2] | |
\RequirePackage[utf8]{inputenc} | |
\RequirePackage[english]{babel} | |
\RequirePackage{ifthen} | |
\RequirePackage{calc} | |
\AtEndOfClass{\RequirePackage{microtype}} | |
\newif\if@peerjlineno | |
\DeclareOption{lineno}{\@peerjlinenotrue} | |
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} | |
\ProcessOptions* | |
\LoadClass{article} | |
\RequirePackage{times} % Loads the Times-Roman Fonts | |
\RequirePackage{mathptmx} % Loads the Times-Roman Math Fonts | |
\RequirePackage{lineno} % For numbering the lines if lineno option is given | |
\if@peerjlineno\linenumbers\fi | |
\RequirePackage{ifpdf} | |
\RequirePackage{amsmath,amsfonts,amssymb} | |
\RequirePackage{graphicx,xcolor} | |
\RequirePackage{booktabs} | |
\RequirePackage{authblk} | |
\RequirePackage[left=5cm,% | |
right=2cm,% | |
top=2.25cm,% | |
bottom=2.25cm,% | |
headheight=12pt,% | |
letterpaper]{geometry}% | |
\RequirePackage[labelfont={bf,sf},% | |
labelsep=period,% | |
justification=raggedright]{caption} | |
% | |
% writeLaTeX logo | |
% | |
\newcommand\wllogo{% | |
\renewcommand*\rmdefault{ugq}\normalfont\upshape{}write% | |
\renewcommand*\rmdefault{cmr}\normalfont\upshape{\bf\LaTeX}} | |
% | |
% headers and footers | |
% | |
\RequirePackage{fancyhdr} % custom headers/footers | |
\RequirePackage{lastpage} % Number of pages in the document | |
\pagestyle{fancy} % Enables the custom headers/footers | |
% Headers | |
\lhead{}% | |
\chead{}% | |
\rhead{}% | |
% Footers | |
\lfoot{}% | |
\cfoot{}% | |
\rfoot{\small\sffamily\bfseries\thepage/\pageref{LastPage}}% | |
\renewcommand{\headrulewidth}{0pt}% % No header rule | |
\renewcommand{\footrulewidth}{0pt}% % No footer rule | |
% | |
% section/subsection/paragraph set-up | |
% | |
\RequirePackage[explicit]{titlesec} | |
\titleformat{\section} | |
{\color{color1}\large\sffamily\bfseries} | |
{\thesection} | |
{0.5em} | |
{\MakeUppercase{#1}} | |
[] | |
\titleformat{name=\section,numberless} | |
{\color{color1}\large\sffamily\bfseries} | |
{} | |
{0em} | |
{\MakeUppercase{#1}} | |
[] | |
\titleformat{\subsection} | |
{\sffamily\bfseries} | |
{\thesubsection} | |
{0.5em} | |
{#1} | |
[] | |
\titleformat{\subsubsection} | |
{\sffamily\small\bfseries\itshape} | |
{\thesubsubsection} | |
{0.5em} | |
{#1} | |
[] | |
\titleformat{\paragraph}[runin] | |
{\sffamily\small\bfseries} | |
{} | |
{0em} | |
{#1} | |
\titlespacing*{\section}{0pc}{3ex \@plus4pt \@minus3pt}{5pt} | |
\titlespacing*{\subsection}{0pc}{2.5ex \@plus3pt \@minus2pt}{0pt} | |
\titlespacing*{\subsubsection}{0pc}{2ex \@plus2.5pt \@minus1.5pt}{0pt} | |
\titlespacing*{\paragraph}{0pc}{1.5ex \@plus2pt \@minus1pt}{10pt} | |
% | |
% tableofcontents set-up | |
% | |
\usepackage{titletoc} | |
\contentsmargin{0cm} | |
\titlecontents{section}[\tocsep] | |
{\addvspace{4pt}\small\bfseries\sffamily} | |
{\contentslabel[\thecontentslabel]{\tocsep}} | |
{} | |
{\hfill\thecontentspage} | |
[] | |
\titlecontents{subsection}[\tocsep] | |
{\addvspace{2pt}\small\sffamily} | |
{\contentslabel[\thecontentslabel]{\tocsep}} | |
{} | |
{\ \titlerule*[.5pc]{.}\ \thecontentspage} | |
[] | |
\titlecontents*{subsubsection}[\tocsep] | |
{\footnotesize\sffamily} | |
{} | |
{} | |
{} | |
[\ \textbullet\ ] | |
\RequirePackage{enumitem} | |
%\setlist{nolistsep} % Uncomment to remove spacing between items in lists (enumerate, itemize) | |
% Remove brackets from numbering in List of References | |
\renewcommand{\@biblabel}[1]{\bfseries\color{color1}\textsuperscript{[#1]}} | |
% | |
% article meta data | |
%% LLT 18 Aug 2016: no more! | |
% \newcommand{\keywords}[1]{\def\@keywords{#1}} | |
%% LLT 18 Aug 2016: but need corresponding author | |
\newcommand{\corrauthor}[3][]{% | |
\def\thecorrauthor{% | |
Corresponding author:\par #2$^{#1}$\par | |
\medskip | |
Email address: #3\par} | |
} | |
\def\xabstract{abstract} | |
\long\def\abstract#1\end#2{\def\two{#2}\ifx\two\xabstract | |
\long\gdef\theabstract{\ignorespaces#1} | |
\def\go{\end{abstract}}\else | |
\typeout{^^J^^J PLEASE DO NOT USE ANY \string\begin\space \string\end^^J | |
COMMANDS WITHIN ABSTRACT^^J^^J}#1\end{#2} | |
\gdef\theabstract{\vskip12pt BADLY FORMED ABSTRACT: PLEASE DO | |
NOT USE {\tt\string\begin...\string\end} COMMANDS WITHIN | |
THE ABSTRACT\vskip12pt}\let\go\relax\fi | |
\go} | |
% | |
% custom title page | |
% | |
\renewcommand{\@maketitle}{% | |
{% | |
\thispagestyle{empty}% | |
\vskip-36pt% | |
{\raggedright\sffamily\bfseries\fontsize{20}{25}\selectfont \@title\par}% | |
\vskip10pt | |
{\raggedright\sffamily\fontsize{12}{16}\selectfont \@author\par} | |
\vskip1em% | |
% LLT 18 Aug 2016: needs corresponding author now | |
\ifdefined\thecorrauthor | |
{\raggedright\sffamily\thecorrauthor\par} | |
\fi | |
\vskip18pt | |
{% | |
\noindent | |
{\parbox{\dimexpr\linewidth-2\fboxsep\relax}{\color{color1}\large\sffamily\textbf{ABSTRACT}}} | |
}% | |
\vskip10pt\nolinenumbers | |
{% | |
\noindent | |
\colorbox{color2}{% | |
\parbox{\dimexpr\linewidth-2\fboxsep\relax}{% | |
\sffamily\small\vskip1ex\if@peerjlineno\internallinenumbers\fi\theabstract | |
}% | |
}% | |
%% LLT 18 Aug 2016: no more keywords | |
% \vskip18pt% | |
% \noindent | |
% \parbox{\dimexpr\linewidth-2\fboxsep\relax}{% | |
% \if@peerjlineno\internallinenumbers\fi% | |
% {\color{color1}\keywordname\hspace*{1em}} \@keywords% | |
% }% | |
}% | |
\vskip25pt% | |
}% | |
}% | |
%----------------------------------------------- | |
\setlength{\columnsep}{0.55cm} % Distance between the two columns of text | |
\setlength{\fboxrule}{0.75pt} % Width of the border around the abstract | |
\definecolor{color1}{RGB}{0,0,0} % Color of section headings | |
\definecolor{color2}{RGB}{250,232,207} % Color of the box behind the abstract | |
\newcommand{\keywordname}{Keywords:} % Defines the keywords heading name | |
\renewcommand\Authfont{\fontsize{12}{14}\usefont{OT1}{phv}{b}{n}} | |
\renewcommand\Affilfont{\fontsize{10}{12}\usefont{OT1}{phv}{b}{n}} | |
\newlength{\tocsep} | |
\setlength\tocsep{1.5pc} % Sets the indentation of the sections in the table of contents | |
\setcounter{tocdepth}{3} % Show only three levels in the table of contents section: sections, subsections and subsubsections | |
\usepackage{lipsum} % Required to insert dummy text | |
%----------------------------------------------- | |
\let\oldbibliography\thebibliography | |
\renewcommand{\thebibliography}[1]{% | |
\addcontentsline{toc}{section}{\hspace*{-\tocsep}\refname}% | |
\oldbibliography{#1}% | |
\setlength\itemsep{0pt}% | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment