Simplified BibTeX in embedded bibliography
[latex-mlastyle.git] / mlastyle.dtx
index 92944988ee5ae132a57dfa334b5b330e0b28426b..fb9642ce9fe03a44f1048a59ade5aa31b93df148 100644 (file)
 % \iffalse
 %<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
 %<package>\ProvidesPackage{mlastyle}
-%<package>   [2003/11/09 v0.9 .dtx mlastyle file] 
+%<package>   [2003/11/09 v0.9 MLA format and documentation style]
 %
 %<*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",
+  KEY = "MLA Handbook",
+  EDITION = "Sixth",
+  ADDRESS = "New York",
+  PUBLISHER = "MLA",
+  YEAR = "2003"}
+
+@BOOK{latexdps,
+  AUTHOR = "Leslie Lamport",
+  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}",
+  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}
-\iftrue
-  \usepackage[compat]{mlastyle}
-  \addtolength{\headsep}{-25pt}
-  \addtolength{\headheight}{-12pt}
-  \addtolength{\topmargin}{-17pt}
-  \addtolength{\textheight}{58pt}
-  \IfFileExists{ulem.sty}{\usepackage[normalem]{ulem}}{\let\uline\emph}
-\else
+\iffalse
   \usepackage[mla]{mlastyle}
+  \bibliographystyle{mlastyle}
   \addtolength{\marginparwidth}{1in}
   \addtolength{\textwidth}{-1in}
   \addtolength{\headwidth}{-1in}
