← All templates

Royal Society of Chemistry communications (ChemComm and other RSC journals)

The RSC's own LaTeX communication template: the two-column short-paper layout in RSC house style with its header artwork and the rsc BibTeX style; required for ChemComm.

Create an account to use this
Category
Journal
Document class
article (article.cls) — ships with TeX Live
Workflow
Journal manuscript — submissions and revision rounds
Author
Royal Society of Chemistry
Source
Royal Society of Chemistry
Licence
article.cls: LaTeX Project Public License (installed with TeX). The sample text is Royal Society of Chemistry's, provided for authors preparing a submission.

These are the publisher’s own files. This project starts from Royal Society of Chemistry’s package for this publication — their manuscript, their article.cls, their bibliography style — so what compiles here is what they would have given you.

Royal Society of Chemistry serves this exact file to Chemical Communications and 1 other title. Check Royal Society of Chemistry’s author pages for the current instructions.

Where this differs from the publisher’s download.

  • Changed: main.tex: the title was typed into the header as literal text, so a project title never reached it; the sample now sets itle{...} after the preamble hyperref line and prints it in the same place, in the same style, with csname @titleendcsname. Nothing else in the template is changed (amendrsc.mjs, 2026-11-08, as for the RSC article template)..
  • Note: Use of the template is optional; communications are re-typeset in RSC house style. Full papers in RSC journals use the RSC article template.

What you get

  • example1.pdf · 25 KB
  • head_foot/DOI.pdf · 45 KB
  • head_foot/LF.pdf · 4 KB
  • head_foot/RF.pdf · 50 KB
  • head_foot/RSC_LOGO_CMYK.pdf · 23 KB
  • head_foot/dates.pdf · 39 KB
  • head_foot/header_bar.pdf · 5 KB
  • head_foot/journal_name.pdf · 128 KB
  • main.tex — the file that is compiled · 12 KB
  • rsc.bib · 3 KB
  • rsc.bst · 27 KB

These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.

Journals using this template

2 venues use this class

Manulyx keeps one template per document class and relates every venue to it, rather than one near-identical card per journal. Searching the gallery for any of these names finds this template.

Journal of Machine Learning Research, Transactions on Machine Learning Research
  • Journal of Machine Learning Research
  • Transactions on Machine Learning Research

Source

example1.pdf — binary, 25 KB

head_foot/DOI.pdf — binary, 45 KB

head_foot/LF.pdf — binary, 4 KB

head_foot/RF.pdf — binary, 50 KB

head_foot/RSC_LOGO_CMYK.pdf — binary, 23 KB

head_foot/dates.pdf — binary, 39 KB

head_foot/header_bar.pdf — binary, 5 KB

head_foot/journal_name.pdf — binary, 128 KB

main.tex — the file that is compiled · 12 KB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%This is the LaTeX COMMUNICATION template for RSC journals
%Copyright The Royal Society of Chemistry 2016
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[twoside,twocolumn,9pt]{article}
\usepackage{extsizes}
\usepackage[super,sort&compress,comma]{natbib} 
\usepackage[version=3]{mhchem}
\usepackage[left=1.5cm, right=1.5cm, top=1.785cm, bottom=2.0cm]{geometry}
\usepackage{balance}
\usepackage{mathptmx}
\usepackage{sectsty}
\usepackage{graphicx} 
\usepackage{lastpage}
\usepackage[format=plain,justification=justified,singlelinecheck=false,font={stretch=1.125,small,sf},labelfont=bf,labelsep=space]{caption}
\usepackage{float}
\usepackage{fancyhdr}
\usepackage{fnpos}
\usepackage[english]{babel}
\addto{\captionsenglish}{%
  \renewcommand{\refname}{Notes and references}
}
\usepackage{array}
\usepackage{droidsans}
\usepackage{charter}
\usepackage[T1]{fontenc}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{setspace}
\usepackage[compact]{titlesec}
\usepackage{hyperref}
\title{Your paper}
%%%Please don't disable any packages in the preamble, as this may cause the template to display incorrectly.%%%


\usepackage{epstopdf}%This line makes .eps figures into .pdf - please comment out if not required.

