Integrated \NAT@citex and \NAT@parse@date
[latex-mlastyle.git] / mlastyle.dtx
index 573dab48c84453d810dcd5f5cb3a5f8b4a5e4f04..5ce986d15d17cf695f2251fae1bb1f6530700d56 100644 (file)
@@ -22,6 +22,8 @@
 %
 %<*driver>
 \begin{filecontents}{mlastyle.bib}
+@PREAMBLE{"\def\BibTex{\rmfamily B\kern -.05em\textsc {i\kern -.025emb}\kern -.08emT\kern -.1667em\lower .7ex\hbox {E}\kern -.125emX}"}
+
 @BOOK{handbook,
   AUTHOR = "Joseph Gibaldi",
   TITLE = "MLA Handbook for Writers of Research Papers",
 
 @BOOK{latexdps,
   AUTHOR = "Leslie Lamport",
-  TITLE = "\LaTeX: A Document Preparation System",
-  KEY = "\LaTeX",
+  TITLE = "{\LaTeX}: A Document Preparation System",
+  KEY = "{\LaTeX}",
   EDITION = "Second",
   ADDRESS = "Reading",
   PUBLISHER = "Addison-Wesley",
   YEAR = "1994"}
 
 @MANUAL{lshort,
-  author  = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth 
-Schlegl},
-  title   = {The Not So Short Introduction to {\LaTeXe}},
-  year    = 2000,
-  month   = "11~"#dec,
-  version = {4.0},
-  url     = {CTAN://info/lshort/}
-}
+  AUTHOR  = "Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth 
+Schlegl",
+  TITLE   = "The Not So Short Introduction to {\LaTeXe}",
+  KEY     = "Not So Short",
+  YEAR    = "2000",
+  MONTH   = dec,
+  VERSION = "4.0",
+  ACCESSDATE = "1~"#nov#"~2003",
+  URL     = "CTAN://info/lshort/"}
+
+@MANUAL{btxdoc,
+  AUTHOR  = "Oren Patashnik",
+  TITLE   = "{\BibTex ing}",
+  YEAR    = "1988",
+  MONTH   = feb,
+  ACCESSDATE = "1~"#nov#"~2003",
+  URL     = "CTAN://biblio/bibtex/distribs/doc/btxdoc.tex"}
 \end{filecontents}
 \documentclass[draft]{ltxdoc}
 \iffalse
@@ -58,18 +69,26 @@ Schlegl},
   \addtolength{\textwidth}{-1in}
   \addtolength{\headwidth}{-1in}
 \else
