← All templates

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.

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
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 KB
  • nejlt.bib · 1 KB
  • nejlt.sty · 4 KB
  • nejlt.tex — the file that is compiled · 6 KB
  • nejlt_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 ↗