← All templates

NUSA: Linguistic Studies of Languages in and around Indonesia (nusaart)

The nusaart class of NUSA, ILCAA's linguistics journal: Times A4 layout with the journal's info box, abstract, expex linguistic examples, tables, a figure and author-year references in the Unified Style Sheet for Linguistics (unified.bst).

Create an account to use this
Category
Journal
Document class
nusaart (nusaart.cls) — ships with TeX Live
Workflow
Journal manuscript — submissions and revision rounds
Author
Research Institute for Languages and Cultures of Asia and Africa (ILCAA), Tokyo University of Foreign Studies
Source
Research Institute for Languages and Cultures of Asia and Africa (ILCAA), Tokyo University of Foreign Studies
Licence
No licence is stated in the files. Research Institute for Languages and Cultures of Asia and Africa (ILCAA), Tokyo University of Foreign Studies distributes them for authors preparing a submission.

These are the publisher’s own files. This project starts from Research Institute for Languages and Cultures of Asia and Africa (ILCAA), Tokyo University of Foreign Studies’s package for this publication — their manuscript, their nusaart.cls, their bibliography style — so what compiles here is what they would have given you.

Research Institute for Languages and Cultures of Asia and Africa (ILCAA), Tokyo University of Foreign Studies serves this exact file to NUSA: Linguistic Studies of Languages in and around Indonesia. Check Research Institute for Languages and Cultures of Asia and Africa (ILCAA), Tokyo University of Foreign Studies’s author pages for the current instructions.

What you get

  • figure-ground-array.png · 23 KB
  • nusaart-example.tex — the file that is compiled · 14 KB
  • nusaart.cls · 9 KB
  • references.bib · 2 KB
  • unified.bst · 28 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

Source

figure-ground-array.png — binary, 23 KB

nusaart-example.tex — the file that is compiled · 14 KB
%Last modified: 02-04-2020 (HN)
\documentclass{nusaart}

\title{Your paper}
% include a short title if the full title is too long
\runningtitle{\LaTeX\ NUSA stylesheet}