+  \IfFileExists{natbib.sty}{
+    \usepackage{natbib}
+    \citeindextrue
+    \bibpunct{[}{]}{,}{n}{}{,}%{
+    \bibliographystyle{plainnat}}
+    {\bibliographystyle{plain}}
+  \IfFileExists{url.sty}{\usepackage{url}}{}
   \usepackage[compat]{mlastyle}
-  \bibliographystyle{plain}
-  \addtolength{\headsep}{-5pt}
+  %\addtolength{\headsep}{-5pt}
   %\addtolength{\headheight}{-12pt}
-  \addtolength{\topmargin}{-17pt}
-  \addtolength{\textheight}{22pt}
+  %\addtolength{\topmargin}{-17pt}
+  %\addtolength{\textheight}{22pt}
   \IfFileExists{ulem.sty}{\usepackage[normalem]{ulem}}{\let\uline\emph}
 \fi
 \IfFileExists{times.sty}%
 {\newcommand{\examp}[2][]{{\let\emph\uline\fontfamily{ptm}\selectfont##2}##1}}%
 {\newcommand{\examp}[2][]{``##2##1''}}
 
+{\makeatletter\gdef\NAT@MLA#1{#1}\gdef\NAT@idxtxt
+{\expandafter\NAT@MLA\NAT@name{} \NAT@open\NAT@num\NAT@close}}
 \EnableCrossrefs
 \CodelineIndex
 \RecordChanges
@@ -104,56 +123,77 @@ Schlegl},
 %
 % \GetFileInfo{mlastyle.sty}
 %
-% \DoNotIndex{\ }
-% \DoNotIndex{\.}
-% \DoNotIndex{\@afterindentfalse}
-% \DoNotIndex{\@afterindenttrue}
+% \makeatletter ^^A Get |\ | out of my index, damn it!
+% \def\DoNotIndex{\begingroup \MakePrivateLetters
+% \catcode`\\12
+% \catcode`\ 12
+% \do@not@index}
+% \index@excludelist{\ }
+% \makeatother
+% \DoNotIndex{\ ,\:,\/,\.}
+% \DoNotIndex{\@afterindentfalse,\@afterindenttrue}
 % \DoNotIndex{\@arabic}
 % \DoNotIndex{\@author}
 % \DoNotIndex{\@auxout}
-% \DoNotIndex{\@citea}
-% \DoNotIndex{\@citeb}
+% \DoNotIndex{\@biblabel,\@citea,\@citeb,\@citex}
 % \DoNotIndex{\@date}
 % \DoNotIndex{\@empty}
-% \DoNotIndex{\@firstofone}
 % \DoNotIndex{\@for}
-% \DoNotIndex{\@ifundefined}
+% \DoNotIndex{\@ifnextchar,\@ifstar,\@ifundefined}
 % \DoNotIndex{\@latex@warning}
 % \DoNotIndex{\@listI}
-% \DoNotIndex{\@listi}
-% \DoNotIndex{\@listii}
-% \DoNotIndex{\@listiii}
-% \DoNotIndex{\@listiv}
-% \DoNotIndex{\@listv}
-% \DoNotIndex{\@listvi}
+% \DoNotIndex{\@listi,\@listii,\@listiii}
+% \DoNotIndex{\@listiv,\@listv,\@listvi}
+% \DoNotIndex{\@m}
+% \DoNotIndex{\@noitemerr}
+% \DoNotIndex{\@setfontsize}
 % \DoNotIndex{\@startsection}
 % \DoNotIndex{\@tempswafalse}
 % \DoNotIndex{\@title}
 % \DoNotIndex{\@undefined}
+% \DoNotIndex{\@xiipt}
+% \DoNotIndex{\@width,\@height,\@depth}
+% \DoNotIndex{\@minus,\@plus}
 % \DoNotIndex{\DeclareOption}
 % \DoNotIndex{\ExecuteOptions}
 % \DoNotIndex{\G@refundefinedtrue}
+% \DoNotIndex{\NAT@@citetp,\NAT@citetp,\NAT@ctype,\NAT@date,\NAT@sep}
+% \DoNotIndex{\hyper@natlinkbreak,\hyper@natlinkend,\hyper@natlinkstart}
+% \DoNotIndex{\@citec,\@extra@b@citeb,\@firstofone,\@namedef}
+% \DoNotIndex{\NAT@@close,\NAT@@open,\NAT@alias,\NAT@all@names,\NAT@aysep}
+% \DoNotIndex{\NAT@cite@list,\NAT@citeundefined,\NAT@cmt,\NAT@exlab}
+% \DoNotIndex{\NAT@last@nm,\NAT@last@yr,\NAT@name,\NAT@nm,\NAT@nmfmt}
+% \DoNotIndex{\NAT@parse,\NAT@sort@cites,\NAT@temp,\NAT@year,\NAT@yrsep}
+% \DoNotIndex{\ifNAT@par,\ifNAT@swa,\ifNAT@full,\ifNAT@longnames}
+% \DoNotIndex{\PackageWarning,\PackageWarningNoLine,\MessageBreak}
 % \DoNotIndex{\ProcessOptions}
 % \DoNotIndex{\RequirePackage}
 % \DoNotIndex{\UL@start,\UL@stop}
+% \DoNotIndex{\url@samestyle,\urlstyle,\UrlBigBreaks,\UrlBreakPenalty}
+% \DoNotIndex{\do@url@hyp}
+% \DoNotIndex{\abovedisplayskip,\abovedisplayshortskip}
+% \DoNotIndex{\belowdisplayshortskip,\belowdisplayskip}
 % \DoNotIndex{\addtolength}
 % \DoNotIndex{\advance}
 % \DoNotIndex{\baselineskip}
+% \DoNotIndex{\bibpreamble,\bibpunct,\bibsep}
 % \DoNotIndex{\begin}
 % \DoNotIndex{\bfseries}
+% \DoNotIndex{\bgroup,\egroup,\begingroup,\endgroup}
 % \DoNotIndex{\c@enumiv}
 % \DoNotIndex{\catcode}
 % \DoNotIndex{\centering}
 % \DoNotIndex{\centerline}
 % \DoNotIndex{\chapter}
 % \DoNotIndex{\citation}
+% \DoNotIndex{\citet,\citep}
 % \DoNotIndex{\clearpage}
+% \DoNotIndex{\color@begingroup,\color@endgroup}
 % \DoNotIndex{\csname}
 % \DoNotIndex{\day}
 % \DoNotIndex{\def}
 % \DoNotIndex{\do}
 % \DoNotIndex{\edef}
-% \DoNotIndex{\egroup}
 % \DoNotIndex{\else}
 % \DoNotIndex{\end}
 % \DoNotIndex{\endcsname}
@@ -166,34 +206,42 @@ Schlegl},
 % \DoNotIndex{\fi}
 % \DoNotIndex{\futurelet}
 % \DoNotIndex{\gdef}
+% \DoNotIndex{\global}
+% \DoNotIndex{\hbox,\hfill,\hrule}
 % \DoNotIndex{\hangindent}
-% \DoNotIndex{\headrulewidth}
+% \DoNotIndex{\headrulewidth,\footrulewidth}
+% \DoNotIndex{\ignorespaces}
 % \DoNotIndex{\if@filesw}
 % \DoNotIndex{\if@tempswa}
-% \DoNotIndex{\ifcase}
+% \DoNotIndex{\if,\ifcase,\ifcat,\ifdim,\ifhmode,\ifnum,\ifx}
 % \DoNotIndex{\ifmlastyle@bibstyle}
 % \DoNotIndex{\ifmlastyle@format}
+% \DoNotIndex{\ifmlastyle@pages}
 % \DoNotIndex{\ifmlastyle@papersize}
 % \DoNotIndex{\ifmlastyle@style}
 % \DoNotIndex{\ifmlastyle@times}
 % \DoNotIndex{\ifmlastyle@underline}
-% \DoNotIndex{\ifx}
 % \DoNotIndex{\immediate}
+% \DoNotIndex{\insert,\insertpenalties}
 % \DoNotIndex{\item}
 % \DoNotIndex{\itemindent}
 % \DoNotIndex{\itemsep}
-% \DoNotIndex{\labelsep}
-% \DoNotIndex{\labelwidth}
+% \DoNotIndex{\kern}
+% \DoNotIndex{\labelsep,\labelwidth}
+% \DoNotIndex{\lastname,\citeN}
+% \DoNotIndex{\leaders}
 % \DoNotIndex{\leavevmode}
 % \DoNotIndex{\leftmargin}
 % \DoNotIndex{\leftmargini,\leftmarginii,\leftmarginiii}
 % \DoNotIndex{\leftmarginiv,\leftmarginv,\leftmarginvi}
-% \DoNotIndex{\let}
+% \DoNotIndex{\let,\long}
 % \DoNotIndex{\linespread}
 % \DoNotIndex{\list}
 % \DoNotIndex{\listparindent}
+% \DoNotIndex{\mathchardef}
 % \DoNotIndex{\makeenmark}
 % \DoNotIndex{\mbox}
+% \DoNotIndex{\ml@}
 % \DoNotIndex{\mlastyle@bibstylefalse}
 % \DoNotIndex{\mlastyle@bibstyletrue}
 % \DoNotIndex{\mlastyle@cite}
@@ -202,13 +250,18 @@ Schlegl},
 % \DoNotIndex{\mlastyle@formattrue}
 % \DoNotIndex{\mlastyle@instructor}
 % \DoNotIndex{\mlastyle@intbib}
+% \DoNotIndex{\mlastyle@intnfs}
+% \DoNotIndex{\mlastyle@pagesfalse}
+% \DoNotIndex{\mlastyle@pagestrue}
 % \DoNotIndex{\mlastyle@papersizefalse}
 % \DoNotIndex{\mlastyle@papersizetrue}
+% \DoNotIndex{\mlastyle@prevsplit}
 % \DoNotIndex{\mlastyle@qspread}
 % \DoNotIndex{\mlastyle@sl@sh}
 % \DoNotIndex{\mlastyle@slash}
 % \DoNotIndex{\mlastyle@slashnext}
 % \DoNotIndex{\mlastyle@slashx}
+% \DoNotIndex{\mlastyle@star}
 % \DoNotIndex{\mlastyle@stylefalse}
 % \DoNotIndex{\mlastyle@styletrue}
 % \DoNotIndex{\mlastyle@surname}
@@ -216,9 +269,11 @@ Schlegl},
 % \DoNotIndex{\mlastyle@timestrue}
 % \DoNotIndex{\mlastyle@underlinefalse}
 % \DoNotIndex{\mlastyle@underlinetrue}
+% \DoNotIndex{\mlastyle@urldate}
 % \DoNotIndex{\month}
 % \DoNotIndex{\newblock}
 % \DoNotIndex{\newcommand}
+% \DoNotIndex{\newdimen}
 % \DoNotIndex{\newenvironment}
 % \DoNotIndex{\newif}
 % \DoNotIndex{\newpage}
@@ -233,12 +288,15 @@ Schlegl},
 % \DoNotIndex{\parindent}
 % \DoNotIndex{\parsep}
 % \DoNotIndex{\penalty}
+% \DoNotIndex{\protected@xdef}
 % \DoNotIndex{\relax}
+% \DoNotIndex{\relpenalty}
 % \DoNotIndex{\renewcommand}
 % \DoNotIndex{\renewenvironment}
-% \DoNotIndex{\reset@font}
 % \DoNotIndex{\rhead}
-% \DoNotIndex{\selectfont}
+% \DoNotIndex{\reset@font,\selectfont}
+% \DoNotIndex{\rule,\strut,\strutbox}
+% \DoNotIndex{\splittopskip}
 % \DoNotIndex{\setlength}
 % \DoNotIndex{\settowidth}
 % \DoNotIndex{\sfcode}
@@ -246,19 +304,22 @@ Schlegl},
 % \DoNotIndex{\sloppy}
 % \DoNotIndex{\space}
 % \DoNotIndex{\string}
