X-Git-Url: http://git.tpope.net/?p=latex-mlastyle.git;a=blobdiff_plain;f=mlastyle.dtx;h=35188b349d89fece0f42e0ca802b6eaff605ea14;hp=9710bc276af501d5c7293672e7cc4e1806ebd6f4;hb=HEAD;hpb=49d6ef900d8cbc6f20f25d2abf2b9b2df4c9e00e diff --git a/mlastyle.dtx b/mlastyle.dtx index 9710bc2..35188b3 100644 --- a/mlastyle.dtx +++ b/mlastyle.dtx @@ -88,7 +88,7 @@ Schlegl", {\newcommand{\examp}[2][]{``##2##1''}} {\makeatletter\gdef\NAT@MLA#1{#1}\gdef\NAT@idxtxt -{\expandafter\NAT@MLA\NAT@name\ \NAT@open\NAT@num\NAT@close}} +{\expandafter\NAT@MLA\NAT@name{} \NAT@open\NAT@num\NAT@close}} \EnableCrossrefs \CodelineIndex \RecordChanges @@ -123,44 +123,63 @@ Schlegl", % % \GetFileInfo{mlastyle.sty} % -% \DoNotIndex{\ } -% \DoNotIndex{\.} +% \makeatletter ^^A Get |\ | out of my index, damn it! +% \def\DoNotIndex{\begingroup \MakePrivateLetters +% \catcode`\\12 +% \catcode`\ 12 +% \do@not@index} +% \index@excludelist{\ } +% \makeatother +% \DoNotIndex{\ ,\:,\/,\.} % \DoNotIndex{\@afterindentfalse,\@afterindenttrue} % \DoNotIndex{\@arabic} % \DoNotIndex{\@author} % \DoNotIndex{\@auxout} -% \DoNotIndex{\@citea,\@citeb} +% \DoNotIndex{\@biblabel,\@citea,\@citeb,\@citex} % \DoNotIndex{\@date} % \DoNotIndex{\@empty} % \DoNotIndex{\@for} % \DoNotIndex{\@ifnextchar,\@ifstar,\@ifundefined} % \DoNotIndex{\@latex@warning} % \DoNotIndex{\@listI} -% \DoNotIndex{\@listi} -% \DoNotIndex{\@listii} -% \DoNotIndex{\@listiii} -% \DoNotIndex{\@listiv} -% \DoNotIndex{\@listv} -% \DoNotIndex{\@listvi} +% \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} +% \DoNotIndex{\baselineskip,\lineskip,\lineskiplimit} % \DoNotIndex{\bibpreamble,\bibpunct,\bibsep} % \DoNotIndex{\begin} % \DoNotIndex{\bfseries} -% \DoNotIndex{\bgroup} +% \DoNotIndex{\bgroup,\egroup,\begingroup,\endgroup} % \DoNotIndex{\c@enumiv} % \DoNotIndex{\catcode} % \DoNotIndex{\centering} @@ -169,14 +188,15 @@ Schlegl", % \DoNotIndex{\citation} % \DoNotIndex{\citet,\citep} % \DoNotIndex{\clearpage} +% \DoNotIndex{\color@begingroup,\color@endgroup} % \DoNotIndex{\csname} % \DoNotIndex{\day} % \DoNotIndex{\def} % \DoNotIndex{\do} % \DoNotIndex{\edef} -% \DoNotIndex{\egroup} % \DoNotIndex{\else} % \DoNotIndex{\end} +% \DoNotIndex{\endnote,\footnote} % \DoNotIndex{\endcsname} % \DoNotIndex{\endlist} % \DoNotIndex{\exhyphenpenalty} @@ -188,11 +208,13 @@ Schlegl", % \DoNotIndex{\futurelet} % \DoNotIndex{\gdef} % \DoNotIndex{\global} +% \DoNotIndex{\hbox,\hfill,\hrule} % \DoNotIndex{\hangindent} -% \DoNotIndex{\headrulewidth} +% \DoNotIndex{\headrulewidth,\footrulewidth} +% \DoNotIndex{\ignorespaces} % \DoNotIndex{\if@filesw} % \DoNotIndex{\if@tempswa} -% \DoNotIndex{\ifcase} +% \DoNotIndex{\if,\ifcase,\ifcat,\ifdim,\ifhmode,\ifnum,\ifx} % \DoNotIndex{\ifmlastyle@bibstyle} % \DoNotIndex{\ifmlastyle@format} % \DoNotIndex{\ifmlastyle@pages} @@ -200,21 +222,24 @@ Schlegl", % \DoNotIndex{\ifmlastyle@style} % \DoNotIndex{\ifmlastyle@times} % \DoNotIndex{\ifmlastyle@underline} -% \DoNotIndex{\ifx} % \DoNotIndex{\immediate} +% \DoNotIndex{\insert,\insertpenalties} % \DoNotIndex{\item} % \DoNotIndex{\itemindent} % \DoNotIndex{\itemsep} -% \DoNotIndex{\labelsep} -% \DoNotIndex{\labelwidth} +% \DoNotIndex{\kern} +% \DoNotIndex{\labelsep,\labelwidth} +% \DoNotIndex{\lastname,\citeN} +% \DoNotIndex{\leaders} % \DoNotIndex{\leavevmode} % \DoNotIndex{\leftmargin} % \DoNotIndex{\leftmargini,\leftmarginii,\leftmarginiii} % \DoNotIndex{\leftmarginiv,\leftmarginv,\leftmarginvi} -% \DoNotIndex{\let} +% \DoNotIndex{\let,\long} % \DoNotIndex{\linespread} % \DoNotIndex{\list} % \DoNotIndex{\listparindent} +% \DoNotIndex{\mathchardef} % \DoNotIndex{\makeenmark} % \DoNotIndex{\mbox} % \DoNotIndex{\ml@} @@ -226,15 +251,18 @@ Schlegl", % \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} @@ -242,6 +270,7 @@ Schlegl", % \DoNotIndex{\mlastyle@timestrue} % \DoNotIndex{\mlastyle@underlinefalse} % \DoNotIndex{\mlastyle@underlinetrue} +% \DoNotIndex{\mlastyle@urldate} % \DoNotIndex{\month} % \DoNotIndex{\newblock} % \DoNotIndex{\newcommand} @@ -262,10 +291,13 @@ Schlegl", % \DoNotIndex{\penalty} % \DoNotIndex{\protected@xdef} % \DoNotIndex{\relax} +% \DoNotIndex{\relpenalty} % \DoNotIndex{\renewcommand} % \DoNotIndex{\renewenvironment} % \DoNotIndex{\rhead} -% \DoNotIndex{\selectfont} +% \DoNotIndex{\reset@font,\selectfont} +% \DoNotIndex{\rule,\strut,\strutbox} +% \DoNotIndex{\splittopskip} % \DoNotIndex{\setlength} % \DoNotIndex{\settowidth} % \DoNotIndex{\sfcode} @@ -279,14 +311,16 @@ Schlegl", % \DoNotIndex{\topsep} % \DoNotIndex{\usecounter} % \DoNotIndex{\unskip} -% \DoNotIndex{\vskip} +% \DoNotIndex{\vbox,\vskip,\vss} +% \DoNotIndex{\xdef} % \DoNotIndex{\write} % \DoNotIndex{\year} % \DoNotIndex{\z@} +% \DoNotIndex{\footnotesep,\footins,\@finalstrut,\@makefnmark} % \DoNotIndex{\bibhang} % \DoNotIndex{\evensidemargin} % \DoNotIndex{\headheight} -% \DoNotIndex{\headsep} +% \DoNotIndex{\headsep,\footskip} % \DoNotIndex{\hoffset} % \DoNotIndex{\marginparwidth} % \DoNotIndex{\oddsidemargin} @@ -558,7 +592,8 @@ Schlegl", \mlastyle@formatfalse \mlastyle@underlinefalse} \DeclareOption{singlespacequotes}{ - \def\mlastyle@qspread{\linespread{1}\selectfont\vskip\baselineskip}} + \def\mlastyle@qspread{\lineskip=.1\baselineskip% + \lineskiplimit=\lineskip\linespread{1}\selectfont\vskip\baselineskip}} \DeclareOption{doublespacequotes}{\let\mlastyle@qspread\relax} \ExecuteOptions{nobibstyle,nopapersize,mla,cm,doublespacequotes} \ProcessOptions @@ -621,40 +656,169 @@ Schlegl", \let\lastname\surname % \end{macrocode} % \end{macro} - +% \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\urldate#1{\gdef\mlastyle@urldate{#1}} +\def\theurldate{\mlastyle@urldate} +\let\mlastyle@urldate\@date +% \end{macrocode} +% \end{macro} +% \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[\mlastyle@space]{\mlastyle@brack(}{\mlastyle@brack)}% - {\unskip;}{a}{\mlastyle@comma}{,} - \gdef\mlastyle@brack##1{\ifx\NAT@date\mlastyle@notitle - \ifmlastyle@pages ##1\else\ifNAT@swa\ifnum - \NAT@ctype=0 ##1\else\unskip\fi\else\unskip\fi\fi\else ##1\fi} - \gdef\mlastyle@comma{\ifx\NAT@date\mlastyle@notitle\else,\fi} - \gdef\mlastyle@space{\ifx\NAT@date\mlastyle@notitle - \ifnum\NAT@ctype=1{} \fi\else{} \fi} -% \ifNAT@par\ifNAT@swa{} \fi\else{} \fi\fi\else{} \fi} - \gdef\citetext##1{(##1)} + \bibpunct[ ]{(}{)}{;}{a}{,}{,} \@ifundefined{chapter} - {\gdef\refname{Works Cited}} + {\gdef\refname{\newpage Works Cited}} {\gdef\bibname{Works Cited}}} % \end{macrocode} % \end{macro} -% \begin{macro}{\mlastyle@notitle} -% This hack represents an empty title in the MLA bibliography style. +% \begin{macro}{\NAT@citex} +% The year field is normally empty but contains the title field if it is +% needed. This is handled inconsistantly by \package{natbib}, so it is +% fixed up here. % \begin{macrocode} -\def\mlastyle@notitle - { \ \ \ \ \unskip\unskip\unskip\unskip\unskip} \RequirePackage{natbib} -\newif\ifmlastyle@pages -\renewcommand\NAT@citetp -{\@ifnextchar[{\mlastyle@pagestrue\NAT@@citetp}% - {\mlastyle@pagesfalse\NAT@@citetp[]}} +\def\NAT@citex + [#1][#2]#3{% + \NAT@sort@cites{#3}% + \let\@citea\@empty + \let\@citec\@empty + \ifNAT@swa + \if*#1*\if*#2*\def\@citea{\def\@citec{\NAT@@close}\NAT@@open}\else + \NAT@@open\def\@citea{\def\@citec + {\NAT@cmt#2\NAT@@close}}\def\@citec{#2\NAT@@close}\fi\else + \NAT@@open#1\ \if*#2*\def\@citec{\unskip\NAT@@close}\else + \def\@citec{#2\NAT@@close}\def\@citea{\def\@citec + {\NAT@cmt#2\NAT@@close}}\fi\fi + \fi + \let\NAT@nm\@empty\let\NAT@year\@empty + \@for\@citeb:=\NAT@cite@list\do + {\edef\@citeb{\expandafter\@firstofone\@citeb}% + \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi + \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea% + {\reset@font\bfseries ?}\NAT@citeundefined + \PackageWarning{natbib}% + {Citation `\@citeb' on page \thepage \space undefined}% + \def\NAT@date{}}% + {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year + \NAT@parse{\@citeb}% + \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% + \let\NAT@name=\NAT@all@names + \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% + \fi + \ifNAT@full\let\NAT@nm\NAT@all@names\else + \let\NAT@nm\NAT@name\fi + \ifNAT@swa\ifcase\NAT@ctype + \if*\NAT@date* + \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@nmfmt{\NAT@nm}\NAT@date\hyper@natlinkend + \else + \ifx\NAT@last@nm\NAT@nm\NAT@yrsep + \ifx\NAT@last@yr\@empty\let\NAT@last@yr\relax\fi + \ifx\NAT@last@yr\NAT@year + \def\NAT@temp{{?}}% + \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% + {Multiple citation on page \thepage: same authors and + year\MessageBreak without distinguishing extra + letter,\MessageBreak appears as question mark}\fi + \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab + \hyper@natlinkend + \else\unskip + \ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date + \hyper@natlinkend + \fi + \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@nmfmt{\NAT@nm}% + \hyper@natlinkbreak{\NAT@aysep\ }{\@citeb\@extra@b@citeb}% + \NAT@date\hyper@natlinkend + \fi + \fi + \def\@citea{\NAT@sep\ }% + \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@nmfmt{\NAT@nm}\hyper@natlinkend + \def\@citea{\NAT@sep\ }% + \or\if*\NAT@date*\else + \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@date\hyper@natlinkend + \def\@citea{\NAT@sep\ }\fi + \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@alias\hyper@natlinkend + \def\@citea{\NAT@sep\ }% + \fi + \else\ifcase\NAT@ctype + \if*\NAT@date* + \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@nmfmt{\NAT@nm}\hyper@natlinkend + \if*#1*\def\@citea{\NAT@sep\ }% + \if*#2*\let\@citec\@empty\else + \def\@citec{\ \NAT@@open#2\NAT@@close}\fi + \else\ \NAT@@open\def\@citea{\NAT@@close\NAT@sep\ } + \if*#2*\def\@citec{\NAT@@close}\else + \def\@citec{\ #2\NAT@@close}\fi\fi + \else + \ifx\NAT@last@nm\NAT@nm\NAT@yrsep + \ifx\NAT@last@yr\NAT@year + \def\NAT@temp{{?}}% + \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% + {Multiple citation on page \thepage: same authors and + year\MessageBreak without distinguishing extra + letter,\MessageBreak appears as question mark}\fi + \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab + \hyper@natlinkend + \else\unskip + \ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date + \hyper@natlinkend + \fi + \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@nmfmt{\NAT@nm}% + \hyper@natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}% + {\@citeb\@extra@b@citeb}% + \NAT@date\hyper@natlinkend\fi + \if*#2*\def\@citec{\NAT@@close}\else + \def\@citec{\NAT@cmt#2\NAT@@close}\fi + \def\@citea{\NAT@@close\NAT@sep\ }% + \fi + \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@nmfmt{\NAT@nm}\hyper@natlinkend + \if*#2*\let\@citec\@empty\else + \def\@citec{ \NAT@@open#2\NAT@@close}\fi + \def\@citea{\NAT@sep\ }% + \or\if*\NAT@date*\else\@citea + \NAT@@open + \def\@citea{\NAT@@close\NAT@sep\ }% + \if*#2*\def\@citec{\NAT@@close}\else + \def\@citec{\NAT@cmt#2\NAT@@close}\fi + \hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@date\hyper@natlinkend\fi + \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}% + \NAT@alias\hyper@natlinkend + \def\@citea{\NAT@sep\ }% + \fi + \fi + }}% + \@citec\ifhmode\unskip\fi\endgroup} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\NAT@parse@date} +% |\NAT@parse@date| fails if the date contains a control sequence, so it +% is also redefined. +% \begin{macrocode} +\def\NAT@parse@date#1#2#3#4#5#6@@{% + \ifcat\relax#1\def\NAT@year{}\def\NAT@exlab{}\else + \ifcat a#1\def\NAT@year{}\def\NAT@exlab{#1}\else + \ifcat a#2\def\NAT@year{#1}\def\NAT@exlab{#2}\else + \ifcat a#3\def\NAT@year{#1#2}\def\NAT@exlab{#3}\else + \ifcat a#4\def\NAT@year{#1#2#3}\def\NAT@exlab{#4}\else + \def\NAT@year{#1#2#3#4}\def\NAT@exlab{{#5}}\fi\fi\fi\fi\fi} % \end{macrocode} -%\end{macro} +% \end{macro} % \begin{macro}{\cite} % \begin{macro}{\citealp} % ^^A\begin{macro}{\citepage} @@ -697,7 +861,7 @@ Schlegl", \let\mlastyle@citequeue\@empty \def\mlastyle@cite#1#2#3{\csname#1\endcsname[#2]{#3}} \newcommand\citeflush{\ifhmode\unskip\fi - \ifx\mlastyle@citequeue\@empty\else{} \let\@citea\relax + \ifx\mlastyle@citequeue\@empty\else\ \let\@citea\relax \citetext{\@for\@citeb:=\mlastyle@citequeue\do{\@citea \expandafter\mlastyle@cite\@citeb\def\@citea{\NAT@sep\ }}}% \global\let\mlastyle@citequeue\@empty\fi} @@ -717,7 +881,7 @@ Schlegl", \newcommand\mlastyle@Citea[2][]{\expandafter\Citeauthor \mlastyle@star{#2}\mlastyle@citeadd{citeyear}{#1}{#2}} \newcommand\citepage[2][]{\citeyearpar[#1]{#2}} - \newcommand\citepageM[2][]{\unskip{} \citeyearpar[#1]{#2}} + \newcommand\citepageM[2][]{\unskip\ \citeyearpar[#1]{#2}} \newcommand\citeindirect[2][]{\citep[qtd.\ in][#1]{#2}} \newcommand\citeindirectM[2][]{\unskip{} \citep[qtd.\ in][#1]{#2}} \let\citeN\citealp @@ -757,22 +921,36 @@ Schlegl", % \end{macro} % \end{macro} % \subsection{Formatting} -% Formatting is done if the \Lopt{mla} or \Lopt{format} option is set. +% \begin{macro}{\urlstyle@mlastyle} +% This first bit is always done, even if formatting is disabled. % \begin{macrocode} -\ifmlastyle@format +\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} % \begin{macro}{\and} % |\maketitle| generates a heading in MLA format. % \begin{macrocode} - \renewcommand{\maketitle}{\begin{flushleft} + \renewcommand{\maketitle}{% + \global\@topnum\z@ + \begin{flushleft}% \@author\par \@ifundefined{mlastyle@instructor}{}{\mlastyle@instructor}\par \@ifundefined{mlastyle@course}{}{\mlastyle@course}\par @@ -795,24 +973,30 @@ Schlegl", % No penalty for |\slash|. % ^^A\let\mlastyle@sl@sh=/ % \begin{macrocode} - \def\slash{/\penalty\z@} + \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} +\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}{\centering}} + }{0pt}{1sp}{\noindent}} % \end{macrocode} % ^^A\let\mlastyle@vfont\verbatim@font % ^^A\def\verbatim@font{\mlastyle@qspread\mlastyle@vfont} @@ -860,8 +1044,6 @@ Schlegl", % \subsubsection{Margins} % Top and bottom margins are 1 inch each. The header is flush with the % right margin, .5 inches from the top of the page. -% ^^A\addtolength{\headheight}{-1pt} -% ^^A\setlength{\headheight}{1.4\headheight}% kludge % \begin{macrocode} \addtolength{\voffset}{-.5in} \setlength{\textheight}{\paperheight} @@ -896,10 +1078,27 @@ Schlegl", \let\@afterindentfalse\@afterindenttrue \@afterindenttrue % \end{macrocode} -% Double space {\em everywhere}. +% Double space {\em everywhere}. In a 12pt font, the default +% |\baselineskip| is changed from 14.5pt to 14.4pt. % ^^A\RequirePackage{doublespace} % \begin{macrocode} - \linespread{2.0} + \normalsize + \ifdim\baselineskip=14.5pt + \renewcommand\normalsize{% + \@setfontsize\normalsize\@xiipt{14.4}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI}\normalsize + \fi + \linespread{2} + \ifx\relax\mlastyle@qspread + \lineskiplimit=.5\baselineskip + \else + \lineskiplimit=.2\baselineskip + \fi + \lineskip=\lineskiplimit \leftmargini\parindent \def\@listi{\leftmargin\leftmargini \parsep\z@\itemsep\z@\topsep -3\p@\relax} @@ -920,9 +1119,9 @@ Schlegl", % Only one space after colons, unless someone else has already tinkered % with its space factor. % \begin{macrocode} -\let\nonfrenchspacing\mlstyle@intnfs -\def\nonfrenchspacing{\mlastyle@intnfs - \ifnum\the\sfcode`\:=2000\sfcode`\:=1999\fi} + \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} @@ -939,41 +1138,64 @@ Schlegl", \pagestyle{mlastyle} % \end{macrocode} % \subsubsection{Notes} -% Footnotes should be indented .5 inches; however .56 inches is used -% in a crude attempt to compensate for -% the alignment provided by the \package{footmisc} package. Endnotes are -% preferred in MLA style anyway, so this should not be a problem in most -% circumstances. -% \begin{macrocode} - \RequirePackage[ragged,norule]{footmisc} - \def\footnotelayout{\linespread{1}\footnotesize\raggedright{} } - \footnotemargin\mlastyle@i - \advance\footnotemargin .35em - \skip\footins=2\baselineskip - \footnotesep 1.2\footnotesep - \addtolength\footnotesep{\baselineskip} - \def\footnotesize{\normalsize} -% \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} +% \end{macro} +% \end{macro} +% \end{macro} % \subsubsection{Bibliography} -% \textsc{To Do}: Switch to the \package{url} package. +% \begin{macro}{\url@mlastyle} +% |\url| is needed to format urls in the bibliography. % \begin{macrocode} -\ifx\@undefined\url{ - \catcode`/=13 - \gdef\url{\bgroup\catcode`/=13 - \let/\slash\mlastyle@url} - \gdef\mlastyle@url#1{#1\egroup} -}\fi +\urlstyle{mla} % \end{macrocode} +% \end{macro} +% ^^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.