+\else
+  \usepackage[compat]{mlastyle}
+  \bibliographystyle{plain}
+  \addtolength{\headsep}{-5pt}
+  %\addtolength{\headheight}{-12pt}
+  \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''}}
+{\newcommand{\examp}[2][]{{\let\emph\uline\fontfamily{ptm}\selectfont##2}##1}}%
+{\newcommand{\examp}[2][]{``##2##1''}}
 
 \EnableCrossrefs
 \CodelineIndex
 % \DoNotIndex{\G@refundefinedtrue}
 % \DoNotIndex{\ProcessOptions}
 % \DoNotIndex{\RequirePackage}
+% \DoNotIndex{\UL@start,\UL@stop}
 % \DoNotIndex{\addtolength}
 % \DoNotIndex{\advance}
 % \DoNotIndex{\baselineskip}
 % \DoNotIndex{\def}
 % \DoNotIndex{\do}
 % \DoNotIndex{\edef}
+% \DoNotIndex{\egroup}
 % \DoNotIndex{\else}
 % \DoNotIndex{\end}
 % \DoNotIndex{\endcsname}
 % \DoNotIndex{\renewenvironment}
 % \DoNotIndex{\reset@font}
 % \DoNotIndex{\rhead}
+% \DoNotIndex{\selectfont}
 % \DoNotIndex{\setlength}
 % \DoNotIndex{\settowidth}
 % \DoNotIndex{\sfcode}
 % \DoNotIndex{\string}
 % \DoNotIndex{\sw@llow}
 % \DoNotIndex{\the}
+% \DoNotIndex{\thebibliography}
 % \DoNotIndex{\thepage}
 % \DoNotIndex{\topsep}
 % \DoNotIndex{\usecounter}
 % \DoNotIndex{\pdfpagewidth}
 % \DoNotIndex{\special}
 %
-% \hyphenation{pre-am-ble pro-fess-ors}
+% \hyphenation{pre-am-ble wide-spread}
 %
 % \newcommand{\Lopt}[1]{\textsf {#1}}
 % \newcommand{\file}[1]{\texttt {#1}}
 % \surname{Pope}
 %
 % \maketitle
+%
 % \tableofcontents
 %
 % \section{Introduction}
 %
-% MLA style consists of a set of documentation conventions that has gained
-% widespread acceptance in the humanites.  \LaTeX{} is a
-% document preparation system enjoying populatity in the scientific field.
+% ^^A MLA style, consisting of a set of documentation conventions, has
+% ^^A gained widespread acceptance in the humanities.
+% According to the {\em MLA Handbook for Writers of Research
+% Papers}\citeC{handbook}, MLA style is a set of ``commonly agreed-on
+% rules for documenting quotations, facts, opinions and paraphrases'' that
+% ``is preferred by a substantial majority of scholarly journals in
+% language and literature{\makeatletter\ifmlastyle@style
+% .''\citeM[xvi]{handbook}\else.''\fi} \LaTeX{} is a
+% document preparation system enjoying popularity in the scientific field.
 % It should come as no surprise that complete, up-to-date implementations
 % of MLA style for \LaTeX{} are in short supply.  The \LaTeX{} package
 % \package{mlastyle} aims to fill this void.
 %\instructor{Professor Smith}
 %\course{English 101}
 %\date{1~Jan.\ 1970}
-%\title{The Futility of Compulsory English Classes}
+%\title{The Sadism Inherent in Compulsory English Classes}
 %
 %\begin{document}
 %\maketitle
 % MLA style recommends the DD~Mon.~YYYY format for specifying dates;
 % \DescribeMacro{\today}|\today| has been conveniently redefined to this.
 % However, other formats can be used as long as done so consistently
-% throughout the document.  Also note that the date in the header should
-% be the due date of the assignment; students who finish assignments early
-% would be wise to call |\date|\marg{due date}.
+% throughout the document.  Also note that the date in the
+% heading\index{heading|usage} should be the due date of the assignment;
+% students who finish assignments early would be wise to call
+% |\date|\marg{due date}.
 %
 % \subsection{Environments}
-% \DescribeEnv{verse}
-% \DescribeEnv{quote}
-% \DescribeEnv{quotation}
 % Three environments have been modified from standard \LaTeX to better
-% suit MLA format.  To typeset poetry\index{poetry|usage} and
-% drama\index{drama|usage}, use the |verse| environment.
-% Quotations\index{quotations|usage} of a single paragraph or less always
-% use the |quote| environment.  For longer passages, use the |quotation|
-% environment if the beginning of the passage marks the beginning of a
-% paragraph.  Otherwise, use the |quote| environment.
+% suit MLA format.  To typeset \index{poetry|usage}poetry and
+% \index{drama|usage}drama, use the \DescribeEnv{verse}|verse|
+% environment.  Quotations\index{quotations|usage} of a single paragraph
+% or less always use the \DescribeEnv{quote}|quote| environment.  For
+% longer passages, use the \DescribeEnv{quotation}|quotation| environment
+% if the beginning of the passage marks the beginning of a paragraph.
+% Otherwise, use the |quote| environment.
 %
 % Be sure to follow MLA guidelines when using these environments.  Short
 % quotes should be enclosed in quotation marks and included directly in
 % \OptionIndex{format}\Lopt{format}
 % option tells \package{mlastyle} to use MLA format (i.e., 1 inch margins,
 % double-spaced, etc.).  The \OptionIndex{style}\Lopt{style} option tells
-% \package{mlastyle} to use MLA style (i.e., parenthetical documentation
-% includes the author and page number, etc).  Each of these options
+% \package{mlastyle} to use MLA style (i.e., the format of parenthetical
+% documentation, etc).  Each of these options
 % disables the other; to use both MLA format and MLA style, specify the
 % \OptionIndex{mla}\Lopt{mla} option, or nothing at all.
 %
 % \package{mlastyle}.
 %
 % \subsubsection{Italics vs.\ Underlining} \index{underlining|usage}
-% \index{italics|usage}
-% MLA format dictates that emphasis should be indicated by underlining the
-% text.  Thus, the \package{ulem} package is loaded by default
-% in \Lopt{mla} and \Lopt{format} modes.  To disable this, use the
-% \OptionIndex{italics}\Lopt{italics} option.  Conversely, if underlining
-% is desired in \Lopt{style} or \Lopt{compat} mode, the
-% \OptionIndex{underline}\Lopt{underline} option can be used.
+% \index{italics|usage}\label{sec:italics}
+% The {\em MLA Handbook\/}\citeC{handbook} dictates that emphasis should
+% be indicated by underlining the text\citeM[94]{handbook}.  Thus, the
+% \package{ulem} package, which underlines all emphasized
+% text, is loaded by default in \Lopt{mla} and \Lopt{format} modes.  To
+% disable this, use the \OptionIndex{italics}\Lopt{italics} option.
+% Conversely, if underlining is desired in \Lopt{style} or \Lopt{compat}
+% mode, the \OptionIndex{underline}\Lopt{underline} option can be used.
 %
 % \subsubsection{Fonts}
 % By default, \package{mlastyle} uses \TeX's standard Computer Modern
-% font.  Some professors\penalty\exhyphenpenalty---particularly those
-% concerned with document length---mandate that assignments be set in
-% \examp[.]{Times}  This can be achieved with the
+% font.  Some profess\-ors\penalty500---particularly those
+% concerned with document length---require assignments to be set in
+% \examp[.]{Times New Roman}  This can be achieved with the
 % \OptionIndex{times}\Lopt{times} option, which simply loads the
-% \package{times} package.  This option can be cancelled with
-% the \OptionIndex{cm}\Lopt{cm} option, which reverts to Computer Modern.
+% \package{times} package.  This opposite of this option is
+% \OptionIndex{cm}\Lopt{cm}, which reverts to Computer Modern.
 %
 % \index{works cited|usage}
 % \subsection{Documenting Sources} \label{sec:documentation}
 %
-% The \package{mlastyle} package reimpliments the
+% The \package{mlastyle} package reimplements the
 % \DescribeEnv{thebibliography}|thebibliography| environment to generate
-% the list of works cited in MLA style.  Use of \LaTeX's bibliography
-% features is beyond the scope of this document; however, the following
-% example, which should be included just before |\end{document}|, might
-% prove to be a useful starting point:
+% the list of works cited in MLA style.  Instruction in the basic use of
+% \LaTeX's bibliography features is beyond the scope of this document;
+% however, the following example, which should be included just before
+% |\end{document}|, might prove to be a useful starting point:
 %\begin{verbatim}
 %\begin{thebibliography}{}
 %
-%\bibitem[Lamport]{latex}
+%\bibitem[Lamport]{latexdps}
 %Lamport, Leslie.
 %\newblock {\em \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
 % section~\ref{sec:parenthetical}).
 % |\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 |\citeN|, explained below, can be used.
+% To work around this limitation, use |\citeN|, explained below.
 %
 % Three additional citation commands are provided, all of which take the
 % same arguments as |\cite|.  To omit the author information from the
 % citation, use \DescribeMacro{\citepage}|\citepage|.  Indirect
-% citations---those of the format \examp{(qtd. in Brown 6)}---can be
+% 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
 % intended for use in cross references, but it can also help in citing
 % multiple works.  The result of
-% |(\citeN[42]{knuth}|\texttt{; }|\citeN[69]{lamport})|
+% |(\citeN[42]{texbook}|\texttt{; }|\citeN[69]{latexdps})|
 % would be something like \examp[.]{(Knuth 42; Lamport 69)}
 %
 % \subsubsection{Using {\rm \BibTeX}} \label{sec:bibtex}
 % file, \file{bibtex} on the resulting \file{.aux} file, then \file{latex}
 % twice more.
 %\begin{verbatim}
-%@BOOK{latex,
+%@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"}\end{verbatim}
+%
 % In \package{mlastyle}, The |KEY| field serves the additional purpose of
 % specifying an abbreviated title.  This is unnecessary in the above
 % example.  If an additional book by Leslie Lamport was included, however,
-% the |KEY| field would allow |\cite{lamport}| to yield \examp{(Lamport,
-% \emph{\LaTeX\/})} instead of \examp[.]{(Lamport, \emph{\LaTeX: A Document
-% Preparation System\/})}
+% the |KEY| field would allow |\cite{latexdps}| to yield \examp{(Lamport,
+% \emph{\LaTeX\/})} instead of \examp[.]{(Lamport, \emph{\LaTeX: A
+% Doc\-um\-ent Pre\-pa\-ra\-tion Sys\-tem\/})}
 %
-% \StopEventually{\PrintChanges\PrintIndex}
+% Note that only entries referenced by a citation are included in the list
+% of works cited; to force the inclusion of an entry or all entries, use
+% |\nocite|\marg{marker} and |\nocite{*}|, respectively.
+%
+% \StopEventually{\PrintChanges\bibliography{mlastyle}\PrintIndex}
 %
 % \section{Implementation}
-% \iffalse
+%    \begin{macrocode}
 %<*package>
-% \fi
-% \subsection{Options}
+%    \end{macrocode}
 %
+% \subsection{Options}
 % \begin{macro}{\ifmlastyle@*}
 % \begin{macro}{\mlastyle@*true}
 % \begin{macro}{\mlastyle@*false}
-% Most options are implemented by modifying a |\newif| declared for this
+% Most options are implemented by modifying a |\newif| declared for that
 % purpose.
 %    \begin{macrocode}
 \newif\ifmlastyle@bibstyle
        \mlastyle@formatfalse
        \mlastyle@underlinefalse}
 \DeclareOption{singlespacequotes}{
-  \def\mlastyle@qspread{\linespread{1}\normalsize\vskip\baselineskip}}
+  \def\mlastyle@qspread{\linespread{1}\selectfont\vskip\baselineskip}}
 \DeclareOption{doublespacequotes}{\let\mlastyle@qspread\relax}
 \ExecuteOptions{nobibstyle,nopapersize,mla,cm,doublespacequotes}
 \ProcessOptions
   \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
+% emphasis.  This is changed to MLA-style behavior with the redefinition
+% of |\UL@onin|.
 %    \begin{macrocode}
 \ifmlastyle@underline
   \RequirePackage{ulem}
+  \def\UL@onin#1{\egroup\UL@stop#1\UL@start}
 \fi % \ifmlastyle@underline
 %    \end{macrocode}
+% \end{macro}
 % Load the \package{times} package if the \Lopt{times} option is set.
 %    \begin{macrocode}
 \ifmlastyle@times
 % \end{macro}
 % \begin{macro}{\section}
 % \begin{macro}{\subsection}
+% \begin{macro}{\subsubsection}
 % Sections are formatted by centering the section name and beginning a new
 % page.  Subsections simply center the section name.
 %    \begin{macrocode}
 % ^^A\def\verbatim@font{\mlastyle@qspread\mlastyle@vfont}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 % \subsubsection{Environments}
-% ^^A%\newenvironment{blocks}{\begin{quote} \linespread{1} \small \normalsize}{\end{quote} \linespread{2} \small \normalsize}
-% ^^A%\newenvironment{blockm}{\begin{quotation} \linespread{1} \small \normalsize}{\end{quotation} \linespread{2} \small \normalsize}
+% ^^A%\newenvironment{blocks}{\begin{quote} \linespread{1} \selectfont}{\end{quote} \linespread{2} \small \selectfont}
+% ^^A%\newenvironment{blockm}{\begin{quotation} \linespread{1} \selectfont}{\end{quotation} \linespread{2} \selectfont}
 % \begin{environment}{verse}
 % Indented 1 inch, with an additional .25 inch hanging indent.
 %    \begin{macrocode}
 %    \end{macrocode}
 % \end{environment}
 % \begin{environment}{workscited}
-% Works Cited environment, for compatibility with \package{mla-paper}.
+% Works cited environment, for compatibility with \package{mla-paper}.
 %    \begin{macrocode}
   \newenvironment{workscited}%
     {\newpage{\centerline{Works Cited}}}{\newpage}
   \fi
 %    \end{macrocode}
 % \subsubsection{Bibliography}
+% \begin{environment}{thebibliography}
 % The definition of |\thebibliography| varies depending on the document
 % class.
 %    \begin{macrocode}
 %    \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}
-      \sloppy%\sfcode`\.=1000\relax
-      \catcode`/=13\let/=\mlastyle@slash}}
+        {\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.
 %    \begin{macrocode}
   { \def\thebibliography#1{\chapter*{\bibname}
       \list{\@biblabel{\@arabic\c@enumiv}}%
-      {\settowidth\labelwidth{\@biblabel{#1}}}
-      \leftmargin\labelwidth
-      \advance\leftmargin\labelsep
-      \itemindent-\leftmargin
-      \def\newblock{}
-      \usecounter{enumiv}
-      \sloppy%\sfcode`\.=1000\relax
-      \catcode`/=13\let/=\mlastyle@slash}}
+        {\settowidth\labelwidth{\@biblabel{#1}}}
+        \leftmargin\labelwidth
+        \advance\leftmargin\labelsep
+        \itemindent-\leftmargin
+        \def\newblock{}
+        \usecounter{enumiv}
+        %\catcode`/=13\let/=\mlastyle@slash
+        \sloppy%\sfcode`\.=\@m
+      }}
 %    \end{macrocode}
+% \end{environment}
 %    \begin{macrocode}
 \fi % \ifmlastyle@format
 %    \end{macrocode}
 %    \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.
   \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.
 % ^^A                \item #1 \end{list}}
 % \subsubsection{Plain Style}
 % \begin{macro}{\citeC}
-% This next block is used only if the \Lopt{compat} option is set.
+% This next block is used if the \Lopt{compat} or \Lopt{format} option is
+% set.
 %    \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}}
+  \newcommand{\citeC}[2][]{~\@tempswafalse\@citex[]{#2}}
   \let\citeM\mlastyle@relax
   \let\citepageM\mlastyle@relax
   \let\citeindirectM\mlastyle@relax
 % ^^A\end{macro}
 % \end{macro}
 % \end{macro}
-% \iffalse
+%    \begin{macrocode}
 %</package>
-% \fi
+%    \end{macrocode}
 %
 % \Finale
 \endinput