-% \DoNotIndex{\sw@llow}
 % \DoNotIndex{\the}
 % \DoNotIndex{\thebibliography}
 % \DoNotIndex{\thepage}
 % \DoNotIndex{\topsep}
 % \DoNotIndex{\usecounter}
-% \DoNotIndex{\vskip}
+% \DoNotIndex{\unskip}
+% \DoNotIndex{\vbox,\vskip,\vss}
+% \DoNotIndex{\xdef}
 % \DoNotIndex{\write}
 % \DoNotIndex{\year}
 % \DoNotIndex{\z@}
+% \DoNotIndex{\footnotesep,\footins,\@finalstrut,\@makefnmark}
+% \DoNotIndex{\bibhang}
 % \DoNotIndex{\evensidemargin}
 % \DoNotIndex{\headheight}
-% \DoNotIndex{\headsep}
+% \DoNotIndex{\headsep,\footskip}
 % \DoNotIndex{\hoffset}
 % \DoNotIndex{\marginparwidth}
 % \DoNotIndex{\oddsidemargin}
@@ -412,13 +473,13 @@ Schlegl},
 %
 %\bibitem[Lamport]{latexdps}
 %Lamport, Leslie.
-%\newblock {\em \LaTeX: A Document Preparation System}.
+%\newblock \emph{\LaTeX: A Document Preparation System}.
 %\newblock 2nd.~ed.
 %\newblock Reading: Addison-Wesley, 1994.
 %
 %\end{thebibliography}\end{verbatim}
 % In this example, |Lamport| is the author's last name (for use in
-% citations) and |latex| is the marker used to reference it (see
+% citations) and |latexdps| is the marker used to reference it (see
 % section~\ref{sec:parenthetical}).
 %
 % For information on automatically generating the list of works cited with
@@ -435,7 +496,7 @@ Schlegl},
 % |\cite|\oarg{pages}|{|\meta{marker
 % 1}\texttt{,}\penalty\exhyphenpenalty\meta{marker 2}\ldots|}|; however, page
 % numbers can currently be specified only for the last referenced source.
-% To work around this limitation, use |\citeN|, explained below.
+% To work around this limitation, use |\citealp|, explained below.
 %
 % Three additional citation commands are provided, all of which take the
 % same arguments as |\cite|.  To omit the author information from the
@@ -443,10 +504,10 @@ Schlegl},
 % citations---those of the format \examp{(qtd. in Pope
 % \pageref{sec:italics})}---can be
 % created with \DescribeMacro{\citeindirect}|\citeindirect|.  Finally, the
-% parentheses are omitted by \DescribeMacro{\citeN}|\citeN|.  This was
+% parentheses are omitted by \DescribeMacro{\citealp}|\citealp|.  This was
 % intended for use in cross references, but it can also help in citing
 % multiple works.  The result of
-% |(\citeN[42]{texbook}|\texttt{; }|\citeN[69]{latexdps})|
+% |(\citealp[42]{texbook}|\texttt{; }|\citealp[69]{latexdps})|
 % would be something like \examp[.]{(Knuth 42; Lamport 69)}
 %
 % \subsubsection{Using {\rm \BibTeX}} \label{sec:bibtex}
@@ -460,8 +521,9 @@ Schlegl},
 % and \Lopt{style} modes and a bibliography style of |plain| in
 % \Lopt{format} and \Lopt{compat} modes.
 %
-% Use of \BibTeX{} is also beyond the scope of this document; instead,
-% another example is provided.  To use it, substitute
+% Use of \BibTeX{} is also beyond the scope of this document; consult
+% Patashnik\citeC{btxdoc} for an introduction.
+% Briefly, to use the following example, substitute
 % |\bibliography|\marg{filename} for the |thebibliography| environment.
 % Then create \meta{filename}\file{.bib} with the contents below.
 % Generating the document entails running \file{latex} on the \file{.tex}
@@ -470,8 +532,8 @@ Schlegl},
 %\begin{verbatim}
 %@BOOK{latexdps,
 %  AUTHOR = "Leslie Lamport",
-%  TITLE = "\LaTeX: A Document Preparation System",
-%  KEY = "\LaTeX",
+%  TITLE = "{\LaTeX}: A Document Preparation System",
+%  KEY = "{\LaTeX}",
 %  EDITION = "Second",
 %  ADDRESS = "Reading",
 %  PUBLISHER = "Addison-Wesley",
@@ -550,16 +612,6 @@ Schlegl},
   \fi
 \fi % \ifmlastyle@papersize
 %    \end{macrocode}
-% If the \Lopt{bibstyle} option is set, specify the bibliography style.
-%    \begin{macrocode}
-\ifmlastyle@bibstyle
-  \ifmlastyle@style
-    \bibliographystyle{mlastyle}
-  \else
-    \bibliographystyle{plain}
-  \fi
-\fi % \ifmlastyle@bibstyle
-%    \end{macrocode}
 % \begin{macro}{\UL@onin}
 % Load the \package{ulem} package if the \Lopt{underline} option is set.
 % By default, \package{ulem} does multiple underlining for nested