\author{Lian Tze \textsc{Lim} and Hiroki \textsc{Nomoto}}
%Name parts for citation in \textsc{} (last name, family name, own name, father's name, etc.)

\headerauthor{Lim and Nomoto}

\footerauthor{Lian Tze \textsc{Lim} and Hiroki \textsc{Nomoto}}

\affil{KDU College Penang and Tokyo University of Foreign Studies\\
\href{mailto:[email protected]}{[email protected]}, \href{mailto:[email protected]}{[email protected]}}

%% Recommended for setting linguistic examples
\usepackage{expex}
%\lingset{glhangindent=2em,glspace=1em,aboveexskip=0pt,belowexskip=0pt,aboveglftskip=-3pt,extraglskip=3pt} %v0.1
\lingset{exskip=0pt,interpartskip=-3pt,belowpreambleskip=-3pt,belowglpreambleskip=-3pt,aboveglftskip=-3pt,extraglskip=3pt,glhangstyle=none}
\gathertags %added for forward reference (2/3/2020)

%% Recommended for producing "nice" tables
\usepackage{booktabs}

%% For including graphics
\usepackage{graphicx}

%% Any other packages that you might need
\usepackage{url}
\usepackage[normalem]{ulem}
%\usepackage{amsmath}
%\usepackage{amssymb}
\usepackage{listings}
\lstset{
   breaklines=true,
   basicstyle=\ttfamily,
   frame=single
   }


%%%% TO BE FILLED IN BY AN EDITOR
\date{2020}
\pURL{http://repository.tufs.ac.jp/handle/10108/xxxxx}
\DOI{10.15026/xxxxx}
\jourvolume{65}
\jourvolumetitle{Title of Volume}
\editor[eds.]{\textrm{Editor~1}, \textrm{Editor~2} and \textrm{Editor~3}} % [eds.] unnecessary for a single editor
\startpage{1} % must start on an odd page number
\endpage{6}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\maketitle

\begin{abstract}
This is a template \LaTeX\ document for NUSA using the \texttt{nusaart.cls} document class. The abstract should not exceed 10 lines.
\end{abstract}

\section[Heading 1]{Heading 1: No extra capitalization (\textit{not} ``No \underline{E}xtra \underline{C}apitalization'')\footnote{%
\textbf{Acknowledgements} (if any) should appear in the first numbered footnote put after the first section heading.}}

\subsection{References}
\subsubsection{In-text citations}
\texttt{natbib} is loaded by \texttt{nusaart.cls}. So, you can use \verb|\citep|, \verb|\citet|, etc.  All author names should be spelled out, unless there are four or more authors: \citet{ArkaManning98}, \citet*{GuilfoyleHungTravis92}, \citet{Alwi_dkk98}; \textit{not} \citet{GuilfoyleHungTravis92}, \citet*{Alwi_dkk98}. To achieve this, you need \verb|\citep*| \verb|\citet*|, etc.\ for references with exactly three authors.
\subsubsection{The bibliography section}
\textit{NUSA} adopts the Unified Style Sheet for Linguistics developed by the Committee of Editors of Linguistics Journals.

\subsection{Examples}
Grammatical glosses should conform to the Leipzig Glossing Rules (\url{http://www.eva.mpg.de/lingua/resources/glossing-rules.php}) and be in \textsc{small caps}.  Enclose free translations with single quotation marks, with fullstops inside the quotation marks.

The \texttt{expex} package is highly recommended for typesetting examples.  Please look up the \texttt{expex} package documentation for details.  Some basic commands useful for most authors are explained below.\footnote{The syntax of examples in footnotes does not differ from that of examples in the main text.
\ex
Footnotes are for additional or digressional information and should be kept to a minimum.
\xe
}

\ex<basic>
\begingl
\gla An example formatt-ed with \textsl{ExPex}.//
\glb an example format-\textsc{pst} with ExPex//
\glft `A free translation.'//
\endgl
\xe

Source code of example (\getref{basic}):
\begin{lstlisting}
\ex<basic>
\begingl
\gla An example format-ted with \textsl{ExPex}.//
\glb an example format-\textsc{pst} with expex//
\glft `A free translation.'//
\endgl
\xe
\end{lstlisting}

\ex<fourlines>
\begingl
\gla Some authors like four lines.//
\glb some {author -s} like four {line -s}//
\glc some {author -\textsc{pl}} like four {line -\textsc{pl}}//
\glft `Some authors like an extra line for morpheme breaks.  This is OK.'//
\endgl
\xe

Source code for example (\getref{fourlines}):
\begin{lstlisting}
\ex<fourlines>
\begingl
\gla Some authors like four lines.//
\glb some {author -s} like four {line -s}//
\glc some {author -\textsc{pl}} like four {line -\textsc{pl}}//
\glft `Some authors like an extra line for morpheme breaks.  This is OK.'//
\endgl
\xe
\end{lstlisting}

\pex<parts>
Examples with parts and preambles
\a<a>
\begingl
\glpreamble \textit{Di-} passive//
\gla Dokumen itu sudah \textbf{di-}semak oleh mereka.//
\glb document that already \textsc{pass}-check by them//
\glft `The document has already been checked by them.'//
\endgl
\a<b>
\begingl
\glpreamble Bare passive//
\gla Dokumen itu sudah *(mereka) semak.//
\glb document that already \ \ they check//
\glft `They have already checked the document.'//
\endgl
\xe

Source code for example (\getref{parts}):
\begin{lstlisting}
\pex<parts>
Examples with parts and preambles
\a<a>
\begingl
\glpreamble \textit{Di-} passive//
\gla Dokumen itu sudah \textbf{di-}semak oleh mereka.//
\glb document that already \textsc{pass}-check by them//
\glft `The document has already been checked by them.'//
\endgl
\a<b>
\begingl
\glpreamble Bare passive//
\gla Dokumen itu sudah *(mereka) semak.//
\glb document that already \ \ they check//
\glft `They have already checked the document.'//
\endgl
\xe
\end{lstlisting}

You can get (\getref{parts}) by \verb|(\getref{parts})| or \verb|(\lastx)|, and (\getfullref{parts.a}) by \verb|(\getfullref{parts.a})| or \verb|(\lastx a)|.  Similarly, \verb|(\nextx)| can be used to refer to the next example, i.e.\ (\nextx).  Notice that the parentheses are not provided automatically.

The spacing between two adjacent examples needs to be adjusted by shrinking the space above the second one by \verb|[aboveexskip=-6pt]|.
\ex<next1>
Next example.
\xe
\ex[aboveexskip=-6pt]<next2>
Next next example.
\xe

Without this manual specification, you'll get: 
\ex<next3>
Next next next example.
\xe
\ex<next4>
Next next next next example.
\xe

Source code for examples (\getref{next1})--(\getref{next4}):
\begin{lstlisting}
\ex<next1>
Next example.
\xe
\ex[aboveexskip=-6pt]<next2>
Next next example.
\xe

Without this manual specification, you'll get: 
\ex<next3>
Next next next example.
\xe
\ex<next4>
Next next next next example.
\xe
\end{lstlisting}

\pex
\a
\begingl
\gla \rightcomment{(right aligned comment)}Ayat ini ayat gramatis.//
\glb sentence this sentence grammatical//
\glft `This sentence is a grammatical sentence.'//
\endgl
\a
\begingl
\gla \ljudge*Ayat ini pula ayat yang tidak gramatis.//
\glb sentence this on.the.other.hand sentence \textsc{rel} not grammatical//
\glft \trailingcitation{\citep[65]{Shiohara10}}//
\endgl
\xe

Source code for example (\lastx):
\begin{lstlisting}
\pex
\a
\begingl
\gla \rightcomment{(right aligned comment)}Ayat ini ayat gramatis.//
\glb sentence this sentence grammatical//
\glft `This sentence is a grammatical sentence.'//
\endgl
\a
\begingl
\gla \ljudge*Ayat ini pula ayat yang tidak gramatis.//
\glb sentence this on.the.other.hand sentence \textsc{rel} not grammatical//
\glft \trailingcitation{\citep[65]{Shiohara10}}//
\endgl
\xe
\end{lstlisting}

\subsection{Tables and figures}
Tables should be formatted with minimal borders, left-aligned, with the caption above the table.  Tables that extend to multiple pages should be avoided.  For small tables, try placing them at a different place (e.g.\ top of the page).  For large ones, try splitting them into smaller tables that fit in a single page.  The \texttt{booktabs} package is used to make the top and bottom lines thick.

\begin{table}[ht!]
\caption{Cirebon Javanese demonstrative adverbs}
\label{tab:Javanese}
\begin{tabular}{lllll}
\toprule
& Manner & Goal & Location & Amount\\
\midrule
Proximal & \itshape kenen & \itshape mene & \itshape kene & \itshape semene\\
Medial & \itshape konon & \itshape mono & \itshape kono & \itshape semono\\
Distal & \itshape kanan & \itshape mana & \itshape kana & \itshape semana\\
\bottomrule
\end{tabular}
\end{table}

Source code for Table \ref{tab:Javanese}:
\begin{lstlisting}
\begin{table}[ht!]
\caption{Cirebon Javanese demonstrative adverbs}
\label{tab:Javanese}
\begin{tabular}{lllll}
\toprule
& Manner & Goal & Location & Amount\\
\midrule
Proximal & \itshape kenen & \itshape mene & \itshape kene & \itshape semene\\
Medial & \itshape konon & \itshape mono & \itshape kono & \itshape semono\\
Distal & \itshape kanan & \itshape mana & \itshape kana & \itshape semana\\
\bottomrule
\end{tabular}
\end{table}
\end{lstlisting}

Figures should be centered, with the caption below the figure, as in Figure \ref{fig:figure}.

\begin{figure}[ht!]
\includegraphics[width=.5\textwidth]{figure-ground-array}
\caption{Figure-ground array}
\label{fig:figure}
\end{figure}
 
\subsection{Quotations}
``Enclose quotations up to three lines with double quotation marks.  Note that a fullstop appears before the closing quotation mark.'' 
\begin{quote}
  Use block quotes only for quotations exceeding three lines.  Quotation marks are not needed in this case.  Indicate any omissions with ``\ldots'' (\verb|\ldots|), e.g.\ ``\citeauthor*{GuilfoyleHungTravis92} \citeyearpar{GuilfoyleHungTravis92} claim \ldots\ that their names should not be omitted.''
\end{quote}

\currentpdfbookmark{Abbreviations}{Abbreviations}
\section*{Abbreviations} 
List all the abbreviations used in your paper, including those in the Leipzig Glossing Rules list, here.  You may typeset the list as follows.  Without a specific font shape option, \verb|\abbrev| will typeset its first argument in \textsc{small caps}.

\begin{lstlisting}
\begin{abbreviations}
  \abbrev{1}{first person}
  \abbrev{2}{second person}
  \abbrev{3}{third person}
  \abbrev{clf}{classifier}
  \abbrev{DP}{determiner phrase}
  \abbrev{excl}{exclusive}
  ...
  \abbrev[\textrm]{Spec}{specifier}
  \abbrev[\textit]{t}{trace}
\end{abbreviations}
\end{lstlisting}

\begin{abbreviations}
  \abbrev{1}{first person}
  \abbrev{2}{second person}
  \abbrev{3}{third person}
%  \abbrev{A}{agent-like argument of canonical transitive verb}
%  \abbrev{abl}{ablative}
%  \abbrev{abs}{absolutive}
%  \abbrev{acc}{accusative}
%  \abbrev{adj}{adjective}
%  \abbrev{adv}{adverb(ial)}
%  \abbrev{agr}{agreement}
%  \abbrev{all}{allative}
%  \abbrev{antip}{antipassive}
%  \abbrev{appl}{applicative}
%  \abbrev{art}{article}
%  \abbrev{aux}{auxiliary}
%  \abbrev{ben}{benefactive}
%  \abbrev{caus}{causative}
  \abbrev{clf}{classifier}
%  \abbrev{com}{comitative}
%  \abbrev{comp}{complementizer}
%  \abbrev{compl}{completive}
%  \abbrev{cond}{conditional}
%  \abbrev{cop}{copula}
%  \abbrev{cvb}{converb}
%  \abbrev{dat}{dative}
%  \abbrev{decl}{declarative}
%  \abbrev{def}{definite}
%  \abbrev{dem}{demonstrative}
%  \abbrev{det}{determiner}
%  \abbrev{dist}{distal}
%  \abbrev{distr}{distributive}
  \abbrev{DP}{determiner phrase}
%  \abbrev{du}{dual}
%  \abbrev{dur}{durative}
%  \abbrev{erg}{ergative}
  \abbrev{excl}{exclusive}
%  \abbrev{f}{feminine}
%  \abbrev{foc}{focus}
%  \abbrev{fut}{future}
%  \abbrev{gen}{genitive}
%  \abbrev{imp}{imperative}
  \abbrev{incl}{inclusive}
%  \abbrev{ind}{indicative}
%  \abbrev{indf}{indefinite}
%  \abbrev{inf}{infinitive}
%  \abbrev{ins}{instrumental}
%  \abbrev{intr}{intransitive}
%  \abbrev{ipfv}{imperfective}
%  \abbrev{irr}{irrealis}
%  \abbrev{loc}{locative}
%  \abbrev{m}{masculine}
%  \abbrev{n}{neuter}
%  \abbrev{n-}{non- (e.g.\ \textsc{nsg} nonsingular, \textsc{npst} nonpast)}
%  \abbrev{neg}{negation, negative}
%  \abbrev{nmlz}{nominalizer/nominalization}
%  \abbrev{nom}{nominative}
  \abbrev{NP}{noun phrase}
%  \abbrev{obj}{object}
%  \abbrev{obl}{oblique}
  \abbrev{P}{preposition}
%  \abbrev{P}{patient-like argument of canonical transitive verb}
  \abbrev{part}{particle}
  \abbrev{pass}{passive}
%  \abbrev{pfv}{perfective}
  \abbrev{pl}{plural}
%  \abbrev{poss}{possessive}
  \abbrev{PP}{preposition phrase}
%  \abbrev{pred}{predicative}
  \abbrev{prf}{perfect}
%  \abbrev{prs}{present}
%  \abbrev{prog}{progressive}
%  \abbrev{proh}{prohibitive}
%  \abbrev{prox}{proximal/proximate}
%  \abbrev{pst}{past}
%  \abbrev{ptcp}{participle}
%  \abbrev{purp}{purposive}
%  \abbrev{q}{question particle}
  \abbrev{q}{question marker}
%  \abbrev{quot}{quotative}
%  \abbrev{recp}{reciprocal}
%  \abbrev{refl}{reflexive}
%  \abbrev{rel}{relative}
  \abbrev{rel}{relativizer}
%  \abbrev{res}{resultative}
%  \abbrev{S}{single argument of canonical intransitive verb}
%  \abbrev{sbj}{subject}
%  \abbrev{sbjv}{subjunctive}
  \abbrev{sg}{singular}
  \abbrev[\textrm]{Spec}{specifier}
  \abbrev[\textit]{t}{trace}
%  \abbrev{top}{topic}
%  \abbrev{tr}{transitive}
%  \abbrev{voc}{vocative}
\end{abbreviations}

\currentpdfbookmark{References}{References}
% \bibliography{references}
\begin{thebibliography}{5}
\providecommand{\natexlab}[1]{#1}

\bibitem[{Alwi et~al.(1998)Alwi, Dardjowidjojo, Lapoliwa \&
  Moeliono}]{Alwi_dkk98}
Alwi, Hasan, Soenjono Dardjowidjojo, Hans Lapoliwa \& Anton~M. Moeliono. 1998.
\newblock \emph{Tata bahasa baku bahasa {I}ndonesia}\textsf{, edisi ketiga}.
\newblock Jakarta: Balai Pustaka.
\newblock \par \textsf{The edition information needs to be edited manually.}

\bibitem[{Arka \& Manning(1998)}]{ArkaManning98}
Arka, I~Wayan \& Christopher~D. Manning. 1998.
\newblock Voice and grammatical relations in {I}ndonesian: A new perspective.
\newblock In Mirriam Butt \& Tracy~Holloway King (eds.), \emph{Proceedings of
  the {LFG98} conference}. Stanford, CA: CSLI Publications.

\bibitem[{Asmah \& Rama(1968)}]{AsmahRama68}
  \textsf{Asmah Haji~Omar} \& Subbiah Rama. 1968.
\newblock \emph{An introduction to {M}alay grammar}.
\newblock Kuala Lumpur: Dewan Bahasa dan Pustaka.
\newblock \par \textsf{Muslim names can be written as either `given\_name father's\_name' or `father's\_name, given\_name'.  Use the former style for Malaysian, Singaporean and Brunei authors.}

\bibitem[{Guilfoyle et~al.(1992)Guilfoyle, Hung \&
  Travis}]{GuilfoyleHungTravis92}
Guilfoyle, Eithene, Henrietta Hung \& Lisa Travis. 1992.
\newblock Spec of {IP} and {S}pec of {VP}: Two subjects in {A}ustronesian
  languages.
\newblock \emph{Natural Language and Linguistic Theory} 10. 375--414.

\bibitem[{Shiohara(2010)}]{Shiohara10}
Shiohara, Asako. 2010.
\newblock Sunbawago no genkou nikakawaru settouji \textit{N-} to \textit{bar-}
 \textsf{[The two valence-decreasing prefixes \textit{N-} and \textit{bar-} of
 {S}umbawa]}.
\newblock \emph{Ajia-Afurika no Gengo to Gengogaku} 4. 61--84.
\newblock \par \textsf{Provide translation for titles in languages other than English and Standard Malay/Indonesian.}

\end{thebibliography}
\end{document}
nusaart.cls · 9 KB
%%%%%
%% nusaart.cls
%% LaTeX class file for NUSA: Linguistic studies of languages in and around 
%% Indonesia (online edition ISSN 2187-7297; printed edition ISSN 0126-2874)
%% http://www.aa.tufs.ac.jp/en/publications/nusa
%%
%% Created and maintained by Lian Tze LIM ([email protected]) and Hiroki Nomoto ([email protected])
%% v0.1 September 21 2014
%% v0.2 September 26 2014 (HN)
%% v0.3 October 5 2014 (HN): Positions of tables/figures and their captions forced by caption and floatrow.
%% v0.4 November 15 2014 (HN): Hyperref added for bookmarks and links.
%% v0.5 December 18 2014 (HN): Footnote number size reduced to \scriptsize.
%% v1.1 September XX 2018 (HN): Infobox items, volumes with no special topic and editor, doi
%% v1.2 February 3 2020 (HN): doi command changed to uppercase (to avoid clash with \doi in bibtex); doi package added for hyperlink for doi
%% v1.3 April 2 2020 (HN): How to deal with large tables.  Not brackets for URL and DOI.

\ProvidesClass{nusaart}[2018/09/03 v1.1]
\LoadClass[12pt,twoside,a4paper,titlepage]{article}
\RequirePackage{etoolbox}
\RequirePackage{ragged2e}

\RequirePackage[T1]{fontenc}
\RequirePackage{mathptmx}
\RequirePackage{helvet}

% Top and bottom margins are 2.5cm, left and right margins are 3cm with no 
% gutter. Header is 1.25cm from edge, footer is 1.5. Paper size is A4 (it is 
% reduced to JISB5 for printing).
% header is 1.25cm from edge, so headsep = 2.5 - 1.25 - 14pt
% footer is only relevant for first page which depends on the height of
% author info -- see later.)
\RequirePackage{calc}
\RequirePackage[a4paper, hmargin=3cm, vmargin=2.5cm,
	headheight=12pt, headsep=1.25cm-\headheight]{geometry}

\def\@pURL{!INSERT PERMANENTURL!}
\def\@DOI{!INSERT DOI!}
\def\@jourvolume{!INSERT VOLUME NUMBER!}
\def\@jourvolumetitle{!INSERT VOLUME TITLE!}
\def\@startpage{!INSERT START PAGE NUMBER!}
\def\@endpage{!INSERT END PAGE NUMBER!}
\def\@runningtitle{!INSERT RUNNING TITLE!}
\def\@headerauthor{!INSERT HEADER AUTHOR!}
\def\@footerauthor{!INSERT FOOTER AUTHOR!}
\def\@editor{!INSERT EDITOR!}
\def\@affil{!INSERT AFFILIATION!}

\def\title#1{\gdef\@title{#1}}
\def\date#1{\gdef\@date{#1}}
\def\pURL#1{\gdef\@pURL{#1}}
\def\DOI#1{\gdef\@DOI{#1}}
\def\jourvolume#1{\gdef\@jourvolume{#1}}
\def\jourvolumetitle#1{\gdef\@jourvolumetitle{#1}}
\def\affil#1{\gdef\@affil{#1}}
%\def\editor#1{\gdef\@editor{#1}} %v0.1
\newcommand{\editor}[2][ed.]{\gdef\@editor{#2, #1}}
\def\startpage#1{\gdef\@startpage{#1}\setcounter{page}{#1}}
\def\endpage#1{\gdef\@endpage{#1}}

%% Shortened title, if available
\def\runningtitle#1{\gdef\@runningtitle{#1}}

%% Authors for the header and footer
\def\headerauthor#1{\gdef\@headerauthor{#1}}
\def\footerauthor#1{\gdef\@footerauthor{#1}}

\newbox{\infobox}
\newlength{\infoboxheight}
\AtEndPreamble{
%	\gdef\@footertext{\@footerauthor, \@date. `\@title'. In \@editor, ed. \emph{\@jourvolumetitle}. NUSA \@jourvolume: \@startpage--\@endpage. [Permanent URL: \@pURL]} %v0.1
%\gdef\@footertext{\@footerauthor, \@date. `\@title'. In \@editor{} \emph{\@jourvolumetitle}. NUSA \@jourvolume: \@startpage--\@endpage. [Permanent URL: \@pURL]} %v0.5
\gdef\@footertext{%
\ifdefempty{\@jourvolumetitle}{\@footerauthor, \@date. `\@title'. NUSA \@jourvolume: \@startpage--\@endpage. Permanent URL: \@pURL{} doi: \@DOI}{\@footerauthor, \@date. `\@title'. In \@editor{} \emph{\@jourvolumetitle}. NUSA \@jourvolume: \@startpage--\@endpage. Permanent URL: \@pURL \enspace doi: \@DOI}}
	\savebox{\infobox}{\parbox[t]{\textwidth}{\@footertext}%
	}
	\settototalheight{\infoboxheight}{\usebox{\infobox}}

	%% first page only -- note the bottom margin
	\geometry{
		bottom=1.5cm+\infoboxheight+2.5ex,
		footskip=1.25ex+\baselineskip
	}
}

%% The title, the authors, the affiliations
\renewcommand{\maketitle}{%
	\begin{center}
	%% Title is sans serif 12pt, no bold
	\textsf{\@title}\par
	%% Author names are serif 12pt, no bold
	\@author\par
	%% Affiliations are serif 10pt, no bold
	{\footnotesize\@affil\par}
	\end{center}
	\thispagestyle{plain}
	% after the first page, add back to text height so that 
	% bottom margin is 2.5cm
	\global\advance\textheight by \infoboxheight
	\global\advance\textheight by 1.5ex
	\global\advance\textheight by -1cm
}

%% Abstract is 10pt serif, 1cm indent from both sides
\renewenvironment{abstract}
{\footnotesize\list{}{
	\setlength{\leftmargin}{1cm}%
	\setlength{\rightmargin}{\leftmargin}%
	}%
	\item\relax}
{\endlist}

%% Might as well redefine the quote environments too!
\renewenvironment{quote}
{\list{}{
	\setlength{\leftmargin}{1cm}%
	\setlength{\rightmargin}{\leftmargin}%
	}%
	\item\relax}
{\endlist}

\renewenvironment{quotation}
{\list{}{
	\setlength{\leftmargin}{1cm}%
	\setlength{\rightmargin}{\leftmargin}%
	}%
	\item\relax}
{\endlist}

\RequirePackage{enumitem}
\setlist[itemize]{nosep}
\setlist[enumerate]{nosep}

%% sectional titles
\RequirePackage{titlesec}
\titleformat{\section}{\sffamily\bfseries}{\thesection.}{.5em}{}
\titlespacing*{\section}{0pt}{*1.5}{0pt}
%\titleformat{\subsection}{\sffamily\bfseries}{\thesubsection}{.5em}{} %v0.1
\titleformat{\subsection}{\sffamily\bfseries\small}{\thesubsection}{.5em}{}
\titlespacing*{\subsection}{0pt}{*1.5}{0pt}
%\titleformat{\subsubsection}{\sffamily\footnotesize}{}{0pt}{} %v0.1
\titleformat{\subsubsection}{\sffamily\bfseries\footnotesize}{\thesubsubsection}{.5em}{}
\titlespacing*{\subsubsection}{0pt}{*1.5}{0pt}


%% no paragraph indent, 6pt before and after paragraphs
\RequirePackage[parfill]{parskip}


%% Running headers and footers
\RequirePackage{fancyhdr}
\fancyhf{}
\fancyhead[RO,LE]{\footnotesize\sffamily\thepage}
\fancyhead[CO]{\footnotesize\sffamily{\scshape\@headerauthor}: \ifdefempty{\@runningtitle}{\@title}{\@runningtitle}}
\fancyhead[CE]{\footnotesize\sffamily NUSA \@jourvolume, \@date}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\fancypagestyle{plain}{
	\fancyhf{}
	\renewcommand{\footrulewidth}{0.4pt}
	\cfoot{\noindent\justifying\@footertext}
} 
\pagestyle{fancy}

%% Footnotes
% From E-Ching Ng's ``A LaTeX setup''
\addtolength{\skip\footins}{12pt} % More space between body text and footnote rule
\addtolength{\footnotesep}{6pt}   % More space between footnote itmes
% Modified version of epltxfn.sty to get the footnote number in superscript (cf. section 6.8, ExPex documentation)
\RequirePackage{expex}
\def\everyfootnote{%
   \keepexcntlocal
   \excnt=1
   \lingset{exskip=1ex,interpartskip=0pt,exnotype=roman,sampleexno=,
      labeltype=alpha,labelanchor=numright,labeloffset=.6em,
      aboveglftskip=0pt,
      textoffset=.6em}
}
\renewcommand{\@makefntext}[1]{%
   \everyfootnote
   \parindent=1em
   \noindent
   \@textsuperscript{\scriptsize\@thefnmark}\enspace #1%
   
}


%% Float captions
%\RequirePackage[justification=raggedright,singlelinecheck=false]{caption} % v0.1
%\RequirePackage[justification=raggedright,singlelinecheck=false,skip=6pt]{caption} %v0.2
\RequirePackage[singlelinecheck=false,skip=6pt]{caption}
\captionsetup[table]{justification=raggedright,labelsep=period,font={bf}}
\captionsetup[figure]{justification=centering,labelsep=period,font={bf}}
\RequirePackage{floatrow}
\floatsetup[table]{style=plaintop,justification=raggedright}

%% Abbreviations list
\RequirePackage{multicol}
\RequirePackage{environ}
%% code modified from http://tex.stackexchange.com/questions/130097/automatically-set-description-list-labelwidth-based-on-widest-label
%% However, \global\setlength won't work if calc has been loaded (it has!)
%% so using \global\widest=@tempdima instead. See Heiko's comment in
%% https://groups.google.com/forum/#!topic/comp.text.tex/rrhG7EBsdyk
\newlength\widest
%\newcommand{\abbrev}[2]{\item[#1] #2} % v0.1
\newcommand{\abbrev}[3][\textsc]{\item[#1{#2}] #3}
\NewEnviron{abbreviations}{%
  \vbox{%
    \global\setlength\widest{0pt}%
    \def\item[##1]{%
      \settowidth\@tempdima{\textsc{##1}}%
      \ifdim\@tempdima>\widest\global\widest=\@tempdima\fi%
    }%
    \setbox0=\hbox{\BODY}%
  }
  \vspace*{-\baselineskip}
  \begin{multicols}{2}
  \begin{description}[
%  	nosep,font=\scshape\mdseries, % v0.1
  	nosep,font=\footnotesize\mdseries,
    leftmargin=\dimexpr\widest+0.5em\relax,
    labelindent=0pt,
    labelwidth=\widest]
  \BODY
  \end{description}
  \end{multicols}%
  \vspace*{-\baselineskip}
}

%% natbib commands with unified bibliography style from http://celxj.org/
\RequirePackage{natbib}[2007/10/30]
\bibliographystyle{unified}
%% Citation style is (author date:page) e.g. (Sneddon 2006:70)
\setcitestyle{authoryear,round,citesep={;},aysep={},yysep={,},notesep={:}}

%%Bookmarks and links
\RequirePackage[pdfusetitle]{hyperref}
\hypersetup{
     bookmarksnumbered=true,
     colorlinks=true,
     linkcolor=black,
     citecolor=blue,
     filecolor=black,
     urlcolor=black
}
\RequirePackage{doi}

references.bib · 2 KB
Sneddon, James N. 2006. Colloquial Jakartan Indonesian. Canberra: Pacific Linguistics. 
@book{sneddon:2006,
	author={James N. Sneddon},
	year={2006},
	title={Colloquial {J}akartan {I}ndonesian},
	publisher={Pacific Linguistics},
	address={Canberra}
}

@INPROCEEDINGS{ArkaManning98,
  author = {Arka, I Wayan and Manning, Christopher D.},
  title = {Voice and grammatical relations in {I}ndonesian: A new perspective},
  booktitle = {Proceedings of the {LFG98} Conference},
  year = {1998},
  editor = {Butt, Mirriam and King, Tracy Holloway},
  address = {Stanford, CA},
  publisher = {CSLI Publications},
  journal = {1998}
}

@BOOK{Alwi_dkk98,
  title = {Tata Bahasa Baku Bahasa {I}ndonesia},
  publisher = {Balai Pustaka},
  year = {1998},
  author = {Alwi, Hasan and Dardjowidjojo, Soenjono and Lapoliwa, Hans and Moeliono,
	Anton M.},
  address = {Jakarta},
  edition = {edisi ketiga}
}

@BOOK{AsmahRama68,
  title = {An Introduction to {M}alay Grammar},
  publisher = {Dewan Bahasa dan Pustaka},
  year = {1968},
  author = {Asmah, Haji Omar and Rama, Subbiah},
  address = {Kuala Lumpur}
}

@ARTICLE{GuilfoyleHungTravis92,
  author = {Eithene Guilfoyle and Henrietta Hung and Lisa Travis},
  title = {Spec of {IP} and {S}pec of {VP}: Two subjects in {A}ustronesian languages},
  journal = {Natural Language and Linguistic Theory},
  year = {1992},
  volume = {10},
  pages = {375-414}
}

@ARTICLE{Shiohara10,
  author = {Shiohara, Asako},
  year = {2010},
  title = {Sunbawago no genkou nikakawaru settouji \textit{N-} to \textit{bar-} [The two valence-decreasing prefixes \textit{N-} and \textit{bar-} of {S}umbawa].},
  journal = {Ajia-Afurika no Gengo to Gengogaku},
  volume = {4},
  pages = {61-84}
}
unified.bst · 28 KB
%%% This is unified.bst, made by Bridget Samuels. It is based on sp.bst (v1.9+)
%%% coded by Kai von Fintel as the house style for bibliographies in the journal
%%% Semantics and Pragmatics. The style is based on a style generated 
%%% with custom-bib/merlin.mbs, a system for customizing bibliographic styles
%%% created by Patrick W Daly. There have been some hand-coded adjustments to that
%%% style to get the style closer to the Unified Style Sheet for Linguistics Journals.
%%%
%%% Version 1.2 [6 Mar 2010] Improved handling of multiple non-numerical year items by the same author. Should now output, e.g., "To appear(a)"
%%% Version 1.1 [2 Feb 2010] Added comma before vol.
%%% Version 1.0 [22 Aug 2009] Changes from sp.bst include conforming to the Unified
%%% Style Sheet format for PhD & MA theses and citing URLs for online materials (use 
%%% misc or unpublished as the category).
%%

ENTRY
  { address
    author
    booktitle
    chapter
    doi
    edition
    editor
    eid
    howpublished
    institution
    journal
    key
    month
    note
    number
    organization
    pages
    publisher
    school
    series
    title
    type
    url
    volume
    year
  }
  {}
  { label extra.label sort.label short.list }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
  #1 'mid.sentence :=
  #2 'after.sentence :=
  #3 'after.block :=
}
STRINGS { s t}
FUNCTION {output.nonnull}
{ 's :=
  output.state mid.sentence =
    { " " * write$ }
    { output.state after.block =
        { add.period$ write$
          newline$
          "\newblock " write$
        }
        { output.state before.all =
            'write$
            { add.period$ " " * write$ }
          if$
        }
      if$
      mid.sentence 'output.state :=
    }
  if$
  s
}
FUNCTION {output}
{ duplicate$ empty$
    'pop$
    'output.nonnull
  if$
}
FUNCTION {output.check}
{ 't :=
  duplicate$ empty$
    { pop$ "empty " t * " in " * cite$ * warning$ }
    'output.nonnull
  if$
}
FUNCTION {fin.entry}
{ add.period$
  write$
  newline$
}

FUNCTION {new.block}
{ output.state before.all =
    'skip$
    { after.block 'output.state := }
  if$
}
FUNCTION {new.sentence}
{ output.state after.block =
    'skip$
    { output.state before.all =
        'skip$
        { after.sentence 'output.state := }
      if$
    }
  if$
}
FUNCTION {add.blank}
{  " " * before.all 'output.state :=
}

FUNCTION {add.colon}
{  ": " * before.all 'output.state :=
}

FUNCTION {add.comma}
{  ", " * 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$ * " " * }

FUNCTION {bbl.and}
{ "\&"}

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

FUNCTION {bbl.editors}
{ "eds." }

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

FUNCTION {bbl.edby}
{ "edited by" }

FUNCTION {bbl.edition}
{ "edn." }

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

FUNCTION {bbl.of}
{ "of" }

FUNCTION {bbl.number}
{ "no." }

FUNCTION {bbl.nr}
{ "no." }

FUNCTION {bbl.in}
{ "in" }

FUNCTION {bbl.pages}
{ "" }

FUNCTION {bbl.page}
{ "" }

FUNCTION {bbl.chapter}
{ "chap." }

FUNCTION {bbl.techrep}
{ "Tech. Rep." }

FUNCTION {bbl.mthesis}
{ "MA thesis" }

FUNCTION {bbl.phdthesis}
{ "dissertation" }

FUNCTION {bbl.first}
{ "1st" }

FUNCTION {bbl.second}
{ "2nd" }

FUNCTION {bbl.third}
{ "3rd" }

FUNCTION {bbl.fourth}
{ "4th" }

FUNCTION {bbl.fifth}
{ "5th" }

FUNCTION {bbl.st}
{ "st" }

FUNCTION {bbl.nd}
{ "nd" }

FUNCTION {bbl.rd}
{ "rd" }

FUNCTION {bbl.th}
{ "th" }

MACRO {jan} {"Jan."}

MACRO {feb} {"Feb."}

MACRO {mar} {"Mar."}

MACRO {apr} {"Apr."}

MACRO {may} {"May"}

MACRO {jun} {"Jun."}

MACRO {jul} {"Jul."}

MACRO {aug} {"Aug."}

MACRO {sep} {"Sep."}

MACRO {oct} {"Oct."}

MACRO {nov} {"Nov."}

MACRO {dec} {"Dec."}

FUNCTION {eng.ord}
{ duplicate$ "1" swap$ *
  #-2 #1 substring$ "1" =
     { bbl.th * }
     { duplicate$ #-1 #1 substring$
       duplicate$ "1" =
         { pop$ bbl.st * }
         { duplicate$ "2" =
             { pop$ bbl.nd * }
             { "3" =
                 { bbl.rd * }
                 { bbl.th * }
               if$
             }
           if$
          }
       if$
     }
   if$
}

FUNCTION {bibinfo.check}
{ swap$
  duplicate$ missing$
    {
      pop$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ pop$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}
FUNCTION {bibinfo.warn}
{ swap$
  duplicate$ missing$
    {
      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
      ""
    }
    { duplicate$ empty$
        {
          swap$ "empty " swap$ * " in " * cite$ * warning$
        }
        { swap$
          pop$
        }
      if$
    }
  if$
}
FUNCTION {format.url}
{ url empty$
    { "" }
    { "\urlprefix\url{" url * "}" * }
  if$
}

INTEGERS { nameptr namesleft numnames }


STRINGS  { bibinfo}

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}" }
        { "{vv~}{ll}{, ff}{, jj}" }
      if$
      format.name$
      bibinfo bibinfo.check
      't :=
      nameptr #1 >
        {
          namesleft #1 >
            { ", " * t * }
            {
              s nameptr "{ll}" format.name$ duplicate$ "others" =
                { 't := }
                { pop$ }
              if$
              t "others" =
                {
                  " " * bbl.etal *
                }
                {
                  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 * }
            {
              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
   "(" swap$ * ")" *
      *
    }
  if$
}
FUNCTION {format.doi}
{ doi "doi" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      new.block
      "\doi{" swap$ * "}" *
    }
  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 *
                }
                {
                  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$
    {
      "empty year in " cite$ * "; set to ????" * warning$
       pop$ "????"
    }
    'skip$
  if$
  extra.label *
  before.all 'output.state :=
  after.sentence 'output.state :=
}
FUNCTION {format.btitle}
{ title "title" bibinfo.check
  duplicate$ empty$ 'skip$
    {
      "t" change.case$
      emphasize
    }
  if$
}
FUNCTION {either.or.check}
{ empty$
    'pop$
    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  if$
}
FUNCTION {format.bvolume}
{ volume empty$
    { "" }
    { add.comma bbl.volume volume tie.or.space.prefix
      "volume" bibinfo.check * *
    }
  if$
}
FUNCTION {format.number.series}
    { number empty$
        { series field.or.null }
        { series empty$
            { number "number" bibinfo.check }
            { add.blank "(" *
              series "series" bibinfo.check *
              number tie.or.space.prefix "number" bibinfo.check * 
              ")" *
            }
          if$
        }
      if$
    }
FUNCTION {is.num}
{ chr.to.int$
  duplicate$ "0" chr.to.int$ < not
  swap$ "9" chr.to.int$ > not and
}

FUNCTION {extract.num}
{ duplicate$ 't :=
  "" 's :=
  { t empty$ not }
  { t #1 #1 substring$
    t #2 global.max$ substring$ 't :=
    duplicate$ is.num
      { s swap$ * 's := }
      { pop$ "" 't := }
    if$
  }
  while$
  s empty$
    'skip$
    { pop$ s }
  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.num
                        { s eng.ord 't := }
                        { edition 't := }
                      if$
                    }
                  if$
                }
              if$
            }
          if$
        }
      if$
    }
  if$
  t
}

FUNCTION {format.edition}
{ edition duplicate$ empty$ 'skip$
    {
      convert.edition
      output.state mid.sentence =
        { "l" }
        { "t" }
      if$ change.case$
      "edition" bibinfo.check
      " " * bbl.edition *
    }
  if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
  #0 'multiresult :=
    { multiresult not
      t empty$ not
      and
    }
    { t #1 #1 substring$
      duplicate$ "-" =
      swap$ duplicate$ "," =
      swap$ "+" =
      or or
        { #1 'multiresult := }
        { t #2 global.max$ substring$ 't := }
      if$
    }
  while$
  multiresult
}
FUNCTION {format.pages}
{ pages duplicate$ empty$ 'skip$
    { duplicate$ multi.page.check
        {
          n.dashify
        }
        {
        }
      if$
      "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.journal.eid}
{ eid "eid" bibinfo.check
  duplicate$ empty$ 'pop$
    { swap$ duplicate$ empty$ 'skip$
      {
          ". " *
      }
      if$
      swap$ *
    }
  if$
}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
  duplicate$ empty$ 'skip$
    {
      "volume" bibinfo.check
    }
  if$
  number "number" bibinfo.check duplicate$ empty$ 'skip$
    {
      swap$ duplicate$ empty$
        { "there's a number but no volume in " cite$ * warning$ }
        'skip$
      if$
      swap$
      "(" swap$ * ")" *
    }
  if$ *
  eid empty$
    { format.journal.pages }
    { format.journal.eid }
  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
  "t" change.case$
  emphasize
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
    {
      editor "editor" format.names.ed duplicate$ empty$ 'pop$
        {
          " " *
          get.bbl.editor
          "(" swap$ * "), " *
          * 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$
    {
      address "address" bibinfo.check *
      t empty$
        'skip$
        { address empty$
            'skip$
            { ": " * }
          if$
          t *
        }
      if$
    }
  if$
}
FUNCTION {format.publisher.address}
{ publisher "publisher" bibinfo.warn format.org.or.pub
}

FUNCTION {format.organization.address}
{ organization "organization" bibinfo.check format.org.or.pub
}

FUNCTION {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
      add.blank
      format.vol.num.pages output
    }
    { format.article.crossref output.nonnull
      format.pages output
    }
  if$
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {book}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { 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
  crossref missing$
    { format.bvolume output
      format.number.series output
      new.block
      new.sentence
      format.publisher.address output
    }
    {
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.doi output
  new.block
  format.url output
  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
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {inbook}
{ output.bibitem
  author empty$
    { format.editors "author and editor" output.check
      editor format.key output
    }
    { 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
  crossref missing$
    {
      format.bvolume output
      format.chapter.pages "chapter and pages" output.check
      new.block
      new.sentence
      format.number.series output
      format.publisher.address output
    }
    {
      format.chapter.pages "chapter and pages" output.check
      new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {incollection}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      add.comma
      format.chapter.pages output
      new.sentence
      format.publisher.address output
      format.edition output
    }
    { format.incoll.inproc.crossref output.nonnull
      format.chapter.pages output
    }
  if$
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  new.block
  crossref missing$
    { format.in.ed.booktitle "booktitle" output.check
      format.bvolume output
      format.number.series output
      add.comma
      format.pages output
      new.sentence
      publisher empty$
        { format.organization.address output }
        { organization "organization" bibinfo.check output
          format.publisher.address output
        }
      if$
    }
    { format.incoll.inproc.crossref output.nonnull
      format.pages output
    }
  if$
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
  format.authors output
  author format.key output
  format.date "year" output.check
  date.block
  format.btitle "title" output.check
  organization address new.block.checkb
  organization "organization" bibinfo.check output
  address "address" bibinfo.check output
  format.edition output
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {mastersthesis}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.btitle
  "title" output.check
  new.block
  address "address" bibinfo.check output
  school "school" bibinfo.warn output
  bbl.mthesis format.thesis.type output.nonnull
  format.doi output
  new.block
  format.url 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
  format.doi output
  new.block
  format.note output
  new.block
  format.url 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
  address "address" bibinfo.check output
  add.colon
  school "school" bibinfo.warn output
  bbl.phdthesis format.thesis.type output.nonnull
  format.doi output
  new.block
  format.url 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
  new.sentence
  format.number.series output
  publisher empty$
    { format.organization.address output }
    { organization "organization" bibinfo.check output
      format.publisher.address output
    }
  if$
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {techreport}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  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
  format.doi output
  new.block
  format.url output
  new.block
  format.note output
  fin.entry
}

FUNCTION {unpublished}
{ output.bibitem
  format.authors "author" output.check
  author format.key output
  format.date "year" output.check
  date.block
  format.title "title" output.check
  format.doi output
  new.block
  format.note "note" output.check
  new.block
  format.url output
  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$
  "\providecommand{\natexlab}[1]{#1}"
  write$ newline$
  "\providecommand{\url}[1]{#1}"
  write$ newline$
  "\providecommand{\urlprefix}{}"
  write$ newline$
  "\expandafter\ifx\csname urlstyle\endcsname\relax"
  write$ newline$
  "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
  write$ newline$
  "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
  write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
  "\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}

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