Northern European Journal of Language Technology (nejlt)
NEJLT's nejlt style and nejlt_bib BibTeX style for articles and letters; the sample sets out the journal's formatting rules with glossed examples, acknowledgements and references.
- Category
- Journal
- Document class
article(article.cls) — ships with TeX Live- Workflow
- Journal manuscript — submissions and revision rounds
- Author
- Northern European Journal of Language Technology (NEJLT)
- Source
- Northern European Journal of Language Technology (NEJLT)
- Licence
- article.cls: LaTeX Project Public License (installed with TeX). The sample text is Northern European Journal of Language Technology (NEJLT)'s, provided for authors preparing a submission.
These are the publisher’s own files. This project starts from Northern European Journal of Language Technology (NEJLT)’s package for this publication — their manuscript, their article.cls, their bibliography style — so what compiles here is what they would have given you.
Northern European Journal of Language Technology (NEJLT) serves this exact file to Northern European Journal of Language Technology. Check Northern European Journal of Language Technology (NEJLT)’s author pages for the current instructions.
Where this differs from the publisher’s download.
- Note: Pass the option final for camera-ready versions and letter for letter submissions (\usepackage[final,letter]{nejlt}).
What you get
LICENSE· 1 KBnejlt.bib· 1 KBnejlt.sty· 4 KBnejlt.tex— the file that is compiled · 6 KBnejlt_bib.bst· 34 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
LICENSE — binary, 1 KB
nejlt.bib · 1 KB
@article{inie2020interaction,
title={How Interaction Designers Use Tools to Manage Ideas},
author={Inie, Nanna and Dalsgaard, Peter},
journal={ACM Transactions on Computer-Human Interaction (TOCHI)},
volume={27},
number={2},
pages={1--26},
year={2020},
publisher={ACM New York, NY, USA}
}
@inproceedings{devlin2014fast,
title={Fast and robust neural network joint models for statistical machine translation},
author={Devlin, Jacob and Zbib, Rabih and Huang, Zhongqiang and Lamar, Thomas and Schwartz, Richard and Makhoul, John},
booktitle={Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)},
pages={1370--1380},
year={2014}
}
@book{aoett,
title={Automatically Ordering Events and Times in Text},
author={Leon Derczynski},
year={2016},
publisher={Springer}
}
@phdthesis{steedman,
title={The formal description of musical perception},
author={Steedman, Mark},
year={1972},
school={The University of Edinburgh}
}
@misc{reviewing,
title={How NOT to review a paper: The tools and techniques of the adversarial reviewer},
author={Graham Cormode},
year={2008},
howpublished={AT\&T}
}
@inbook{swift,
title={A Tale of a Tub},
author={Jonathan Swift},
chapter={Digression in Praise of Digressions},
year={1704},
publisher={John Nutt},
}nejlt.sty · 4 KB
%%% NEJLT style file
%%% (c) Leon Derczynski 2020,2023
%%% hints from from ACM Large, CVPR, EMNLP2020, Political Analysis, LREC
%%% Bibliography is URL-free ACL version
%% OPTIONS
% draft mode
\newif\ifcrversion
\crversionfalse
\newif\ifletter
\letterfalse
\DeclareOption{final}{\crversiontrue}
\DeclareOption{letter}{\lettertrue}
% end options segment
\ProcessOptions
\RequirePackage{enumitem}
%% LAYOUT AND GENERAL APPEARANCE
% Libertine font
\IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{Libertine package is missing; please upgrade}}
% switch to biolinum, the libertine sans font
\RequirePackage[tt=false, type1=true, sfdefault]{libertine}
\RequirePackage[libertine]{newtxmath}
% colour enabled
\RequirePackage{xcolor}
\definecolor{nejltblue}{RGB}{63,81,181}
\definecolor{flagred}{RGB}{198, 12, 48}
% simplify use of complex input glyphs
\usepackage[utf8]{inputenc}
% set page size and margins
\RequirePackage[a4paper,portrait]{geometry}
\geometry{
textwidth=170mm,
textheight=235mm,
footskip=12mm,
voffset=10mm,
headsep=14mm,
}
% try to balance page end
\flushbottom
% don't break lines unless we really have to
\sloppy
\RequirePackage[]{hyperref}
\hypersetup{colorlinks=true,linkcolor=nejltblue,filecolor=nejltblue,urlcolor=nejltblue,citecolor=nejltblue,anchorcolor=nejltblue}
%% COLUMNS
\twocolumn
\setlength{\columnsep}{12mm}
%% BIBLOGRAPHY
\RequirePackage{natbib}
% ease ACL format transitions
\renewcommand\cite{\citep}
\newcommand\shortcite{\citeyearpar}
\newcommand\newcite{\citet}
%% TITLE BLOCK
\newlength\titlebox
\setlength\titlebox{50mm}
% author blanking in drafts
\newcommand\outauthor{
\begin{itemize}[leftmargin=0mm]
\itemsep=0pt\labelwidth=0mm\leftmargin=0mm
\ifcrversion
\item[] \@author
\else
\item[] {Anonymous authors}
\fi
\end{itemize}
}
% abstract box
\def\abstractname{Abstract}
\ifletter
\def\abstractname{ Letter abstract }
\fi
\def\abstract#1{\gdef\@abstract{
{
\setlength{\baselineskip}{10pt}
\noindent\rule{\textwidth}{0.2pt}
\parbox{\textwidth}{\vskip 3mm \small {\bf \color{nejltblue}\abstractname } #1 \vskip 3mm \par}
\noindent\rule{\textwidth}{0.2pt}
}
}}
% title
\def\maketitle{\par
\begingroup
\def\thefootnote{\fnsymbol{footnote}}
\def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
\twocolumn[\@maketitle] \@thanks %twocol's already asserted but this is quick
\endgroup
\setcounter{footnote}{0} % reset footnotes
\let\maketitle\relax \let\@maketitle\relax % blank existing titles
\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax}
% put everything in maketitle
\def\@maketitle{
%\vbox to \titlebox
\hsize\textwidth \linewidth\hsize
{\LARGE \@title \par}
\vskip 10mm
{
\def\and{\item[]}
\hbox to \linewidth
{\hfil}
{\large \outauthor}
}
\vskip 2mm
\@abstract
\vskip 17mm
}
%% ACCESSIBILITY
%% HEADERS AND FOOTERS
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\newcommand\headtitle{UNDEFINED}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{.8pt}
\fancyhead[C]{\itshape\headtitle}
\ifcrversion
\fancyfoot[C]{Northern European Journal of Language Technology}
\else
% confidential footer for draft
\fancyfoot[C]{\sc\color{flagred} Confidential NEJLT review copy. Do not distribute.}
% page numbers only appear on the draft — are added by the editor for final copy
\fancyfoot[R]{\thepage}
\fi
\fancypagestyle{title}{
\fancyhf{}
\ifletter
\fancyhead[L]{\sc NEJLT Letter}
\fi
\ifcrversion
\fancyfoot[C]{Northern European Journal of Language Technology}
\else
% confidential header/footer for draft
\fancyfoot[C]{\sc\color{flagred} Confidential NEJLT review copy. Do not distribute.}
% page numbers only appear on the draft — are added by the editor for final copy
\fancyfoot[R]{\thepage}
\fi
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{.8pt}% or however thick
}
%% LINE NUMBERS FOR DRAFTING
\RequirePackage{lineno}
\ifcrversion
\else
\setlength\linenumbersep{1.5mm}
\renewcommand{\linenumberfont}{\footnotesize\bfseries\textcolor{flagred}}
\linenumbers
\fi
nejlt.tex — the file that is compiled · 6 KB
% The canonical version of this template is at https://github.com/NEJLT/nejlt-template
\documentclass{article}
% pass the option "final" for camera-ready versions
%\usepackage[final]{nejlt}
% pass the option "letter" for letter submissions
%\usepackage[letter]{nejlt}
% options can be combined with a comma
%\usepackage[final,letter]{nejlt}
\usepackage{nejlt}
% manuscript title
\title{Your paper}
% running head title here – do not change unless full manuscript title is too long for the header
\makeatletter
\protected@edef\headtitle{\@title}%
\makeatother
\author{
Lois Griffin, Quahog Community College, Rhode Island, USA \and
Reviewer Two, University of California San Diego, USA {\tt \small [email protected]} \and
Margrete Valdemarsdatter, Roskilde, Kalmar Union {\tt \small [email protected]} \and
Marc Rebillet, Loop Daddy Institute, YouTube Inc. \and
Wil E. Coyote, Utopia Planitia, Mars, UFP
}
% package used only for the template, feel free to remove this
\usepackage{lipsum}
\begin{document}
\thispagestyle{title}
\abstract{Here are the guidelines for typesetting a manuscript for the Northern European Journal of Language technologies. The guidelines follow themselves and so are an example of the results. These cover manuscripts both submitted for review and for camera ready. Please follow all the instructions here. If you use a template, this will do much of this for you.}
\maketitle
\section{Introduction}
Documents not in this template risk rejection without review. Do not adjust the font sizes. Submissions must be one PDF file, formatted as A4.
\section{Length}
For a full paper, any length is fine, though 7-11 pages is recommended. Longer papers are held to a higher standard. Shorter papers are welcome for highly-impactful results.
Letters should be up to around 1000 words, and may include 2-3 floats (i.e. tables or figures). This will be around two pages in this template, including front matter and bibliography. These are reviewed more quickly than full papers and designed to relay a sharp and timely result, or a comment on the field.
Appendices and bibliography do not count towards the page limit. Appendices must follow after the bibliography with each appendix starting on a new page.
\section{Section Headings}
Use Arabic-numbered section headings. The (optional) acknowledgements and (required) references sections must appear in that order, and not be numbered. Section titles should be in title case.
\section{Footnotes}
In general, try to avoid footnotes, instead including the content inline. If one must be included, the number must be placed \emph{after} adjacent baseline-connecting punctuation such as commas, full stops and semicolons.\footnote{This is where a footnote marker should be placed, but try to avoid footnotes overall.}
\section{Figures and Tables}
Place these items close to where they are first mentioned, and not all at the end of the document.
Provide a caption with every table and illustration. The caption should be below the item. Authors should use palettes that work for a wide variety of colour perceptions, and employ saturation and lightness as well as hue to convey information. Vector illustrations must be used unless the source information is bitmap-based (e.g. photographs). If tables use lines, these should be well-connected without spurious gaps between rows.
\section{References}
Use author-date citations, not numbers. Include all authors in the bibliographic entry. Use {\tt {\textbackslash}newcite} for inline references. Attribute agency to authors and not manuscripts, e.g. ``\newcite{inie2020interaction} find that [...]"
One may cite one's own work, but in the third person, in order to preserve anonymity.
Place all references together under a References heading. List them in order of first author surname, subsorting by year (ascending). Only include references that are cited within the text. Ensure that every reference mentioned in the text is expanded in the reference section.
Titles should have correct capitalisation; forcing sentence case is not always appropriate. For example, use ``BERT" instead of ``Bert" or ``bert".
Do not use an arXiv reference where the paper has also appeared in a peer-reviewed venue. In that case, use the peer-reviewed reference.
For book chapters, use \texttt{\@inbook}, e.g. \citet{swift}.
\section{Non-English worked examples}
The language of the journal is English.
American English and English English are both fine, as are other spelling and formulation variants.
When discussing non-English languages, please provide translations into English.
When providing and discussing important worked examples, please include interlinear glosses.
The Leipzig style is preferred, https://www.eva.mpg.de/lingua/pdf/Glossing-Rules.pdf. There are LaTeX packages that support this.
\section{Non-English character rendering}
To render non-English characters, use your favourite method that retains the journal layout and font. Past authors have had success with using XeTeX and the \texttt{libertine} package, and defining a block like:
\begin{verbatim}
\usepackage{libertine}
\newfontfamily\hebfont{Frank Ruehl CLM}
\newcommand{\heb}[1]{{\hebfont #1}}
\setmainfont{Linux Biolinum O}
\end{verbatim}
where \texttt{{\textbackslash}heb} can then be used to wrap text and apply the specified font.
\section{Lipsum Padding}
See~\newcite{inie2020interaction}. \lipsum[4] Details are well-known~\cite{devlin2014fast}.
\begin{table}
\centering
\begin{tabular}{lcc}
\hline
\textbf{System} & \textbf{F1} & \textbf{Variance} \\
\hline
ABC-D & 0.720 & 2.1\% \\
Baseline & 0.671 & 0.9\% \\
\hline
\end{tabular}
\caption{Sample table. Captions go below the table. Avoid superfluous horizontal lines.}
\label{tab:demotable}
\end{table}
\section{Sample Reflections}
See Table~\ref{tab:demotable}. \lipsum[5] Details are given in~\newcite{steedman}.
\section{Sample Discussion}
\lipsum[6] For details, see~\newcite{reviewing}.
\section{Sample Conclusion}
\lipsum[7] Books are cited the same way~\cite{aoett}.
% Acknowledgments is an un-numbered section. Keep them hidden until camera-ready.
\section*{Acknowledgements}
Exclude acknowledgements for review. Add them in an unnumbered section before the bibliography and optional appendices.
\bibliography{nejlt}
\bibliographystyle{nejlt_bib}
\end{document}
nejlt_bib.bst · 34 KB
%%% nejlt_bib.bst
%%% Modification of acl_natbib_nourl.bst by Leon Derczynski 2020
%%% Source https://github.com/successar/Disentangled-EMNLP/blob/master/acl_natbib_nourl.bst
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% BibTeX style file acl_natbib_nourl.bst
%
% intended as input to urlbst script
%
% adapted from compling.bst
% in order to mimic the style files for ACL conferences prior to 2017
% by making the following three changes:
% - for @incollection, page numbers now follow volume title.
% - for @inproceedings, address now follows conference name.
% (address is intended as location of conference,
% not address of publisher.)
% - for papers with three authors, use et al. in citation
% Dan Gildea 2017/06/08
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% BibTeX style file compling.bst
%
% Intended for the journal Computational Linguistics (ACL/MIT Press)
% Created by Ron Artstein on 2005/08/22
% For use with <natbib.sty> for author-year citations.
%
% I created this file in order to allow submissions to the journal
% Computational Linguistics using the <natbib> package for author-year
% citations, which offers a lot more flexibility than <fullname>, CL's
% official citation package. This file adheres strictly to the official
% style guide available from the MIT Press:
%
% http://mitpress.mit.edu/journals/coli/compling_style.pdf
%
% This includes all the various quirks of the style guide, for example:
% - a chapter from a monograph (@inbook) has no page numbers.
% - an article from an edited volume (@incollection) has page numbers
% after the publisher and address.
% - an article from a proceedings volume (@inproceedings) has page
% numbers before the publisher and address.
%
% Where the style guide was inconsistent or not specific enough I
% looked at actual published articles and exercised my own judgment.
% I noticed two inconsistencies in the style guide:
%
% - The style guide gives one example of an article from an edited
% volume with the editor's name spelled out in full, and another
% with the editors' names abbreviated. I chose to accept the first
% one as correct, since the style guide generally shuns abbreviations,
% and editors' names are also spelled out in some recently published
% articles.
%
% - The style guide gives one example of a reference where the word
% "and" between two authors is preceded by a comma. This is most
% likely a typo, since in all other cases with just two authors or
% editors there is no comma before the word "and".
%
% One case where the style guide is not being specific is the placement
% of the edition number, for which no example is given. I chose to put
% it immediately after the title, which I (subjectively) find natural,
% and is also the place of the edition in a few recently published
% articles.
%
% This file correctly reproduces all of the examples in the official
% style guide, except for the two inconsistencies noted above. I even
% managed to get it to correctly format the proceedings example which
% has an organization, a publisher, and two addresses (the conference
% location and the publisher's address), though I cheated a bit by
% putting the conference location and month as part of the title field;
% I feel that in this case the conference location and month can be
% considered as part of the title, and that adding a location field
% is not justified. Note also that a location field is not standard,
% so entries made with this field would not port nicely to other styles.
% However, if authors feel that there's a need for a location field
% then tell me and I'll see what I can do.
%
% The file also produces to my satisfaction all the bibliographical
% entries in my recent (joint) submission to CL (this was the original
% motivation for creating the file). I also tested it by running it
% on a larger set of entries and eyeballing the results. There may of
% course still be errors, especially with combinations of fields that
% are not that common, or with cross-references (which I seldom use).
% If you find such errors please write to me.
%
% I hope people find this file useful. Please email me with comments
% and suggestions.
%
% Ron Artstein
% artstein [at] essex.ac.uk
% August 22, 2005.
%
% Some technical notes.
%
% This file is based on a file generated with the package <custom-bib>
% by Patrick W. Daly (see selected options below), which was then
% manually customized to conform with certain CL requirements which
% cannot be met by <custom-bib>. Departures from the generated file
% include:
%
% Function inbook: moved publisher and address to the end; moved
% edition after title; replaced function format.chapter.pages by
% new function format.chapter to output chapter without pages.
%
% Function inproceedings: moved publisher and address to the end;
% replaced function format.in.ed.booktitle by new function
% format.in.booktitle to output the proceedings title without
% the editor.
%
% Functions book, incollection, manual: moved edition after title.
%
% Function mastersthesis: formatted title as for articles (unlike
% phdthesis which is formatted as book) and added month.
%
% Function proceedings: added new.sentence between organization and
% publisher when both are present.
%
% Function format.lab.names: modified so that it gives all the
% authors' surnames for in-text citations for one, two and three
% authors and only uses "et. al" for works with four authors or more
% (thanks to Ken Shan for convincing me to go through the trouble of
% modifying this function rather than using unreliable hacks).
%
% Changes:
%
% 2006-10-27: Changed function reverse.pass so that the extra label is
% enclosed in parentheses when the year field ends in an uppercase or
% lowercase letter (change modeled after Uli Sauerland's modification
% of nals.bst). RA.
%
%
% The preamble of the generated file begins below:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% This is file `compling.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs (with options: `ay,nat,vonx,nm-revv1,jnrlst,keyxyr,blkyear,dt-beg,yr-per,note-yr,num-xser,pre-pub,xedn,nfss')
%% ----------------------------------------
%% *** Intended for the journal Computational Linguistics ***
%%
%% Copyright 1994-2002 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}[2002/10/21 4.05 (PWD, AO, DPC)]
% 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
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}
{
new.block
}
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$ "" }
{ "\emph{" swap$ * "}" * }
if$
}
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.edby}
{ "edited by" }
FUNCTION {bbl.edition}
{ "edition" }
FUNCTION {bbl.volume}
{ "volume" }
FUNCTION {bbl.of}
{ "of" }
FUNCTION {bbl.number}
{ "number" }
FUNCTION {bbl.nr}
{ "no." }
FUNCTION {bbl.in}
{ "in" }
FUNCTION {bbl.pages}
{ "pages" }
FUNCTION {bbl.page}
{ "page" }
FUNCTION {bbl.chapter}
{ "chapter" }
FUNCTION {bbl.techrep}
{ "Technical Report" }
FUNCTION {bbl.mthesis}
{ "Master's thesis" }
FUNCTION {bbl.phdthesis}
{ "Ph.D. thesis" }
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"}
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$
}
STRINGS { bibinfo}
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
duplicate$ #1 >
{ "{ff~}{vv~}{ll}{, jj}" }
% { "{ff~}{vv~}{ll}{, jj}" } % first name first for first author
{ "{vv~}{ll}{, ff}{, jj}" } % last name first for first author
if$
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
numnames #2 >
{ "," * }
'skip$
if$
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$
} if$
}
FUNCTION {format.names.ed}
{
'bibinfo :=
duplicate$ empty$ 'skip$ {
's :=
"" 't :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{ff~}{vv~}{ll}{, jj}"
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
numnames #2 >
{ "," * }
'skip$
if$
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$
} if$
}
FUNCTION {format.key}
{ empty$
{ key field.or.null }
{ "" }
if$
}
FUNCTION {format.authors}
{ author "author" format.names
}
FUNCTION {get.bbl.editor}
{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
FUNCTION {format.editors}
{ editor "editor" format.names duplicate$ empty$ 'skip$
{
"," *
" " *
get.bbl.editor
*
}
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$ * "note" bibinfo.check
}
if$
}
FUNCTION {format.title}
{ title
duplicate$ empty$ 'skip$
{ "T" change.case$ }
if$
"title" bibinfo.check
}
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 *
}
{
numnames #2 >
{ "," * }
'skip$
if$
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 "year" bibinfo.check duplicate$ empty$
{
}
'skip$
if$
extra.label *
before.all 'output.state :=
after.sentence 'output.state :=
}
FUNCTION {format.btitle}
{ title "title" bibinfo.check
duplicate$ empty$ 'skip$
{
emphasize
}
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 }
{ series empty$
{ number "number" bibinfo.check }
{ output.state mid.sentence =
{ bbl.number }
{ bbl.number capitalize }
if$
number tie.or.space.prefix "number" bibinfo.check * *
bbl.in space.word *
series "series" bibinfo.check *
}
if$
}
if$
}
{ "" }
if$
}
FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
{
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.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}
{ chapter empty$
'skip$
{ type empty$
{ bbl.chapter }
{ type "l" change.case$
"type" bibinfo.check
}
if$
chapter tie.or.space.prefix
"chapter" bibinfo.check
emphasize
* *
}
if$
}
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
emphasize
}
FUNCTION {format.in.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
{
word.in swap$ *
}
if$
}
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.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.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 {format.org.or.pub}
{ 't :=
""
address empty$ t empty$ and
'skip$
{
t empty$
{ address "address" bibinfo.check *
}
{ t *
address empty$
'skip$
{ ", " * address "address" bibinfo.check * }
if$
}
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 {article}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
crossref missing$
{
journal
"journal" bibinfo.check
emphasize
"journal" output.check
format.vol.num.pages output
}
{ format.article.crossref output.nonnull
format.pages output
}
if$
new.block
format.note output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
date.block
format.btitle "title" output.check
format.edition output
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$
new.block
format.note output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
howpublished "howpublished" bibinfo.check output
address "address" bibinfo.check 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
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.date "year" output.check
date.block
format.btitle "title" output.check
format.edition output
crossref missing$
{
format.bvolume output
format.number.series output
format.chapter "chapter" output.check
new.sentence
format.publisher.address output
new.block
}
{
format.chapter "chapter" output.check
new.block
format.book.crossref output.nonnull
}
if$
new.block
format.note output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.edition output
format.bvolume output
format.number.series output
format.chapter.pages output
new.sentence
format.publisher.address output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
new.block
format.note output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
new.block
crossref missing$
{ format.in.booktitle "booktitle" output.check
format.bvolume output
format.number.series output
format.pages output
address "address" bibinfo.check output
new.sentence
organization "organization" bibinfo.check output
publisher "publisher" bibinfo.check output
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
new.block
format.note output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
date.block
format.btitle "title" output.check
format.edition output
organization address new.block.checkb
organization "organization" bibinfo.check output
address "address" bibinfo.check output
new.block
format.note output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title
"title" output.check
new.block
bbl.mthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
month "month" bibinfo.check output
new.block
format.note output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
author format.key output
format.date "year" output.check
date.block
format.title output
new.block
howpublished "howpublished" bibinfo.check output
new.block
format.note output
fin.entry
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.btitle
"title" output.check
new.block
bbl.phdthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
new.block
format.note output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
format.editors output
editor format.key output
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 "organization" bibinfo.check output
new.sentence
format.publisher.address output
}
if$
new.block
format.note output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title
"title" output.check
new.block
format.tr.number output.nonnull
institution "institution" bibinfo.warn output
address "address" bibinfo.check output
new.block
format.note output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.date "year" output.check
date.block
format.title "title" output.check
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{ }}{ 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$
{ year field.or.null #-1 #1 substring$ chr.to.int$ #65 <
{ "{\natexlab{" swap$ * "}}" * }
{ "{(\natexlab{" swap$ * "})}" * }
if$ }
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$
}
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 `compling.bst'.
The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