X-Git-Url: http://git.tpope.net/?p=latex-mlastyle.git;a=blobdiff_plain;f=mlastyle.dtx;h=35188b349d89fece0f42e0ca802b6eaff605ea14;hp=d38f36c494a904afd42172d2c9116bc88d890580;hb=HEAD;hpb=e66984112a684c955a8ea7fd24770cd60827beb4 diff --git a/mlastyle.dtx b/mlastyle.dtx index d38f36c..35188b3 100644 --- a/mlastyle.dtx +++ b/mlastyle.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % -% Copyright (C) 2003 by Scott Pakin -% -------------------------------------------------- +% Copyright (C) 2003 by Tim Pope +% ---------------------------------------------------- % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 @@ -18,11 +18,77 @@ % \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesPackage{mlastyle} -% [2003/10/21 v1.0 .dtx mlastyle file] +% [2003/11/09 v0.9 MLA format and documentation style] % %<*driver> -\documentclass{ltxdoc} -\usepackage[compat]{mlastyle} +\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} +\iffalse + \usepackage[mla]{mlastyle} + \bibliographystyle{mlastyle} + \addtolength{\marginparwidth}{1in} + \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} + %\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''}} + +{\makeatletter\gdef\NAT@MLA#1{#1}\gdef\NAT@idxtxt +{\expandafter\NAT@MLA\NAT@name{} \NAT@open\NAT@num\NAT@close}} \EnableCrossrefs \CodelineIndex \RecordChanges @@ -52,71 +118,257 @@ % Right brace \} Tilde \~} % % -% \changes{v1.0}{2003/09/25}{Initial version} +% \changes{v0.9}{2003/11/09}{Converted to \texttt{dtx} file} +% \changes{v0.8}{2003/10/15}{Initial version} % % \GetFileInfo{mlastyle.sty} % -% \DoNotIndex{\the,\edef,\gdef,\voffset,\@undefined} -% \DoNotIndex{\@centercr,\@for,\@date,\do,\@startsection} -% \DoNotIndex{\@citea,\@citeb} -% \DoNotIndex{\@empty,\@ignoretrue} -% \DoNotIndex{\@ixpt} -% \DoNotIndex{\@M,\@minus,\@ne,\@plus} -% \DoNotIndex{\.,\ ,\\} -% \DoNotIndex{\addtolength,\advance} -% \DoNotIndex{\ast,\begin,\begingroup,\bfseries,\bgroup,\box} -% \DoNotIndex{\bullet} -% \DoNotIndex{\cdot,\cr,\day,\DeclareOption} -% \DoNotIndex{\def,\DocInput,\documentclass} -% \DoNotIndex{\DoNotIndex,\egroup,\ifx,\else,\fi,\endtrivlist} -% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} -% \DoNotIndex{\endlist,\everycr,\ExecuteOptions,\expandafter} -% \DoNotIndex{\filedate,\filename,\fileversion,\futurelet} -% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} -% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\ifcase,\or,\fi} -% \DoNotIndex{\ifvmode,\fi,\ifnum,\fi,\input} -% \DoNotIndex{\kern,\leavevmode,\let,\leftmark} -% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark} -% \DoNotIndex{\mbox,\month,\newcommand,\newcounter,\newenvironment} -% \DoNotIndex{\mlastyle@bibstyletrue,\mlastyle@bibstylefalse} -% \DoNotIndex{\mlastyle@formattrue,\mlastyle@formatfalse} -% \DoNotIndex{\mlastyle@papersizetrue,\mlastyle@papersizefalse} -% \DoNotIndex{\mlastyle@styletrue,\mlastyle@stylefalse} -% \DoNotIndex{\mlastyle@timestrue,\mlastyle@timesfalse} -% \DoNotIndex{\mlastyle@underlinetrue,\mlastyle@underlinefalse} -% \DoNotIndex{\mlastyle@bibstyletrue,\mlastyle@bibstylefalse} -% \DoNotIndex{\mlastyle@slashnext,\mlastyle@slashx} -% \DoNotIndex{} -% \DoNotIndex{\NeedsTeXFormat,\newdimen} -% \DoNotIndex{\newpage,\nobreak,\noindent,\number} -% \DoNotIndex{\or,\p@} -% \DoNotIndex{\pagestyle,\par} -% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} -% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} -% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\renewenvironment} -% \DoNotIndex{\reset@font} -% \DoNotIndex{\rightmargin,\rlap,\rmfamily} -% \DoNotIndex{\setbox,\setcounter,\setlength} -% \DoNotIndex{\skip,\slshape,\space} -% \DoNotIndex{\trivlist,\typeout,\tw@} -% \DoNotIndex{\voffset,\vskip,\vspace,\year,\z@} -% -% \newcommand*{\Lopt}[1]{\textsf {#1}} -% \newcommand*{\file}[1]{\texttt {#1}} -% \newcommand*{\package}[1]{\textsf {#1}} -% \newcommand*{\Lcount}[1]{\textsl {\small#1}} -% \newcommand*{\pstyle}[1]{\textsl {#1}} +% \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{\@biblabel,\@citea,\@citeb,\@citex} +% \DoNotIndex{\@date} +% \DoNotIndex{\@empty} +% \DoNotIndex{\@for} +% \DoNotIndex{\@ifnextchar,\@ifstar,\@ifundefined} +% \DoNotIndex{\@latex@warning} +% \DoNotIndex{\@listI} +% \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,\lineskip,\lineskiplimit} +% \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{\else} +% \DoNotIndex{\end} +% \DoNotIndex{\endnote,\footnote} +% \DoNotIndex{\endcsname} +% \DoNotIndex{\endlist} +% \DoNotIndex{\exhyphenpenalty} +% \DoNotIndex{\expandafter} +% \DoNotIndex{\f@baselineskip} +% \DoNotIndex{\fancyhf} +% \DoNotIndex{\fancypagestyle} +% \DoNotIndex{\fi} +% \DoNotIndex{\futurelet} +% \DoNotIndex{\gdef} +% \DoNotIndex{\global} +% \DoNotIndex{\hbox,\hfill,\hrule} +% \DoNotIndex{\hangindent} +% \DoNotIndex{\headrulewidth,\footrulewidth} +% \DoNotIndex{\ignorespaces} +% \DoNotIndex{\if@filesw} +% \DoNotIndex{\if@tempswa} +% \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{\immediate} +% \DoNotIndex{\insert,\insertpenalties} +% \DoNotIndex{\item} +% \DoNotIndex{\itemindent} +% \DoNotIndex{\itemsep} +% \DoNotIndex{\kern} +% \DoNotIndex{\labelsep,\labelwidth} +% \DoNotIndex{\lastname,\citeN} +% \DoNotIndex{\leaders} +% \DoNotIndex{\leavevmode} +% \DoNotIndex{\leftmargin} +% \DoNotIndex{\leftmargini,\leftmarginii,\leftmarginiii} +% \DoNotIndex{\leftmarginiv,\leftmarginv,\leftmarginvi} +% \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} +% \DoNotIndex{\mlastyle@course} +% \DoNotIndex{\mlastyle@formatfalse} +% \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} +% \DoNotIndex{\mlastyle@timesfalse} +% \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} +% \DoNotIndex{\noindent} +% \DoNotIndex{\normalsize} +% \DoNotIndex{\notesname} +% \DoNotIndex{\number} +% \DoNotIndex{\or} +% \DoNotIndex{\p@} +% \DoNotIndex{\pagestyle} +% \DoNotIndex{\par} +% \DoNotIndex{\parindent} +% \DoNotIndex{\parsep} +% \DoNotIndex{\penalty} +% \DoNotIndex{\protected@xdef} +% \DoNotIndex{\relax} +% \DoNotIndex{\relpenalty} +% \DoNotIndex{\renewcommand} +% \DoNotIndex{\renewenvironment} +% \DoNotIndex{\rhead} +% \DoNotIndex{\reset@font,\selectfont} +% \DoNotIndex{\rule,\strut,\strutbox} +% \DoNotIndex{\splittopskip} +% \DoNotIndex{\setlength} +% \DoNotIndex{\settowidth} +% \DoNotIndex{\sfcode} +% \DoNotIndex{\skip} +% \DoNotIndex{\sloppy} +% \DoNotIndex{\space} +% \DoNotIndex{\string} +% \DoNotIndex{\the} +% \DoNotIndex{\thebibliography} +% \DoNotIndex{\thepage} +% \DoNotIndex{\topsep} +% \DoNotIndex{\usecounter} +% \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,\footskip} +% \DoNotIndex{\hoffset} +% \DoNotIndex{\marginparwidth} +% \DoNotIndex{\oddsidemargin} +% \DoNotIndex{\raggedbottom} +% \DoNotIndex{\raggedright} +% \DoNotIndex{\textheight} +% \DoNotIndex{\textwidth} +% \DoNotIndex{\topmargin} +% \DoNotIndex{\voffset} +% \DoNotIndex{\paperheight} +% \DoNotIndex{\paperwidth} +% \DoNotIndex{\pdfpageheight} +% \DoNotIndex{\pdfpagewidth} +% \DoNotIndex{\special} +% +% \hyphenation{pre-am-ble wide-spread} +% +% \newcommand{\Lopt}[1]{\textsf {#1}} +% \newcommand{\file}[1]{\texttt {#1}} +% \newcommand{\package}[1]{\textsf {#1}} +% ^^A\newcommand{\Lcount}[1]{\textsl {\small#1}} +% ^^A\newcommand{\pstyle}[1]{\textsl {#1}} +% +% \newcommand{\OptionIndex}[1]{\index{#1\actualchar\Lopt{#1} (option)\encapchar usage}\index{options:\levelchar\Lopt{#1}}} % % \title{The \package{mlastyle} package\thanks{This document % corresponds to \package{mlastyle}~\fileversion, dated \filedate.}} % \author{Tim Pope \\ \texttt{latex@rebelongto.us}} +% \surname{Pope} % % \maketitle % +% \tableofcontents +% % \section{Introduction} % -% MLA style is ugly. Nevertheless, it is often required, particularly in -% the humanities. +% ^^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. % % \section{Usage} % @@ -126,76 +378,196 @@ %\usepackage{mlastyle} % %\author{John Doe} -%\professor{Professor Smith} -%\classname{English 101} +%\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 %'Nuff said. %\end{document}\end{verbatim} -% \subsection{Initiation Macros} -% \DescribeMacro{\maketitle} -% \DescribeMacro{\professor} -% \DescribeMacro{\classname} -% The mandatory heading\index{heading|usage} is generated with -% |\maketitle|. Use the standard macros |\author|, |\title|, and |\date| -% to specify the relevant information. To define the professor and name -% of the class, use the aptly named |\professor|\marg{name} and -% |\classname|\marg{class} macros. -% -% \DescribeMacro{\lastname} +% \subsection{Initialization Macros} +% The \index{heading|usage}mandatory heading is generated with +% \DescribeMacro{\maketitle}|\maketitle|. Use the standard macros +% |\author|, |\title|, and |\date| to specify the relevant information. +% To define the instructor and name of the course, use the aptly named +% \DescribeMacro{\instructor}|\instructor|\marg{instructor} and +% \DescribeMacro{\course}|\course|\marg{course} macros. +% % The last name for use in the header\index{header|usage} is derived from % |\author|. If this does not produce the desired result, use -% |\lastname|\marg{last name} to override it. +% \DescribeMacro{\surname}|\surname|\marg{last name} to override it. % -% \DescribeMacro{\date} -% \DescribeMacro{\today} % MLA style recommends the DD~Mon.~YYYY format for specifying dates; -% |\today| has been conveniently redefined to this. However, other -% formats can be used as long as done so consistantly throughout the -% document. Also note that the date in the header should be the due date -% of the assignment, so be sure to explictly call |\date|\marg{due date} -% if you actually finish your assignments early. +% \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 +% 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 % the text. % -% \subsection{Documentating Sources} +% \subsection{Modes of Operation} +% The \package{mlastyle} package has four basic modes of operations, +% selected with one of four mutually exclusive options. The +% \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., 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. % -% Coupled with \BibTeX, \package{mlastyle} provides a experimental -% implementation of MLA documentation style. Load the bibliography style -% by putting |\bibliographystyle{mlastyle}| in the document preamble. +% To disable both MLA style and MLA format, use the +% \OptionIndex{compat}\Lopt{compat} option. This differs from omitting +% the package entirely in that certain macros are still defined (e.g., +% |\instructor|). Also, citations are handled a bit differently than in +% standard \LaTeX{} (see section~\ref{sec:documentation}). +% +% In addition to the above, several other options modify the behavior of +% \package{mlastyle}. +% +% \subsubsection{Italics vs.\ Underlining} \index{underlining|usage} +% \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 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 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 reimplements the +% \DescribeEnv{thebibliography}|thebibliography| environment to generate +% 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]{latexdps} +%Lamport, Leslie. +%\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 |latexdps| is the marker used to reference it (see +% section~\ref{sec:parenthetical}). +% +% For information on automatically generating the list of works cited with +% \BibTeX, see section~\ref{sec:bibtex}. +% +% \subsubsection{Parenthetical Documentation} \label{sec:parenthetical} +% A simple citation can by achieved with a call to +% \DescribeMacro{\cite}|\cite|\oarg{pages}\marg{marker}, where +% marker refers to the key given to either +% \index{BibTeX=\BibTeX|usage}\BibTeX{} or the |\bibitem| macro (|latex| +% in the above example). +% Omit \oarg{pages} if the source has no page numbers. +% Multiple sources can be cited using the syntax +% |\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 |\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 +% citation, use \DescribeMacro{\citepage}|\citepage|. Indirect +% 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{\citealp}|\citealp|. This was +% intended for use in cross references, but it can also help in citing +% multiple works. The result of +% |(\citealp[42]{texbook}|\texttt{; }|\citealp[69]{latexdps})| +% would be something like \examp[.]{(Knuth 42; Lamport 69)} +% +% \subsubsection{Using {\rm \BibTeX}} \label{sec:bibtex} +% Coupled with \index{BibTeX=\BibTeX|usage}\BibTeX, +% \package{mlastyle} provides a experimental implementation of MLA +% documentation style. Put\SpecialUsageIndex{\bibliographystyle} +% |\bibliographystyle{mlastyle}| in the document preamble to load the +% bibliography style. Alternatively, the +% \OptionIndex{bibstyle}\Lopt{bibstyle} option can handle this +% automatically, loading a bibliography style of |mlastyle| in \Lopt{mla} +% 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; 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} +% file, \file{bibtex} on the resulting \file{.aux} file, then \file{latex} +% twice more. +%\begin{verbatim} +%@BOOK{latexdps, +% AUTHOR = "Leslie Lamport", +% 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{latexdps}| to yield \examp{(Lamport, +% \emph{\LaTeX\/})} instead of \examp[.]{(Lamport, \emph{\LaTeX: A +% Doc\-um\-ent Pre\-pa\-ra\-tion Sys\-tem\/})} +% +% 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} % -% \StopEventually{\PrintChanges\PrintIndex} -% \iffalse -%<*package> -% \fi % \section{Implementation} +% \begin{macrocode} +%<*package> +% \end{macrocode} % % \subsection{Options} -% -% First, the options. +% \begin{macro}{\ifmlastyle@*} +% \begin{macro}{\mlastyle@*true} +% \begin{macro}{\mlastyle@*false} +% Most options are implemented by modifying a |\newif| declared for that +% purpose. % \begin{macrocode} \newif\ifmlastyle@bibstyle \DeclareOption{bibstyle}{\mlastyle@bibstyletrue} \DeclareOption{nobibstyle}{\mlastyle@bibstylefalse} -% \end{macrocode} -% \begin{macrocode} \newif\ifmlastyle@papersize \DeclareOption{papersize}{\mlastyle@papersizetrue} \DeclareOption{nopapersize}{\mlastyle@papersizefalse} @@ -220,11 +592,15 @@ \mlastyle@formatfalse \mlastyle@underlinefalse} \DeclareOption{singlespacequotes}{ - \def\mlastyle@qspread{\linespread{1}\normalsize\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 % \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % If the \Lopt{papersize} option is set, add the appropriate % \textsc{PostScript} special, or adjust |\pdfpagewidth| and % |\pdfpageheight| if pdf\LaTeX{} is in use. @@ -238,22 +614,18 @@ \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 +% 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 @@ -261,43 +633,334 @@ \fi % \ifmlastyle@times % \end{macrocode} % \subsection{Macros} -% \begin{macro}{\professor} -% Define the professor. +% \begin{macro}{\instructor} +% Define the instructor, along with an obsolete synonym. +% \begin{macrocode} +\def\instructor#1{\gdef\mlastyle@instructor{#1}} +\let\professor\instructor +% \end{macrocode} +% \end{macro} +% \begin{macro}{\course} +% Define the course, along with an obsolete synonym. +% \begin{macrocode} +\def\course#1{\gdef\mlastyle@course{#1}} +\let\classname\course +% \end{macrocode} +% \end{macro} +% \begin{macro}{\surname} +% Define the surname, along with an obsolete synonym. % \begin{macrocode} -\def\professor#1{\gdef\theprofessor{#1}} +\def\surname#1{\gdef\mlastyle@surname{#1}} +\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}{\classname} -% Define the class. +% \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\classname#1{\gdef\theclassname{#1}} +\def\urldate#1{\gdef\mlastyle@urldate{#1}} +\def\theurldate{\mlastyle@urldate} +\let\mlastyle@urldate\@date % \end{macrocode} % \end{macro} -% \begin{macro}{\lastname} -% Define the last name. +% \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{\newpage 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} -\def\lastname#1{\gdef\thelastname{#1}} + \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 only done if the \Lopt{format} option is set. This is the -% default. +% \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} -% Redefined |\maketitle| generate a heading in MLA format. +% \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{theprofessor}{}{\theprofessor}\par - \@ifundefined{theclassname}{}{\theclassname}\par + \@ifundefined{mlastyle@instructor}{}{\mlastyle@instructor}\par + \@ifundefined{mlastyle@course}{}{\mlastyle@course}\par \@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} @@ -307,33 +970,47 @@ % \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} + \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}{\@makecaption} +% |\@makecaption| should left align its contents. % \begin{macrocode} - \def\slash{/\penalty\z@} - %\let\mlastyle@sl@sh=/ - \def\mlastyle@slash{/\futurelet\mlastyle@slashnext\mlastyle@slashx} - \def\mlastyle@slashx{\ifx\mlastyle@slashnext/\else - \penalty\exhyphenpenalty\fi} +\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} % Sections are formatted by centering the section name and beginning a new % page. Subsections simply center the section name. % \begin{macrocode} - \renewcommand{\section}{\clearpage\@startsection{section}{1}{\z@ + \renewcommand{\section}{\@startsection{section}{1}{\z@ }{0pt}{1sp}{\centering}} \renewcommand{\subsection}{\@startsection{subsection}{2}{\z@ - }{0pt}{1sp}{\centering}} + }{0pt}{1sp}{\noindent}} + \renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@ + }{0pt}{1sp}{\noindent}} % \end{macrocode} +% ^^A\let\mlastyle@vfont\verbatim@font +% ^^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} \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} @@ -341,7 +1018,7 @@ % 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} @@ -350,49 +1027,49 @@ % 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} -% Works Cited environment, for compatibility with \package{mla-paper}. +% \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. -% ^^A%\settoheight{\headheight}{\llap{\parbox[b]{\textwidth}{\large\raggedleft Pope}}} +% right margin, .5 inches from the top of the page. % \begin{macrocode} - \setlength{\voffset}{-0.5in} + \addtolength{\voffset}{-.5in} \setlength{\textheight}{\paperheight} \addtolength{\textheight}{-2in} \setlength{\topmargin}{0in} - \addtolength{\headheight}{-1pt} - \setlength{\headheight}{1.4\headheight}% kludge - \setlength{\headsep}{0.5in} + \setlength\headheight\f@baselineskip + \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} - \setlength{\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 @@ -401,10 +1078,27 @@ \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} @@ -421,6 +1115,16 @@ \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} @@ -428,209 +1132,112 @@ \fancypagestyle{plain}{\fancyhf{}} \fancypagestyle{mlastyle}{ \fancyhf{} - \def\sw@llow##1 {} - \rhead{\@ifundefined{thelastname}% - {\expandafter\sw@llow\@author}{\thelastname} \thepage} + \rhead{\mlastyle@surname{} \thepage} \renewcommand{\headrulewidth}{0pt} - \renewcommand{\footrulewidth}{0pt} - } + \renewcommand{\footrulewidth}{0pt}} \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{ + \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} +% \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} -% \subsubsection{Miscellaneous} -% With all packages loaded, we can now redefine |/|. -% \begin{macrocode} - \catcode`/=13 - \let/=\mlastyle@slash -% \end{macrocode} -% The definition of |\thebibliography| varies depending on the document -% class. -% \begin{macrocode} - \@ifundefined{chapter} -% \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} - \sloppy%\sfcode`\.=1000\relax - }} -% \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 - }} -% \end{macrocode} -% We're done formatting! -% \begin{macrocode} -\fi % \ifmlastyle@format -% \end{macrocode} -% \subsection{Works Cited} -% \begin{macro}{\cite} -% 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} -% Since the original |\cite| is needed after it is overridden, it 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, ither |\citeC| or -% |\citeM| and its ilk will utilize it. -% \begin{macrocode} -\newcommand{\mlastyle@relax}[2][]{} -% \end{macrocode} % \end{macro} -% \subsubsection{MLA Style} -% \begin{macro}{\citeM} -% If the \Lopt{compat} option is {\em not\/} 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} -% \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. +% \subsubsection{Bibliography} +% \begin{macro}{\url@mlastyle} +% |\url| is needed to format urls in the bibliography. % \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}} +\urlstyle{mla} % \end{macrocode} % \end{macro} -% \begin{macro}{\@biblabel} -% No labels in the bibliography. +% ^^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\@biblabel#1{#1} - \labelsep\z@ - \let\mlastyle@intbib\thebibliography - \def\thebibliography#1{\mlastyle@intbib{#1} - \itemindent-\leftmargin\def\@biblabel##1{}} +\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 + \let\newblock\@empty + %\sfcode`\.=\@m + \usecounter{enumiv} + \sloppy + } + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} % \end{macrocode} -% \end{macro} -% Title the 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 only if the \Lopt{compat} option is set. +% \end{environment} +% 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} -% \end{macro} -% \iffalse +% ^^A \newcommand\bibpreamble{% +% ^^A \@ifundefined{citet}{}% +% ^^A {\bibhang\mlastyle@i\bibsep\z@}} +% \begin{macrocode} +\fi % \ifmlastyle@format +% \end{macrocode} + +% \begin{macrocode} % -% \fi +% \end{macrocode} % % \Finale \endinput +% vim:tw=74