@@ -597,17 +649,301 @@ Schlegl},
 % Define the surname, along with an obsolete synonym.
 %    \begin{macrocode}
 \def\surname#1{\gdef\mlastyle@surname{#1}}
-\def\mlastyle@surname{\def\sw@llow##1 {}\expandafter\sw@llow\@author}
+\def\mlastyle@surname{\def\ml@##1 ##2,##3@@{##2}%
+  \def\and##1 {\unskip, }\expandafter\ml@\@author, ,@@}
 \let\lastname\surname
 %    \end{macrocode}
 % \end{macro}
+% \begin{macro}{\urldate}
+% \begin{macro}{\theurldate}
+% These next two respectively set and get the default access date for URLs
+% in the works cited.
+%    \begin{macrocode}
+\def\urldate#1{\gdef\mlastyle@urldate{#1}}
+\def\theurldate{\mlastyle@urldate}
+\let\mlastyle@urldate\@date
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \subsection{Style}
+% \begin{macro}{\bibstyle@mlastyle}
+% This first block is the beginnings of an implementation for
+% \package{natbib}.  (Surely there is a better way to do this.)
+%    \begin{macrocode}
+\newcommand{\bibstyle@mlastyle}{%
+  \bibpunct[ ]{(}{)}{;}{a}{,}{,}
+  \@ifundefined{chapter}
+  {\gdef\refname{Works Cited}}
+  {\gdef\bibname{Works Cited}}}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\NAT@citex}
+% The year field is normally empty but contains the title field if it is
+% needed.  This is handled inconsistantly by \package{natbib}, so it is
+% fixed up here.
+%    \begin{macrocode}
+\RequirePackage{natbib}
+\def\NAT@citex
+  [#1][#2]#3{%
+  \NAT@sort@cites{#3}%
+  \let\@citea\@empty
+  \let\@citec\@empty
+  \ifNAT@swa
+  \if*#1*\if*#2*\def\@citea{\def\@citec{\NAT@@close}\NAT@@open}\else
+  \NAT@@open\def\@citea{\def\@citec
+  {\NAT@cmt#2\NAT@@close}}\def\@citec{#2\NAT@@close}\fi\else
+  \NAT@@open#1\ \if*#2*\def\@citec{\unskip\NAT@@close}\else
+      \def\@citec{#2\NAT@@close}\def\@citea{\def\@citec
+      {\NAT@cmt#2\NAT@@close}}\fi\fi
+  \fi
+  \let\NAT@nm\@empty\let\NAT@year\@empty
+    \@for\@citeb:=\NAT@cite@list\do
+    {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+     \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
+       {\reset@font\bfseries ?}\NAT@citeundefined
+                 \PackageWarning{natbib}%
+       {Citation `\@citeb' on page \thepage \space undefined}%
+       \def\NAT@date{}}%
+     {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
+     \NAT@parse{\@citeb}%
+      \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
+        \let\NAT@name=\NAT@all@names
+        \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
+      \fi
+     \ifNAT@full\let\NAT@nm\NAT@all@names\else
+       \let\NAT@nm\NAT@name\fi
+     \ifNAT@swa\ifcase\NAT@ctype
+       \if*\NAT@date*
+         \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@nmfmt{\NAT@nm}\NAT@date\hyper@natlinkend
+       \else
+         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+         \ifx\NAT@last@yr\@empty\let\NAT@last@yr\relax\fi
+            \ifx\NAT@last@yr\NAT@year
+              \def\NAT@temp{{?}}%
+              \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
+              {Multiple citation on page \thepage: same authors and
+               year\MessageBreak without distinguishing extra
+               letter,\MessageBreak appears as question mark}\fi
+              \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+              \hyper@natlinkend
+            \else\unskip
+            \ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+              \hyper@natlinkend
+            \fi
+         \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+           \NAT@nmfmt{\NAT@nm}%
+           \hyper@natlinkbreak{\NAT@aysep\ }{\@citeb\@extra@b@citeb}%
+           \NAT@date\hyper@natlinkend
+         \fi
+       \fi
+       \def\@citea{\NAT@sep\ }%
+     \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+         \def\@citea{\NAT@sep\ }%
+     \or\if*\NAT@date*\else
+         \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@date\hyper@natlinkend
+         \def\@citea{\NAT@sep\ }\fi
+     \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@alias\hyper@natlinkend
+         \def\@citea{\NAT@sep\ }%
+     \fi
+     \else\ifcase\NAT@ctype
+        \if*\NAT@date*
+          \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+          \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+          \if*#1*\def\@citea{\NAT@sep\ }%
+            \if*#2*\let\@citec\@empty\else
+            \def\@citec{\ \NAT@@open#2\NAT@@close}\fi
+            \else\ \NAT@@open\def\@citea{\NAT@@close\NAT@sep\ }
+            \if*#2*\def\@citec{\NAT@@close}\else
+            \def\@citec{\ #2\NAT@@close}\fi\fi
+        \else
+         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+            \ifx\NAT@last@yr\NAT@year
+              \def\NAT@temp{{?}}%
+              \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
+              {Multiple citation on page \thepage: same authors and
+               year\MessageBreak without distinguishing extra
+               letter,\MessageBreak appears as question mark}\fi
+              \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+              \hyper@natlinkend
+            \else\unskip
+            \ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+              \hyper@natlinkend
+            \fi
+         \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+           \NAT@nmfmt{\NAT@nm}%
+           \hyper@natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}%
+              {\@citeb\@extra@b@citeb}%
+           \NAT@date\hyper@natlinkend\fi
+         \if*#2*\def\@citec{\NAT@@close}\else
+         \def\@citec{\NAT@cmt#2\NAT@@close}\fi
+         \def\@citea{\NAT@@close\NAT@sep\ }%
+        \fi
+       \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+         \if*#2*\let\@citec\@empty\else
+         \def\@citec{ \NAT@@open#2\NAT@@close}\fi
+         \def\@citea{\NAT@sep\ }%
+       \or\if*\NAT@date*\else\@citea
+         \NAT@@open
+         \def\@citea{\NAT@@close\NAT@sep\ }%
+         \if*#2*\def\@citec{\NAT@@close}\else
+         \def\@citec{\NAT@cmt#2\NAT@@close}\fi
+         \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@date\hyper@natlinkend\fi
+       \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+         \NAT@alias\hyper@natlinkend
+         \def\@citea{\NAT@sep\ }%
+       \fi
+     \fi
+     }}%
+     \@citec\ifhmode\unskip\fi\endgroup}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\NAT@parse@date}
+% |\NAT@parse@date| fails if the date contains a control sequence, so it
+% is also redefined.
+%    \begin{macrocode}
+\def\NAT@parse@date#1#2#3#4#5#6@@{%
+  \ifcat\relax#1\def\NAT@year{}\def\NAT@exlab{}\else
+  \ifcat a#1\def\NAT@year{}\def\NAT@exlab{#1}\else
+  \ifcat a#2\def\NAT@year{#1}\def\NAT@exlab{#2}\else
+  \ifcat a#3\def\NAT@year{#1#2}\def\NAT@exlab{#3}\else
+  \ifcat a#4\def\NAT@year{#1#2#3}\def\NAT@exlab{#4}\else
+    \def\NAT@year{#1#2#3#4}\def\NAT@exlab{{#5}}\fi\fi\fi\fi\fi}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\cite}
+% \begin{macro}{\citealp}
+% ^^A\begin{macro}{\citepage}
+% ^^A\begin{macro}{\citequote}
+% The following macros, combined with \file{mlastyle.bst}, provide
+% for a bibliography in MLA style.  Note that the definition of |\cite|,
+% |\citealp|, etc.\ vary depending on the options passed to
+% \package{mlastyle}.
+%
+% \begin{macro}{\mlastyle@intcite}
+% The original |\cite| is stored
+% in |\mlastyle@intcite|.
+%    \begin{macrocode}
+%\let\mlastyle@intcite\cite
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mlastyle@relax}
+% This macro does nothing.  Depending on the options, either |\citeC| or
+% |\citeM| and its ilk will utilize it.
+%    \begin{macrocode}
+\newcommand{\mlastyle@relax}[2][]{\unskip}
+%    \end{macrocode}
+% \end{macro}
+% \subsubsection{MLA Style}
+% \begin{macro}{\citeM}
+% If the \Lopt{mla} or \Lopt{style} options are used, the following is
+% executed.
+%    \begin{macrocode}
+\ifmlastyle@style
+%    \end{macrocode}
+% If the \Lopt{bibstyle} option is set, specify the bibliography style.
+%    \begin{macrocode}
+  \ifmlastyle@bibstyle
+    \bibliographystyle{mlastyle}
+  \fi
+%    \end{macrocode}
+% \end{macro}
+%    \begin{macrocode}
+  \let\cite\citep
+  \let\mlastyle@citequeue\@empty
+  \def\mlastyle@cite#1#2#3{\csname#1\endcsname[#2]{#3}}
+  \newcommand\citeflush{\ifhmode\unskip\fi
+    \ifx\mlastyle@citequeue\@empty\else\ \let\@citea\relax
+    \citetext{\@for\@citeb:=\mlastyle@citequeue\do{\@citea
+    \expandafter\mlastyle@cite\@citeb\def\@citea{\NAT@sep\ }}}%
+    \global\let\mlastyle@citequeue\@empty\fi}
+  \newcommand\mlastyle@citeadd[3]{\ifx\mlastyle@citequeue\@empty
+    \xdef\mlastyle@citequeue{{#1}{#2}{#3}}\else
+    \xdef\mlastyle@citequeue{\mlastyle@citequeue,%
+    {#1}{#2}{#3}}\fi}
+  \newcommand\citeadd[2][]{\mlastyle@citeadd{citealp}{#1}{#2}}
+  \newcommand\citea{\@ifstar
+    {\let\mlastyle@star*\mlastyle@citea}
+    {\let\mlastyle@star\@empty\mlastyle@citea}}
+  \newcommand\mlastyle@citea[2][]{\expandafter\citeauthor
+    \mlastyle@star{#2}\mlastyle@citeadd{citeyear}{#1}{#2}}
+  \newcommand\Citea{\@ifstar
+    {\let\mlastyle@star*\mlastyle@Citea}
+    {\let\mlastyle@star\@empty\mlastyle@Citea}}
+  \newcommand\mlastyle@Citea[2][]{\expandafter\Citeauthor
+    \mlastyle@star{#2}\mlastyle@citeadd{citeyear}{#1}{#2}}
+  \newcommand\citepage[2][]{\citeyearpar[#1]{#2}}
+  \newcommand\citepageM[2][]{\unskip\ \citeyearpar[#1]{#2}}
+  \newcommand\citeindirect[2][]{\citep[qtd.\ in][#1]{#2}}
+  \newcommand\citeindirectM[2][]{\unskip{} \citep[qtd.\ in][#1]{#2}}
+  \let\citeN\citealp
+  \let\citeC\mlastyle@relax
+%    \end{macrocode}
+% \subsubsection{Plain Style}
+% \begin{macro}{\citeC}
+% This next block is used if the \Lopt{compat} or \Lopt{format} option is
+% set.
+%    \begin{macrocode}
+\else
+%    \end{macrocode}
+% If the \Lopt{bibstyle} option is set, specify the bibliography style.
+%    \begin{macrocode}
+  \ifmlastyle@bibstyle
+    \bibliographystyle{plain}
+  \fi
+  \ifx\@undefined\citet
+    \newcommand{\mlastyle@cite}[2][]{\@tempswafalse\@citex[]{#2}}
+    \newcommand{\citeC}[2][]{~\@tempswafalse\@citex[]{#2}}
+  \else
+    \newcommand{\mlastyle@cite}[2][]{\citep[]{#2}}
+    \def\citeC{ \citep}
+  \fi
+  \let\cite\mlastyle@cite
+  \let\citepage\mlastyle@cite
+  \let\citeindirect\mlastyle@cite
+  \let\citeM\mlastyle@relax
+  \let\citepageM\mlastyle@relax
+  \let\citeindirectM\mlastyle@relax
+\fi
+%    \end{macrocode}
+% \end{macro}
+%
+% ^^A\end{macro}
+% ^^A\end{macro}
+% \end{macro}
+% \end{macro}
 % \subsection{Formatting}
-% Formatting is done if the \Lopt{mla} or \Lopt{format} option is set.
+% \begin{macro}{\urlstyle@mlastyle}
+% This first bit is always done, even if formatting is disabled.
+%    \begin{macrocode}
+\RequirePackage{url}
+\def\url@mlastyle{\url@samestyle
+  \mathchardef\UrlBreakPenalty 0
+  \relpenalty\UrlBreakPenalty
+  \def\UrlBigBreaks{\do\/\do@url@hyp}
+}
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\mlastyle@i}
+% This is the standard MLA format indent.
+%    \begin{macrocode}
+  \newdimen\mlastyle@i \mlastyle@i=.5in
+%    \end{macrocode}
+% \end{macro}
+% Everything else is done only if the \Lopt{mla} or \Lopt{format} option
+% is set.
 %    \begin{macrocode}
 \ifmlastyle@format
 %    \end{macrocode}
 % \subsubsection{Macros}
 % \begin{macro}{\maketitle}
+% \begin{macro}{\and}
 % |\maketitle| generates a heading in MLA format.
 %    \begin{macrocode}
   \renewcommand{\maketitle}{\begin{flushleft}
@@ -617,8 +953,10 @@ Schlegl},
     \@date\end{flushleft}
     \begin{center}\@title\end{center}\par
   }
+  \let\and\par
 %    \end{macrocode}
 % \end{macro}
+% \end{macro}
 % \begin{macro}{\today}
 % |\today| is redefined to DD~Mon.~YYYY format.
 %    \begin{macrocode}
@@ -628,14 +966,14 @@ Schlegl},
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\slash}
-% No penalty for |\slash|, and plain /'s permit line breaks if necessary.
+% No penalty for |\slash|.
 % ^^A\let\mlastyle@sl@sh=/
 %    \begin{macrocode}
-  \def\slash{/\penalty\z@}
-  \def\mlastyle@slash{/\futurelet\mlastyle@slashnext\mlastyle@slashx}
-  \def\mlastyle@slashx{\ifx\mlastyle@slashnext/\else
-    \penalty\exhyphenpenalty\fi}
+  \edef\slash{/\penalty\z@}
 %    \end{macrocode}
+% ^^A \def\mlastyle@slash{/\futurelet\mlastyle@slashnext\mlastyle@slashx}
+% ^^A \def\mlastyle@slashx{\ifx\mlastyle@slashnext/\else
+% ^^A  \penalty\exhyphenpenalty\fi}
 % \end{macro}
 % \begin{macro}{\section}
 % \begin{macro}{\subsection}
@@ -662,7 +1000,7 @@ Schlegl},
 % Indented 1 inch, with an additional .25 inch hanging indent.
 %    \begin{macrocode}
   \renewenvironment{verse}{\list{}{\mlastyle@qspread
-    \advance\leftmargin.75in\itemindent-.25in
+    \advance\leftmargin1.5\mlastyle@i\itemindent-.5\mlastyle@i
     \listparindent\itemindent}\item\relax}{\endlist}
 %    \end{macrocode}
 % \end{environment}
@@ -670,7 +1008,7 @@ Schlegl},
 % Indented 1 inch, with a paragraph indent of an additional .25 inches.
 %    \begin{macrocode}
   \renewenvironment{quotation}{\list{}{\mlastyle@qspread
-    \advance\leftmargin.5in\itemindent.25in
+    \advance\leftmargin\mlastyle@i\itemindent.5\mlastyle@i
     \listparindent\itemindent}\item\relax}{\endlist}
 %    \end{macrocode}
 % \end{environment}
@@ -679,49 +1017,51 @@ Schlegl},
 % indented.
 %    \begin{macrocode}
   \renewenvironment{quote}{\list{}{\mlastyle@qspread
-    \advance\leftmargin.5in
-    \listparindent.25in}\item\relax}{\endlist}
+    \advance\leftmargin\mlastyle@i
+    \listparindent.5\mlastyle@i}\item\relax}{\endlist}
 %    \end{macrocode}
 % \end{environment}
 % \begin{environment}{workscited}
+% \begin{macro}{\bibent}
 % Works cited environment, for compatibility with \package{mla-paper}.
 %    \begin{macrocode}
   \newenvironment{workscited}%
     {\newpage{\centerline{Works Cited}}}{\newpage}
-  \newcommand{\bibent}{\noindent \hangindent .5in}
+  \newcommand{\bibent}{\noindent\hangindent\mlastyle@i}
 %    \end{macrocode}
+% \end{macro}
 % \end{environment}
 % \subsubsection{Margins}
 % Top and bottom margins are 1 inch each.  The header is flush with the
-% right margin at .5 inches from the top of the page.
+% right margin, .5 inches from the top of the page.
 % ^^A\addtolength{\headheight}{-1pt}
 % ^^A\setlength{\headheight}{1.4\headheight}% kludge
 %    \begin{macrocode}
-  \addtolength{\voffset}{-0.5in}
+  \addtolength{\voffset}{-.5in}
   \setlength{\textheight}{\paperheight}
   \addtolength{\textheight}{-2in}
   \setlength{\topmargin}{0in}
   \setlength\headheight\f@baselineskip
-  \setlength{\headsep}{0.5in}
+  \setlength{\headsep}{.5in}
   \addtolength{\headsep}{-\headheight}
   \setlength{\footskip}{0.25in}
   \raggedbottom
 %    \end{macrocode}
 % Left and right margins in MLA format are each 1 inch wide.
 %    \begin{macrocode}
-  \addtolength{\hoffset}{-0.5in}
+  \addtolength{\hoffset}{-.5in}
   \setlength{\textwidth}{\paperwidth}
   \addtolength{\textwidth}{-2in}
-  \setlength{\oddsidemargin}{0.5in}
-  \setlength{\evensidemargin}{0.5in}
-  \setlength{\marginparwidth}{0.5in}
+  \setlength{\oddsidemargin}{.5in}
+  \setlength{\evensidemargin}{.5in}
+  \setlength{\marginparwidth}{.5in}
 %    \end{macrocode}
 % \subsubsection{Paragraphs}
 % Paragraphs should be left justified, with the first line indented .5
 % inches.
 %    \begin{macrocode}
   \raggedright
-  \setlength{\parindent}{.5in}
+  \setlength\parindent\mlastyle@i
 %    \end{macrocode}
 % MLA format specifies that all paragraphs should be indented, even those
 % beginning a new section.  This snippet from \package{indentfirst} changes
@@ -730,10 +1070,21 @@ Schlegl},
   \let\@afterindentfalse\@afterindenttrue
   \@afterindenttrue
 %    \end{macrocode}
-% Double space {\em everywhere}.
+% Double space {\em everywhere}.  In a 12pt font, the default
+% |\baselineskip| is changed from 14.5pt to 14.4pt.
 % ^^A\RequirePackage{doublespace}
 %    \begin{macrocode}
-  \linespread{2.0}
+  \normalsize
+  \ifdim\baselineskip=14.5pt
+  \renewcommand\normalsize{%
+   \@setfontsize\normalsize\@xiipt{14.4}%
+   \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
+   \abovedisplayshortskip \z@ \@plus3\p@
+   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
+   \belowdisplayskip \abovedisplayskip
+   \let\@listi\@listI}\normalsize
+  \fi
+  \linespread{2}
   \leftmargini\parindent
   \def\@listi{\leftmargin\leftmargini
   \parsep\z@\itemsep\z@\topsep -3\p@\relax}
@@ -750,6 +1101,16 @@ Schlegl},
   \def\@listvi{\leftmargin\leftmarginvi
   \parsep\z@\itemsep\z@\topsep -3\p@\relax}
 %    \end{macrocode}
+% \begin{macro}{\nonfrenchspacing}
+% Only one space after colons, unless someone else has already tinkered
+% with its space factor.
+%    \begin{macrocode}
+  \let\mlastyle@intnfs\nonfrenchspacing
+  \def\nonfrenchspacing{\mlastyle@intnfs
+    \ifnum\the\sfcode`\:=2000\sfcode`\:=1999\fi}
+\ifnum\the\sfcode`\:=2000\sfcode`\:=1999\fi
+%    \end{macrocode}
+% \end{macro}
 % \subsubsection{Header}
 % The last name and page number appear on every page, including the first.
 %    \begin{macrocode}
@@ -763,21 +1124,40 @@ Schlegl},
   \pagestyle{mlastyle}
 %    \end{macrocode}
 % \subsubsection{Notes}
-% Footnotes should be indented .5 inches; however .56 inches is used
-% in a crude attempt to compensate for
-% the alignment provided by the \package{footmisc} package.  Endnotes are
-% preferred in MLA style anyway, so this should not be a problem in most
-% circumstances.
-%    \begin{macrocode}
-  \RequirePackage[ragged,norule]{footmisc}
-  \def\footnotelayout{\linespread{1}\footnotesize\raggedright{} }
-  \footnotemargin .56in
-  \skip\footins=2\baselineskip
-  \footnotesep 1.2\footnotesep
-  \addtolength\footnotesep{\baselineskip}
-  \def\footnotesize{\normalsize}
-%    \end{macrocode}
-% ^^A\let\footnoterule\relax
+% \begin{macro}{\@footnotetext}
+% \begin{macro}{\footnoterule}
+% This code is terrible, but seems to work in practice.  Suggestions
+% welcome.
+%    \begin{macrocode}
+  \def\footnoterule{
+    \global\skip\footins=\f@baselineskip\relax
+    \ifnum\mlastyle@prevsplit=\z@
+      \global\skip\footins=3.15\skip\footins\else
+      \global\skip\footins=2.15\skip\footins
+      \vbox to \z@{\linespread{1}\normalsize\vss\vbox{\noindent
+      \leaders\hrule\@height 3\p@\@depth-2.6\p@
+      %\leaders\hbox{-}
+      \hfill\strut}\kern1.1\baselineskip}%
+    \fi
+    \xdef\mlastyle@prevsplit{\the\insertpenalties}}
+  \def\mlastyle@prevsplit{0}
+  \skip\footins=\f@baselineskip\relax
+  \skip\footins=2.15\skip\footins
+  \long\def\@footnotetext#1{\insert\footins{%
+    \linespread{1}\normalsize
+    \splittopskip\footnotesep
+    \color@begingroup
+    \parindent\mlastyle@i
+    \rule\z@{1.7\baselineskip}
+    \@makefnmark{}
+    \ignorespaces#1\@finalstrut\strutbox
+    \color@endgroup}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\enoteformat}
+% \begin{macro}{\enoteheading}
+% \begin{macro}{\enotesize}
 % Endnotes are supported, but only if the \package{endnotes} package is
 % loaded {\em before\/} this package.
 %    \begin{macrocode}
@@ -787,183 +1167,60 @@ Schlegl},
     \def\enotesize{\normalsize}
   \fi
 %    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
 % \subsubsection{Bibliography}
-% \begin{environment}{thebibliography}
-% The definition of |\thebibliography| varies depending on the document
-% class.
+% \begin{macro}{\url@mlastyle}
+% |\url| is needed to format urls in the bibliography.
 %    \begin{macrocode}
-  \@ifundefined{chapter}
+\urlstyle{mla}
 %    \end{macrocode}
-% Article class.
-%    \begin{macrocode}
-  { \def\thebibliography#1{\newpage\section*{\refname}
-      \list{\@biblabel{\@arabic\c@enumiv}}%
-        {\settowidth\labelwidth{\@biblabel{#1}}}
-        \leftmargin\labelwidth
-        \advance\leftmargin\labelsep
-        \itemindent-\leftmargin
-        \def\newblock{}
-        \usecounter{enumiv}
-        %\catcode`\/=13\global\let/=\mlastyle@slash
-        \sloppy%\sfcode`\.=\@m
-      }}
-%    \end{macrocode}
-% Report/book class.
+% \end{macro}
+% ^^A\ifx\@undefined\url{
+% ^^A  \catcode`/=13
+% ^^A    \gdef\url{\bgroup\catcode`/=13
+% ^^A    \let/\slash\mlastyle@url}
+% ^^A    \gdef\mlastyle@url#1{#1\egroup}}
+% ^^A}\fi
+% \begin{environment}{thebibliography}
+% The definition of |thebibliography| varies depending on the document
+% class.
 %    \begin{macrocode}
-  { \def\thebibliography#1{\chapter*{\bibname}
+\ifx\@undefined\citet
+    \renewenvironment\thebibliography#1{\clearpage
+      \@ifundefined{chapter}
+        {\section*{\refname}}
+        {\chapter*{\bibname}}
       \list{\@biblabel{\@arabic\c@enumiv}}%
         {\settowidth\labelwidth{\@biblabel{#1}}}
         \leftmargin\labelwidth
         \advance\leftmargin\labelsep
         \itemindent-\leftmargin
-        \def\newblock{}
+        \let\newblock\@empty
+        %\sfcode`\.=\@m
         \usecounter{enumiv}
-        %\catcode`/=13\let/=\mlastyle@slash
-        \sloppy%\sfcode`\.=\@m
-      }}
+        \sloppy
+      }
+      {\def\@noitemerr
+        {\@latex@warning{Empty `thebibliography' environment}}%
+      \endlist}
 %    \end{macrocode}
 % \end{environment}
-%    \begin{macrocode}
-\fi % \ifmlastyle@format
-%    \end{macrocode}
-% \subsection{Style}
-% \begin{macro}{\cite}
-% \begin{macro}{\citeN}
-% ^^A\begin{macro}{\citepage}
-% ^^A\begin{macro}{\citequote}
-% The following macros, combined with \file{mlastyle.bst}, provide
-% for a bibliography in MLA style.  Note that the definition of |\cite|,
-% |\citeN|, etc.\ vary depending on the options passed to
-% \package{mlastyle}.
-%
-% \begin{macro}{\mlastyle@intcite}
-% The original |\cite| is stored
-% in |\mlastyle@intcite|.
-%    \begin{macrocode}
-\let\mlastyle@intcite\cite
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\mlastyle@relax}
-% This macro does nothing.  Depending on the options, either |\citeC| or
-% |\citeM| and its ilk will utilize it.
-%    \begin{macrocode}
-\newcommand{\mlastyle@relax}[2][]{}
-%    \end{macrocode}
-% \end{macro}
-% \subsubsection{MLA Style}
-% \begin{macro}{\@cite}
-% \begin{macro}{\citeM}
-% If the \Lopt{mla} or \Lopt{style} options are used, the following is
-% executed.
-%    \begin{macrocode}
-\ifmlastyle@style
-  \def\@cite#1#2{(#1\if@tempswa{} #2\fi)}
-  \def\cite{\def\@cite##1##2{(##1\if@tempswa{}
-    ##2\fi)}\mlastyle@intcite}
-  \def\citeN{\def\@cite##1##2{##1\if@tempswa{}
-    ##2\fi}\mlastyle@intcite}
-  \def\citeM{\def\@cite##1##2{ (##1\if@tempswa{}
-    ##2\fi)}\mlastyle@intcite}
-  \def\citepage{\def\@cite##1##2{\if@tempswa(##2)\fi}\mlastyle@intcite}
-  \def\citepageM{\def\@cite##1##2{\if@tempswa{}
-    (##2)\fi}\mlastyle@intcite}
-  \def\citeindirect{\def\@cite##1##2%
-  {(qtd. in ##1\if@tempswa{} ##2\fi)}\mlastyle@intcite}
-  \def\citeindirectM{\def\@cite##1##2%
-  { (qtd. in ##1\if@tempswa{} ##2\fi)}\mlastyle@intcite}
-  \let\citeC\mlastyle@relax
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \iffalse
-% Place commas in-between citations in the same |\citeyear|, |\citeyearNP|,
-% |\citeN|, or |\shortciteN| command.
-% Use something like |\citeN{ref1,ref2,ref3}| and |\citeN{ref4}| for a list.
-%
-% \@citedata and \@citedatax:
-%  \def\@citedata{%
-%    \@ifnextchar [{\@tempswatrue\@citedatax}%
-%                {\@tempswafalse\@citedatax[]}%
-%  }
-%  \def\@citedatax[#1]#2{%
-%  \let\@citea\@empty
-%  \if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi%
-%    \def\@citea{}\@cite{\@for\@citeb:=#2\do%
-%      {\@citea\def\@citea{; }\@ifundefined% by Young
-%        {b@\@citeb}{{\bf ?}%
-%        \@warning{Citation `\@citeb' on page \thepage \space undefined}}%
-%  {\csname b@\@citeb\endcsname}}}{#1}}%
-% \fi
-% \begin{macro}{\@citex}
-% This is the original |\@citex| from \LaTeX{} modified to use semicolons.
-%    \begin{macrocode}
-\def\@citex[#1]#2{%
-  \let\@citea\@empty
-  \@cite{\@for\@citeb:=#2\do
-    {\@citea\def\@citea{;\penalty-1\ }%
-     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
-     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
-     \@ifundefined{b@\@citeb}{\mbox{\reset@font\bfseries ?}%
-       \G@refundefinedtrue
-       \@latex@warning
-         {Citation `\@citeb' on page \thepage \space undefined}}%
-       {{\csname b@\@citeb\endcsname}}}}{#1}}
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\@biblabel}
-% No labels in the bibliography.
-%    \begin{macrocode}
-  \def\@biblabel#1{#1}
-  \labelsep\z@
-  \let\mlastyle@intbib\thebibliography
-  \def\thebibliography#1{\mlastyle@intbib{#1}
-    \itemindent-\leftmargin\def\@biblabel##1{}}
-%    \end{macrocode}
-% \end{macro}
-% Title either the bibliography or the references ``Works Cited,''
-% depending on the document class.
-%    \begin{macrocode}
-  \@ifundefined{chapter}
-  {\renewcommand\refname{Works Cited}}
-  {\renewcommand\bibname{Works Cited}}
-%    \end{macrocode}
-%
-% ^^A% Define the command \workscited{bib}{style}{nocite}
-% ^^A%\newcommand{\workscited}[3]{%
-% ^^A%  \ifx\chapter\@undefined%
-% ^^A%    \addcontentsline{toc}{chapter}{\bfseries\bibname}% report style
-% ^^A%  \else
-% ^^A%    \addcontentsline{toc}{section}{\bfseries\refname}% article style
-% ^^A%  \fi
-% ^^A%  \bibliography{#1}\bibliographystyle{#2}\nocite{#3}}
-% ^^A% \fi
-% ^^A\newcommand{\annote}[1]{\begin{list}{}{%
-% ^^A                \setlength{\labelwidth}{0pt}
-% ^^A                \addtolength{\leftmargin}{\parindent}
-% ^^A                \setlength{\labelsep}{0pt}}%
-% ^^A                \item #1 \end{list}}
-% \subsubsection{Plain Style}
-% \begin{macro}{\citeC}
-% This next block is used if the \Lopt{compat} or \Lopt{format} option is
-% set.
+% If the \package{natbib} package is loaded, the following is executed
+% instead.
 %    \begin{macrocode}
 \else
-  \newcommand{\mlastyle@cite}[2][]{\@tempswafalse\@citex[]{#2}}
-  \let\cite\mlastyle@cite
-  \let\citepage\mlastyle@cite
-  \let\citeindirect\mlastyle@cite
-  \newcommand{\citeC}[2][]{~\@tempswafalse\@citex[]{#2}}
-  \let\citeM\mlastyle@relax
-  \let\citepageM\mlastyle@relax
-  \let\citeindirectM\mlastyle@relax
+  \bibhang\mlastyle@i\bibsep\z@
 \fi
 %    \end{macrocode}
-% \end{macro}
-%
-% ^^A\end{macro}
-% ^^A\end{macro}
-% \end{macro}
-% \end{macro}
+% ^^A  \newcommand\bibpreamble{%
+% ^^A    \@ifundefined{citet}{}%
+% ^^A    {\bibhang\mlastyle@i\bibsep\z@}}
+%    \begin{macrocode}
+\fi % \ifmlastyle@format
+%    \end{macrocode}
+
 %    \begin{macrocode}
 %</package>
 %    \end{macrocode}