diff --git a/Manuscript/QUEST_WIREs.tex b/Manuscript/QUEST_WIREs.tex new file mode 100644 index 0000000..ab8fbd9 --- /dev/null +++ b/Manuscript/QUEST_WIREs.tex @@ -0,0 +1,171 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% A template for Wiley article submissions. +% Developed by Overleaf. +% +% Please note that whilst this template provides a +% preview of the typeset manuscript for submission, it +% will not necessarily be the final publication layout. +% +% Usage notes: +% The "blind" option will make anonymous all author, affiliation, correspondence and funding information. +% Use "num-refs" option for numerical citation and references style. +% Use "alpha-refs" option for author-year citation and references style. + +\documentclass[num-refs]{wiley-article} +% \documentclass[blind,alpha-refs]{wiley-article} + +% Add additional packages here if required +\usepackage{siunitx} + +% Update article type if known +\papertype{Original Article} +% Include section in journal if known, otherwise delete +\paperfield{Journal Section} + +\title{QUESTDB: a database of highly-accurate excitation energies for the electronic structure community} + +% List abbreviations here, if any. Please note that it is preferred that abbreviations be defined at the first instance they appear in the text, rather than creating an abbreviations list. +\abbrevs{ABC, a black cat; DEF, doesn't ever fret; GHI, goes home immediately.} + +% Include full author names and degrees, when required by the journal. +% Use the \authfn to add symbols for additional footnotes and present addresses, if any. Usually start with 1 for notes about author contributions; then continuing with 2 etc if any author has a different present address. +\author[1]{Mickael V\'eril} +\author[1]{Anthony Scemama} +\author[2]{Denis Jacquemin} +\author[1]{Pierre-Fran\c{c}ois Loos} + +%\contrib[\authfn{1}]{Equally contributing authors.} + +% Include full affiliation details for all authors +\affil[1]{Laboratoire de Chimie et Physique Quantiques, Universit\'e de Toulouse, CNRS, UPS, France} +\affil[2]{Universit\'e de Nantes, CNRS, CEISAM UMR 6230, F-44000 Nantes, France} + +\corraddress{Pierre-Fran\c{c}ois Loos, Laboratoire de Chimie et Physique Quantiques, Universit\'e de Toulouse, CNRS, UPS, France} +\corremail{loos@irsamc-ups-tlse.fr} + +%\presentadd[\authfn{2}]{Department, Institution, City, State or Province, Postal Code, Country} + +\fundinginfo{European Research Council (ERC), European Union's Horizon 2020 research and innovation programme, Grant agreement No.~863481} + +% Include the name of the author that should appear in the running header +\runningauthor{Author One et al.} + +\begin{document} + +\maketitle + +\begin{abstract} +This is a generic template designed for use by multiple journals, which includes several options for customization. Please consult the author guidelines for the journal to which you are submitting in order to confirm that your manuscript will comply with the journal's requirements. Please replace this text with your abstract. + +% Please include a maximum of seven keywords +\keywords{keyword 1, \emph{keyword 2}, keyword 3, keyword 4, keyword 5, keyword 6, keyword 7} +\end{abstract} + +\section{First Level Heading} +Please lay out your article using the section headings and example objects below, and remember to delete all help text prior to submitting your article to the journal. + +\begin{figure}[bt] +\centering +\includegraphics[width=6cm]{example-image-rectangle} +\caption{Although we encourage authors to send us the highest-quality figures possible, for peer-review purposes we are can accept a wide variety of formats, sizes, and resolutions. Legends should be concise but comprehensive – the figure and its legend must be understandable without reference to the text. Include definitions of any symbols used and define/explain all abbreviations and units of measurement.} +\end{figure} + +\subsection{Second Level Heading} +If data, scripts or other artefacts used to generate the analyses presented in the article are available via a publicly available data repository, please include a reference to the location of the material within the article. + +% Equations should be inserted using standard LaTeX equation and eqnarray environments, not as graphics, and should be set in the main text +This is an equation, numbered +\begin{equation} +\int_0^{+\infty}e^{-x^2}dx=\frac{\sqrt{\pi}}{2} +\end{equation} +And one that is not numbered +\begin{equation*} +e^{i\pi}=-1 +\end{equation*} + +\subsection{Adding Citations and a References List} + +Please use a \verb|.bib| file to store your references. When using Overleaf to prepare your manuscript, you can upload a \verb|.bib| file or import your Mendeley, CiteULike or Zotero library directly as a \verb|.bib| file\footnote{see \url{https://www.overleaf.com/blog/184}}. You can then cite entries from it, like this: \citep{lees2010theoretical}. Just remember to specify a bibliography style, as well as the filename of the \verb|.bib|. + +You can find a video tutorial here to learn more about BibTeX: \url{https://www.overleaf.com/help/97-how-to-include-a-bibliography-using-bibtex}. + +This template provides two options for the citation and reference list style: +\begin{description} +\item[Numerical style] Use \verb|\documentclass[...,num-refs]{wiley-article}| +\item[Author-year style] Use \verb|\documentclass[...,alpha-refs]{wiley-article}| +\end{description} + +\subsubsection{Third Level Heading} +Supporting information will be included with the published article. For submission any supporting information should be supplied as separate files but referred to in the text. + +Appendices will be published after the references. For submission they should be supplied as separate files but referred to in the text. + +\paragraph{Fourth Level Heading} +% Here are examples of quotes and epigraphs. +\begin{quote} +The significant problems we have cannot be solved at the same level of thinking with which we created them.\endnote{Albert Einstein said this.} +\end{quote} + +\begin{epigraph}{Albert Einstein} +Anyone who has never made a mistake has never tried anything new. +\end{epigraph} + +\subparagraph{Fifth level heading} +Measurements should be given in SI or SI-derived units. +Chemical substances should be referred to by the generic name only. Trade names should not be used. Drugs should be referred to by their generic names. If proprietary drugs have been used in the study, refer to these by their generic name, mentioning the proprietary name, and the name and location of the manufacturer, in parentheses. + +\begin{table}[bt] +\caption{This is a table. Tables should be self-contained and complement, but not duplicate, information contained in the text. They should be not be provided as images. Legends should be concise but comprehensive – the table, legend and footnotes must be understandable without reference to the text. All abbreviations must be defined in footnotes.} +\begin{threeparttable} +\begin{tabular}{lccrr} +\headrow +\thead{Variables} & \thead{JKL ($\boldsymbol{n=30}$)} & \thead{Control ($\boldsymbol{n=40}$)} & \thead{MN} & \thead{$\boldsymbol t$ (68)}\\ +Age at testing & 38 & 58 & 504.48 & 58 ms\\ +Age at testing & 38 & 58 & 504.48 & 58 ms\\ +Age at testing & 38 & 58 & 504.48 & 58 ms\\ +Age at testing & 38 & 58 & 504.48 & 58 ms\\ +\hiderowcolors +stop alternating row colors from here onwards\\ +Age at testing & 38 & 58 & 504.48 & 58 ms\\ +Age at testing & 38 & 58 & 504.48 & 58 ms\\ +\hline % Please only put a hline at the end of the table +\end{tabular} + +\begin{tablenotes} +\item JKL, just keep laughing; MN, merry noise. +\end{tablenotes} +\end{threeparttable} +\end{table} + +\section*{acknowledgements} +PFL and AS thank the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation programme (Grant agreement No.~863481) for financial support. +Funding from the \textit{``Centre National de la Recherche Scientifique''} is also acknowledged. +DJ acknowledges the \textit{R\'egion des Pays de la Loire} for financial support. + +\section*{conflict of interest} +The authors have declared no conflicts of interest for this article. + +\bibliography{sample} + +%\begin{center} +% \includegraphics[width=4cm]{DJacquemin} +%\end{center} +%\noindent{\bfseries Denis Jacquemin} received his PhD in Chemistry from the University of Namur in 1998, before moving to the University of Florida for his postdoctoral stay. He is currently full Professor at the University of Nantes (France). +%His research is focused on modeling electronically excited-state processes in organic and inorganic dyes as well as photochromes using a large panel of \emph{ab initio} approaches. His group collaborates with many experimental +%and theoretical groups. He is the author of more than 500 scientific papers. He has been ERC grantee (2011--2016), member of Institut Universitaire de France (2012--2017) and received the WATOC's Dirac Medal (2014). +% +%\begin{center} +% \includegraphics[width=3cm]{PFLoos} +%\end{center} +%\noindent{\bfseries Pierre-Fran\c{c}ois Loos} was born in Nancy, France in 1982. He received his M.S.~in Computational and Theoretical Chemistry from the Universit\'e Henri Poincar\'e (Nancy, France) in 2005 and his Ph.D.~from the same university in 2008. From 2009 to 2013, He was undertaking postdoctoral research with Peter M.W.~Gill at the Australian National University (ANU). From 2013 to 2017, he was a \textit{``Discovery Early Career Researcher Award''} recipient and, then, a senior lecturer at the ANU. Since 2017, he holds a researcher position from the \textit{``Centre National de la Recherche Scientifique (CNRS)} at the \textit{Laboratoire de Chimie et Physique Quantiques} in Toulouse (France), and was awarded, in 2019, an ERC consolidator grant for the development of new excited-state methodologies. + + +\begin{biography}[example-image-1x1]{A.~One} +Please check with the journal's author guidelines whether author biographies are required. They are usually only included for review-type articles, and typically require photos and brief biographies (up to 75 words) for each author. +\bigskip +\bigskip +\end{biography} + +\graphicalabstract{example-image-1x1}{Please check the journal's author guildines for whether a graphical abstract, key points, new findings, or other items are required for display in the Table of Contents.} + +\end{document} diff --git a/Manuscript/example-image-1x1.png b/Manuscript/example-image-1x1.png new file mode 100644 index 0000000..6c03dbf Binary files /dev/null and b/Manuscript/example-image-1x1.png differ diff --git a/Manuscript/example-image-rectangle.png b/Manuscript/example-image-rectangle.png new file mode 100644 index 0000000..2f9a601 Binary files /dev/null and b/Manuscript/example-image-rectangle.png differ diff --git a/Manuscript/rss.bst b/Manuscript/rss.bst new file mode 100644 index 0000000..a2476db --- /dev/null +++ b/Manuscript/rss.bst @@ -0,0 +1,1522 @@ +%% +%% This is file `rss.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options:,ay,nat,vonx,nm-rev,nmdash,keyxyr,blkyear,dt-beg,yr-par,yrp-x,note-yr,trnum-it,vol-bf,vnum-x,volp-com,bkpg-x,add-pub,url,url-blk,edpar,edby-par,edbyx,ppx,ed,abr,xedn,and-xcom,em-it,nfss') +%% ---------------------------------------- +%% *** "BibTeX style for the Journal of the Royal Statistical Society" *** +%% (Brett Presnell, 26 October 1999) +%% +%% Copyright 1994-1999 Patrick W Daly + % =============================================================== + % IMPORTANT NOTICE: + % This bibliographic style (bst) file has been generated from one or + % more master bibliographic style (mbs) files, listed above. + % + % This generated file can be redistributed and/or modified under the terms + % of the LaTeX Project Public License Distributed from CTAN + % archives in directory macros/latex/base/lppl.txt; either + % version 1 of the License, or any later version. + % =============================================================== + % Name and version information of the main mbs file: + % \ProvidesFile{merlin.mbs}[1999/05/28 3.89 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is natbib.sty by Patrick W. Daly + % The form of the \bibitem entries is + % \bibitem[Jones et al.(1990)]{key}... + % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... + % The essential feature is that the label (the part in brackets) consists + % of the author names, as they should appear in the citation, with the year + % in parentheses following. There must be no space before the opening + % parenthesis! + % With natbib v5.3, a full list of authors may also follow the year. + % In natbib.sty, it is possible to define the type of enclosures that is + % really wanted (brackets or parentheses), but in either case, there must + % be parentheses in the label. + % The \cite command functions as follows: + % \citet{key} ==>> Jones et al. (1990) + % \citet*{key} ==>> Jones, Baker, and Smith (1990) + % \citep{key} ==>> (Jones et al., 1990) + % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) + % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) + % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) + % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) + % \citeauthor{key} ==>> Jones et al. + % \citeauthor*{key} ==>> Jones, Baker, and Smith + % \citeyear{key} ==>> 1990 + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {date.block} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} + +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} + + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +FUNCTION {format.url} +{ url empty$ + { "" } + { "\urlprefix\url{" url * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f.}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + " (" * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + * ")" * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " " * bbl.edition * } + { edition "t" change.case$ " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { pages n.dashify } + { pages } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ", " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + bolden + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + " (" * + editor num.names$ #1 > + { bbl.editors } + { bbl.editor } + if$ + * " " * + format.in.editors * + ")" * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume capitalize + volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address empty$ + 'skip$ + { address * } + if$ + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { "---" } + { s 'oldname := s } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title output + new.block + howpublished output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + name.or.dash + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.tr.number emphasize output.nonnull + institution "institution" output.check + address output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + name.or.dash + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.url output + new.block + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL: }\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `rss.bst'. diff --git a/Manuscript/sample.bib b/Manuscript/sample.bib new file mode 100644 index 0000000..8c1ece2 --- /dev/null +++ b/Manuscript/sample.bib @@ -0,0 +1,9 @@ +@article{lees2010theoretical, + title={Theoretical maximum capacity as benchmark for empty vehicle redistribution in personal rapid transit}, + author={Lees-Miller, John and Hammersley, John and Wilson, R}, + journal={Transportation Research Record: Journal of the Transportation Research Board}, + number={2146}, + pages={76--83}, + year={2010}, + publisher={Transportation Research Board of the National Academies} +} \ No newline at end of file diff --git a/Manuscript/vancouver-authoryear.bst b/Manuscript/vancouver-authoryear.bst new file mode 100644 index 0000000..e0263c4 --- /dev/null +++ b/Manuscript/vancouver-authoryear.bst @@ -0,0 +1,1812 @@ +%% natbib-compatible BibTeX bibliography style `vancouver-authoryear' +%% 2017/12/04: Remove sorting by authors +%% +%% Use +%% +%% \usepackage{natbib} +%% \bibliographystyle{vancouver-compatible} +%% +%% and cite references with (e.g.) +%% +%% \cite{smith77} % to get a "[1]" in the text +%% \citep{smith77} % to get a "[1]" in the text +%% \citet{smith77} % to get a "Smith [1]" in the text +%% \citeauthor{smith77} % to get a "Smith" in the text +%% +%% The changes below are inspired by similar changes made to +%% splncs03.bst by Maurizio "Titto" Patrignani of +%% Dipartimento di Informatica e Automazione Universita' Roma Tre. +%% Unfortunately, splncs03.bst was not compatible with natbib (because it +%% was not built with author-year capability). +%% +%% This is derived from `splncsnat.bst', +%--------------------------------------------------------------------- + +ENTRY + { address + assignee % for patents + author + booktitle % for articles in books + chapter % for incollection, esp. internet documents + cartographer % for maps + day + edition + editor + eid + howpublished + institution % for technical reports + inventor % for patents + journal + key + month + note + number + organization + pages + part + publisher + school + series + title + type + url + volume + word + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +%% Declaration of string variables +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +%FUNCTION {fin.entry} +%{ duplicate$ empty$ +% 'pop$ +% 'write$ +% if$ +% newline$ +%} +% +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {no.blank.or.punct} +{ "" * before.all 'output.state := +} + +FUNCTION {add.semicolon} +{ + ";" * + no.blank.or.punct +} + +FUNCTION {date.block} +{ + "." * + no.blank.or.punct +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LOGICAL `NOT', `AND', AND `OR' % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'not': +% If the first element on the stack is A then this function +% does the following: +% push { #0 } +% push { #1 } +% So now the first 3 elements of the stack are +% { #1 } { #0 } A +% The first 3 are popped and subjected to 'if': +% If A > 0 then { #0 } is executed, else { #1 } is executed: +% if A > 0 +% then 0 +% else 1 +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then false else true) +% which is a logical 'not'. + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% GENERAL PURPOSE FUNCTIONS FOR FORMATTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% issues warning if field is empty +% call with +% "field" field warning.if.empty +% Note that the first field must be between quotes +% because it is the fieldname for use in the warning message. +% + +FUNCTION {warning.if.empty} +{ empty$ + { "No " swap$ * " in " * cite$ * warning$ } + { pop$ } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % encloses string in pre- and postfix string + % call with + % prefix postfix S enclose.check + % delivers empty string if S empty + % +FUNCTION {enclose.check} +{ duplicate$ empty$ + { pop$ pop$ pop$ + "" + } + { swap$ * * } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% emphasizes top of stack +% call with +% string" emphasize.check +% + +FUNCTION {emphasize.check} +{ "\Bem{" swap$ + "}" swap$ + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % brackets top of stack + % call with + % "string" bracket.check + % +FUNCTION {bracket.check} +{ "[" swap$ + "]" swap$ + enclose.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % parenthesizes top of stack + % call with + % "string" parenthesize + % +FUNCTION {parenthesize.check} +{ "(" swap$ + ")" swap$ + enclose.check +} + +STRINGS {z} + +FUNCTION {remove.dots} +{ 'z := % expects string on top of the stack, pops the string and assigns it to variable z + "" % push empty string + { z empty$ not } % returns 0 if variable z is empty + { z #1 #1 substring$ % push the first character of variable z + z #2 global.max$ substring$ 'z := % assigns the 2nd to last character of variable z to variable z + duplicate$ "\" = % pushes 1 if the last character is "\", otherwise 0 + { * % concatenates the last 2 literals + z #1 #1 substring$ % push the first character of variable z + z #2 global.max$ substring$ 'z := % assigns the 2nd to last character of variable z to variable z + * % concatenates the last 2 literals, i.e. every character, even a dot, following a "\" will be printed + } + { duplicate$ "." = % pushes 1 if the last character is ".", otherwise 0 + 'pop$ % pushes the pop$ function + { * } % concatenates the last 2 literals + if$ % pops the last character if it is a dot, otherwise concatenates it with the string on top of the stack + } + if$ + } + while$ +} + +INTEGERS {l} +FUNCTION{string.length} +{ + #1 'l := + { duplicate$ duplicate$ #1 l substring$ = not } + { l #1 + 'l := } + while$ + pop$ l +} + +STRINGS {replace find text} +INTEGERS {find_length} +FUNCTION {find.replace} +{ + 'replace := + 'find := + 'text := + find string.length 'find_length := + "" + { text empty$ not } + { text #1 find_length substring$ find = + { + replace * + text #1 find_length + global.max$ substring$ 'text := + } + { text #1 #1 substring$ * + text #2 global.max$ substring$ 'text := + } + if$ + } + while$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ skip$ } + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + + % Here are the language-specific definitions for explicit words. + % Each function has a name bbl.xxx where xxx is the English word. + % The language selected here is ENGLISH + +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.cartographers} +{ "cartographers" } + +FUNCTION {bbl.cartographer} +{ "cartographer" } + +FUNCTION {bbl.inventors} +{ "inventors" } + +FUNCTION {bbl.inventor} +{ "inventor" } + +FUNCTION {bbl.assignees} +{ "assignees" } + +FUNCTION {bbl.assignee} +{ "assignee" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "p." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Software Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput. Aid. Des."} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphic."} + +MACRO {toms} {"ACM Trans. Math. Software"} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Progr. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} + +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + "." ". " find.replace 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{ f{}}{ jj}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + nameptr #6 + #1 + = + numnames #6 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} + +FUNCTION {format.names.org} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { "; " * t * } + { + ";" * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} + +FUNCTION {format.names.ed} +{ + format.names +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ + author "author" format.names + %%"." " " "author" find.replace format.names +} + +FUNCTION {format.organizations} +{ organization "organization" format.names.org +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {get.bbl.cartographer} +{ cartographer num.names$ #1 > 'bbl.cartographers 'bbl.cartographer if$ } + +FUNCTION {get.bbl.inventor} +{ inventor num.names$ #1 > 'bbl.inventors 'bbl.inventor if$ } + +FUNCTION {get.bbl.assignee} +{ assignee num.names$ #1 > 'bbl.assignees 'bbl.assignee if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.editor + * + } + if$ +} + +FUNCTION {format.assignees} +{ assignee "assignee" format.names.org duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.assignee + * + } + if$ +} + +FUNCTION {format.cartographers} +{ cartographer "cartographer" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.cartographer + * + } + if$ +} + +FUNCTION {format.inventors} +{ inventor "inventor" format.names duplicate$ empty$ 'skip$ + { + "," * + " " * + get.bbl.inventor + * + } + if$ +} + +FUNCTION {format.note} +{ + url empty$ + 'skip$ + { "\urlprefix\url{" url * "}" * output } + if$ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title +%%duplicate$ empty$ 'skip$ +%% { "t" change.case$ } +%%if$ + "title" bibinfo.check +} + + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor } + if$ + } + { author } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + ":" * + " " * } + +FUNCTION {format.journal.date} +{ + month "month" bibinfo.check + duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { + swap$ 'skip$ + { "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { swap$ 'skip$ + { + " " * swap$ + } + if$ + * + remove.dots + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + after.sentence 'output.state := + } + if$ +} + +FUNCTION {format.date} +{ + no.blank.or.punct + ";" + duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + series "series" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ bbl.of space.word * swap$ + emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { +% convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ":" * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ + } + + FUNCTION {format.booktitle} + { + booktitle "booktitle" bibinfo.check + } + + FUNCTION {format.in.ed.booktitle} + { format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + "," * + " " * + get.bbl.editor + ". " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ + } + + FUNCTION {format.in.ed.title} + { format.title duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + "," * + " " * + get.bbl.editor + ". " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ + } + + FUNCTION {empty.misc.check} + { author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ + } +FUNCTION {format.thesis.type} + { type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ + number "number" bibinfo.check + %%type duplicate$ empty$ + %%{ pop$ bbl.techrep } + %%'skip$ + %%if$ + %%"type" bibinfo.check + %%swap$ duplicate$ empty$ + %%{ pop$ "t" change.case$ } + %%{ tie.or.space.prefix * * } + %%if$ +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {format.institution.address} +{ institution "institution" bibinfo.check format.org.or.pub +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + format.editors "author and editor" output.check + format.title "title" output.check + type missing$ + { skip$ } +% { format.type "type" output.check } + { "type" output.check } + %%{ inbrackets type output } + if$ + new.block + format.publisher.address output + format.date "year" output.check + new.block + format.note output + new.block + howpublished new.block.checka + howpublished "howpublished" bibinfo.check output +% output.web.refs % urlbst + fin.entry + empty.misc.check +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + organization empty$ + 'skip$ + { author empty$ + { + format.organizations "organization" output.check + } + { + "; " * + no.blank.or.punct + format.organizations "organization" output.check + } + if$ + } + if$ + new.block + format.title "title" output.check + type missing$ + { skip$ } + { "type" output.check } + if$ + new.block + journal + remove.dots + "journal" bibinfo.check + "journal" output.check + format.journal.date "year" output.check + add.semicolon + format.vol.num.pages output + new.block + format.note output +% output.web.refs % urlbst + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor empty$ + { format.organizations "organization" output.check } + { format.editors "author and editor" output.check } + if$ + } + { format.authors output.nonnull + "author and editor" editor either.or.check + } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + new.block + format.edition output + new.sentence + author empty$ not + editor empty$ not + and + { format.editors "author and editor" output.check } + 'skip$ + if$ + format.number.series output + format.publisher.address output + format.date "year" output.check + new.block + format.note output +% output.web.refs % urlbst + fin.entry +} +FUNCTION {booklet} +{ misc } + +FUNCTION {dictionary} +{ output.bibitem + format.booktitle "booktitle" output.check + format.bvolume output + new.block + format.edition output + new.sentence + format.publisher.address output + format.date "year" output.check + format.btitle "title" output.check + add.semicolon + add.blank + format.pages "pages" output.check + new.block + format.note output +% output.web.refs % urlbst + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + format.authors "author" output.check + new.block + chapter "chapter" output.check + new.block + format.in.ed.title "title" output.check + format.bvolume output + format.edition output + new.sentence + format.number.series output + format.publisher.address output + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + new.block + format.note output +% output.web.refs % urlbst + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.edition output + new.sentence + format.number.series output + format.publisher.address output + format.date "year" output.check + date.block +% add.blank + format.pages "pages" output.check + new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.in.ed.booktitle "booktitle" output.check + format.bvolume output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + date.block + add.blank + format.pages "pages" output.check + new.block + format.note output +% output.web.refs % urlbst + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output +% add.colon + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" bibinfo.warn output +% address "address" bibinfo.check output + format.date "year" output.check +% new.block +% format.note output +% output.web.refs % urlbst + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output +% add.colon + new.block + format.btitle "title" output.check + format.bvolume output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title + "title" output.check + new.block + format.institution.address output + format.date "year" output.check +% format.tr.number output.nonnull +% new.block +% format.note output +% output.web.refs % urlbst + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output +% add.colon + new.block + format.title "title" output.check + format.date "year" output.check + % new.block ++++ REMOVED (to get comma before note) + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label +% label sortify +% " " +% * +% type$ "book" = +% type$ "inbook" = +% or +% 'author.editor.sort +% { type$ "proceedings" = +% 'editor.sort +% 'author.sort +% if$ +% } +% if$ +% #1 entry.max$ substring$ +% 'sort.label := +% sort.label +% * +% " " +% * +% title field.or.null +% sort.format.title +% * +% #1 entry.max$ substring$ +% 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +% ITERATE {bib.sort.order} +% SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ +% "\providecommand{\urlprefix}{URL }" ++++ EMPTIED by default + "\providecommand{\urlprefix}{}" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} +%% End of customized bst file +%% +%% End of file `splncsnat.bst'. diff --git a/Manuscript/wiley-article.cls b/Manuscript/wiley-article.cls new file mode 100644 index 0000000..7bfb68e --- /dev/null +++ b/Manuscript/wiley-article.cls @@ -0,0 +1,670 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% wiley-article.cls, v1.1, 2017/05/26 +% Developed by Overleaf. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{wiley-article}[2017/05/26, v1.1] + +%% Definitions for adding journal elements +\def\@jlogo{} +\def\@jname{} +\def\@jyear{} +\def\@jpages{} +\def\@jvolume{} +\def\@jwebsite{} + +\def\@runningauthor{} +\def\@corraddress{} +\def\@corremail{} +\def\@fundinginfo{} +\def\@presentaddress{} + +\def\@papertype{original article} +\def\@paperfield{} +\def\@paperdoi{} +\def\@paperreceived{} +\def\@paperrevised{} +\def\@paperaccepted{} +\def\@papereditor{} + +\newif\if@numrefs +\newif\if@alpharefs +\newif\if@amsrefs +\newif\if@blindreview + +%% Add options for other journals here +\DeclareOption{jabr}{% + \def\@jlogo{jabr-logo}% + \def\@jname{J Appl Behav Res}% + \def\@jwebsite{wileyonlinelibrary.com/journal/jabr}% +} + +%% Options for bibliography style +\DeclareOption{num-refs}{ + \@numrefstrue + \@alpharefsfalse + \@amsrefsfalse +} +\DeclareOption{alpha-refs}{ + \@numrefsfalse + \@alpharefstrue + \@amsrefsfalse +} +\DeclareOption{ams-refs}{ + \@numrefsfalse + \@alpharefsfalse + \@amsrefstrue +} + +%% Option for blind review +\DeclareOption{blind}{\@blindreviewtrue} + +\ExecuteOptions{num-refs} +\ProcessOptions\relax + + +\LoadClass[twoside]{article} + +\RequirePackage[table]{xcolor} +\RequirePackage{ifpdf} +\RequirePackage{ifxetex} +\RequirePackage{ifluatex} +\RequirePackage{mathtools} +\RequirePackage{bm} +\RequirePackage{graphicx} +\RequirePackage{tabularx} +\RequirePackage{textcase} +\RequirePackage{dashrule} +\RequirePackage{ragged2e} +\RequirePackage{authblk} +\RequirePackage[hyphens]{url} +\RequirePackage{soul} +\RequirePackage{xpatch} + + +\newif\ifxetexorluatex +\ifxetex + \xetexorluatextrue +\else + \ifluatex + \xetexorluatextrue + \else + \xetexorluatexfalse + \fi +\fi + +\ifxetexorluatex + \RequirePackage[framemethod=tikz]{mdframed} +\else + \ifpdf + \RequirePackage[framemethod=tikz]{mdframed} + \else + \RequirePackage[framemethod=default]{mdframed} + \RequirePackage{tikz} + \fi +\fi + +\RequirePackage{silence} +\WarningFilter{microtype}{tracking amount list} +\WarningFilter{latex}{Reference `mdf@pagelabel} + +\ifxetexorluatex + \RequirePackage{microtype} + \RequirePackage{fontspec} + \RequirePackage[partial=upright]{unicode-math} + \setmainfont[Ligatures=TeX]{Lato} + \setsansfont[Ligatures=TeX]{Lato} + \setmathfont{TeX Gyre DejaVu Math} + \setmathfont[range={\int}]{Latin Modern Math} + \setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}, Ligatures=TeX]{Lato} + \setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}, Ligatures=TeX]{Lato Italic} + \setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}, Ligatures=TeX]{Lato Bold} +\else + \RequirePackage{microtype} + \RequirePackage[T1]{fontenc} + \RequirePackage[utf8]{inputenc} + \RequirePackage[default]{lato} + \IfFileExists{newtxsf.sty}{ + \RequirePackage[cmintegrals,nosymbolsc]{newtxsf} + }{} + \ifpdf + \SetTracking[spacing={500*,166,}]{encoding={*}}{80} + \fi +\fi + + +\RequirePackage + [paperwidth=171mm,paperheight=246mm, + left=14.3mm,textwidth=142.4mm,lines=47, + headsep=\baselineskip,headheight=16\p@, + footskip=23\p@] +{geometry} + +\RequirePackage{alphalph} +\newalphalph{\fnsymbolmult}[mult]{\@fnsymbol}{5} + +\newcounter{authorfn} +\setcounter{authorfn}{1} +\newcommand{\authfn}[1]{% + \fnsymbolmult{#1}% +} + +\newcommand{\presentadd}[2][]{ + \ifx\empty\@presentaddress\else\appto{\@presentaddress}{\\}{}{}\fi + \appto{\@presentaddress}{% + \ifx\empty#1\else\textsuperscript{#1}\fi + #2% + }{}{} +} + + +%% These will be set by the \journal{} command +\newcommand{\jlogo}[1]{\def\@jlogo{#1}} +\newcommand{\jname}[1]{\def\@jname{#1}} +\newcommand{\jyear}[1]{\def\@jyear{#1}} +\newcommand{\jvolume}[1]{\def\@jvolume{#1}} +\newcommand{\jpages}[1]{\def\@jpages{#1}} +\newcommand{\jwebsite}[1]{\def\@jwebsite{#1}} + + +\newcommand{\runningauthor}[1]{\def\@runningauthor{#1}} +\newcommand{\corraddress}[1]{\def\@corraddress{#1}} +\newcommand{\corremail}[1]{\def\@corremail{#1}} + +\newcommand{\fundinginfo}[1]{\def\@fundinginfo{#1}} + +\newcommand{\paperdoi}[1]{\def\@paperdoi{#1}} +\newcommand{\paperreceived}[1]{\def\@paperreceived{#1}} +\newcommand{\paperrevised}[1]{\def\@paperrevised{#1}} +\newcommand{\paperaccepted}[1]{\def\@paperaccepted{#1}} +\newcommand{\papereditor}[1]{\def\@papereditor{#1}} +\newcommand{\papertype}[1]{\def\@papertype{#1}} +\newcommand{\paperfield}[1]{\def\@paperfield{#1}} + +% normal font is 8pt/13pt +\RequirePackage{scrextend} +\changefontsizes[13\p@]{8\p@} + +% sectional headings +\ifxetexorluatex + \newcommand{\allcaps}[2][10.0]{\addfontfeature{LetterSpace=#1}\MakeTextUppercase{#2}} + %% Fake small caps + \renewcommand{\textsc}[1]{{\addfontfeature{LetterSpace=10.0,Scale=0.8}\MakeTextUppercase{#1}}} +\else + \ifpdf + \newcommand{\allcaps}[2][]{\textls*[#1]{\MakeTextUppercase{#2}}} + \else + \newcommand{\allcaps}[2][]{\MakeTextUppercase{#2}} + \fi +\fi + +\RequirePackage[explicit]{titlesec} + +\titleformat{\section} + {\fontsize{10pt}{13\p@}\bfseries} + {\thesection}{1em}{\textmd{|}\quad\allcaps{#1}} + +\newcommand{\backmatter}{% + \titleformat{\section} + {\fontsize{10pt}{13\p@}\bfseries} + {}{0pt}{\allcaps{##1}}% + \titlespacing*{\section}{0pt}{ 1.5\baselineskip}{0.5\baselineskip} +} + +\ifxetexorluatex + \titleformat{name=\section,numberless} + {\fontsize{10pt}{13\p@}\bfseries} + {}{0pt}{\textsc{#1}} +\else + \ifpdf + \titleformat{name=\section,numberless} + {\fontsize{10pt}{13\p@}\scshape\bfseries} + {}{0pt}{\textls*{#1}} + \else + \titleformat{name=\section,numberless} + {\fontsize{10pt}{13\p@}\scshape\bfseries} + {}{0pt}{#1} + \fi +\fi +\titlespacing*{\section}{0pt}{1.5\baselineskip}{\baselineskip} +\titlespacing*{name=\section,numberless}{0pt}{1.5\baselineskip}{0.5\baselineskip} + +\titleformat{\subsection} + {\fontsize{10pt}{13\p@}\bfseries} + {\thesubsection}{1em}{\textmd{|}\quad#1} + +\titlespacing*{\subsection}{0pt}{1.5\baselineskip}{0.5\baselineskip} + +\titleformat{\subsubsection} + {\fontsize{10pt}{13\p@}\bfseries} + {\thesubsubsection}{1em}{\textmd{|}\quad#1} +\titlespacing*{\subsubsection}{0pt}{1.5\baselineskip}{0.5\baselineskip} + +\ifxetexorluatex + \titleformat{\paragraph}[hang] + {\fontsize{8.5\p@}{13\p@}\fontspec{Lato Black}\color{black!75}} + {\theparagraph}{0pt}{#1} + \titleformat{name=\paragraph,numberless}[hang] + {\fontsize{8.5\p@}{13\p@}\fontspec{Lato Black}} + {}{0pt}{#1} +\else + \titleformat{\paragraph}[hang] + {\fontsize{8.5\p@}{13\p@}\fontseries{eb}\selectfont\color{black!75}} + {\theparagraph}{0pt}{#1} + \titleformat{name=\paragraph,numberless}[hang] + {\fontsize{8.5\p@}{13\p@}\fontseries{eb}\selectfont} + {}{0pt}{#1} +\fi +\titlespacing*{\paragraph}{0pt}{\baselineskip}{0pt} + +\ifxetex + \titleformat{\subparagraph}[runin] + {\normalsize\fontspec{Lato Black}\color{black!75}} + {\thesubparagraph}{0pt}{#1} +\else + \titleformat{\subparagraph}[runin] + {\normalsize\fontseries{eb}\selectfont\color{black!75}} + {\thesubparagraph}{0pt}{#1} +\fi +\titlespacing*{\subparagraph}{0pt}{\baselineskip}{1em} + + +% Formatting of footer for first page +\RequirePackage[flushmargin,bottom]{footmisc} +\def\blfootnote{\gdef\@thefnmark{}\@footnotetext} +\appto{\footnotelayout}{\fontsize{6\p@}{9\p@}\selectfont} +\renewcommand{\footnoterule}{\noindent\textcolor{black!50}{\rule{\textwidth}{0.5\p@}}\vskip2\p@} + + +%% Headers +\RequirePackage{fancyhdr} +\fancyhf{} +\renewcommand{\headrule}{} +\fancyhead[LO]{{\fontsize{7\p@}{13\p@}\selectfont% + \setlength{\arrayrulewidth}{.5\p@}% + \arrayrulecolor{black}% + \begin{tabularx}{\textwidth}{@{}X r | r @{}}% + \textsc{\@runningauthor} & & \thepage\\\hline + %& %\multicolumn{1}{r}{% + %\raisebox{0pt}[0pt][0pt]{\includegraphics[height=2.5em]{\@jlogo}}% + %\quad% + %\raisebox{0.25em}[0pt][0pt]{\colorbox{white}{\includegraphics[height=2em]{Wiley_Wordmark_black}}}} & \\ +\end{tabularx}% +}} + +\fancyhead[LE]{{\fontsize{7\p@}{13\p@}\selectfont% + \setlength{\arrayrulewidth}{.5\p@}% + \arrayrulecolor{black}% + \begin{tabularx}{\textwidth}{@{}l | l >{\raggedleft\arraybackslash}X @{}}% + \thepage & & \textsc{\@runningauthor}\\\hline +% \multicolumn{1}{@{}c}{} & +% \raisebox{0.25em}[0pt][0pt]{\colorbox{white}{\includegraphics[height=2em]{Wiley_Wordmark_black}}}% +% \quad% +% \raisebox{0pt}[0pt][0pt]{\includegraphics[height=2.5em]{\@jlogo}}\\ + \end{tabularx}% +}} + +%% First page header + footer +\fancypagestyle{firstpage}{ +% \renewcommand{\footrule}{\hdashrule{\textwidth}{0.5\p@}{2\p@}\\[-2\p@]} + + \fancyhead[L]{\fontsize{7\p@}{13\p@}\selectfont% + \setlength{\arrayrulewidth}{.5\p@}% + \arrayrulecolor{black}% + \begin{tabularx}{\textwidth}{@{}l | l | X @{}}% + \ifdefempty{\@paperreceived} + {\multicolumn{3}{l}{}} + {Received: \@paperreceived & + Revised: \@paperrevised & + Accepted: \@paperaccepted} + \\\hline + \ifdefempty{\@paperdoi}{}{\multicolumn{3}{@{}l}{DOI: \@paperdoi}} + \end{tabularx}} + + \fancyfoot[L]{%\fontsize{7\p@}{10pt}\selectfont% +% \setlength{\arrayrulewidth}{.5\p@}% +% \arrayrulecolor{black}\raggedright% +% This is an open access article under the terms of the Creative Commons Attribution License, which permits use, distribution and reproduction in any medium, provided the original work is properly cited.\\[3\p@] +% \begingroup + \fontsize{7\p@}{13\p@}\selectfont% + \begin{tabularx}{\textwidth}{@{}X >{\centering\arraybackslash}X r | r @{}}% + \hline + \ifdefempty{\@paperreceived}{& & & }{% + \textit{\@jname}~\@jyear; \@jvolume: \@jpages & + \@jwebsite & + \textcopyright~\@jyear\space Wiley Periodicals, Inc. & + } + \thepage + \end{tabularx}% +% \endgroup + } +} + +% For adding notes about author contributions +\newcommand{\contrib}[2][]{% + \blfootnote{\textsuperscript{#1}#2}% +} + + +% Author and affiliation fonts +\setcounter{Maxaffil}{1} +\renewcommand{\Authsep}{\quad|\quad} +\renewcommand{\Authand}{\quad|\quad} +\renewcommand{\Authands}{\quad|\quad} +\renewcommand{\Authfont}{\fontsize{12\p@}{20pt}\bfseries\raggedright} +\renewcommand{\Affilfont}{\fontsize{7\p@}{10pt}\selectfont\raggedright} +\renewcommand\AB@authnote[1]{\textsuperscript{#1}} +\patchcmd{\AB@affilsepx}{\\}{\\[3\p@]}{}{} + +\patchcmd{\@author}{\AB@authlist\\[\affilsep]\AB@affillist}{\AB@authlist}{}{} + +% % \AtBeginDocument{ +% \if@blindreview +% \let\oldauthor\author +% \let\oldaffil\affil +% \renewcommand{\author}[2][]{\oldauthor{Author}} +% \renewcommand{\affil}[2][]{\oldaffil{An affiliation}} +% % % \def\AB@authors{Anonymous Authors} +% % \def\AB@affillist{Anonymous Affiliations} +% \fi +% % } + +% Title +\renewcommand{\maketitle}{% + \if@blindreview + \def\AB@authlist{\Authfont Anonymous Authors} + \def\AB@affillist{\Affilfont Anonymous Affiliations} + \def\@runningauthor{Authors (Anon)} + \def\@corraddress{Anonymous correspoundence} + \def\@corremail{anon@example.com} + \def\@presentaddress{Anonymous present address} + \def\@fundinginfo{Anonymous funders} + \fi + \vspace*{\dimexpr 27\p@-2\baselineskip}% + \noindent\begingroup% + \setul{3\p@}{1\p@}% + \ifxetexorluatex\fontspec{Lato Heavy}\else\fontseries{eb}\selectfont\fi + {\fontsize{9\p@}{15\p@}\allcaps[\ifxetexorluatex 20\else 200\fi]{\ul{\@papertype}}} + \ifdefempty{\@jlogo}{\rule{0pt}{2em}}{% + \hfill% +% \includegraphics[height=1.5em]{Wiley_Wordmark_black}% +% \quad% + \includegraphics[height=2em]{\@jlogo}} + \\[2\p@]% + {\fontsize{8\p@}{15\p@}% + \ifxetexorluatex + \addfontfeature{LetterSpace=20.0}\@paperfield% + \else + \ifpdf + \textls*[150]{\@paperfield}% + \else + \@paperfield + \fi + \fi} + \endgroup% + \vskip13\p@% + {\fontsize{18\p@}{23\p@}\bfseries\raggedright\@title\par} + \vskip27\p@% + \noindent\begin{minipage}{0.8\textwidth}\@author\end{minipage}% + \vskip21\p@% + \thispagestyle{firstpage} +} + +% Affiliation + other metadata +\newcommand{\wiley@affilmetadata}{% + \AB@affillist\par% + \vskip10pt% + \textbf{Correspondence}\\ + \@corraddress\\ + Email: \@corremail\par + \ifx\empty\@presentaddress + \else% + \vskip10pt% + \textbf{Present address}\\ + \@presentaddress\par + \fi% + \vskip10pt% + \textbf{Funding information}\\ + \@fundinginfo\par + \ifdefempty{\@papereditor}{} + {\vskip10pt Editor: \@papereditor\par} +} + +%% Abbreviations in the footnote +\newcommand{\abbrevs}[1]{\blfootnote{\textbf{Abbreviations:} #1\\[-3\p@]}} + +%% Abstract and affiliation in the margin +\RequirePackage{changepage} +\RequirePackage{environ} +\reversemarginpar +\newlength{\wiley@affilmetadataheight} +\newlength{\wiley@abstractheight} +\NewEnviron{wiley@abstract}{% + \newcommand{\keywords}[1]{% + \vskip8\p@% + \noindent{\bfseries\fontsize{7\p@}{13\p@}\allcaps[\ifxetexorluatex 20\else 200\fi]{keywords}\par} + \noindent{\raggedright\fontsize{8\p@}{13\p@}\selectfont ##1\par} + }% + \strictpagecheck% + \begin{adjustwidth*}{\dimexpr 54.9mm-6.5\p@}{}% + \setlength{\marginparsep}{-47mm}% + \setlength{\marginparwidth}{47mm}% + %% Measure the height of the affil metadata in the sidebar + \settototalheight{\wiley@affilmetadataheight}{\parbox{\marginparwidth}{\wiley@affilmetadata}}% + \newsavebox{\wiley@abstractbox}% + %% Save the abstract text in a box + \savebox{\wiley@abstractbox}{% + \parbox{\linewidth}{% + \begin{mdframed}[font=\fontsize{9\p@}{15\p@}\selectfont, + topline=false,bottomline=false, + leftline=true,rightline=false, + backgroundcolor=black!10, + middlelinewidth=6\p@,middlelinecolor=white, + outerlinewidth=0.5\p@] + \BODY + \end{mdframed}}% + }% + \settototalheight{\wiley@abstractheight}{\usebox{\wiley@abstractbox}}% + \marginpar{\wiley@affilmetadata}\vskip-1.5em% + \begin{mdframed}[font=\fontsize{9\p@}{15\p@}\selectfont, + topline=false,bottomline=false, + leftline=true,rightline=false, + backgroundcolor=black!10, + middlelinewidth=6\p@,middlelinecolor=white, + outerlinewidth=0.5\p@]% + \BODY + \end{mdframed}% + %% If the affildata is taller than the abstract, add vskip + \ifdimgreater + {\wiley@affilmetadataheight} + {\wiley@abstractheight} + {\vskip\dimexpr\wiley@affilmetadataheight-\wiley@abstractheight+\baselineskip\relax}{} +}[\end{adjustwidth*}]% + +\renewcommand{\abstract}{\wiley@abstract} +\renewcommand{\endabstract}{\endwiley@abstract} + +% quotes and epigraphs +\RequirePackage{quoting} +\quotingsetup{vskip=\baselineskip,indentfirst=false,font={itshape,RaggedRight,normalsize},leftmargin=26\p@,rightmargin=26\p@} + +\renewenvironment{quote}{\begin{quoting}}{\end{quoting}} + +\renewenvironment{quotation}{\begin{quoting}}{\end{quoting}} + +\newenvironment{epigraph}[1] +{\begin{quoting}\def\@quotesource{#1}} +{\par\hfill\@quotesource\end{quoting}} + +\newenvironment{pullquote} +{\begin{quoting}[vskip=\dimexpr 39\p@-23\p@\relax,leftmargin=12\p@,rightmargin=12\p@,font+={raggedright},begintext={\fontsize{18\p@}{23\p@}\selectfont\color{black!50}}]} +{\end{quoting}} + +% Enum/itemized +\RequirePackage[inline]{enumitem} +\setlist{nosep,font=\bfseries,leftmargin=*,align=left} +\setlist[1]{topsep=\baselineskip,leftmargin=\parindent,labelsep=*,labelwidth=*} +\setlist[enumerate,2]{label={\alph*.},} + +% Space above/below equations +\g@addto@macro\normalsize{% + \setlength\abovedisplayskip{\baselineskip}% + \setlength\belowdisplayskip{\baselineskip}% + \setlength\abovedisplayshortskip{\baselineskip}% + \setlength\belowdisplayshortskip{\baselineskip}% +} + +% All the popular math environments +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{corollary}[theorem]{Corollary} + +\newenvironment{proof}[1][Proof]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}} +\newenvironment{definition}[1][Definition]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}} +\newenvironment{example}[1][Example]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}} +\newenvironment{remark}[1][Remark]{\begin{trivlist} +\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}} + +\newcommand{\qed}{\nobreak \ifvmode \relax \else + \ifdim\lastskip<1.5em \hskip-\lastskip + \hskip1.5em plus0em minus0.5em \fi \nobreak + \vrule height0.75em width0.5em depth0.25em\fi} + +% Captions +\RequirePackage[tableposition=top]{caption} +\DeclareCaptionFont{captionfont}{\fontsize{8\p@}{11\p@}\selectfont} +\DeclareCaptionFont{boxcaption}{\fontsize{9\p@}{13\p@}\selectfont} +\ifxetexorluatex + \DeclareCaptionFont{heavy}{\fontspec{Lato Black}} + \DeclareCaptionLabelFormat{allcaps}{\addfontfeature{LetterSpace=15.0}{\MakeTextUppercase{#1}~#2}} +\else + \DeclareCaptionFont{heavy}{\fontseries{eb}} + \ifpdf + \DeclareCaptionLabelFormat{allcaps}{\textls[150]{\MakeTextUppercase{#1}~#2}} + \else + \DeclareCaptionLabelFormat{allcaps}{\MakeTextUppercase{#1}~#2} + \fi +\fi +\captionsetup*{justification=raggedright,singlelinecheck=false,font=captionfont,labelformat=allcaps,labelfont={heavy},labelsep=quad} +\captionsetup*[table]{skip=0.5ex} + +% Tables +\AtBeginEnvironment{table}{% + \fontsize{7.5\p@}{10.5\p@}\selectfont% + \rowcolors*{3}{black!10}{}% + \renewcommand{\arraystretch}{1.25}% + \arrayrulecolor{black!20}% + \setlength{\arrayrulewidth}{1\p@}% +} + +\RequirePackage{threeparttable} +\renewcommand{\TPTnoteSettings}{\leftmargin=0pt} +\newcommand{\headrow}{\rowcolor{black!20}} +\newcommand{\thead}[1]{\multicolumn{1}{l}{\bfseries #1\rule[-1.2ex]{0pt}{2em}}} + +%% Boxes! +\RequirePackage{newfloat} +\DeclareFloatingEnvironment[placement=bt,name=box]{featurebox} +\captionsetup*[featurebox]{skip=1em,labelformat={default},font={heavy,boxcaption},labelfont={sc,color=black!75}} +\AtBeginEnvironment{featurebox}{% + \setlist*{topsep=0pt}% +} +\apptocmd{\featurebox}{% + \begin{mdframed}[linewidth=5\p@,linecolor=black!20, + innerleftmargin=12\p@,innerrightmargin=12\p@, + innertopmargin=12\p@,innerbottommargin=12\p@] +}{}{} +\pretocmd{\endfeaturebox}{\end{mdframed}}{}{} + + +% Skips for floats +\setlength{\floatsep}{1.5\baselineskip} +\setlength{\intextsep}{\baselineskip} +\setlength{\textfloatsep}{1.5\baselineskip} + +% The endnotes +\RequirePackage{enotez} +\newlist{enotezlist}{itemize}{1} +\setlist[enotezlist,1]{leftmargin=*,label=\arabic*,labelsep=0.25em,itemsep=0pt,topsep=0.5\baselineskip} +\EditInstance{enotez-list}{itemize} +{list-type=enotezlist} +\setenotez{list-name={endnotes},list-style=itemize} +\EditInstance{enotez-list}{itemize}{ + format=\fontsize{7.5\p@}{10.5\p@}\selectfont, + number = \textsuperscript{#1} +} + +% References +\if@numrefs + \RequirePackage[numbers]{natbib} + \bibliographystyle{vancouver-authoryear} +\fi +\if@alpharefs + \RequirePackage{natbib} + \bibliographystyle{rss} +\fi +\if@amsrefs + \RequirePackage{amsrefs} + \let\citep\cite + \let\citet\ocite + \renewcommand{\biblistfont}{\fontsize{7.5\p@}{10.5\p@}\selectfont} +\fi + +\AtBeginDocument{ + \@ifpackageloaded{natbib}{ + \setlength{\bibhang}{1.5em} + \renewcommand{\bibfont}{\fontsize{7.5\p@}{10.5\p@}\selectfont} + \renewcommand{\refname}{references} + \renewcommand{\bibname}{references} + }{} + + \@ifpackageloaded{amsrefs}{ + \renewcommand{\biblistfont}{\fontsize{7.5\p@}{10.5\p@}\selectfont} + \renewcommand{\refname}{references} + \renewcommand{\bibname}{references} + }{} +} + +% Author biography +\RequirePackage{lettrine} +\newenvironment{biography}[2][] +{\begin{mdframed} + [linewidth=0.5\p@,skipabove=1.5\baselineskip,%nobreak, + innerleftmargin=6\p@,innerrightmargin=6\p@, + innertopmargin=6\p@,innerbottommargin=6\p@] + \ifstrequal{#1}{}{} + {\lettrine[image,lines=5,findent=1em,nindent=0pt]{#1}{}}% + {\bfseries\scshape #2}} +{\end{mdframed}} + +\newcommand{\otherinfo}[2][]{% + \backmatter% + \ifstrequal{#1}{suppinfo} + {\section{Supporting Information} + Additional Supporting Information may be found online in the supporting information for this article.} + {} + + \begin{mdframed} + [linewidth=1\p@,linecolor=black!40,nobreak, + innerleftmargin=12\p@,innerrightmargin=12\p@, + innertopmargin=12\p@,innerbottommargin=12\p@, + skipabove=\baselineskip] + \textbf{How to cite this article:} #2 + \end{mdframed} +} + +\newenvironment{graphicalabstract}[1]{% + \backmatter + \section{graphical abstract} + \lettrine[image,lines=10,findent=1em,nindent=0pt]{#1}{}% +}{} + +% Here we go! +\normalsize +\pagestyle{fancy}