South African Statistical Journal (SASJ)
The South African Statistical Journal's class (SASJ.cls, on article with newtx fonts) and sasj.bst with the journal's example paper: title block, abstract, keywords, theorem environments, equations, a figure, a table and author-year references.
- Category
- Journal
- Document class
SASJ(SASJ.cls) — ships with TeX Live- Workflow
- Journal manuscript — submissions and revision rounds
- Author
- South African Statistical Association (SASA)
- Source
- South African Statistical Association (SASA)
- Licence
- No licence is stated in the files. South African Statistical Association (SASA) distributes them for authors preparing a submission.
These are the publisher’s own files. This project starts from South African Statistical Association (SASA)’s package for this publication — their manuscript, their SASJ.cls, their bibliography style — so what compiles here is what they would have given you.
South African Statistical Association (SASA) serves this exact file to South African Statistical Journal and 1 other title. Check South African Statistical Association (SASA)’s author pages for the current instructions.
Where this differs from the publisher’s download.
- Note: First submissions may be in any format; the template is required once a paper is accepted. SASA's conference proceedings also ask for this template.
What you get
SASJ.cls· 12 KBby.pdf· 6 KBcc.pdf· 6 KBexample.tex— the file that is compiled · 10 KBgraphs-eps-converted-to.pdf· 38 KBgraphs.eps· 3348 KBnc.pdf· 6 KBnd.pdf· 6 KBreferences.bib· 622 Bsasj.bst· 29 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
- Proceedings of the Annual Conference of the South African Statistical Association
- South African Statistical Journal
Source
SASJ.cls · 12 KB
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{SASJ}[2022/02/09 The new SASJ template]
\newcommand{\hideheaders}{0}
\DeclareOption{noheaders}{\def\hideheaders{1}}
\ProcessOptions\relax
\LoadClass[twoside,10pt,hidelinks]{article}
\RequirePackage{amsmath,amssymb,amsthm}
\RequirePackage{graphicx}
\RequirePackage{geometry}
\RequirePackage{calc}
\RequirePackage{ifthen}
\RequirePackage{bm}
\RequirePackage{natbib}
\RequirePackage{changepage,titlesec,booktabs}
\RequirePackage[labelsep=period]{caption}
\RequirePackage{nextpage}
\RequirePackage{fancyhdr}
\RequirePackage{lastpage}
\RequirePackage{xifthen}
\RequirePackage{ragged2e}
%\RequirePackage{url}
\RequirePackage[hyphens]{url}
\RequirePackage[hidelinks]{hyperref}
\hypersetup{breaklinks=true}
\urlstyle{same}
\RequirePackage[T1]{fontenc}
\RequirePackage{newtxtext,newtxmath}
\captionsetup[table]{skip=2pt}
\captionsetup[figure]{skip=2pt}
\geometry{twoside,
paperwidth=190mm,
paperheight=260mm,
textwidth=140mm,
textheight=200mm,
centering,
headheight=50pt,
headsep=10pt,
footskip=12pt,
footnotesep=24pt plus 2pt minus 12pt
}
\titleformat{\section}
{\normalfont\fontsize{11pt}{\baselineskip}\bfseries}
{\thesection.}{.8em}{}
\titlespacing*\section{0pt}{14pt plus 1pt minus 1pt}{5pt plus 1pt minus 1pt}
\titleformat{\subsection}
{\normalfont\normalsize\bfseries}
{\thesubsection}{.8em}{}
\titlespacing*\subsection{0pt}{12pt plus 1pt minus 1pt}{3pt plus 1pt minus 1pt}
\titleformat{\subsubsection}
{\normalfont\normalsize\itshape}
{\thesubsubsection}{.8em}{}
\titlespacing*\subsubsection{0pt}{10pt plus 1pt minus 1pt}{2pt plus 1pt minus 1pt}
%Realign the footnote and footnote mark.
\makeatletter
\renewcommand{\@makefntext}[1]{%
\parindent 1em%
\noindent\normalfont\raisebox{3pt}{\tiny\@thefnmark}{\kern -1pt}~#1
}
\makeatother
%Redefine the footnote rule (introduces a line that spans 40% of the textwidth at the bottom of the page).
\newcommand{\resetfootnoterule}{
\renewcommand{\footnoterule}{%
\kern -3pt
\hrule width 0.4\textwidth height 0.5pt
\kern 2pt
}
}
\setlength{\parindent}{1em}
\setlength{\parskip}{0em}
\raggedbottom
%Define the "forloop" : \forloop[step]{counter}{initial_value}{conditional}{code_block}
\newcommand{\forloop}[5][1] {%
\setcounter{#2}{#3}%
\ifthenelse{#4} {%
#5%
\addtocounter{#2}{#1}%
\forloop[#1]{#2}{\value{#2}}{#4}{#5}
}%
{% Else do nothing
}%
}%
%Macro for the printing of the optional e-mail address.
\newcommand{\printemail}[1]{\ifthenelse{\equal{#1}{}}{}{\\e-mail: \it #1 \rm}}
%Macro for the printing of the optional author comment.
\newcommand{\printauthorcomment}[1]{\ifthenelse{\equal{#1}{}}{}{\large\footnote{#1}}}
%Macro for the printing of the running title. (#1=sasjtitle, #2=sasjrunningtitle).
%I had to define this using "\DeclareRobustCommand" because it kept throwing errors in the "\markboth" statment when I tried it with "\newcommand"... I have no idea why it did this.
\DeclareRobustCommand{\printrunningtitle}{\ifthenelse{\equal{\sasjrunningtitle}{}}{\MakeUppercase{\sasjtitle}}{\MakeUppercase{\sasjrunningtitle}}}
%Set up the \Title. [required]
\newcommand{\Title}[1]{ %
\newcommand{\sasjtitle}{#1}
}
%Set up the \RunningTitle (if the original title is too long). [optional]
%First set the running to title to blank by default
\newcommand{\sasjrunningtitle}{}
%The define the variable that will hold the macro.
\newcommand{\RunningTitle}[1]{ %
\renewcommand{\sasjrunningtitle}{#1}
}
%Set up the \AuthorRunningHead to display the correct forms of the names in the header. [required]
\newcommand{\AuthorRunningHead}[1]{%
\newcommand{\sasjauthorrunninghead}{#1}
}
%Set up the \Author command so that multiple authors can be listed. [required]
\newcounter{authcounter}
\setcounter{authcounter}{0}
\newcommand{\Author}[2][] {%
\stepcounter{authcounter}%
\expandafter\newcommand\csname sasjauthor\the\value{authcounter} \endcsname{#2}%
%\ifthenelse{\isempty{#1}}{
%\expandafter\newcommand\csname sasjauthorinst\the\value{authcounter} \endcsname{}%
%}{
\expandafter\newcommand\csname sasjauthorinst\the\value{authcounter} \endcsname{#1}%
%}
}
\newcommand{\CorrespondingAuthor}[2] {%
\newcommand\corrauthorname{#1}%
\newcommand\corrauthoremail{#2}%
}
%Set up the \Institute command so that each author is associated with an institution. [required]
\newcounter{instcounter}
\setcounter{instcounter}{0}
\newcommand{\Institute}[2][]{
\stepcounter{instcounter}
\expandafter\newcommand\csname sasjinstitute\the\value{instcounter} \endcsname{#2}%
%\ifthenelse{\isempty{#1}}{
%\expandafter\newcommand\csname sasjinstitutesym\the\value{instcounter} \endcsname{}%
%}{
\expandafter\newcommand\csname sasjinstitutesym\the\value{instcounter} \endcsname{#1}%
%}
}
\newcommand{\printaffiliations}[1]{%
\textsuperscript{\expandafter\csname sasjauthorinst\the\value{#1} \endcsname}%
}
%Set up the \Email command so that each author is associated with an email address. [optional]
\newcounter{emailcounter}
\setcounter{emailcounter}{1}
\newcommand{\Email}[1]{
\addtocounter{authcounter}{-1}
\expandafter\renewcommand\csname sasjemail\the\value{authcounter} \endcsname{#1}
\addtocounter{authcounter}{1}
}
%Set up the \KeyWords list. [required]
\newcommand{\KeyWords}[1]{
\newcommand{\sasjkeywords}{
\begin{adjustwidth}{5em}{5em}
\footnotesize\emph{Keywords: }{#1}\par
\end{adjustwidth}
}
}
%Set up the \Abstract. [required]
\newcommand{\Abstract}[1]{
\newcommand{\sasjabstract}{
\begin{adjustwidth}{5em}{5em}
\hspace{\parindent}
\small{#1}\par
\end{adjustwidth}
}
}
%Set up the \AMS list. [required]
\newcommand{\AMS}[1]{
\newcommand{\sasjams}{\noindent\footnotesize\emph{MSC2020 subject classifications:} \MakeUppercase{#1}}
}
%Set up the volume number, issue number, and pages.
\newcommand{\thisyear}{\the\year}
\newcommand{\thisvolume}{XX}
\newcommand{\thisissue}{X}
\newcommand{\sasjjournalvolandno}{Vol.\ \thisvolume, No.\ \thisissue, \thepage--\pageref{LastPage}}
%Set up the Journal name, volume number, and pages.
\newcommand{\ManuRecRevAcc}[3]{
\newcommand{\sasjmanurecrevacc}{\footnotesize Manuscript received #1, revised #2, accepted #3.}
}
\newcommand{\novolume}{0}
\fancypagestyle{firstpage}{
\fancyhf{} % sets both header and footer to nothing
\renewcommand{\headrulewidth}{0pt} % removes the horizontal line in the header
\fancyhead[L]{\scriptsize\emph{South African Statistical Journal} \\
\ifthenelse{\equal{\novolume}{0}}{\sasjjournalvolandno \\}{ } \textcopyright \ \thisyear \ South African Statistical Association\\
\vspace{.3em}\includegraphics[height=1.5\fontcharht\font`\B]{cc}
\vspace{.3em}\includegraphics[height=1.5\fontcharht\font`\B]{by}
\vspace{.3em}\includegraphics[height=1.5\fontcharht\font`\B]{nc}
\vspace{.3em}\includegraphics[height=1.5\fontcharht\font`\B]{nd}}
%\fancyhead[R]{\thepage}
\fancyfoot[C]{\thepage}
}
\fancypagestyle{restofpages}{
\fancyhf{} % sets both header and footer to nothing
\renewcommand{\headrulewidth}{0pt} % removes the horizontal line in the header
\fancyhead[CE]{\scriptsize\MakeUppercase{\sasjauthorrunninghead}}
\fancyhead[CO]{\scriptsize\MakeUppercase{\printrunningtitle}}
\fancyhead[LE,RO]{\thepage}
}
\ifthenelse{\equal{\hideheaders}{1}}{\pagestyle{empty}}{\pagestyle{restofpages}}
%Print all the elements that make up the title.
\newcommand{\MakeTitle}{
%=====================Title======================================================================
\begin{center}
\renewcommand{\baselinestretch}{1.5}\normalsize
\rule{0pt}{18mm}\bf\Large{\sasjtitle}\normalsize
\end{center}
\renewcommand{\baselinestretch}{1}\normalsize
%=====================Check if at least one author comment appears. If yes, use the footnote rule. Otherwise remove it.===============
%\ifnum\value{aucomcounter}>0 %
%Use the footnote rule.
\resetfootnoterule
%\else
%Remove the footnote rule.
% \renewcommand\footnoterule{}
%\fi
%=====================Loop over and print all the authors, institutes, and e-mails===============
\smallskip
\begin{center}
\newcounter{authcounterb}
\setcounter{authcounterb}{\value{authcounter}-1}
\newcounter{qq}
\setcounter{qq}{1}
\large
\whiledo{\value{qq} < \value{authcounter}}{%
\textit{\expandafter\csname sasjauthor\the\value{qq} \endcsname}%
\textsuperscript{\expandafter\csname sasjauthorinst\the\value{qq} \endcsname}%
\ifthenelse{\value{qq} < \value{authcounterb}}{%
%{ \textbullet }%
{\textit{, }}%
}%
{%
%{ \textbullet } %
{\textit{ and }}%
}%
\addtocounter{qq}{1}%
}%
\textit{\expandafter\csname sasjauthor\the\value{qq} \endcsname}%
\textsuperscript{\expandafter\csname sasjauthorinst\the\value{qq} \endcsname}%
\smallskip
\normalsize
\setcounter{qq}{0}%
\begin{center}
\small
%\begin{tabular}{l}
\whiledo{\value{qq} < \value{instcounter}}{%
\addtocounter{qq}{1}%
\textsuperscript{\expandafter\csname sasjinstitutesym\the\value{qq} \endcsname}%
{\expandafter\csname sasjinstitute\the\value{qq} \endcsname}%
\\
}%
%\end{tabular}
\end{center}
\end{center}
%=====================Abstract====================================================================
\smallskip\sasjabstract
%=====================Keywords===================================================================
\smallskip\sasjkeywords
%=====================AMS codes in footer========================================================
\let\thefootnote\relax%Remove the footnote number.
\setcounter{qq}{0}%
\footnotetext{%
%\whiledo{\value{qq} < \value{instcounter}}{%
%\addtocounter{qq}{1}%
%\textsuperscript{\expandafter\csname sasjinstitutesym\the\value{qq} \endcsname} %
%\expandafter\csname sasjinstitute\the\value{qq} \endcsname%
%\\[.3em]
%}%
%\phantom{\textsuperscript{0 }}%
\emph{Corresponding author:} \corrauthorname\ (\corrauthoremail) \\[.3em]
%\phantom{\textsuperscript{0 }}%
\normalsize\sasjams%
}
\gdef\thefootnote{\arabic{footnote}} %Restore the number to footnotes.
\ifthenelse{\equal{\hideheaders}{1}}{\pagestyle{empty}}{\thispagestyle{firstpage}}
%Change the line spacing to 1.1 line spacing.
\renewcommand{\baselinestretch}{1.1}\normalsize
%\vspace{-20pt}
}
\newcommand{\ReceiptDates}{
%=====================Manuscript receipt dates in footer========================================================
\let\thefootnote\relax %Remove the footnote number.
\renewcommand\footnoterule{} %Remove the footnote rule.
\footnotetext{\normalsize \sasjmanurecrevacc} %Insert the footer.
\gdef\thefootnote{\arabic{footnote}} %Restore the number to footnotes.
}
%Define the new style for the theorems (identical to the "plain" style except that the text is in roman font, not italic).
\newtheoremstyle{sasjstyle}
{\topsep} % ABOVESPACE
{\topsep} % BELOWSPACE
{\it} % BODYFONT
{0pt} % INDENT (empty value is the same as 0pt)
{\bfseries} % HEADFONT
{.} % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{} % CUSTOM-HEAD-SPEC
\theoremstyle{sasjstyle}
%Define all the new theorems.
\newtheorem{theorem}{Theorem}
\newtheorem{corollary}{Corollary}
\newtheorem{lemma}{Lemma}
\newtheorem{proposition}{Proposition}
\renewcommand{\qedsymbol}{$\blacksquare$}
\newtheoremstyle{sasjstyledef}
{\topsep} % ABOVESPACE
{\topsep} % BELOWSPACE
{\rm} % BODYFONT
{0pt} % INDENT (empty value is the same as 0pt)
{\bfseries} % HEADFONT
{.} % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{} % CUSTOM-HEAD-SPEC
\theoremstyle{sasjstyledef}
\newtheorem{definition}{Definition}
\newtheorem{remark}{Remark}
\newtheorem*{remark*}{Remark}
%Redefine the way in which table and figure numbers are presented.
\makeatletter
\renewcommand{\fnum@table}{\textbf{\tablename~\thetable}}
\renewcommand{\fnum@figure}{\textbf{\figurename~\thefigure}}
\makeatother
\bibliographystyle{sasj}
\setlength{\bibsep}{2pt}
\renewcommand\harvardurl[1]{{\RaggedRight URL:~{\itshape\url{#1}}}}by.pdf — binary, 6 KB
cc.pdf — binary, 6 KB
example.tex — the file that is compiled · 10 KB
\documentclass{SASJ}
% \def\hideheaders{1} % Do not modify this line.
% The following packages are required for the SASJ package to work
% and are therefore loaded automatically:
% amsmath, amssymb, amsthm, graphicx, geometry, ifthen, natbib,
% changepage, titlesec,booktabs,caption,nextpage,fancyhdr
% Specify any additional packages you might need here, for example:
\usepackage{kantlipsum}
% Declare any other user-defined commands or operators here:
\DeclareMathOperator{\Var}{Var}
\DeclareMathOperator{\Expec}{E}
%============%
% TITLE PAGE %
%============%
% Title of your paper:
\Title{Some useful guidelines for preparing a~manuscript in the style of the South~African~Statistical~Journal}
% Usually full titles are too long to display in headers and is usually
% substituted for a shorter version, called a "running title".
% Please specify a running title for your paper.
\RunningTitle{Guidelines for preparing a manuscript in the style of SASJ}
% Also for the headers, list the surnames of all authors here, seperated by commas and an ampersand (\&)
% before the last author.
\AuthorRunningHead{Jones, Smith \& Van Dalen} %INSERT A LIST OF THE AUTHORS' SURNAMES HERE.
% Supply the name and institute of each author (both fields are required),
% and optionally also a comment and contact e-mail. Additional authors may
% be added in a similar way.
% Author 1
\Author[1]{John F. Jones}
\Author[2]{Gregory R. L. Smith}
\Author[1,3]{Karel van Dalen}
\CorrespondingAuthor{Gregory R. L. Smith}{[email protected]}
\Institute[1]{Department of Statistics, ABC University, Johannesburg, South Africa}
\Institute[2]{Department of Mathematics, XYZ University, Frankfurt, Germany}
\Institute[3]{Department of Statistics, UVW University, Cape Town, South Africa}
% Procide key words for the article. Words should be in alphabetical order,
% each beginning in a capital letter. Separate key words with ,\ and end with
% a full stop, for example:
\KeyWords{Keyword A,\ Keyword B,\ Keyword C.}
% Provide the abstract of your paper here.
\Abstract{Here goes a brief summary of your research article. This block of text typically contains the research focus, the research methods used, the results/findings of the research, and the main conclusions and recommendations.}
% Provide the 2010 Mathematics Subject Classification codes applicable to
% the article. A database of AMS codes can be found here:
% http://www.ams.org/msc/pdfs/classification2010.pdf
% Statistical topics usually have the prefix "62". For example, if the
% field of study covered in the article is "Hypothesis testing" in the
% category "Parametric Inference", then the AMS code is 62F03.
\AMS{62Gxx, 62Gxx, 62Gxx}
%xxxxxxxxxxxxxTO BE COMPLETED BY THE EDITORxxxxxxxxxxxxxxxxxx
\ManuRecRevAcc{2019-xx-xx}{2019-xx-xx}{2019-xx-xx}
%xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\begin{document}
\MakeTitle
%================================================================================
% THE CONTENT OF THE PART STARTS HERE.-------------------------------------------
%================================================================================
\section{Introduction}\label{sec:intro}
Usually the introduction is typed in this section.
\section{Typesetting and referencing mathematical expressions}
\label{sec:math}
The mass function for a Poisson distributed random variable $X$ is denoted by $p(x)$ and is defined as
\begin{equation}\label{eqn:Poisson1}
p(x) =
\begin{cases}
{e^{-\lambda} \lambda^x}/{x!} & \text{for } x=0,1,2,\dots \\
0 & \text{otherwise}.
\end{cases}
\end{equation}
Notice how the equation is labelled and referenced. Below we have an example of an equation that does not have an equation number (only add equation numbers for those equations that are referenced in the text):
\[
f(y) =
\begin{cases}
\frac{1}{y^2}e^y & \mbox{ if } y < 0, \\
\log(y) & \mbox{ if } y \geq 0, \\
0 & \mbox{ otherwise.}
\end{cases}
\]
Here is another maths example:
\begin{align*}
g(x) &= (2x^2-x^2)^{\frac{1}{2}}\\
&= (x^2)^{\frac{1}{2}}\\
&= x, \quad \mbox{ if } x > 0.
\end{align*}
If you want to type bold math roman letters and arabic numbers like $\mathbf{x}$, $\mathbf{a}$, $\mathbf{1}$, or $\mathbf{0}$ then use
the command \verb!\mathbf!. However, if you want to type bold math greek letters like $\bm{\beta}$, $\bm{\Delta}$, or $\bm{\tau}$ then
use the command \verb!\bm!.
Some basic text is outlined in Section \ref{sec:intro}. You may also reference Subsection \ref{subsec:1} and Subsubsection \ref{subsubsec:1}.
\section{ Itemized and enumerated lists }
\label{sec:list}
Here is an example of a nested enumerated list.
\begin{enumerate}
\item Level 1
\begin{enumerate}
\item Level 2
\begin{enumerate}
\item Level 3
\begin{enumerate}
\item Level 4
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{enumerate}
Here is an example of a nested itemized list.
\begin{itemize}
\item Level 1
\begin{itemize}
\item Level 2
\begin{itemize}
\item Level 3
\begin{itemize}
\item Level 4
\end{itemize}
\end{itemize}
\end{itemize}
\end{itemize}
\section{ Theorems, propositions, etc.}
\label{sec:thms}
Consider Theorem \ref{thm:1} and Proposition \ref{pro:1} below. Note how these are labelled and referenced.
\begin{theorem}
\label{thm:1}
My theorem.
\end{theorem}
\begin{proof}
My proof.
\end{proof}
\begin{proposition}
\label{pro:1}
My proposition.
\end{proposition}
\begin{corollary}
\label{cor:1}
My corollary.
\end{corollary}
\begin{lemma}
\label{lem:1}
My lemma.
\end{lemma}
\begin{definition}
\label{def:1}
My definition.
\end{definition}
\begin{remark}
\label{rem:1}
My remark.
\end{remark}
\section{Tables and figures}\label{sec:tbls}
Table~\ref{tab:results} shows and example of a table containing simulation results.
Note that \emph{table captions should go above the tables}.
In Figure~\ref{fig:1} we can see a graph where uniform random numbers are plotted against the sequence 1 to 30. Note that \emph{captions for figures should go below the figures}.
Furthermore, note that a table or figure always appears either at the top or bottom of
a page, regardless of where the table is places in the text. This behaviour is correct.
\begin{table}[tb]
\caption{Results of for the $\chi_5^2$ distribution.}\label{tab:results}
\centering
\begin{tabular}{llccccccccccc}
\toprule
& \multicolumn{3}{c}{$n=50$}
& \multicolumn{3}{c}{$n=100$}
& \multicolumn{3}{c}{$n=200$} \\ \cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-10}
\textbf{Type} & $\ell$ & \textbf{NC} & \textbf{EUB} & $\ell$ & \textbf{NC} & \textbf{EUB} & $\ell$ & \textbf{NC} & \textbf{EUB} \\
\midrule
$\hat{I}_H^N$
& 20 & 0.088 & 1.748 & 40 & 0.073 & 1.644 & 80 & 0.065 & 1.563 \\
& 25 & 0.096 & 1.706 & 50 & 0.078 & 1.612 & 100 & 0.068 & 1.540 \\
& 30 & 0.105 & 1.671 & 60 & 0.085 & 1.588 & 120 & 0.072 & 1.522 \\
\midrule
$\hat{I}_B^N$
& 20 & 0.063 & 1.828 & 40 & 0.052 & 1.695 & 80 & 0.048 & 1.594 \\
& 25 & 0.075 & 1.764 & 50 & 0.060 & 1.650 & 100 & 0.053 & 1.563 \\
& 30 & 0.087 & 1.715 & 60 & 0.069 & 1.617 & 120 & 0.059 & 1.540 \\
\midrule
$\hat{J}_H^N$
& 20 & 0.074 & 2.070 & 40 & 0.062 & 1.830 & 80 & 0.057 & 1.666 \\
& 25 & 0.078 & 1.937 & 50 & 0.066 & 1.748 & 100 & 0.060 & 1.616 \\
& 30 & 0.083 & 1.848 & 60 & 0.069 & 1.693 & 120 & 0.062 & 1.582 \\
\bottomrule
\end{tabular}
\end{table}
\begin{figure}[tb]
\begin{center}
\includegraphics[width=0.7\textwidth]{graphs}
\caption{Plots of random numbers.}
\label{fig:1}
\end{center}
\end{figure}
\section{Sections and subsections}\label{sec:6}
The sections of the text can also be referenced. See, for example, the code used to label Section~\ref{sec:tbls} concerning tables and figures, or Section~\ref{sec:citing}
concerning references.
\subsection{ Subsection title goes here }
\label{subsec:1}
Subsection text.
\subsubsection{Subsubsection title goes here}
\label{subsubsec:1}
Subsubsection text.
\section{Citing references}\label{sec:citing}
Firstly you need to create bibliography file (references.bib in this example) containing
the details of all works cited in your manuscript. This can be done easily using reference
management software such as JabRef (freely available for download from \url{http://www.jabref.org/}).
Once your bibliography file has been prepared and linked (see the necessary \LaTeX \ code
near the end of the TeX file), it is easy to cite works in the text. A list of references
containing only the works cited in the text will then be generated automatically and
printed at the end of the article.
There are several citing styles. When a reference does not form part of the main
sentence and needs to be referred to in parentheses as \citep{hall1988}, you can use
the code \verb!\citep{hall1988}!. Using \verb!\citet{hall1988}! instead, results in
\citet{hall1988}, i.e.\ only the author is printed along with the publication year in
parentheses. Other commonly-used styles for citing are shown in Table~\ref{tab:citing}.
\begin{table}
\centering\footnotesize
\caption{abc}\label{tab:citing}
\begin{tabular}{lll}
\toprule
\textbf{Syntax} & \textbf{Code example} & \textbf{Result in text} \\
\midrule
\verb!\citep{}! & \verb!\citep{fisher1939}! & \citep{fisher1939} \\
& \verb!\citep{fisher1939,hall1988}! & \citep{fisher1939,hall1988} \\
& \verb!\citep[p.~931]{hall1988}! & \citep[p.~931]{hall1988} \\
& \verb!\citep[see, for example,][]{fisher1939}! & \citep[see, for example,][]{fisher1939} \\
& \verb!\citep[see][p.~931]{hall1988}! & \citep[see][p.~931]{hall1988} \\
\verb!\citet{}! & \verb!\citet{fisher1939}! & \citet{fisher1939} \\
& \verb!\citet{fisher1939,hall1988}! & \citet{fisher1939,hall1988} \\
& \verb!\citet[p.~13]{fisher1939}! & \citet[p.~13]{fisher1939} \\
\verb!\citealp{}! & \verb!\citealp[see, for example,][]{fisher1939}! & \citealp[see, for example,][]{fisher1939} \\
\bottomrule
\end{tabular}
\end{table}
% Add your bibliography by specifying the name of the appropriate *.bib file.
% You can create a bib file using software like JabRef (http://www.jabref.org/).
\bibliography{references}
\ReceiptDates % Do not remove this line.
\end{document}graphs-eps-converted-to.pdf — binary, 38 KB
graphs.eps — binary, 3348 KB
nc.pdf — binary, 6 KB
nd.pdf — binary, 6 KB
references.bib · 622 B
@article{fisher1939,
title={Student},
author={Fisher, Ronald A},
journal={Annals of Eugenics},
volume={9},
number={1},
pages={1--9},
year={1939},
publisher={Wiley Online Library}
}
@article{student1908,
title={The probable error of a mean},
author={Student},
journal={Biometrika},
volume={6},
number={1},
pages={1--25},
year={1908},
publisher={JSTOR}
}
@article{hall1988,
title={Theoretical comparison of bootstrap confidence intervals},
author={Hall, Peter},
journal={The Annals of Statistics},
volume={16},
number={3},
pages={927--953},
year={1988},
publisher={JSTOR}
}
sasj.bst · 29 KB
%%
%% This is file `sasj.bst',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% merlin.mbs (with options: `ay,har,harnm,nm-rev,ed-rev,jnrlst,nmft,nmft-sc,keyxyr,dt-beg,yr-par,yrp-per,note-yr,vol-bf,vnum-sp,volp-com,pp-last,num-xser,ser-ed,pre-edn,doi,edparxc,bkedcap,in-it,pp,xedn,nfss,')
%% ----------------------------------------
%% *** ***
%%
%% Copyright 1994-2011 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}[2011/11/18 4.33 (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
% or: harvard.sty by Peter Williams and Thorsten Schnier
% (needs natbib v5.3 or harvard v2.0.3)
% The form of the bibitem entries is
% \harvarditem[Jones et al.]{Jones, Baker, and Smith}{1990}{key}...
%---------------------------------------------------------------------
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 {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 {bolden}
{ duplicate$ empty$
{ pop$ "" }
{ "\textbf{" swap$ * "}" * }
if$
}
FUNCTION {scaps}
{ duplicate$ empty$
{ pop$ "" }
{ "\textsc{" swap$ * "}" * }
if$
}
FUNCTION {bib.name.font}
{ scaps }
FUNCTION {bib.fname.font}
{ bib.name.font }
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}
{ "" }
FUNCTION {bbl.page}
{ "p." }
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"}
MACRO {acmcs} {"ACM Computing Surveys"}
MACRO {acta} {"Acta Informatica"}
MACRO {cacm} {"Communications of the ACM"}
MACRO {ibmjrd} {"IBM Journal of Research and Development"}
MACRO {ibmsj} {"IBM Systems Journal"}
MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
MACRO {ieeetc} {"IEEE Transactions on Computers"}
MACRO {ieeetcad}
{"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
MACRO {ipl} {"Information Processing Letters"}
MACRO {jacm} {"Journal of the ACM"}
MACRO {jcss} {"Journal of Computer and System Sciences"}
MACRO {scp} {"Science of Computer Programming"}
MACRO {sicomp} {"SIAM Journal on Computing"}
MACRO {tocs} {"ACM Transactions on Computer Systems"}
MACRO {tods} {"ACM Transactions on Database Systems"}
MACRO {tog} {"ACM Transactions on Graphics"}
MACRO {toms} {"ACM Transactions on Mathematical Software"}
MACRO {toois} {"ACM Transactions on Office Information Systems"}
MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
MACRO {tcs} {"Theoretical Computer Science"}
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 {write.url}
{
url
duplicate$ empty$
{ pop$ }
{ "\newline\harvardurl{" swap$ * "}" * write$ newline$ }
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
"{vv~}{ll}{, f.}{, jj}"
format.name$
bibinfo bibinfo.check
't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
s nameptr "{ll}" format.name$ duplicate$ "others" =
{ 't := }
{ pop$ }
if$
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{
" " * bbl.etal *
bib.name.font
}
{
"\harvardand{}"
space.word * t *
}
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
t "others" =
'skip$
{ bib.name.font }
if$
} if$
}
FUNCTION {format.names.ed}
{
format.names
}
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
capitalize
"(" swap$ * ")" *
*
}
if$
}
FUNCTION {format.doi}
{ doi empty$
{ "" }
{
new.block
"\doi{" doi * "}" *
}
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 *
}
{
"\harvardand{}"
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$
"\harvarditem" write$
make.full.names duplicate$ label =
'skip$
{ "[" label * "]" * write$ }
if$
"{" swap$ * "}{" * write$
year duplicate$ empty$
{ pop$ "????" }
'skip$
if$
extra.label * "}{" * 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
emphasize
" " * }
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 :=
" \harvardyearleft " swap$ * "\harvardyearright{}" *
}
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.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$
bolden
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$ *
}
FUNCTION {format.chapter.pages}
{ chapter empty$
{ "" }
{ type empty$
{ bbl.chapter }
{ type "l" change.case$
"type" bibinfo.check
}
if$
chapter tie.or.space.prefix
"chapter" bibinfo.check
* *
}
if$
}
FUNCTION {format.booktitle}
{
booktitle "booktitle" bibinfo.check
emphasize
}
FUNCTION {format.in.ed.booktitle}
{ format.booktitle duplicate$ empty$ 'skip$
{
format.bvolume duplicate$ empty$ 'pop$
{ ", " swap$ * * }
if$
editor "editor" format.names.ed duplicate$ empty$ 'pop$
{
" " *
get.bbl.editor
capitalize
"(" 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$
{
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
}
if$
eid empty$
{ format.journal.pages }
{ format.journal.eid }
if$
format.doi output
new.block
format.note output
fin.entry
write.url
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
add.blank
}
{ 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
new.block
format.number.series output
format.edition output
new.sentence
format.publisher.address output
}
{
new.block
format.book.crossref output.nonnull
}
if$
format.doi output
new.block
format.note output
fin.entry
write.url
}
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.note output
fin.entry
write.url
}
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
format.number.series output
format.edition output
new.sentence
format.publisher.address output
}
{
format.chapter.pages "chapter and pages" output.check
new.block
format.book.crossref output.nonnull
}
if$
format.pages "pages" output.check
format.doi output
new.block
format.note output
fin.entry
write.url
}
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.number.series output
format.edition output
format.chapter.pages output
new.sentence
format.publisher.address output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.pages "pages" output.check
format.doi output
new.block
format.note output
fin.entry
write.url
}
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.number.series 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
}
if$
format.pages "pages" output.check
format.doi output
new.block
format.note output
fin.entry
write.url
}
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.note output
fin.entry
write.url
}
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
bbl.mthesis format.thesis.type output.nonnull
school "school" bibinfo.warn output
address "address" bibinfo.check output
format.doi output
new.block
format.note output
fin.entry
write.url
}
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
fin.entry
write.url
}
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
format.doi output
new.block
format.note output
fin.entry
write.url
}
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
format.publisher.address output
}
if$
format.doi output
new.block
format.note output
fin.entry
write.url
}
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.note output
fin.entry
write.url
}
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
fin.entry
write.url
}
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 *
}
{ " \harvardand{} " * 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 {calc.short.label}
{ calc.short.authors short.list
'label :=
}
FUNCTION {sort.format.names}
{ 's :=
#1 'nameptr :=
""
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv{ } }{ll{ }}{ f{ }}{ jj{ }}"
format.name$ 't :=
nameptr #1 >
{
" " *
namesleft #1 = t "others" = and
{ "zzzzz" 't := }
'skip$
if$
t sortify *
}
{ 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 last.extra.num.extended last.extra.num.blank number.label }
FUNCTION {initialize.extra.label.stuff}
{ #0 int.to.chr$ 'last.label :=
"" 'next.extra :=
#0 'last.extra.num :=
"a" chr.to.int$ #1 - 'last.extra.num.blank :=
last.extra.num.blank 'last.extra.num.extended :=
#0 'number.label :=
}
FUNCTION {forward.pass}
{ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num "z" chr.to.int$ >
{ "a" chr.to.int$ 'last.extra.num :=
last.extra.num.extended #1 + 'last.extra.num.extended :=
}
'skip$
if$
last.extra.num.extended last.extra.num.blank >
{ last.extra.num.extended int.to.chr$
last.extra.num int.to.chr$
* 'extra.label := }
{ last.extra.num int.to.chr$ 'extra.label := }
if$
}
{ "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$
{ "{\natexlab{" swap$ * "}}" * }
if$
'extra.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$ :=
calc.short.label
}
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$
"{\catcode`\|=0\catcode`\#=12\catcode`\@=11\catcode`\\=12" write$ newline$
"|immediate|write|@auxout{\expandafter\ifx\csname natexlab\endcsname\relax\gdef\natexlab#1{#1}\fi}}"
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}
%% End of customized bst file
%%
%% End of file `sasj.bst'.
The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