\definecolor{cream}{RGB}{222,217,201}
%%%%%%%%% Preamble of the bibliography, can be commented or deleted 
\def\bibpreamble{For the reference section, the style file \texttt{rsc.bst} can be used to generate the correct reference style.\footnote[4]{Footnotes should appear here. These might include comments relevant to but not central to the matter under discussion, limited experimental and spectral data, and crystallographic data.}
\begin{enumerate}
\item{Citations should appear here in the format A. Name, B. Name and C. Name, \emph{Journal Title}, 2000, \textbf{35}, 3523;} 
\item{A. Name, B. Name and C. Name, \emph{Journal Title, 2000}, \textbf{35}, 3523.}
\end{enumerate}
... \\\\
We encourage the citation of primary research over review articles, where appropriate, in order to give credit to those who first reported a finding. \href{https://www.rsc.org/news-events/articles/2020/jun/rsc-signs-dora/}{Find out more about our commitments to the principles of San Francisco Declaration on Research Assessment (DORA).}}
%%%%%%%%% 
\begin{document}

\pagestyle{fancy}
\thispagestyle{plain}
\fancypagestyle{plain}{
%%%HEADER%%%
\renewcommand{\headrulewidth}{0pt}
}
%%%END OF HEADER%%%

%%%PAGE SETUP - Please do not change any commands within this section%%%
\makeFNbottom
\makeatletter
\renewcommand\LARGE{\@setfontsize\LARGE{15pt}{17}}
\renewcommand\Large{\@setfontsize\Large{12pt}{14}}
\renewcommand\large{\@setfontsize\large{10pt}{12}}
\renewcommand\footnotesize{\@setfontsize\footnotesize{7pt}{10}}
\renewcommand\scriptsize{\@setfontsize\scriptsize{7pt}{7}}
\makeatother

\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\renewcommand\footnoterule{\vspace*{1pt}% 
\color{cream}\hrule width 3.5in height 0.4pt \color{black} \vspace*{5pt}} 
\setcounter{secnumdepth}{5}

\makeatletter 
\renewcommand\@biblabel[1]{#1}            
\renewcommand\@makefntext[1]% 
{\noindent\makebox[0pt][r]{\@thefnmark\,}#1}
\makeatother 
\renewcommand{\figurename}{\small{Fig.}~}
\sectionfont{\sffamily\Large}
\subsectionfont{\normalsize}
\subsubsectionfont{\bf}
\setstretch{1.125} %In particular, please do not alter this line.
\setlength{\skip\footins}{0.8cm}
\setlength{\footnotesep}{0.25cm}
\setlength{\jot}{10pt}
\titlespacing*{\section}{0pt}{4pt}{4pt}
\titlespacing*{\subsection}{0pt}{15pt}{1pt}
%%%END OF PAGE SETUP%%%

%%%FOOTER%%%
\fancyfoot{}
\fancyfoot[LO,RE]{\vspace{-7.1pt}\includegraphics[height=9pt]{head_foot/LF}}
\fancyfoot[CO]{\vspace{-7.1pt}\hspace{13.2cm}\includegraphics{head_foot/RF}}
\fancyfoot[CE]{\vspace{-7.2pt}\hspace{-14.2cm}\includegraphics{head_foot/RF}}
\fancyfoot[RO]{\footnotesize{\sffamily{1--\pageref{LastPage} ~\textbar  \hspace{2pt}\thepage}}}
\fancyfoot[LE]{\footnotesize{\sffamily{\thepage~\textbar\hspace{3.45cm} 1--\pageref{LastPage}}}}
\fancyhead{}
\renewcommand{\headrulewidth}{0pt} 
\renewcommand{\footrulewidth}{0pt}
\setlength{\arrayrulewidth}{1pt}
\setlength{\columnsep}{6.5mm}
\setlength\bibsep{1pt}
%%%END OF FOOTER%%%

%%%FIGURE SETUP - please do not change any commands within this section%%%
\makeatletter 
\newlength{\figrulesep} 
\setlength{\figrulesep}{0.5\textfloatsep} 

\newcommand{\topfigrule}{\vspace*{-1pt}% 
\noindent{\color{cream}\rule[-\figrulesep]{\columnwidth}{1.5pt}} }

\newcommand{\botfigrule}{\vspace*{-2pt}% 
\noindent{\color{cream}\rule[\figrulesep]{\columnwidth}{1.5pt}} }

\newcommand{\dblfigrule}{\vspace*{-1pt}% 
\noindent{\color{cream}\rule[-\figrulesep]{\textwidth}{1.5pt}} }

\makeatother
%%%END OF FIGURE SETUP%%%

%%%TITLE AND AUTHORS%%%
\twocolumn[
  \begin{@twocolumnfalse}
{\includegraphics[height=30pt]{head_foot/journal_name}\hfill\raisebox{0pt}[0pt][0pt]{\includegraphics[height=55pt]{head_foot/RSC_LOGO_CMYK}}\\[1ex]
\includegraphics[width=18.5cm]{head_foot/header_bar}}\par
\vspace{1em}
\sffamily
\begin{tabular}{m{4.5cm} p{13.5cm} }

\includegraphics{head_foot/DOI} & \noindent\LARGE{\textbf{\csname @title\endcsname$^\dag$}} \\%Article title goes here instead of the text "This is the title"
 & \vspace{0.3cm} \\

 & \noindent\large{Full Name,$^{\ast}$\textit{$^{a}$} Full Name,\textit{$^{b\ddag}$} and Full Name\textit{$^{a}$}} \\%Author names go here instead of "Full name", etc.

\includegraphics{head_foot/dates} & \\

\end{tabular}

 \end{@twocolumnfalse} \vspace{0.6cm}

  ]
%%%END OF TITLE AND AUTHORS%%%

%%%FONT SETUP - please do not change any commands within this section
\renewcommand*\rmdefault{bch}\normalfont\upshape
\rmfamily
\section*{}
\vspace{-1cm}


%%%FOOTNOTES%%%

\footnotetext{\textit{$^{a}$~Address, Address, Town, Country. Fax: XX XXXX XXXX; Tel: XX XXXX XXXX; E-mail: [email protected]}}
\footnotetext{\textit{$^{b}$~Address, Address, Town, Country. }}

%Please use \dag to cite the ESI in the main text of the article.
%If you article does not have ESI please remove the the \dag symbol from the title and the footnotetext below.
%\footnotetext{\dag~Supplementary Information available: [details of any supplementary information available should be included here]. See DOI: 00.0000/00000000.}
%additional addresses can be cited as above using the lower-case letters, c, d, e... If all authors are from the same address, no letter is required

\footnotetext{\dag~Additional footnotes to the title and authors can be included \textit{e.g.}\ `Present address:' or `These authors contributed equally to this work' as above using the symbols: \ddag, \textsection, and \P. Please place the appropriate symbol next to the author's name and include a \texttt{\textbackslash footnotetext} entry in the the correct place in the list.}

%%%END OF FOOTNOTES%%%

%%%ABSTRACT%%%%

\sffamily{\textbf{The abstract should be a single paragraph which summarises the content of the article. Any references in the abstract should be written out in full \textit{e.g.} [Surname \textit{et al., Journal Title}, 2000, \textbf{35}, 3523].}}\\%The abstrast goes here instead of the text "The abstract should be..."

%%%END OF ABSTRACT%%%%

\rmfamily %Please do not remove this line.

%%%MAIN TEXT%%%%

The main text of the article\cite{Mena2000} should appear here. Headings and subheadings are not permitted in articles submitted to \emph{Chemical Communications}, with the exception of “\textbf{Conflicts of interest}”, “\textbf{Data availability}” and “\textbf{Notes and references}”. \\\\

\textbf{For Chemical Communications , please also see the journal-specific \href{https://www.rsc.org/publishing/publish-with-us/publish-a-journal-article/chemcomm}{guidelines} for page length requirements}, therefore following editing and production, your article may require shortening. To assist with this please do not alter font sizes or styles as this may delay publication of your article.  \\ 

Equations can be typeset inline \textit{e.g.} $ y = mx + c$ or displayed with and without numbers:

 \[ A = \pi r^2 \]

\begin{equation}
  \frac{\gamma}{\epsilon x} r^2 = 2r
\end{equation}

Graphics should be inserted on the page where they are first mentioned (unless they are equations, which appear in the flow of the text).\cite{Cotton1999}

\begin{figure}[h]
\centering
  \includegraphics[height=3cm]{example1}
  \caption{An example figure.}
  \label{fgr:example}
\end{figure}

%\begin{figure*}
% \centering
% \includegraphics[height=3cm]{example2}
% \caption{An image from the \textit{Physical Chemistry Chemical Physics} cover gallery, set as a double-column figure.}
% \label{fgr:example2col}
%\end{figure*}


Tables typeset in RSC house style do not include vertical lines. Table footnote symbols are lower-case italic letters and are typeset at the bottom of the table. Table captions do not end in a full point.\cite{Arduengo1992,Eisenstein2005}


\begin{table}[h]
\small
  \caption{\ An example of a caption to accompany a table}
  \label{tbl:example}
  \begin{tabular*}{0.48\textwidth}{@{\extracolsep{\fill}}lll}
    \hline
    Header one/units & Header two & Header three \\
    \hline
    1 & 2 & 3 \\
    4 & 5 & 6 \\
    7 & 8 & 9 \\
    10 & 11 & 12 \\
    \hline
  \end{tabular*}
\end{table}

Adding notes to tables can be complicated.  Perhaps the easiest method is to generate these manually.

%\begin{table*}
%\small
%  \caption{\ An example of a caption to accompany a table \textendash\ table captions do not end in a full point}
%  \label{tbl:example}
%  \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lllllll}
%    \hline
%    Header one & Header two & Header three & Header four & Header five & Header six  & Header seven\\
%    \hline
%    1 & 2 & 3 & 4 & 5 & 6  & 7\\
%    8 & 9 & 10 & 11 & 12 & 13 & 14 \\
%    15 & 16 & 17 & 18 & 19 & 20 & 21\\
%    \hline
%  \end{tabular*}
%\end{table*}


You can also put lists into the text. You can have bulleted or numbered lists of almost any kind. 
The \texttt{mhchem} package can also be used so that formulae are easy to input: \texttt{\textbackslash ce\{H2SO4\}} gives \ce{H2SO4}. 


The conclusions section should come at the end of article. 

\section*{Author Contributions}
We strongly encourage authors to include author contributions and recommend using \href{https://casrai.org/credit/}{CRediT} for standardised contribution descriptions. Please refer to our general \href{https://www.rsc.org/journals-books-databases/journal-authors-reviewers/author-responsibilities/}{author guidelines} for more information about authorship.

\section*{Conflicts of interest}
In accordance with our policy on \href{https://www.rsc.org/journals-books-databases/journal-authors-reviewers/author-responsibilities/#code-of-conduct}{Conflicts of interest} please ensure that a conflicts of interest statement is included in your manuscript here.  Please note that this statement is required for all submitted manuscripts.  If no conflicts exist, please state that ``There are no conflicts to declare''.

\section*{Data availability}


A data availability statement (DAS) is required to be submitted alongside all articles. Please read our \href{https://www.rsc.org/journals-books-databases/author-and-reviewer-hub/authors-information/prepare-and-format/data-sharing/#dataavailabilitystatements}{full guidance on data availability statements} for more details and examples of suitable statements you can use.



%%%END OF MAIN TEXT%%%

%  For footnotes in the main text of the article please number the footnotes to avoid duplicate symbols. e.g.  \footnote[num]{your text} the corresponding author \ast counts as footnote 1, ESI as footnote 2, e.g. if there is no ESI, please start at [num]=[2], if ESI is cited in the title please start at [num]=[3] etc. Please also cite the ESI within the main body of the text using \dag.

% The \balance command can be used to balance the columns on the final page if desired. It should be placed anywhere within the first column of the last page.

% \balance

% If notes are included in your references you can change the title from 'References' to 'Notes and references' using the following command:
% \renewcommand\refname{Notes and references}

%%%REFERENCES%%%


\bibliography{rsc} %You need to replace "rsc" on this line with the name of your .bib file
\bibliographystyle{rsc} %the RSC's .bst file




\end{document}
rsc.bib · 3 KB
@ARTICLE{Abernethy2003,
  author = {Colin D. Abernethy and Gareth M. Codd and Mark D. Spicer
    and Michelle K. Taylor},
  title = {{A} highly stable {N}-heterocyclic carbene complex of
    trichloro-oxo-vanadium(\textsc{v}) displaying novel
    {C}l---{C}(carbene) bonding interactions},
  journal = {{J}. {A}m. {C}hem. {S}oc.},
  year = {2003},
  volume = {125},
  pages = {1128--1129},
  number = {5},
  doi = {10.1021/ja0276321},
}

@MISC{ACS2007,
  url = {http://pubs.acs.org/books/references.shtml},
}

@ARTICLE{Arduengo1992,
  author = {Arduengo, III, Anthony J. and H. V. Rasika Dias and
    Richard L. Harlow and Michael Kline},
  title = {{E}lectronic stabilization of nucleophilic carbenes},
  journal = {{J}.~{A}m.\ {C}hem.\ {S}oc.},
  year = {1992},
  volume = {114},
  pages = {5530--5534},
  number = {14},
  doi = {10.1021/ja00040a007},
}

@ARTICLE{Arduengo1994,
  author = {Arduengo, III, Anthony J. and Siegfried F. Gamper and
    Joseph C. Calabrese and Fredric Davidson},
  title = {{L}ow-coordinate carbene complexes of nickel(0) and
    platinum(0)},
  journal = {{J}.~{A}m.\ {C}hem. {S}oc.},
  year = {1994},
  volume = {116},
  pages = {4391--4394},
  number = {10},
  doi = {10.1021/ja00089a029},
}

@ARTICLE{Eisenstein2005,
  author = {Appelhans, Leah N. and Zuccaccia, Daniele and Kovacevic,
    Anes and Chianese, Anthony R. and Miecznikowski, John R. and
    Macchioni, Aleco and Clot, Eric and Eisenstein, Odile and
    Crabtree, Robert H.},
  title = {{A}n anion-dependent switch in selectivity results from a
    change of {C}---{H} activation mechanism in the reaction of an
    imidazolium salt with \ce{IrH5(PPh3)2}},
  journal = {{J}.~{A}m.\ {C}hem. {S}oc.},
  year = {2005},
  volume = {127},
  pages = {16299--16311},
  number = {46},
  doi = {10.1021/ja055317j},
}

@BOOK{Coghill2006,
  title = {{T}he {ACS} {S}tyle {G}uide},
  publisher = {{O}xford {U}niversity {P}ress, {I}nc. and
               {T}he {A}merican {C}hemical {S}ociety},
  year = {2006},
  editor = {Coghill, Anne M. and Garson, Lorrin R.},
  address = {{N}ew {Y}ork},
  edition = {3},
  subtitle = {{E}ffective {C}ommunication of {S}cientific
    {I}nformation},
}

@BOOK{Cotton1999,
  title = {{A}dvanced {I}norganic {C}hemistry},
  publisher = {Wiley},
  year = {1999},
  author = {Cotton, Frank Albert and Wilkinson, Geoffrery and
    Murillio, Carlos A. and Bochmann, Manfred},
  address = {Chichester},
  edition = {6},
}

@ARTICLE{Mena2000,
  author = {Angel Abarca and Pilar G\'omez-Sal and Avelino Mart\'in
    and Miguel Mena and Josep Mar\'ia Poblet and Carlos Y\'elamos},
  title = {{A}mmonolysis of mono(pentamethylcyclopentadienyl)
    titanium(\textsc{iv}) derivatives},
  journal = {Inorg. Chem.},
  year = {2000},
  volume = {39},
  pages = {642--651},
  number = {4},
  doi = {10.1021/ic9907718},
}
rsc.bst · 27 KB
%%
%% This is file `rsc.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% rsc.dtx  (with options: `bst,rsc')
%% ----------------------------------------------------------------
%% rsc --- BibTeX styles for Royal Society of Chemistry and Wiley
%%   journals
%% E-mail: [email protected]
%% Released under the LaTeX Project Public License v1.3c or later
%% See http://www.latex-project.org/lppl.txt
%% ----------------------------------------------------------------
%% 
ENTRY
  { address
    author
    booktitle
    chapter
    ctrl-use-title
    ctrl-etal-number
    ctrl-use-doi-all
    doi
    edition
    editor
    howpublished
    institution
    journal
    key
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    url
    volume
    year
  }
  {}
  { label
    extra.label
    short.list
  }

INTEGERS { output.state before.all mid.sentence }
INTEGERS { after.sentence after.block after.item }
INTEGERS { author.or.editor }

FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
  #4 'after.item :=
}

INTEGERS { is.use.title etal.number use.doi.all }

%% #0 turns off the display of the title for articles
%% #1 enables
FUNCTION {default.is.use.title} { #0 }

%% The number of names that force "et al." to be used
FUNCTION {default.etal.number} { #0 }

%% #0 turns off the display of the DOI for articles
%% #1 enables
FUNCTION {default.use.doi.all} { #0 }

FUNCTION {add.comma}
{ ", " * }

STRINGS { s t }

FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { add.comma write$ }
    { output.state after.block =
      { add.comma write$
        newline$
        "\newblock " write$
      }
      { output.state before.all =
          'write$
          { output.state after.item =
            { " " * write$ }
            { add.period$ " " * write$ }
          if$
          }
        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$
}

INTEGERS { would.add.period.textlen }

FUNCTION {would.add.period}
{ duplicate$
  add.period$
  text.length$
  'would.add.period.textlen :=
  duplicate$
  text.length$
  would.add.period.textlen =
    { #0 }
    { #1 }
  if$
}

FUNCTION {fin.entry}
{ would.add.period
    { "\relax" * write$ newline$
      "\mciteBstWouldAddEndPuncttrue" write$ newline$
      "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}"
      write$ newline$
      "{\mcitedefaultendpunct}{\mcitedefaultseppunct}\relax"
    }
    { "\relax" * write$ newline$
      "\mciteBstWouldAddEndPunctfalse" write$ newline$
      "\mciteSetBstMidEndSepPunct{\mcitedefaultmidpunct}"
      write$ newline$
      "{}{\mcitedefaultseppunct}\relax"
    }
  if$
  write$
  newline$
  "\EndOfBibitem" write$
}

FUNCTION {not}
{   { #0 }
    { #1 }
  if$
}

FUNCTION {and}
{   'skip$
    { pop$ #0 }
  if$
}

FUNCTION {or}
{   { pop$ #1 }
    'skip$
  if$
}

FUNCTION {field.or.null}
{ duplicate$ empty$
    { pop$ "" }
    'skip$
  if$
}

FUNCTION {emphasize}
{ duplicate$ empty$
    { pop$ "" }
    { "\emph{" swap$ * "}" * }
  if$
}

FUNCTION {boldface}
{ duplicate$ empty$
    { pop$ "" }
    { "\textbf{" swap$ * "}" * }
  if$
}

FUNCTION {paren}
{ duplicate$ empty$
    { pop$ "" }
    { "(" swap$ * ")" * }
  if$
}

FUNCTION {bbl.and}
{ "and" }

FUNCTION {bbl.chapter}
{ "ch." }

FUNCTION {bbl.doi}
{ "DOI:" }

FUNCTION {bbl.editor}
{ "ed." }


FUNCTION {bbl.edition}
{ "edn" }

FUNCTION {bbl.etal}
{ "et~al." emphasize }

FUNCTION {bbl.in}
{ "in" }

FUNCTION {bbl.inpress}
{ "in press" }

FUNCTION {bbl.msc}
{ "MSc thesis" }

FUNCTION {bbl.page}
{ "p." }

FUNCTION {bbl.pages}
{ "pp." }

FUNCTION {bbl.phd}
{ "PhD thesis" }

FUNCTION {bbl.submitted}
{ "submitted for publication" }

FUNCTION {bbl.techreport}
{ "Technical Report" }

FUNCTION {bbl.volume}
{ "vol." }

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

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

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 {chr.to.value}
{ chr.to.int$ #48 -
  duplicate$ duplicate$
  #0 < swap$ #9 > or
    { #48 + int.to.chr$
      " is not a number..." *
      warning$
     pop$ #0
    }
    {}
  if$
}

FUNCTION{is.a.digit}
{ duplicate$ "" =
    {pop$ #0}
    {chr.to.int$ #48 - duplicate$
     #0 < swap$ #9 > or not}
  if$
}

FUNCTION{is.a.number}
{
  { duplicate$ #1 #1 substring$ is.a.digit }
    {#2 global.max$ substring$}
  while$
  "" =
}

FUNCTION {extract.num}
{ duplicate$ 't :=
  "" 's :=
  { t empty$ not }
  { t #1 #1 substring$
    t #2 global.max$ substring$ 't :=
    duplicate$ is.a.number
      { s swap$ * 's := }
      { pop$ "" 't := }
    if$
  }
  while$
  s empty$
    'skip$
    { pop$ s }
  if$
}

FUNCTION {bibinfo.check}
{ swap$
  duplicate$ missing$
    { pop$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ pop$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}

FUNCTION {convert.edition}
{ extract.num "l" change.case$ 's :=
  s "first" = s "1" = or
    { bbl.first 't := }
    { s "second" = s "2" = or
        { bbl.second 't := }
        { s "third" = s "3" = or
            { bbl.third 't := }
            { s "fourth" = s "4" = or
                { bbl.fourth 't := }
                { s "fifth" = s "5" = or
                    { bbl.fifth 't := }
                    { s #1 #1 substring$ is.a.number
                        { s eng.ord 't := }
                        { edition 't := }
                      if$
                    }
                  if$
                }
              if$
            }
          if$
        }
      if$
    }
  if$
  t
}

FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
    { "~" }
    { " " }
  if$
  swap$ * *
}

FUNCTION {space.connect}
{ " " swap$ * * }

INTEGERS { nameptr namesleft numnames }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
  numnames etal.number > etal.number #0 > and
    { s #1 "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
      t bbl.etal space.connect
    }
    {
      { namesleft #0 > }
        { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
          nameptr #1 >
            { namesleft #1 >
              { add.comma t * }
              { numnames #2 >
                { "" * }
                'skip$
              if$
              t "others" =
                { bbl.etal space.connect }
                { bbl.and space.connect t space.connect }
              if$
              }
            if$
            }
          't
        if$
        nameptr #1 + 'nameptr :=
        namesleft #1 - 'namesleft :=
        }
    while$
  }
  if$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { #1 'author.or.editor :=
      author format.names }
  if$
}

FUNCTION {strip.comma}
{ duplicate$
  string.length 'find_length :=
  duplicate$
  find_length #1 - #1 substring$
  "," =
    { #1 find_length #2 - substring$
      " " *
    }
    'skip$
  if$
}

FUNCTION {format.editors}
{ editor empty$
    { "" }
    { #2 'author.or.editor :=
      bbl.editor " " * *
      editor format.names
    }
  if$
}

FUNCTION {format.doi}
{ use.doi.all
    { doi empty$
        { bbl.doi doi tie.or.space.connect output }
        'skip$
      if$
    }
    'skip$
  if$
}

FUNCTION {n.separate.multi}
{ 't :=
  ""
  #0 'numnames :=
  t text.length$ #4 > t is.a.number and
    {
      { t empty$ not }
      { t #-1 #1 substring$ is.a.number
          { numnames #1 + 'numnames := }
          { #0 'numnames := }
        if$
        t #-1 #1 substring$ swap$ *
        t #-2 global.max$ substring$ 't :=
        numnames #4 =
          { duplicate$ #1 #1 substring$ swap$
            #2 global.max$ substring$
            "\," swap$ * *
            #1 'numnames :=
          }
          'skip$
        if$
      }
      while$
    }
    { t swap$ * }
  if$
}

FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { bbl.volume volume tie.or.space.connect }
  if$
}

FUNCTION {format.title.noemph}
{ 't :=
  t empty$
    { "" }
    { t }
  if$
}

FUNCTION {format.title}
{ 't :=
  t empty$
    { "" }
    { t emphasize }
  if$
}

FUNCTION {format.url}
{ url empty$
    { "" }
    { "\url{" url * "}" * }
  if$
}

FUNCTION {format.title.vol}
{ 't :=
  t empty$
    { "" }
    { t emphasize }
  if$
  volume empty$
    'skip$
    { format.bvolume emphasize
      swap$ add.comma swap$ *
    }
  if$
  }

FUNCTION {format.full.names}
{'s :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
    { namesleft #0 > }
    { s nameptr
      "{vv~}{ll}" format.name$ 't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              numnames #2 >
                { "," * }
                'skip$
              if$
              t "others" =
                { bbl.etal * }
                { bbl.and space.connect t space.connect }
              if$
            }
          if$
        }
        't
      if$
      nameptr #1 + 'nameptr :=
      namesleft #1 - 'namesleft :=
    }
  while$
}

FUNCTION {author.editor.full}
{ author empty$
    { editor empty$
        { "" }
        { editor format.full.names }
      if$
    }
    { author format.full.names }
  if$
}

FUNCTION {author.full}
{ author empty$
    { "" }
    { author format.full.names }
  if$
}

FUNCTION {editor.full}
{ editor empty$
    { "" }
    { editor format.full.names }
  if$
}

FUNCTION {make.full.names}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.full
    { type$ "proceedings" =
        'editor.full
        'author.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 {format.date}
{ year empty$
    { "" }
    'year
  if$
}

FUNCTION {format.bdate}
{ year empty$
    { "There's no year in " cite$ * warning$ }
    'year
  if$
}

FUNCTION {either.or.check}
{ empty$
    'pop$
    { "Can't use both " swap$ * " fields in "
      * cite$ * warning$ }
  if$
}

FUNCTION {format.edition}
{ edition duplicate$ empty$
    'skip$
    { convert.edition
      bbl.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 empty$
    { "" }
    { pages multi.page.check
      { bbl.pages pages n.dashify tie.or.space.connect }
      { bbl.page pages tie.or.space.connect }
    if$
    }
  if$
}

FUNCTION {format.pages.required}
{ pages empty$
    { ""
      "There are no page numbers for " cite$ * warning$
      output
    }
    { pages multi.page.check
      { bbl.pages pages n.dashify tie.or.space.connect }
      { bbl.page pages tie.or.space.connect }
    if$
    }
  if$
}

FUNCTION {format.pages.nopp}
{ pages empty$
    { ""
      "There are no page numbers for " cite$ * warning$
      output
    }
    { pages multi.page.check
      { pages n.dashify space.connect }
      { pages space.connect }
    if$
    }
  if$
}

FUNCTION {format.pages.patent}
{ pages empty$
    { "There is no patent number for " cite$ * warning$ }
    { pages multi.page.check
      { pages n.dashify }
      { pages n.separate.multi }
      if$
    }
  if$
}

FUNCTION {format.vol.pages}
{ volume boldface field.or.null
  duplicate$ empty$
    { pop$ format.pages.required }
    { add.comma pages n.dashify * }
  if$
}

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$
    { add.comma format.pages * }
      if$
    }
  if$
}

FUNCTION {format.title.in}
{ 's :=
  s empty$
    { "" }
    { editor empty$
      { bbl.in s format.title space.connect }
      { bbl.in s format.title space.connect
      add.comma format.editors *
      }
    if$
    }
  if$
}

FUNCTION {format.title.vol.in}
{ 's :=
  after.item 'output.state :=
  s empty$
    { "" }
    { editor empty$
      { bbl.in s format.title.vol space.connect }
      { bbl.in s format.title.vol space.connect
      add.comma format.editors *
      }
    if$
    }
  if$
}

FUNCTION {format.pub.address}
{ publisher empty$
    { "" }
    { address empty$
        { publisher }
        { publisher add.comma address *}
      if$
    }
  if$
}

FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
  year empty$ note empty$ url empty$
  and and and and and
    { "all relevant fields are empty in " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {empty.doi.note}
{ doi empty$ note empty$ and
    { "Need either a note or DOI for " cite$ * warning$ }
    'skip$
  if$
}

FUNCTION {format.thesis.type}
{ type empty$
    'skip$
    { pop$
      type emphasize
    }
  if$
}

FUNCTION {article}
{ output.bibitem
  format.authors "author" output.check
  is.use.title
    { title format.title.noemph "title" output.check }
    'skip$
  if$
  journal emphasize "journal" output.check
  format.date "year" output.check
  volume empty$
    { "" format.pages.nopp output }
    { format.vol.pages output }
  if$
  format.doi
  fin.entry
}

FUNCTION {book}
{ output.bibitem
  author empty$
    { title format.title "title" output.check
      editor empty$
        { "Need either an author or editor for "
          cite$ * warning$ }
        { "" format.editors * "editor" output.check }
      if$
    }
    { format.authors output
      "author and editor" editor either.or.check
      title format.title "title" output.check
    }
  if$
  format.pub.address "publisher" output.check
  format.edition output
  format.bdate "year" output.check
  format.bvolume output
  pages empty$
    'skip$
    { format.pages output }
  if$
  format.doi
  fin.entry
}

FUNCTION {booklet}
{ output.bibitem
  format.authors output
  title format.title "title" output.check
  howpublished output
  address output
  format.date output
  format.doi
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { title format.title "title" output.check
      editor empty$
      { "Need at least an author or an editor for "
        cite$ * warning$ }
      { "" format.editors * "editor" output.check }
    if$
    }
    { format.authors output
      title format.title.in "title" output.check
    }
  if$
  format.pub.address "publisher" output.check
  format.edition output
  format.bdate "year" output.check
  format.bvolume output
  format.chapter.pages "chapter and pages" output.check
  format.doi
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  author empty$
    { booktitle
      format.title
      "booktitle" output.check
      editor empty$
        { "Need at least an author or an editor for "
          cite$ * warning$ }
        { "" format.editors * "editor" output.check }
      if$
    }
    { format.authors output
      booktitle
      format.title
      "booktitle" output.check
    }
  if$
  format.pub.address "publisher" output.check
  format.edition output
  format.bdate "year" output.check
  format.bvolume output
  format.chapter.pages "chapter and pages" output.check
  format.doi
  fin.entry
}

FUNCTION {inpress}
{ output.bibitem
  format.authors "author" output.check
  journal emphasize "journal" output.check
  bbl.inpress output
  format.doi
  fin.entry
}

FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  booktitle format.title.noemph "booktitle" output.check
  address output
  format.date "year" output.check
  pages empty$
    'skip$
    { format.pages output }
  if$
  format.doi
  fin.entry
}

FUNCTION {manual}
{ output.bibitem
  author empty$
    { organization empty$
      'skip$
      { organization output
        address output
      }
      if$
    }
    { format.authors output }
  if$
  title format.title "title" output.check
  author empty$
    { organization empty$
      { address output }
      'skip$
    if$
    }
    { organization output
      address output
    }
  if$
  format.edition output
  format.date output
  format.doi
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  bbl.msc emphasize format.thesis.type output
  school "school" output.check
  address output
  format.date "year" output.check
  format.doi
  fin.entry
}

FUNCTION {misc}
{ output.bibitem
  format.authors output
  title empty$
    'skip$
    { title format.title output }
  if$
  howpublished output
  year output
  format.url output
  note output
  format.doi
  fin.entry
  empty.misc.check
}

FUNCTION {patent}
{ output.bibitem
  organization empty$
    { format.authors "author and organization" output.check }
    { author empty$
        { organization }
        {  format.authors organization paren space.connect }
      if$
      "author and organization" output.check
    }
  if$
  journal emphasize "journal" output.check
  format.pages.patent "pages" output.check
  format.date "year" output.check
  format.doi
  fin.entry
}

FUNCTION {phdthesis}
{ output.bibitem
  format.authors "author" output.check
  bbl.phd emphasize format.thesis.type output
  school "school" output.check
  address output
  format.date "year" output.check
  format.doi
  fin.entry
}

FUNCTION {proceedings}
{ output.bibitem
  title format.title.noemph "title" output.check
  address output
  format.date "year" output.check
  pages empty$
    'skip$
    { format.pages output }
  if$
  format.doi
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  title format.title "title" output.check
  institution
  type empty$
    'bbl.techreport
    'type
  if$
  space.connect
  number empty$
    { "t" change.case$ }
    { number tie.or.space.connect }
  if$
  output
  format.pub.address output
  format.date "year" output.check
  format.doi
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  journal empty$
    'skip$
    { journal emphasize "journal" output.check }
  if$
  doi empty$
    {  note output }
    {
       format.date output
       bbl.doi doi tie.or.space.connect output
   }
  if$
  fin.entry
  empty.doi.note
}

INTEGERS { a b }

FUNCTION {mult}
{ 'a :=
  'b :=
  b #0 <
    {#-1 #0 b - 'b :=}
    {#1}
  if$
  #0
  {b #0 >}
    { a +
      b #1 - 'b :=
    }
  while$
  swap$
    'skip$
    {#0 swap$ -}
    if$
}

FUNCTION {str.to.int.aux}
{ {duplicate$ empty$ not}
    { swap$ #10 mult 'a :=
      duplicate$ #1 #1 substring$
      chr.to.value a +
      swap$
     #2 global.max$ substring$
    }
  while$
  pop$
}

FUNCTION {str.to.int}
{ duplicate$ #1 #1 substring$ "-" =
    {#1 swap$ #2 global.max$ substring$}
    {#0 swap$}
  if$
  #0 swap$ str.to.int.aux
  swap$
    {#0 swap$ -}
    {}
  if$
}

FUNCTION {yes.no.to.int}
{ "l" change.case$ duplicate$
    "yes" =
    { pop$  #1 }
    { duplicate$ "no" =
        { pop$ #0 }
        { "unknown Boolean " quote$ * swap$ * quote$ *
          " in " * cite$ * warning$
          #0
        }
      if$
    }
  if$
}

FUNCTION {Control}
{ ctrl-use-title
  empty$
    { skip$ }
    { ctrl-use-title
      yes.no.to.int
      'is.use.title := }
  if$
  ctrl-etal-number
  empty$
    { skip$ }
    { ctrl-etal-number
      str.to.int
      'etal.number := }
  if$
  ctrl-use-doi-all
  empty$
    { skip$ }
    { ctrl-use-doi-all
      yes.no.to.int
      'use.doi.all := }
  if$
}

FUNCTION {conference} {inproceedings}

FUNCTION {other} {patent}

FUNCTION {default.type} {misc}

MACRO {jan} {"January"}
MACRO {feb} {"February"}
MACRO {mar} {"March"}
MACRO {apr} {"April"}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"August"}
MACRO {sep} {"September"}
MACRO {oct} {"October"}
MACRO {nov} {"November"}
MACRO {dec} {"December"}

READ

FUNCTION {initialize.controls}
{ default.is.use.title 'is.use.title :=
  default.etal.number 'etal.number :=
  default.use.doi.all 'use.doi.all :=
}

INTEGERS { len }

FUNCTION {chop.word}
{ 's :=
  'len :=
  s #1 len substring$ =
    { s len #1 + global.max$ substring$ }
    's
  if$
}

FUNCTION {format.lab.names}
{ 's :=
  s #1 "{vv~}{ll}" format.name$
  s num.names$ duplicate$
  #2 >
    { pop$ bbl.etal space.connect }
    { #2 <
        'skip$
        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
            { bbl.etal space.connect }
            { bbl.and space.connect s #2 "{vv~}{ll}"
              format.name$ space.connect }
          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 {author.key.organization.label}
{ author empty$
    { key empty$
        { organization empty$
            { cite$ #1 #3 substring$ }
            { "The " #4 organization chop.word #3
              text.prefix$ }
          if$
        }
        'key
      if$
    }
    { author format.lab.names }
  if$
}

FUNCTION {editor.key.organization.label}
{ editor empty$
    { key empty$
        { organization empty$
            { cite$ #1 #3 substring$ }
            { "The " #4 organization chop.word #3
              text.prefix$ }
          if$
        }
        'key
      if$
    }
    { editor format.lab.names }
  if$
}

FUNCTION {calc.short.authors}
{ type$ "book" =
  type$ "inbook" =
  or
    'author.editor.key.label
    { type$ "proceedings" =
        'editor.key.organization.label
        { type$ "manual" =
            'author.key.organization.label
            'author.key.label
          if$
        }
      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 :=
}

ITERATE {calc.label}

STRINGS { longest.label last.label next.extra }

INTEGERS { longest.label.width last.extra.num number.label }

FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
  #0 int.to.chr$ 'last.label :=
  "" 'next.extra :=
  #0 'longest.label.width :=
  #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 :=
}

EXECUTE {initialize.longest.label}

ITERATE {forward.pass}

FUNCTION {begin.bib}
{ preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "\providecommand*{\mcitethebibliography}{\thebibliography}"
  write$ newline$
  "\csname @ifundefined\endcsname{endmcitethebibliography}"
  write$ newline$
  "{\let\endmcitethebibliography\endthebibliography}{}"
  write$ newline$
  "\begin{mcitethebibliography}{"  number.label int.to.str$  * "}" *
  write$ newline$
  "\providecommand*{\natexlab}[1]{#1}"
  write$ newline$
  "\providecommand*{\mciteSetBstSublistMode}[1]{}"
  write$ newline$
  "\providecommand*{\mciteSetBstMaxWidthForm}[2]{}"
  write$ newline$
  "\providecommand*{\mciteBstWouldAddEndPuncttrue}"
  write$ newline$
  "  {\def\EndOfBibitem{\unskip.}}"
  write$ newline$
  "\providecommand*{\mciteBstWouldAddEndPunctfalse}"
  write$ newline$
  "  {\let\EndOfBibitem\relax}"
  write$ newline$
  "\providecommand*{\mciteSetBstMidEndSepPunct}[3]{}"
  write$ newline$
  "\providecommand*{\mciteSetBstSublistLabelBeginEnd}[3]{}"
  write$ newline$
  "\providecommand*{\EndOfBibitem}{}"
  write$ newline$
  "\mciteSetBstSublistMode{f}"
  write$ newline$
  "\mciteSetBstMaxWidthForm{subitem}"
  write$ newline$
  "{(\emph{\alph{mcitesubitemcount}})}"
  write$ newline$
  "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}"
  write$ newline$
  "{\relax}{\relax}"
  write$ newline$
}

EXECUTE {begin.bib}

EXECUTE {init.state.consts}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
  "\end{mcitethebibliography}" write$ newline$
}

EXECUTE {end.bib}
%% 
%% Copyright (C) 2006-2009 by
%%   Joseph Wright <[email protected]>
%% 
%% It may be distributed and/or modified under the conditions of
%% the LaTeX Project Public License (LPPL), either version 1.3c of
%% this license or (at your option) any later version.  The latest
%% version of this license is in the file:
%% 
%%    http://www.latex-project.org/lppl.txt
%% 
%% This work is "maintained" (as per LPPL maintenance status) by
%%   Joseph Wright.
%% 
%% This work consists of the file  rsc.dtx
%%           and the derived files rsc.pdf,
%%                                 rsc.ins,
%%                                 rsc.sty,
%%                                 rsc.bib and
%%                                 rsc-demo.tex.
%% 
%% 
%%
%% End of file `rsc.bst'.

The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