diff options
Diffstat (limited to 'Master/texmf-dist/doc/msu-thesis')
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/msu-thesis.tex | 284 | ||||
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.pdf | bin | 0 -> 30975 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.tex | 127 | ||||
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.bib | 15 | ||||
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.pdf | bin | 0 -> 70450 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.tex | 208 | ||||
-rw-r--r-- | Master/texmf-dist/doc/msu-thesis/samples/unified.bst | 1550 |
7 files changed, 2184 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/msu-thesis/msu-thesis.tex b/Master/texmf-dist/doc/msu-thesis/msu-thesis.tex new file mode 100644 index 00000000000..4b206732a02 --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/msu-thesis.tex @@ -0,0 +1,284 @@ +\documentclass[11pt]{article} +\title{\textbf{Using the MSU Thesis Class}} +\author{\textbf{Alan Munn}\\Department of Linguistics and Languages\\\texttt{\href{mailto:amunn@msu.edu}{amunn@msu.edu}}} +\date{Version 2.0\\August 25, 2011} +\usepackage[T1]{fontenc} +\usepackage[margin=1.25in]{geometry} +\usepackage{titling} +\usepackage[utf8]{inputenc} +\usepackage{array, booktabs, multicol, fancyhdr, xspace,tabularx} +\usepackage{enumitem} +\usepackage{fancyvrb,listings,url} +\usepackage[sf]{titlesec} +\usepackage[colorlinks=true]{hyperref} + + + +\DefineShortVerb{\|} +\newcommand*\bs{\textbackslash} + + +\IfFileExists{luximono.sty}% +{% + \usepackage[scaled]{luximono}% +} +{% + \IfFileExists{beramono.sty}% + {% + \usepackage[scaled]{beramono}% + }{} +} + + +\lstset{% + basicstyle=\ttfamily\small, + commentstyle=\itshape\ttfamily\small, + showspaces=false, + showstringspaces=false, + breaklines=true, + breakautoindent=true, + frame=single + captionpos=t + language=TeX +} + +\newcommand*{\pkg}[1]{\texttt{#1}\xspace} +\setitemize[1]{label={}} +\setitemize[2]{label={}} +\setdescription{font={\normalfont}} +\setlength{\droptitle}{-1in} + +\lhead{} +\chead{} +\rhead{} +\lfoot{\emph{}} +\cfoot{\thepage} +\rfoot{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{0pt} +\pagestyle{fancy} + + +\begin{document} +\maketitle +\thispagestyle{empty} +\renewcommand{\abstractname}{\sffamily Abstract} + +\abstract{\noindent\begin{quote} This is a class file for MSU theses and dissertations. It is based on the \pkg{memoir} class, and therefore supports all of the functionality of that class. It should generate a document which meets all the basic formatting requirements laid out by the \emph{2010 Formatting Guide For Electronic Submission of Master’s Theses and Doctoral Dissertations} produced by the Graduate School, including requirements for margins, titlepage, page numbering, section titles, sub- and superscript sizes etc.\end{quote}} +\section{Introduction} +Formatting a dissertation according to a University's thesis requirements is not always a simple task in \LaTeX, especially since the requirements are generally aimed at MSWord users. Furthermore, most of the work of formatting a document is supposed to be done by the documentclass itself, and not by the individual user. Fortunately, Michigan State University's thesis requirements are actually sane, and fairly straightforward. The present class file is designed to further make the process easier for \LaTeX\ users, by doing all the heavy lifting for you, so that you can focus on the content and not the formatting. +\section{Background} +The MSU Thesis Class is based on the \pkg{memoir} document class. The \pkg{memoir} class is an extensive class that incorporates the functionality of many other packages into it. The class is extensively documented, and the documentation (\pkg{memman.pdf}) should be available with any \TeX\ distribution. I strongly recommend that you familiarize yourself with \pkg{memoir} as you use the present class. +\section{Package Options} +In addition to any options passed to the \pkg{memoir} class (e.g. |oldfontcommands|; see Section \ref{sec:fonts}), the \pkg{msu-thesis} takes two options: one to specify the type of degree, (see Table~\ref{degrees}), and one to enable landscape page numbering. If no degree option is specified, a Ph.D. dissertation is assumed. +\begin{table} +\centering +\begin{tabularx}{.8\textwidth}{>{\ttfamily}lX} +\toprule +\multicolumn{1}{c}{Option name} & \multicolumn{1}{l}{Description}\\ +\midrule +{[PhD]} & Doctoral dissertation (default)\\ +{[MA]} & Master of Arts\\ +{[MS]} & Master of Science\\ +{[MAT]} & Master of Arts for Teachers \\ +{[MBA]} & Master of Business Administration \\ +{[MFA]} & Master of Fine Arts \\ +{[MIPS]} & Master of International Planning Studies \\ +{[MHRL]} & Master of Human Resources and Labor Relations \\ +{[MMus]} & Master of Music \\ +{[MSN]} & Master of Science in Nursing \\ +{[MPP]} & Master of Public Policy \\ +{[MSW]} & Master of Social Work \\ +{[MURP]} & Master in Urban and Regional Planning \\ +\bottomrule +\end{tabularx} +\caption{Package degree options}\label{degrees} +\end{table} +\subsection{The \pkg{[lscape]} option} +The Formatting Guide requires that any lansdscape pages be numbered in landscape mode (i.e. along the long edge of the page) rather than in portrait mode. The |[lscape]| option enables this. The option loads both the \pkg{lscape} package and \pkg{tikz}, and is implemented as a class option so that you are not required to load those packages if they are not needed. + +\section{User commands} +In addition to all the user functionality defined by \pkg{memoir}, the \pkg{msu-thesis} class defines six new titling commands, and a command to signal that the document has multiple appendices. +\begin{quote} +\begin{description} +\item[\texttt{\bs fieldofstudy\{\}}] Takes one argument corresponding to your field of study. +\item[\texttt{\bs dedication\{\}}] Takes one argument (should be short), your dedication. +\item[\texttt{\bs makecopyrightpage}] Creates the copyright page. +\item[\texttt{\bs makededicationpage}] Creates the dedication page. +% deprecated commands from < v1.7 +%\item[\texttt{\bs maketableofcontents}] Creates the table of contents +%\item[\texttt{\bs begin\{msuabstract\}\ldots \bs end\{msuabstract\}}] Environment containing the text of the thesis abstract. +%\item[\texttt{\bs makeabstract}] Generates the abstract. +\item[\texttt{\bs appendicestrue}] Tells the class that you have more than one appendix. +\item[\texttt{\bs makeappendixcover}] Creates the appendix/ces cover page. +\item[\texttt{\bs makebibliographycover}] Creates the bibliography cover page. +\end{description} +\end{quote} +\section{Using the class} +\subsection{Logical parts of the document} + +Most book-length documents are divided into three main kinds of parts: the front matter, the main matter, and the back matter. In \pkg{memoir} (and therefore \pkg{msu-thesis}) these sections are preceded by the commands |\frontmatter|, |\mainmatter|, and |\backmatter|. These commands tell the class when to change the page numbering, for example, front matter pages use lower case roman numerals, but main matter pages use arabic numerals. + +The basic outline of a dissertation or thesis document is shown in Table~\ref{structure}: (your thesis may not have all of these parts, but if it does, they should be in this order.) + +\begin{table}[ht] +\begin{itemize} +\item |\begin{document}| +\item |\frontmatter| +\begin{itemize} + \item Titlepage + \item Abstract + \item Copyright Page + \item Dedication + \item Acknowlegements + \item Table of Contents + \item List of Tables + \item List of Figures + \item List of Abbreviations/Symbols +\end{itemize} +\item |\mainmatter| +\begin{itemize} + \item Chapter 1 + \item Chapter 2 + \item \ldots + \item Chapter $n$ + \item{Appendices} +\end{itemize} +\item |\backmatter| +\begin{itemize} + \item{Bibliography} +\end{itemize} +\item |\end{document}| +\end{itemize} +\caption{Basic structure of a thesis or dissertation}\label{structure} +\end{table} +\subsection{What does the class file do?} +The class itself sets up the margins, page numbering, and formatting of all of the required pieces. It doesn't put everything in the right order, so you are responsible for that. The best way to do this is to use the included sample \LaTeX\ file as a basic template for your thesis. +\subsection{Line Spacing} +The \pkg{memoir} class provides commands for single and double spacing (|\SingleSpacing| and |\DoubleSpacing|) most of your thesis will be double spaced, but certain parts (such as the table of contents, lists of figures/tales, bibliography) may be single spaced. This duplicates the functionality of the \pkg{setspace} package, which therefore should not be used. +\subsection{Font changing commands}\label{sec:fonts} +\sloppy The \pkg{memoir} class enforces the so-called ``new'' font changing commands (although they have now been in use for many years.) This means that it does not allow you to use the commands |\bf|, |\it|, |\rm|, etc. Unfortunately there are some old packages that still use these commands, and there is also some outdated information on the web that might have examples using these commands. You should generally not use these commands (see \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=2letterfontcmd}); if you do encounter problems, you can pass the option |oldfontcommands| to the class. +\subsection{Extra Packages} +The \pkg{memoir} class replicates the functionality of many independent packages, so if you are transferring \LaTeX\ source from other documents using the \pkg{article} class, you may encounter some warnings or errors. The \pkg{memoir} documentation has substantial information about the packages it emulates, and the packages for which it provides equivalent functionality. See Chap. 18 Sec. 24 of the \pkg{memoir} manual for details. Quoting from the manual: +\begin{quote} \pkg{memoir} emulates the following packages: {\sffamily abstract, appendix, array, booktabs, ccaption, chngcntr, crop, dcolumn, delarray, enumerate, epigraph, ifmtarg, ifpdf, index, makeidx, moreverb, needspace, newfile, nextpage, pagenote, patchcmd, parskip, setspace, shortvrb, showidx, tabularx, titleref, tocbibind, tocloft, verbatim}, and {\sffamily verse}. It also provides functions equivalent to those in the following packages, although the class does not prevent you from using them: {\sffamily fancyhdr, framed, geometry, sidecap, subfigure}, and \sffamily{titlesec}.\\\hfill{\normalfont\emph{The Memoir Class} 8th Ed. 2010, p.345} +\end{quote} +\subsection{Landscape figures and tables} +If you have large figures and tables that must be rotated, you should use the |[lscape]| option. This enables a pagestyle |lscape| and places the page numbers correctly on the long edge of the page. The option loads the \pkg{lscape} package which provides a |landscape| environment to place the landscape figure in. Before the landscape environment, you need to issue a |\clearpage| command and change the pagestyle to |lscape|, and afterwards, change it back to |plain|. Schematically, then, any landscape pages should be created in the following way. + +\begin{quote} +\begin{lstlisting} +\clearpage\pagestyle{lscape} +\begin{landscape} + ... your large table(s) or figure(s) here +\end{landscape} +\pagestyle{plain} +\end{lstlisting} + +\end{quote} + +The |landscape| environment makes all pages within it landscape, so if you have multiple landscape figures in a row, you can put all of them inside a single |landscape| environment. If you are using \pkg{pdflatex} you can optionally load the \pkg{pdflscape} package, which actually rotates the landscape pages within the pdf document itself. + + +\subsection{Customizing the look of things} +I have created a basic looking style for Chapter headings based on the |thatcher| style in |memoir|. If you want to change these things, you may, using the appropriate |\renewcommand| commands. More information can be found in the |memoir| documentation. The Thesis Office seems to require dotted leaders for the List of Figures/Tables in the Table of Contents, (despite the guide saying they are optional) even though they get typeset as Chapters. If you wish your Chapter headings to have no leaders, add the following command just after the |\mainmatter| command. To put the dots back for the Bibliography, repeat the same command right after the |\backmatter| command, but replace |\cftnodots| with |\cftdotsep|. The default template leaves dots everywhere, which should appease the thesis office. +\begin{quote} +\begin{lstlisting} +\addtocontents{toc}{% + \protect\renewcommand{\protect\cftchapterdotsep} + {\cftnodots}} +\end{lstlisting} +\end{quote} +Despite there being no explicit formatting requirements for Chapter headings (other than that they start 1 in from the top of the page), the thesis office has been known to dislike many things, so if you do decide to change things, be prepared for rejection or a frustrating fight. +\subsection{Things to watch out for} +\begin{itemize}[label={\textbullet}] +\item Make sure you pay attention to any ``Overfull hbox'' warnings when you are producing your final copy. You should make sure you eliminate all of them or else the thesis office is likely to reject your thesis. One common way to eliminate such warnings is to place the command |\sloppy| at the beginning of the paragraph that triggers the warning. You should only use this technique at the very end when you are completely done with everything. Alternatively, rewording the text may also fix things. +\item Remember to use the |\tableofcontents*| command so that your table of contents is not listed in the table of contents. +\item Remember to use the command |\appendicestrue| if you have more than one appendix. +\item Remember to add the |\makeappedixcover| and |\makebibliographycover| commands before your appendices and your bibliography. +\end{itemize} + +\section{Bugs and redistribution} +\subsection{Current version} +The latest copy of \pkg{msu-thesis} will always be available here \url{http://www.msu.edu/~amunn/latex/msu-thesis.zip} and on \href{http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=msu-thesis}{CTAN}. If you use TeXLive, then \pkg{tlmgr} will update or install the latest version. If you want others to use the class, \textsc{please} point them to those links, so that they can get an up-to-date version with all accompanying documentation and examples rather than passing along your copy. Please report \textsc{any} problems you have with the class to me \href{mailto:amunn@msu.edu}{amunn@msu.edu}, as this will aid in making things easier for those who follow you. +\subsection{Version history} +Previous versions of \pkg{msuthesis} (versions 1.0--1.4b) were created for non-electronic submission and should not be used. Versions 1.5--1.6 (the first electronic submission versions) contained a |\makeabstract| command and a separate |msuabstract| environment. These have been removed as of version 1.7. Users who are upgrading from earlier versions to version 1.7 do not need to change these commands however but their use will trigger a warning.) +\section{Acknowledgements} +Thanks to Lars Masden, Ulrike Fischer and Peter Wilson for help with setting up parts of the memoir code for versions 1.0-1.4 (now eliminated due to changed requirements). Thanks to Wolfgang Sternefeld for supplying the \pkg{linguex} spacing fix code, and Leo Liu for the landscape page numbering code, which greatly simplified my original version. Thanks also to Matt Husband, Irina Agafonova, and Dmitriy Bryndin for reporting problems during initial testing. + +\appendix +\renewcommand{\thesection}{Appendix \Alph{section}} +\clearpage +\section{Sample template} +\enlargethispage{2\baselineskip} +\begin{lstlisting} +\documentclass[PhD]{msu-thesis} +% Your extra packages here +% +% Define the title, author, field of study, date, and dedication (optional) +% +\title{The syntax and semantics of phonology} +\author{Joe Linguist} +\fieldofstudy{Linguistics} +\dedication{This thesis is dedicated to someone.} +\date{2009} +% +\begin{document} +\frontmatter +% +\maketitlepage +% +\begin{abstract} +Your abstract text here +\end{abstract} +% +\clearpage +\makecopyrightpage +\makededicationpage +% +\clearpage +\chapter*{Acknowledgements} +\DoubleSpacing +Your acknowledgements here +% +\clearpage +\SingleSpacing +\tableofcontents* +\clearpage +\listoftables +\clearpage +\listoffigures +% +\mainmatter +\chapter{Your first chapter} +% +\appendix +\makeappendixcover +\chapter{Your first appendix} +\backmatter +\makebibliographycover +\SingleSpacing +\bibliography{your-bib-file} +\end{document} + +\end{lstlisting} +\clearpage +\section{Linguistic Examples with \pkg{gb4e} and \pkg{linguex}} +The \pkg{msu-thesis} class has been tested with both the \pkg{gb4e} package, and the \pkg{linguex} package. Unfortunately some versions of \pkg{gb4e} use old font commands, and so does \pkg{linguex}, so if you encounter problems with either package, load the class with the |oldfontcommands| option. Since linguistic examples are usually single spaced, even in theses, you should use the |\singlegloss| command (from the \pkg{cgloss4e} package loaded by both \pkg{gb4e} and \pkg{linguex}) to make your glosses examples singlespaced. The default mode for examples themselves is to make them doublespaced. If you want all examples to be single spaced (which looks better if the examples take up more than one line) you need to put the following code in your preamble, which redefines the |exe| environment to be single spaced. +\begin{quote} +\begin{lstlisting} +\let\oldexe\exe +\renewcommand{\exe}{\SingleSpacing\oldexe} +\end{lstlisting} +\end{quote} +For the \pkg{linguex} package, you can use the following code: +\begin{quote} +\begin{lstlisting} +\let\oldex\ex +\renewcommand{\ex}{\SingleSpacing\oldex} +\renewcommand{\ExEnd}{% + \ifnum\theExDepth=0\global\unembeddedfalse\DoubleSpacing\else% + \end{list}\addtocounter{ExDepth}{-1}\ExEnd\fi} +\end{lstlisting} +\end{quote} + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.pdf b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.pdf Binary files differnew file mode 100644 index 00000000000..8b58013cade --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.pdf diff --git a/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.tex b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.tex new file mode 100644 index 00000000000..86b4c33c58e --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-template.tex @@ -0,0 +1,127 @@ +% This is a template for use with the MSU Thesis class +% +% Class options: +% PhD for dissertations; +% MA for Master of Arts +% MS for Master of Science +% MAT for Master of Arts for Teachers +% MBA for Master of Business Administration +% MFA for Master of Fine Arts +% MIPS for Master of International Planning Studies +% MHRL for Master of Human Resources and Labor Relations +% MMus for Master of Music +% MSN for Master of Science in Nursing +% MPP for Master of Public Policy +% MSW for Master of Social Work +% MURP for Master in Urban and Regional Planning +% +% Default is PhD +% +% +% This template has everything in the right order. +% Just add real content and you're done! +% +\documentclass[]{msu-thesis} +\usepackage{lipsum} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +% +% If the thesis office requires Times, we'll give them Times +% You can experiment with other font packages here if you like. +\usepackage{mathptmx} +% +% Load any extra packages here +% +% You must specify the title of your thesis, your name, the field of study (not department), and the year +\title{The syntax and semantics of phonology} +\author{Joe Linguist} +\fieldofstudy{Linguistics} +\date{2010} +\renewcommand*{\afterchapternum}{} + +% If you want a dedication page, specify the text of the dedication here and uncomment the next command. +% +%\dedication{This thesis is dedicated to someone.} +% +\begin{document} + +% All the stuff before your actual chapters is called the front matter +\frontmatter +% First make the title page +\maketitlepage +% Next make the abstract +\begin{abstract} +% Your abstract goes here. Master's 1 page max. PhD 2 page max. +\end{abstract} + +% Force a newpage +\clearpage +% Make the copyright page. The Graduate School ridiculously prohibits you +% from having a copyright page unless you pay ProQuest to register the copyright. +% This should be illegal, but I didn't make up the rule. + +%\makecopyrightpage + +% If you have a dedication page, uncomment the next command to print the dedication page +% +%\makededicationpage +% +\clearpage +% Your Acknowledgements are formatted like a chapter, but with no number +\chapter*{Acknowledgements} +\DoubleSpacing % Acknowledgements should be double spaced +Your acknowledgements here. +% +\clearpage +% We need to turn single spacing back on for the contents/figures/tables lists +\SingleSpacing +\tableofcontents* % table of contents will not be listed in the TOC +\clearpage +\listoftables % comment this out if you have no tables +\clearpage +\listoffigures % comment this out if you have no figures +% +% If you have a list of abbreviations/symbols it would go here preceded by a \clearpage +% +\mainmatter +% +% The next line removes the dots in chapter headings in the TOC +% May violate thesis office rules +%\addtocontents{toc}{\protect\renewcommand{\protect\cftchapterdotsep} {\cftnodots}} + +\chapter{Your first chapter} +% +% If you have pages that must appear in landscape mode, use the [lscape] option +% and enclose the pages in a {landscape} environment. +%\clearpage\pagestyle{lscape} % first clear the page and change the pagestyle +%\begin{landscape} +% +% your landscape table(s) or figure(s) here +% +%\end{landscape} +%\pagestyle{plain} % remember to change the pagestyle back to plain +% +% +% If you have appendices, they would go here. +% Comment these lines out if you don't +% If you have more than one appendix, uncomment the next line +%\appendicestrue +\makeappendixcover % make the appendix cover page +\appendix +\chapter{Your first appendix} +% +\backmatter +% The next lines add the dots back into the References/Bibliography heading +% of the TOC. Only uncomment this if you need to put the dots back in having +% removed them for Chapter headings. +% +%\addtocontents{toc}{% +% \protect\renewcommand{\protect\cftchapterdotsep} {\cftdotsep}} +% +\makebibliographycover % make the bibliography cover page +% Bibliography can be single spaced +% +\SingleSpacing +% Your bibliography command here (e.g. \bibliography{your-bib-file}) if using natbib +\end{document} + diff --git a/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.bib b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.bib new file mode 100644 index 00000000000..52361277c3c --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.bib @@ -0,0 +1,15 @@ +@article{munn1999, + Author = {Alan Munn}, + Journal = {Linguistic Inquiry}, + Pages = {643-668}, + Title = {First Conjunct Agreement: Against a Clausal Analysis}, + Volume = {30}, + Year = {1999}} + +@article{Munn2005, + Author = {Alan Munn and Cristina Schmitt}, + Journal = {Lingua}, + Pages = {821-855}, + Title = {Number and Indefinites}, + Volume = {115}, + Year = {2005}} diff --git a/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.pdf b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.pdf Binary files differnew file mode 100644 index 00000000000..07e3edf1457 --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.pdf diff --git a/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.tex b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.tex new file mode 100644 index 00000000000..40760c13e2a --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/samples/MSU-thesis-testfile.tex @@ -0,0 +1,208 @@ +%\listfiles + +\documentclass[lscape]{msu-thesis} +% lscape option is needed for this sample file to show correct placement +% of page numbers on landscape pages. If you don't have any landscape pages +% in your document, you don't need to load this option. +\usepackage[T1]{fontenc} +\usepackage{mathptmx} +\usepackage{amsmath} +\title{The syntax and semantics of phonology} +\author{Joe Linguist} +\fieldofstudy{Linguistics} +\dedication{This thesis is dedicated to someone.} +\date{2010} + +\usepackage{lipsum} +\usepackage[T1]{fontenc} +\usepackage{xcolor} +\usepackage{gb4e} +\usepackage{cgloss} +\usepackage{natbib} + +\counterwithin{exx}{chapter} +\bibliographystyle{unified} +\singlegloss +% Uncomment the next two lines for single spaced examples with gb4e +%\let\oldexe\exe +%\renewcommand{\exe}{\SingleSpacing\oldexe} +\begin{document} +\frontmatter +\maketitlepage +\begin{abstract} +\lipsum +\end{abstract} +\clearpage +\makecopyrightpage +\makededicationpage +\clearpage +\chapter*{Acknowledgements} +\DoubleSpacing +\lipsum[1] +\clearpage +\SingleSpacing +\tableofcontents* % ToC will not appear in the table of contents +\clearpage +\listoftables +\clearpage +\listoffigures +\mainmatter +% The next command changes chapters in the TOC to have no dotted leader +%\addtocontents{toc}{\protect\renewcommand{\protect\cftchapterdotsep}{\cftnodots}} +\chapter{Introduction} +\section{Some section} +\lipsum[2] + +\subsection{Subsection} +\lipsum +\subsubsection{Subsubsection} +\begin{exe} +\ex\label{1} +\begin{xlist} +\ex[]{This is a linguistic example that is very long to see how it wraps around onto the next line of the text.} +\ex[]{This_{i} is an example_{i} with subscripts.} +\ex[*]{This is another example.} +\ex[]{This is a third example} +\ex[]{\gll Une example francaise\\ + an example french\\ +\trans A French example.} +\end{xlist} +\end{exe} + +\lipsum[1] +\lipsum[2]\cite{munn1999} says the following.\footnote{A footnote. This is a footnote with a subscript$_{\text{i}_{\text{j}}}$. \lipsum[9]} \lipsum[2] +\begin{table} +\centering +\begin{tabular}{ccc} +\toprule +Men & Women & Monsters\\ +\midrule +29 & 33 & 51\\ +\bottomrule +\end{tabular} +\caption{A sample table} +\end{table} + +\lipsum[3] +\section{More stuff} +\lipsum[4]\cite{munn2005} +\begin{figure} +\centering +{\color{gray!40}\rule{2in}{3in}} +\caption[A sample figure]{A sample figure with a figure caption that is extremely long to show single spacing in the long caption.} +\end{figure} +\lipsum[5] +\lipsum[10] +\chapter{A chapter with a really long title to see whether the chapter titles wrap correctly} +\lipsum +\begin{figure} +\centering +{\color{gray!40}\rule{4in}{2in}} +\caption{Another sample figure} +\end{figure} +\lipsum[6] +\section{A section with a really long title to check that sections wrap in the right way} +\subsection{A subsection with a really long title to check that sections wrap in the right way} +\subsubsection{A subsubsection with a really long title to check that sections wrap in the right way} +\begin{table} +\centering +\begin{tabular}{ccc} +\toprule +Men & Women & Monsters\\ +\midrule +29 & 33 & 51\\ +\bottomrule +\end{tabular} +\caption{Another sample table.} +\end{table} +\lipsum[7] +\begin{exe} +\ex\label{2} +\begin{xlist} +\ex[]{This^{i^{j^{k}}} contains three superscripts of the right size.} +\ex[]{This_{i_{j_{k}}} contains three subscripts of the right size.} +\end{xlist} +\end{exe} +\begin{figure} +\centering +{\color{gray!40}\rule{4in}{2in}} +\caption{Another sample figure} +\end{figure} +\lipsum[2] +\begin{quote} +\SingleSpacing +This is a sample long quotation. \lipsum[2] + +\hfill{\citep{munn1999}} +\end{quote} +\begin{table} +\centering +\begin{tabular}{ccc} +\toprule +Men & Women & Monsters\\ +\midrule +29 & 33 & 51\\ +\bottomrule +\end{tabular} +\caption{Another sample table.} +\end{table} +\lipsum[8] +% Now sample page in landscape (need to use [lscape] option for this) +% First clear the page. Then make the page style {lscape} +\clearpage\pagestyle{lscape} +% Enclose landscape pages in the {landscape} environment. Every page within +% this environment will be landscape. There is no need to enclose each individual +% figures/tables in the environment if they appear on a set of adjacent landscape +% pages. +\begin{landscape} +\begin{table} +\centering +\begin{tabular}{lllllll} + +\toprule +A & B & C & D & E & F & G \\ +\midrule +821.3827119 & 661.0913922 & 106.3008156 & 474.009513 & 190.8146776 & 788.4459729 & 784.7964852 \\ +863.5891052 & 308.5023091 & 15.97055732 & 319.4531424 & 932.4330525 & 313.8826277 & 574.5100815 \\ +867.7203343 & 343.6538027 & 34.35605188 & 680.5890553 & 538.4341728 & 510.3271094 & 987.7874714 \\ +144.6465988 & 86.30176472 & 145.0166526 & 26.00087715 & 694.0117063 & 556.0943379 & 650.0605751 \\ +269.5656447 & 979.9087235 & 150.7698724 & 715.0255442 & 312.5203237 & 608.58149 & 737.0459961 \\ +361.7660545 & 38.81968682 & 7.788463243 & 789.031736 & 599.306695 & 407.9588464 & 420.3577306 \\ +22.45176377 & 631.7249181 & 266.0566897 & 81.77581697 & 399.0120086 & 460.8922885 & 341.5815705 \\ +486.3650486 & 398.9817682 & 601.8745699 & 912.7856216 & 102.7510937 & 83.25854643 & 655.1995291 \\ +306.8558515 & 672.2668801 & 582.1884719 & 607.9748493 & 126.3316726 & 672.490033 & 754.4823663 \\ +745.6384032 & 369.5763752 & 170.8671329 & 248.2581139 & 994.2369771 & 28.13615151 & 230.6094341 \\ +270.3421307 & 193.6617479 & 374.94621 & 769.6975098 & 342.6845841 & 917.8180557 & 827.1024885 \\ +360.3810025 & 780.7139757 & 415.9038887 & 846.3157501 & 96.64026956 & 954.7160727 & 21.71722262 \\ +487.6847246 & 200.8682708 & 739.9673152 & 395.1695216 & 524.7826343 & 228.4705562 & 39.95541901 \\ +207.8091332 & 300.6871609 & 627.8808013 & 740.4949976 & 128.9558068 & 176.2158891 & 296.1642661 \\ +336.7537922 & 859.907318 & 704.2503641 & 426.845866 & 773.8926695 & 883.1773631 & 64.85043069 \\ + +\bottomrule +\end{tabular} + +\caption{Some random data that takes up too much room.} +\end{table} +\end{landscape} +% at the end of the {landscape} environment, make the page style {plain} +\pagestyle{plain} +% +% Uncomment this next command if you have more than one appendix +%\appendicestrue + +% This command creates the cover page for the appendix/appendices +\makeappendixcover +\appendix +\chapter{An appendix} +\lipsum[9-15] +\backmatter +% The next command forces the Bibliography to have a dotted leader +% (May not be required) +\addtocontents{toc}{% + \protect\renewcommand{\protect\cftchapterdotsep}{\cftdotsep}} +\SingleSpacing +% This command creates the cover page for the bibliography +\makebibliographycover +\bibliography{MSU-thesis-testfile} +\end{document} + diff --git a/Master/texmf-dist/doc/msu-thesis/samples/unified.bst b/Master/texmf-dist/doc/msu-thesis/samples/unified.bst new file mode 100644 index 00000000000..80d9add02d7 --- /dev/null +++ b/Master/texmf-dist/doc/msu-thesis/samples/unified.bst @@ -0,0 +1,1550 @@ +%%% This is unified.bst, made by Bridget Samuels. It is based on sp.bst (v1.9+) +%%% coded by Kai von Fintel as the house style for bibliographies in the journal +%%% Semantics and Pragmatics. The style is based on a style generated +%%% with custom-bib/merlin.mbs, a system for customizing bibliographic styles +%%% created by Patrick W Daly. There have been some hand-coded adjustments to that +%%% style to get the style closer to the Unified Style Sheet for Linguistics Journals. +%%% +%%% Version 1.2 [6 Mar 2010] Improved handling of multiple non-numerical year items by the same author. Should now output, e.g., "To appear(a)" +%%% Version 1.1 [2 Feb 2010] Added comma before vol. +%%% Version 1.0 [22 Aug 2009] Changes from sp.bst include conforming to the Unified +%%% Style Sheet format for PhD & MA theses and citing URLs for online materials (use +%%% misc or unpublished as the category). +%% + +ENTRY + { address + author + booktitle + chapter + doi + edition + editor + eid + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } +INTEGERS { output.state before.all mid.sentence after.sentence after.block } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} +STRINGS { s t} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {add.colon} +{ ": " * before.all 'output.state := +} + +FUNCTION {add.comma} +{ ", " * before.all 'output.state := +} + + +FUNCTION {date.block} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.and} +{ "\&"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "MA thesis" } + +FUNCTION {bbl.phdthesis} +{ "dissertation" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {bibinfo.check} +{ swap$ + duplicate$ missing$ + { + pop$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ pop$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + pop$ + } + if$ + } + if$ +} +FUNCTION {format.url} +{ url empty$ + { "" } + { "\urlprefix\url{" url * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + + +STRINGS { bibinfo} + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + duplicate$ #1 > + { "{ff~}{vv~}{ll}{, jj}" } + { "{vv~}{ll}{, ff}{, jj}" } + if$ + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names +} +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { + " " * + get.bbl.editor + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.doi} +{ doi "doi" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "\doi{" swap$ * "}" * + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + } + if$ +} + +FUNCTION {format.title} +{ title + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {format.full.names} +{'s := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.full + { type$ "proceedings" = + 'editor.key.full + 'author.key.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[{" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.in capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + after.sentence 'output.state := +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + "t" change.case$ + emphasize + } + if$ +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { add.comma bbl.volume volume tie.or.space.prefix + "volume" bibinfo.check * * + } + if$ +} +FUNCTION {format.number.series} + { number empty$ + { series field.or.null } + { series empty$ + { number "number" bibinfo.check } + { add.blank "(" * + series "series" bibinfo.check * + number tie.or.space.prefix "number" bibinfo.check * + ")" * + } + if$ + } + if$ + } +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + output.state mid.sentence = + { "l" } + { "t" } + if$ change.case$ + "edition" bibinfo.check + " " * bbl.edition * + } + if$ +} +INTEGERS { multiresult } +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { duplicate$ multi.page.check + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ". " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ 'skip$ + { + ". " * + } + if$ + swap$ * + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + number "number" bibinfo.check duplicate$ empty$ 'skip$ + { + swap$ duplicate$ empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + swap$ + "(" swap$ * ")" * + } + if$ * + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + "t" change.case$ + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * "), " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {format.thesis.type} +{ type duplicate$ empty$ + 'pop$ + { swap$ pop$ + "t" change.case$ "type" bibinfo.check + } + if$ +} +FUNCTION {format.tr.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ bbl.techrep } + 'skip$ + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ "t" change.case$ } + { tie.or.space.prefix * * } + if$ +} +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + } + if$ +} +FUNCTION {format.publisher.address} +{ publisher "publisher" bibinfo.warn format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization "organization" bibinfo.check format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + new.block + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + new.sentence + format.number.series output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + add.comma + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + add.comma + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + address "address" bibinfo.check output + school "school" bibinfo.warn output + bbl.mthesis format.thesis.type output.nonnull + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + format.doi output + new.block + format.note output + new.block + format.url output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + address "address" bibinfo.check output + add.colon + school "school" bibinfo.warn output + bbl.phdthesis format.thesis.type output.nonnull + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + new.sentence + format.number.series output + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.doi output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.doi output + new.block + format.note "note" output.check + new.block + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } +READ +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} +INTEGERS { len } +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {format.lab.names} +{ 's := + "" 't := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} +SORT +STRINGS { last.label next.extra } +INTEGERS { last.extra.num number.label } +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'number.label := +} +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { year field.or.null #-1 #1 substring$ chr.to.int$ #65 < + { "{\natexlab{" swap$ * "}}" * } + { "{(\natexlab{" swap$ * "})}" * } + if$ } + if$ + 'extra.label := + label extra.label * 'label := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {bib.sort.order} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {bib.sort.order} +SORT +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\providecommand{\urlprefix}{}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else" + write$ newline$ + " \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} |