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.
- 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 KBhead_foot/DOI.pdf· 45 KBhead_foot/LF.pdf· 4 KBhead_foot/RF.pdf· 50 KBhead_foot/RSC_LOGO_CMYK.pdf· 23 KBhead_foot/dates.pdf· 39 KBhead_foot/header_bar.pdf· 5 KBhead_foot/journal_name.pdf· 128 KBmain.tex— the file that is compiled · 12 KBrsc.bib· 3 KBrsc.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 ↗