Modified lineskip and lineskiplimit in quotes
[latex-mlastyle.git] / mlastyle.dtx
index 4722b1b1a48f95c3b6495c29834a1d8b332e0c9f..dacd9d7b0e5fc9482018ba3c0cfc4adc6f99c118 100644 (file)
@@ -88,7 +88,7 @@ Schlegl",
 {\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}}
+{\expandafter\NAT@MLA\NAT@name{} \NAT@open\NAT@num\NAT@close}}
 \EnableCrossrefs
 \CodelineIndex
 \RecordChanges
@@ -123,7 +123,14 @@ Schlegl",
 %
 % \GetFileInfo{mlastyle.sty}
 %
-% \DoNotIndex{\ ,\:,\/}
+% \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}
@@ -139,27 +146,40 @@ Schlegl",
 % \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{\ifNAT@par,\ifNAT@swa}
+% \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{\baselineskip,\lineskip,\lineskiplimit}
 % \DoNotIndex{\bibpreamble,\bibpunct,\bibsep}
 % \DoNotIndex{\begin}
 % \DoNotIndex{\bfseries}
-% \DoNotIndex{\bgroup}
+% \DoNotIndex{\bgroup,\egroup,\begingroup,\endgroup}
 % \DoNotIndex{\c@enumiv}
 % \DoNotIndex{\catcode}
 % \DoNotIndex{\centering}
@@ -168,14 +188,15 @@ Schlegl",
 % \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{\endnote,\footnote}
 % \DoNotIndex{\endcsname}
 % \DoNotIndex{\endlist}
 % \DoNotIndex{\exhyphenpenalty}
@@ -187,11 +208,13 @@ Schlegl",
 % \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,\ifhmode,\ifnum}
+% \DoNotIndex{\if,\ifcase,\ifcat,\ifdim,\ifhmode,\ifnum,\ifx}
 % \DoNotIndex{\ifmlastyle@bibstyle}
 % \DoNotIndex{\ifmlastyle@format}
 % \DoNotIndex{\ifmlastyle@pages}
@@ -199,18 +222,20 @@ Schlegl",
 % \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}
@@ -231,6 +256,7 @@ Schlegl",
 % \DoNotIndex{\mlastyle@pagestrue}
 % \DoNotIndex{\mlastyle@papersizefalse}
 % \DoNotIndex{\mlastyle@papersizetrue}
+% \DoNotIndex{\mlastyle@prevsplit}
 % \DoNotIndex{\mlastyle@qspread}
 % \DoNotIndex{\mlastyle@sl@sh}
 % \DoNotIndex{\mlastyle@slash}
@@ -265,10 +291,13 @@ Schlegl",
 % \DoNotIndex{\penalty}
 % \DoNotIndex{\protected@xdef}
 % \DoNotIndex{\relax}
+% \DoNotIndex{\relpenalty}
 % \DoNotIndex{\renewcommand}
 % \DoNotIndex{\renewenvironment}
 % \DoNotIndex{\rhead}
-% \DoNotIndex{\selectfont}
+% \DoNotIndex{\reset@font,\selectfont}
+% \DoNotIndex{\rule,\strut,\strutbox}
+% \DoNotIndex{\splittopskip}
 % \DoNotIndex{\setlength}
 % \DoNotIndex{\settowidth}
 % \DoNotIndex{\sfcode}
@@ -282,15 +311,16 @@ Schlegl",
 % \DoNotIndex{\topsep}
 % \DoNotIndex{\usecounter}
 % \DoNotIndex{\unskip}
-% \DoNotIndex{\vskip}
+% \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}
@@ -562,7 +592,8 @@ Schlegl",
        \mlastyle@formatfalse
        \mlastyle@underlinefalse}
 \DeclareOption{singlespacequotes}{
-  \def\mlastyle@qspread{\linespread{1}\selectfont\vskip\baselineskip}}
+  \def\mlastyle@qspread{\lineskip=.1\baselineskip%
+  \lineskiplimit=\lineskip\linespread{1}\selectfont\vskip\baselineskip}}
 \DeclareOption{doublespacequotes}{\let\mlastyle@qspread\relax}
 \ExecuteOptions{nobibstyle,nopapersize,mla,cm,doublespacequotes}
 \ProcessOptions
@@ -643,33 +674,151 @@ Schlegl",
 %    \begin{macrocode}
 \newcommand{\bibstyle@mlastyle}{%
   \bibpunct[ ]{(}{)}{;}{a}{,}{,}
-  %\bibpunct[\mlastyle@space]{\mlastyle@brack(}{\mlastyle@brack)}%
-  %  {\unskip;}{a}{\mlastyle@comma}{,}
-  \gdef\mlastyle@brack##1{\ifx\NAT@date\mlastyle@notitle
-    \ifmlastyle@pages ##1\else\ifNAT@swa\ifnum
-    \NAT@ctype=0 ##1\else\unskip\fi\else\unskip\fi\fi\else ##1\fi}
-  \gdef\mlastyle@comma{\ifx\NAT@date\mlastyle@notitle\else,\fi}
-  \gdef\mlastyle@space{\ifx\NAT@date\mlastyle@notitle
-  \ifnum\NAT@ctype=1{} \fi\else{} \fi}
-%      \ifNAT@par\ifNAT@swa{} \fi\else{} \fi\fi\else{} \fi}
-    \gdef\citetext##1{(##1)}
   \@ifundefined{chapter}
   {\gdef\refname{Works Cited}}
   {\gdef\bibname{Works Cited}}}
 %    \end{macrocode}
 % \end{macro}
