← All templates

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.

Create an account to use this
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 KB
  • by.pdf · 6 KB
  • cc.pdf · 6 KB
  • example.tex — the file that is compiled · 10 KB
  • graphs-eps-converted-to.pdf · 38 KB
  • graphs.eps · 3348 KB
  • nc.pdf · 6 KB
  • nd.pdf · 6 KB
  • references.bib · 622 B
  • sasj.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

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 ↗