X-Git-Url: http://git.tpope.net/?p=latex-mlastyle.git;a=blobdiff_plain;f=mlastyle.dtx;h=7033be8b0ee6686b7709c27bb15416c90055c73d;hp=c469d4beb378ea5feb74114f4b20aa5b9ade261a;hb=4bc6748190e5ece5a05f969febf7f3ec2468c337;hpb=2e1e0e12a311a7c91c274399fc004b41e59aad24 diff --git a/mlastyle.dtx b/mlastyle.dtx index c469d4b..7033be8 100644 --- a/mlastyle.dtx +++ b/mlastyle.dtx @@ -22,10 +22,12 @@ % %<*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", - TITLE = "MLA Handbook", + KEY = "MLA Handbook", EDITION = "Sixth", ADDRESS = "New York", PUBLISHER = "MLA", @@ -33,22 +35,31 @@ @BOOK{latexdps, AUTHOR = "Leslie Lamport", - TITLE = "\LaTeX: A Document Preparation System", - KEY = "\LaTeX", + TITLE = "{\LaTeX}: A Document Preparation System", + KEY = "{\LaTeX}", EDITION = "Second", ADDRESS = "Reading", PUBLISHER = "Addison-Wesley", YEAR = "1994"} @MANUAL{lshort, - author = {Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth -Schlegl}, - title = {The Not So Short Introduction to {\LaTeXe}}, - year = 2000, - month = "11~"#dec, - version = {4.0}, - url = {CTAN://info/lshort/} -} + AUTHOR = "Tobias Oetker and Hubert Partl and Irene Hyna and Elisabeth +Schlegl", + TITLE = "The Not So Short Introduction to {\LaTeXe}", + KEY = "Not So Short", + YEAR = "2000", + MONTH = dec, + VERSION = "4.0", + ACCESSDATE = "1~"#nov#"~2003", + URL = "CTAN://info/lshort/"} + +@MANUAL{btxdoc, + AUTHOR = "Oren Patashnik", + TITLE = "{\BibTex ing}", + YEAR = "1988", + MONTH = feb, + ACCESSDATE = "1~"#nov#"~2003", + URL = "CTAN://biblio/bibtex/distribs/doc/btxdoc.tex"} \end{filecontents} \documentclass[draft]{ltxdoc} \iffalse @@ -58,18 +69,26 @@ Schlegl}, \addtolength{\textwidth}{-1in} \addtolength{\headwidth}{-1in} \else + \IfFileExists{natbib.sty}{ + \usepackage{natbib} + \citeindextrue + \bibpunct{[}{]}{,}{n}{}{,}%{ + \bibliographystyle{plainnat}} + {\bibliographystyle{plain}} + \IfFileExists{url.sty}{\usepackage{url}}{} \usepackage[compat]{mlastyle} - \bibliographystyle{plain} - \addtolength{\headsep}{-5pt} + %\addtolength{\headsep}{-5pt} %\addtolength{\headheight}{-12pt} - \addtolength{\topmargin}{-17pt} - \addtolength{\textheight}{22pt} + %\addtolength{\topmargin}{-17pt} + %\addtolength{\textheight}{22pt} \IfFileExists{ulem.sty}{\usepackage[normalem]{ulem}}{\let\uline\emph} \fi \IfFileExists{times.sty}% {\newcommand{\examp}[2][]{{\let\emph\uline\fontfamily{ptm}\selectfont##2}##1}}% {\newcommand{\examp}[2][]{``##2##1''}} +{\makeatletter\gdef\NAT@MLA#1{#1}\gdef\NAT@idxtxt +{\expandafter\NAT@MLA\NAT@name\ \NAT@open\NAT@num\NAT@close}} \EnableCrossrefs \CodelineIndex \RecordChanges @@ -126,6 +145,7 @@ Schlegl}, % \DoNotIndex{\@listiv} % \DoNotIndex{\@listv} % \DoNotIndex{\@listvi} +% \DoNotIndex{\@m} % \DoNotIndex{\@startsection} % \DoNotIndex{\@tempswafalse} % \DoNotIndex{\@title} @@ -139,6 +159,7 @@ Schlegl}, % \DoNotIndex{\addtolength} % \DoNotIndex{\advance} % \DoNotIndex{\baselineskip} +% \DoNotIndex{\bibpreamble,\bibpunct,\bibsep} % \DoNotIndex{\begin} % \DoNotIndex{\bfseries} % \DoNotIndex{\c@enumiv} @@ -147,6 +168,7 @@ Schlegl}, % \DoNotIndex{\centerline} % \DoNotIndex{\chapter} % \DoNotIndex{\citation} +% \DoNotIndex{\citet,\citep} % \DoNotIndex{\clearpage} % \DoNotIndex{\csname} % \DoNotIndex{\day} @@ -166,6 +188,7 @@ Schlegl}, % \DoNotIndex{\fi} % \DoNotIndex{\futurelet} % \DoNotIndex{\gdef} +% \DoNotIndex{\global} % \DoNotIndex{\hangindent} % \DoNotIndex{\headrulewidth} % \DoNotIndex{\if@filesw} @@ -194,6 +217,7 @@ Schlegl}, % \DoNotIndex{\listparindent} % \DoNotIndex{\makeenmark} % \DoNotIndex{\mbox} +% \DoNotIndex{\ml@} % \DoNotIndex{\mlastyle@bibstylefalse} % \DoNotIndex{\mlastyle@bibstyletrue} % \DoNotIndex{\mlastyle@cite} @@ -219,6 +243,7 @@ Schlegl}, % \DoNotIndex{\month} % \DoNotIndex{\newblock} % \DoNotIndex{\newcommand} +% \DoNotIndex{\newdimen} % \DoNotIndex{\newenvironment} % \DoNotIndex{\newif} % \DoNotIndex{\newpage} @@ -246,7 +271,6 @@ Schlegl}, % \DoNotIndex{\sloppy} % \DoNotIndex{\space} % \DoNotIndex{\string} -% \DoNotIndex{\sw@llow} % \DoNotIndex{\the} % \DoNotIndex{\thebibliography} % \DoNotIndex{\thepage} @@ -256,6 +280,7 @@ Schlegl}, % \DoNotIndex{\write} % \DoNotIndex{\year} % \DoNotIndex{\z@} +% \DoNotIndex{\bibhang} % \DoNotIndex{\evensidemargin} % \DoNotIndex{\headheight} % \DoNotIndex{\headsep} @@ -290,7 +315,7 @@ Schlegl}, % \surname{Pope} % % \maketitle -% \nocite{*} +% % \tableofcontents % % \section{Introduction} @@ -412,13 +437,13 @@ Schlegl}, % %\bibitem[Lamport]{latexdps} %Lamport, Leslie. -%\newblock {\em \LaTeX: A Document Preparation System}. +%\newblock \emph{\LaTeX: A Document Preparation System}. %\newblock 2nd.~ed. %\newblock Reading: Addison-Wesley, 1994. % %\end{thebibliography}\end{verbatim} % In this example, |Lamport| is the author's last name (for use in -% citations) and |latex| is the marker used to reference it (see +% citations) and |latexdps| is the marker used to reference it (see % section~\ref{sec:parenthetical}). % % For information on automatically generating the list of works cited with @@ -435,7 +460,7 @@ Schlegl}, % |\cite|\oarg{pages}|{|\meta{marker % 1}\texttt{,}\penalty\exhyphenpenalty\meta{marker 2}\ldots|}|; however, page % numbers can currently be specified only for the last referenced source. -% To work around this limitation, use |\citeN|, explained below. +% To work around this limitation, use |\citealt|, explained below. % % Three additional citation commands are provided, all of which take the % same arguments as |\cite|. To omit the author information from the @@ -443,10 +468,10 @@ Schlegl}, % citations---those of the format \examp{(qtd. in Pope % \pageref{sec:italics})}---can be % created with \DescribeMacro{\citeindirect}|\citeindirect|. Finally, the -% parentheses are omitted by \DescribeMacro{\citeN}|\citeN|. This was +% parentheses are omitted by \DescribeMacro{\citealt}|\citealt|. This was % intended for use in cross references, but it can also help in citing % multiple works. The result of -% |(\citeN[42]{texbook}|\texttt{; }|\citeN[69]{latexdps})| +% |(\citealt[42]{texbook}|\texttt{; }|\citealt[69]{latexdps})| % would be something like \examp[.]{(Knuth 42; Lamport 69)} % % \subsubsection{Using {\rm \BibTeX}} \label{sec:bibtex} @@ -460,8 +485,9 @@ Schlegl}, % and \Lopt{style} modes and a bibliography style of |plain| in % \Lopt{format} and \Lopt{compat} modes. % -% Use of \BibTeX{} is also beyond the scope of this document; instead, -% another example is provided. To use it, substitute +% Use of \BibTeX{} is also beyond the scope of this document; consult +% Patashnik\citeC{btxdoc} for an introduction. +% Briefly, to use the following example, substitute % |\bibliography|\marg{filename} for the |thebibliography| environment. % Then create \meta{filename}\file{.bib} with the contents below. % Generating the document entails running \file{latex} on the \file{.tex} @@ -470,8 +496,8 @@ Schlegl}, %\begin{verbatim} %@BOOK{latexdps, % AUTHOR = "Leslie Lamport", -% TITLE = "\LaTeX: A Document Preparation System", -% KEY = "\LaTeX", +% TITLE = "{\LaTeX}: A Document Preparation System", +% KEY = "{\LaTeX}", % EDITION = "Second", % ADDRESS = "Reading", % PUBLISHER = "Addison-Wesley", @@ -597,7 +623,8 @@ Schlegl}, % Define the surname, along with an obsolete synonym. % \begin{macrocode} \def\surname#1{\gdef\mlastyle@surname{#1}} -\def\mlastyle@surname{\def\sw@llow##1 {}\expandafter\sw@llow\@author} +\def\mlastyle@surname{\def\ml@##1 ##2,##3@@{##2}% + \expandafter\ml@\@author, ,@@} \let\lastname\surname % \end{macrocode} % \end{macro} @@ -606,6 +633,12 @@ Schlegl}, % \begin{macrocode} \ifmlastyle@format % \end{macrocode} +% \begin{macro}{\mlastyle@i} +% This is the standard MLA format indent. +% \begin{macrocode} + \newdimen\mlastyle@i \mlastyle@i=.5in +% \end{macrocode} +% \end{macro} % \subsubsection{Macros} % \begin{macro}{\maketitle} % |\maketitle| generates a heading in MLA format. @@ -662,7 +695,7 @@ Schlegl}, % Indented 1 inch, with an additional .25 inch hanging indent. % \begin{macrocode} \renewenvironment{verse}{\list{}{\mlastyle@qspread - \advance\leftmargin.75in\itemindent-.25in + \advance\leftmargin1.5\mlastyle@i\itemindent-.5\mlastyle@i \listparindent\itemindent}\item\relax}{\endlist} % \end{macrocode} % \end{environment} @@ -670,7 +703,7 @@ Schlegl}, % Indented 1 inch, with a paragraph indent of an additional .25 inches. % \begin{macrocode} \renewenvironment{quotation}{\list{}{\mlastyle@qspread - \advance\leftmargin.5in\itemindent.25in + \advance\leftmargin\mlastyle@i\itemindent.5\mlastyle@i \listparindent\itemindent}\item\relax}{\endlist} % \end{macrocode} % \end{environment} @@ -679,8 +712,8 @@ Schlegl}, % indented. % \begin{macrocode} \renewenvironment{quote}{\list{}{\mlastyle@qspread - \advance\leftmargin.5in - \listparindent.25in}\item\relax}{\endlist} + \advance\leftmargin\mlastyle@i + \listparindent.5\mlastyle@i}\item\relax}{\endlist} % \end{macrocode} % \end{environment} % \begin{environment}{workscited} @@ -688,7 +721,7 @@ Schlegl}, % \begin{macrocode} \newenvironment{workscited}% {\newpage{\centerline{Works Cited}}}{\newpage} - \newcommand{\bibent}{\noindent \hangindent .5in} + \newcommand{\bibent}{\noindent \hangindent\mlastyle@i} % \end{macrocode} % \end{environment} % \subsubsection{Margins} @@ -697,31 +730,31 @@ Schlegl}, % ^^A\addtolength{\headheight}{-1pt} % ^^A\setlength{\headheight}{1.4\headheight}% kludge % \begin{macrocode} - \addtolength{\voffset}{-0.5in} + \addtolength{\voffset}{-.5in} \setlength{\textheight}{\paperheight} \addtolength{\textheight}{-2in} \setlength{\topmargin}{0in} \setlength\headheight\f@baselineskip - \setlength{\headsep}{0.5in} + \setlength{\headsep}{.5in} \addtolength{\headsep}{-\headheight} \setlength{\footskip}{0.25in} \raggedbottom % \end{macrocode} % Left and right margins in MLA format are each 1 inch wide. % \begin{macrocode} - \addtolength{\hoffset}{-0.5in} + \addtolength{\hoffset}{-.5in} \setlength{\textwidth}{\paperwidth} \addtolength{\textwidth}{-2in} - \setlength{\oddsidemargin}{0.5in} - \setlength{\evensidemargin}{0.5in} - \setlength{\marginparwidth}{0.5in} + \setlength{\oddsidemargin}{.5in} + \setlength{\evensidemargin}{.5in} + \setlength{\marginparwidth}{.5in} % \end{macrocode} % \subsubsection{Paragraphs} % Paragraphs should be left justified, with the first line indented .5 % inches. % \begin{macrocode} \raggedright - \setlength{\parindent}{.5in} + \setlength\parindent\mlastyle@i % \end{macrocode} % MLA format specifies that all paragraphs should be indented, even those % beginning a new section. This snippet from \package{indentfirst} changes @@ -771,7 +804,8 @@ Schlegl}, % \begin{macrocode} \RequirePackage[ragged,norule]{footmisc} \def\footnotelayout{\linespread{1}\footnotesize\raggedright{} } - \footnotemargin .56in + \footnotemargin\mlastyle@i + \advance\footnotemargin .35em \skip\footins=2\baselineskip \footnotesep 1.2\footnotesep \addtolength\footnotesep{\baselineskip} @@ -792,6 +826,10 @@ Schlegl}, % The definition of |\thebibliography| varies depending on the document % class. % \begin{macrocode} +\ifx\@undefined\url + \def\url#1{{\catcode`/=13\let/=\mlastyle@slash#1}} +\fi +\ifx\@undefined\citet \@ifundefined{chapter} % \end{macrocode} % Article class. @@ -804,7 +842,6 @@ Schlegl}, \itemindent-\leftmargin \def\newblock{} \usecounter{enumiv} - %\catcode`\/=13\global\let/=\mlastyle@slash \sloppy%\sfcode`\.=\@m }} % \end{macrocode} @@ -818,22 +855,41 @@ Schlegl}, \itemindent-\leftmargin \def\newblock{} \usecounter{enumiv} - %\catcode`/=13\let/=\mlastyle@slash \sloppy%\sfcode`\.=\@m }} % \end{macrocode} % \end{environment} +% \subsubsection{Experimental \package{natbib} Implementation} +% \begin{macrocode} +\else + \newcommand\bibpreamble{% + \@ifundefined{citet}{}% + {\bibhang\mlastyle@i\bibsep\z@}} +\fi +% \end{macrocode} % \begin{macrocode} \fi % \ifmlastyle@format % \end{macrocode} % \subsection{Style} +% \begin{macro}{\bibstyle@mlastyle} +% This first block is the beginnings of an implementation for +% \package{natbib}. +% \begin{macrocode} +\newcommand{\bibstyle@mlastyle}% +{\bibpunct[ ]{(}{)}{;}{a}{\mlastyle@comma}{,} +\gdef\mlastyle@comma{\ifx\NAT@date\space\def\NAT@date{\unskip}\else,\fi} +\@ifundefined{chapter} +{\gdef\refname{Works Cited}} +{\gdef\bibname{Works Cited}}} +% \end{macrocode} +%\end{macro} % \begin{macro}{\cite} -% \begin{macro}{\citeN} +% \begin{macro}{\citealt} % ^^A\begin{macro}{\citepage} % ^^A\begin{macro}{\citequote} % The following macros, combined with \file{mlastyle.bst}, provide % for a bibliography in MLA style. Note that the definition of |\cite|, -% |\citeN|, etc.\ vary depending on the options passed to +% |\citealt|, etc.\ vary depending on the options passed to % \package{mlastyle}. % % \begin{macro}{\mlastyle@intcite} @@ -857,11 +913,13 @@ Schlegl}, % 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\citeN{\def\@cite##1##2{##1\if@tempswa{} + \def\citealt{\def\@cite##1##2{##1\if@tempswa{} ##2\fi}\mlastyle@intcite} + \let\citeN\citealt \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} @@ -926,6 +984,14 @@ Schlegl}, \@ifundefined{chapter} {\renewcommand\refname{Works Cited}} {\renewcommand\bibname{Works Cited}} +\else + \let\cite\citep + \newcommand\citepage[2][]{\citeyearpar[\unskip #1]{#2}} + \newcommand\citepageM[2][]{ \citetext{#2}} + \newcommand\citeindirect[2][]{\citep[#1][qtd. in]{#2}} + \newcommand\citeindirectM[2][]{ \citep[#1][qtd. in]{#2}} + \let\citeC\mlastyle@relax +\fi % \end{macrocode} % % ^^A% Define the command \workscited{bib}{style}{nocite} @@ -948,11 +1014,16 @@ Schlegl}, % set. % \begin{macrocode} \else - \newcommand{\mlastyle@cite}[2][]{\@tempswafalse\@citex[]{#2}} + \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 - \newcommand{\citeC}[2][]{~\@tempswafalse\@citex[]{#2}} \let\citeM\mlastyle@relax \let\citepageM\mlastyle@relax \let\citeindirectM\mlastyle@relax