-% \begin{macro}{\mlastyle@notitle}
-% This hack represents an empty title in the MLA bibliography style.
+% \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}
-\def\mlastyle@notitle
-  { \ \ \ \ \unskip\unskip\unskip\unskip\unskip}
 \RequirePackage{natbib}
-\newif\ifmlastyle@pages
-\renewcommand\NAT@citetp
-{\@ifnextchar[{\mlastyle@pagestrue\NAT@@citetp}%
-  {\mlastyle@pagesfalse\NAT@@citetp[]}}
+\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}
+% \end{macro}
 % \begin{macro}{\cite}
 % \begin{macro}{\citealp}
 % ^^A\begin{macro}{\citepage}
@@ -712,7 +861,7 @@ Schlegl",
   \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
+    \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}
@@ -732,7 +881,7 @@ Schlegl",
   \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\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
@@ -799,7 +948,9 @@ Schlegl",
 % \begin{macro}{\and}
 % |\maketitle| generates a heading in MLA format.
 %    \begin{macrocode}
-  \renewcommand{\maketitle}{\begin{flushleft}
+  \renewcommand{\maketitle}{%
+    \global\@topnum\z@
+    \begin{flushleft}%
     \@author\par
     \@ifundefined{mlastyle@instructor}{}{\mlastyle@instructor}\par
     \@ifundefined{mlastyle@course}{}{\mlastyle@course}\par
@@ -828,6 +979,12 @@ Schlegl",
 % ^^A \def\mlastyle@slashx{\ifx\mlastyle@slashnext/\else
 % ^^A  \penalty\exhyphenpenalty\fi}
 % \end{macro}
+% \begin{macro}{\@makecaption}
+% |\@makecaption| should left align its contents.
+%    \begin{macrocode}
+\long\def\@makecaption#1#2{\noindent #1\par\noindent #2\strut\par}
+%    \end{macrocode}
+% \end{macro}
 % \begin{macro}{\section}
 % \begin{macro}{\subsection}
 % \begin{macro}{\subsubsection}
@@ -839,7 +996,7 @@ Schlegl",
   \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@
     }{0pt}{1sp}{\centering}}
   \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@
-    }{0pt}{1sp}{\centering}}
+    }{0pt}{1sp}{\noindent}}
 %    \end{macrocode}
 % ^^A\let\mlastyle@vfont\verbatim@font
 % ^^A\def\verbatim@font{\mlastyle@qspread\mlastyle@vfont}
@@ -887,8 +1044,6 @@ Schlegl",
 % \subsubsection{Margins}
 % Top and bottom margins are 1 inch each.  The header is flush with the
 % 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}{-.5in}
   \setlength{\textheight}{\paperheight}
@@ -923,10 +1078,27 @@ 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}
+  \ifx\relax\mlastyle@qspread
+    \lineskiplimit=.5\baselineskip
+  \else
+    \lineskiplimit=.2\baselineskip
+  \fi
+  \lineskip=\lineskiplimit
   \leftmargini\parindent
   \def\@listi{\leftmargin\leftmargini
   \parsep\z@\itemsep\z@\topsep -3\p@\relax}
@@ -966,32 +1138,46 @@ 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{macro}{\@footnotetext}
+% \begin{macro}{\footnoterule}
+% This code is terrible, but seems to work in practice.  Suggestions
+% welcome.
 %    \begin{macrocode}
-  \RequirePackage[ragged,norule]{footmisc}
-  \def\footnotelayout{\linespread{1}\footnotesize\raggedright{} }
-  \footnotemargin\mlastyle@i
-  \advance\footnotemargin .35em
-  \skip\footins=2\baselineskip
-  \footnotesep 1.2\footnotesep
-  \addtolength\footnotesep{\baselineskip}
-  \def\footnotesize{\normalsize}
+  \def\footnoterule{
+    \ifnum\mlastyle@prevsplit=\z@\else
+      \vbox to \z@{\linespread{1}\normalsize\vss\vbox{\noindent
+      \leaders\hrule\@height 3\p@\@depth-2.6\p@
+      %\leaders\hbox{-}
+      \hfill\strut}\kern\z@}%
+    \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
+    \splittopskip1.7\baselineskip
+    \color@begingroup
+    \parindent\mlastyle@i
+    \rule\z@{1.7\baselineskip}
+    \@makefnmark{}
+    \ignorespaces#1\@finalstrut\strutbox
+    \color@endgroup}}
 %    \end{macrocode}
-% ^^A\let\footnoterule\relax
+% \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}
-  \ifx\@undefined\endnote\else
+  \ifx\@undefined\endnote
+  \let\note\footnote\else
     \def\enoteheading{\newpage\section*{\notesname}}
     \def\enoteformat{\leavevmode\makeenmark{} }
     \def\enotesize{\normalsize}
+    \let\note\endnote
   \fi
 %    \end{macrocode}
 % \end{macro}