Yet more on bibliography
[latex-mlastyle.git] / mlastyle.dtx
index 44a745eebd6d0039c4bbc7b74556a1d2e0c6b461..b6236d33267bbb4f681899d152c791a2e1a2a3be 100644 (file)
@@ -581,16 +581,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
@@ -887,10 +877,8 @@ Schlegl",
 % \subsection{Style}
 % \begin{macro}{\bibstyle@mlastyle}
 % This first block is the beginnings of an implementation for
-% \package{natbib}.
+% \package{natbib}.  Surely there is a better way.
 %    \begin{macrocode}
-\def\mlastyle@notitle
-  { \ \ \ \ \unskip\unskip\unskip\unskip\unskip\unskip}
 \newif\ifmlastyle@pages
 \renewcommand\NAT@citetp
 {\@ifnextchar[{\mlastyle@pagestrue\NAT@@citetp}%
@@ -906,10 +894,19 @@ Schlegl",
   \gdef\mlastyle@space{\ifx\NAT@date\mlastyle@notitle
     \ifnum\NAT@ctype<2
       \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{macrocode}
+\def\mlastyle@notitle
+  { \ \ \ \ \unskip\unskip\unskip\unskip\unskip\unskip}
+\RequirePackage{natbib}
+%    \end{macrocode}
 %\end{macro}
 % \begin{macro}{\cite}
 % \begin{macro}{\citealp}
@@ -924,7 +921,7 @@ Schlegl",
 % The original |\cite| is stored
 % in |\mlastyle@intcite|.
 %    \begin{macrocode}
-\let\mlastyle@intcite\cite
+%\let\mlastyle@intcite\cite
 %    \end{macrocode}
 % \end{macro}
 % \begin{macro}{\mlastyle@relax}
@@ -935,92 +932,26 @@ Schlegl",
 %    \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
-\ifx\@undefined\citet
-  \def\@cite#1#2{(#1\if@tempswa{} #2\fi)}
-  \def\cite{\def\@cite##1##2{(##1\if@tempswa{}
-    ##2\fi)}\mlastyle@intcite}
-  \def\citealp{\def\@cite##1##2{##1\if@tempswa{}
-    ##2\fi}\mlastyle@intcite}
-  \let\citeN\citealp
-  \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.
+% If the \Lopt{bibstyle} option is set, specify the bibliography style.
 %    \begin{macrocode}
-  \def\@biblabel#1{#1}
-  \labelsep\z@
-  \let\mlastyle@intbib\thebibliography
-  \def\thebibliography#1{\mlastyle@intbib{#1}
-    \itemindent-\leftmargin\def\@biblabel##1{}}
+  \ifmlastyle@bibstyle
+    \bibliographystyle{mlastyle}
+  \fi
 %    \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}}
-\else
   \let\cite\citep
   \newcommand\citepage[2][]{\citeyearpar[#1]{#2}}
-  \newcommand\citepageM[2][]{ \citetext{#2}}
+  \newcommand\citepageM[2][]{\unskip{} \citeyearpar[#1]{#2}}
   \newcommand\citeindirect[2][]{\citep[qtd.\ in][#1]{#2}}
-  \newcommand\citeindirectM[2][]{ \citep[qtd.\ in][#1]{#2}}
+  \newcommand\citeindirectM[2][]{\unskip{} \citep[qtd.\ in][#1]{#2}}
   \let\citeN\citealp
   \let\citeC\mlastyle@relax
-\fi
 %    \end{macrocode}
 %
 % ^^A% Define the command \workscited{bib}{style}{nocite}
@@ -1043,6 +974,12 @@ Schlegl",
 % 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}}