From 4d6ffda67a7c20ceb75a0a407c48814b4335a950 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 13 Feb 2011 23:30:42 +0000 Subject: new latex package apa6e (13feb11) git-svn-id: svn://tug.org/texlive/trunk@21388 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/apa6e/apa6e.dtx | 427 +++++++++++++++++++++++++ 1 file changed, 427 insertions(+) create mode 100644 Master/texmf-dist/source/latex/apa6e/apa6e.dtx (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/apa6e/apa6e.dtx b/Master/texmf-dist/source/latex/apa6e/apa6e.dtx new file mode 100644 index 00000000000..145c58063c3 --- /dev/null +++ b/Master/texmf-dist/source/latex/apa6e/apa6e.dtx @@ -0,0 +1,427 @@ +% \iffalse meta-comment +% +% Copyright (C) 2011 by Nathaniel J. Smith +% -------------------------------------------------------- +% +% Redistribution and use in source and binary forms, with or without +% modification, are permitted provided that the following conditions are +% met: +% +% 1. Redistributions of source code must retain the above copyright +% notice, this list of conditions and the following disclaimer. +% +% 2. Redistributions in binary form must reproduce the above +% copyright notice, this list of conditions and the following +% disclaimer in the documentation and/or other materials provided +% with the distribution. +% +% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +% ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +% A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +% HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +% SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +% LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +% DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +% THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +% (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +% OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{apa6e.dtx} +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesClass{apa6e} +%<*class> + [2011/02/12 v0.1 APA 6e manuscript formatting] +% +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{url} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{apa6e.dtx} +\end{document} +% +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% +% \changes{v0.1}{2011/02/12}{Initial version} +% +% \GetFileInfo{apa6e.dtx} +% +% \DoNotIndex{\newcommand,\renewcommand} +% +% +% \title{The \textsf{apa6e} class\thanks{This document +% corresponds to \textsf{apa6e}~\fileversion, dated \filedate.}} +% \author{Nathaniel J.~Smith \\ \texttt{njs@pobox.com}} +% +% \maketitle +% +% \section{Introduction} +% +% This is a minimalist class file for formatting manuscripts in the +% style described the American Psychological Association (APA) 6th +% edition guidelines. Perhaps someday the more capable +% \textsf{apa.cls} will gain support for 6th edition APA formatting, +% in which case you should probably use it instead. But in the mean +% time, this class may be useful. +% +% Note that this class relies heavily on existing \LaTeX\ packages to +% do its work. If you're using a reasonably complete \LaTeX\ +% distribution like \TeX\ Live then you probably have them already, +% but if not then they can all be retrieved from CTAN. +% +% \section{Usage} +% +% Here's a sample document to get you started: +% \begin{verbatim} +% \documentclass{apa6e} +% \usepackage{apacite} % This is not done automatically! +% \bibliographystyle{apacite} +% \title{A simple, correct explanation for every aspect of mental function} +% \shorttitle{Psychology: the end} +% \author{Over J.~Optimistic\\Pie in the Sky University} +% \authornote{\dots} +% \abstract{\dots} +% \begin{document} +% \maketitle +% I have discovered a truly remarkable theory which +% this example is too small to contain. +% \bibliography{my-refs} +% \end{document} +% \end{verbatim} +% Pretty simple, really. But for a few more details, read on. +% +% \subsection{References} +% +% This class does not provide any built-in support for formatting +% references in APA style; I suggest using either the classic +% \textsf{apacite} package, or the \textsf{biblatex-apa} package +% (which more accurately implements current APA guidelines, but +% depends on use of the new \textsf{biblatex} system). +% +% If you do use \textsf{apacite}, then this package will automatically +% make sure that it uses the appropriate style of header. If you use +% \textsf{biblatex-apa}, then you're on your own --- if you try this, +% please let me know whether you had to adjust anything! +% +% \subsection{Class options} +% +% This class supports two options. +% +% \subsubsection{\texttt{leavefloats}} +% When reading drafts, I find the APA manuscript format quite +% usable, except that I find it very annoying to have to flip back and +% forth between the text and tables/figures/their captions. Use this +% option if you want to let \LaTeX do use normal handling of floats, +% e.g.: |\documentclass[leavefloats]{apa6e}|. +% +% To make sure you don't forget to take it out before submitting, +% this also inserts a large note on the front page to remind you that +% you are looking at a draft with illegitimate formatting. +% +% \subsubsection\texttt{endnotes} +% APA style allows footnotes to either be formatted as footnotes +% directly in the text, or placed at the end in a `Footnotes' +% section. By default we do the former; if you really want the latter +% for some reason, then enable this option: +% |\documentclass[endnotes]{apa6e}|. +% +% Of course, if you want both, then you can accomplish that in the +% usual way: |\documentclass[leavefloats,endnotes]{apa6e}|. +% +% \subsection{Known limitations} +% +% We currently make no attempt to alter the standard list +% environments (|itemize|, |enumerate|). As far as I can tell they are +% already APA compliant, but they might introduce enough extra +% vertical spacing as to be visually unpleasant. If this bothers you +% and you find a good solution, let me know. (Also, we don't even +% attempt to reproduce \textsf{apa.cls}'s |seriate| environment. I'm +% not sure why one would use it in the first place.) +% +% We only format manuscripts; in particular, there is no equivalent to +% \textsf{apa.cls}'s |jou| or |doc| modes. I don't really see the +% point, personally, so I'm unlikely to fix this, but if you find +% one of these modes useful and want to write some code for it, then +% contributions are welcome. +% +% \subsection{Known \textit{Non}-limitations} +% +% In \textsf{apa.cls}, you cannot have any blank lines around +% |\maketitle|, or formatting gets screwed up. When using +% \textsf{apa6e.cls}, you can use as many blank lines as you like. Go +% crazy. +% +% In \textsf{apa.cls}, you must be careful about where you place your +% captions inside a floating environment --- they must go at the top +% of |table| environments, and at the bottom of |figure| +% environments. In \textsf{apa6e.cls}, you can put your captions +% where-ever you want, and they'll still come out in the right +% place. One less thing to worry about. +% +% \subsection{New macros} +% +% \DescribeMacro{\mspart} +% This class defines just one new macro, and you shouldn't need to use +% it. But just in case\dots\ |\mspart| is a new sectioning command, +% designed to format the header at the beginning of each APA +% manuscript `part' --- e.g., the abstract, the main body, the +% references, etc. The syntax is exactly the same as for |\section| +% and friends, e.g.: |\mspart{Abstract}|. However, since all the +% standard manuscript parts are generated automatically by other +% macros, this is unlikely to be useful. +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \section{Implementation} +% +% Define our options, and then load up the standard \textsf{article} class. +% \begin{macrocode} +\DeclareOption{endnotes}{\def\apaSIXe@endnotes\relax} +\DeclareOption{leavefloats}{\def\apaSIXe@leavefloats\relax} +% \end{macrocode} +% All unrecognized options are passed through to \textsf{article}. +% \begin{macrocode} +\DeclareOption*{% +\PassOptionsToClass{\CurrentOption}{article}% +} +\ProcessOptions\relax +\LoadClass[12pt]{article} +% \end{macrocode} +% We want to typeset everything in Times, including math. +% \begin{macrocode} +\RequirePackage{times} +\RequirePackage{mathptmx} +% \end{macrocode} +% Set margins and justification. +% \begin{macrocode} +\RequirePackage[margin=1in]{geometry} +\RequirePackage[document]{ragged2e} +% \end{macrocode} +% APA 6e says that indents should be ``5--7 spaces, or 1/2 +% inch''. We'll use the latter. +% \begin{macrocode} +\setlength{\RaggedRightParindent}{0.5in} +% \end{macrocode} +% Doublespacing: The \textsf{setspace} package has the good taste to +% disable doublespacing for things like captions and footnotes; the +% APA doesn't. Which is totally reasonable, but it means that we can't +% use \textsf{setspace}. I stole this magic number from the +% \textsf{setspace} code --- it is only correct for 12 pt font. But +% we only support 12 pt font anyway. +% \begin{macrocode} +\newcommand{\@doublespacing}{\linespread{1.655}} +\@doublespacing +% \end{macrocode} +% Set up the running header. +% \begin{macrocode} +\RequirePackage{fancyhdr} +\setlength{\headheight}{15.2pt} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\rhead{\thepage} +\fancypagestyle{titlepage}{\lhead{Running head: \MakeUppercase{\@shorttitle}}} +\fancypagestyle{otherpage}{\lhead{\MakeUppercase{\@shorttitle}}} +\pagestyle{otherpage} +% \end{macrocode} +% \subsection{The title page} +% The commands to capture the various bits of the title page and +% abstract. +% \begin{macrocode} +\newcommand{\shorttitle}[1]{\def\@shorttitle{#1}} +\renewcommand{\title}[1]{\def\@title{#1}} +\renewcommand{\author}[1]{\def\@author{#1}} +\newcommand{\authornote}[1]{\def\@authornote{#1}} +\renewcommand{\abstract}[1]{\def\@abstract{#1}} +% \end{macrocode} +% And here's how we actually format the title page. +% \begin{macrocode} +\renewcommand{\maketitle}{% +\thispagestyle{titlepage}% +\vspace*{1in}% +\Centering\@title\\\@author% +\vfill% +\ifdefined% + \apaSIXe@leavefloats% + {\large\textbf{Note! Figures and tables are currently mixed in with + text for easy reading; remember to remove the \textsf{leavefloats} + option before submission.}\vfill}% +\fi +Author Note\par\RaggedRight\@authornote% +\mspart{Abstract}% +\@abstract% +\mspart{\@title}} +% \end{macrocode} +% By default, the \textsf{apacite} package will format the beginning +% of the references as if a section, by calling +% |\section{References}|. But that would be wrong. So we override the +% internal command that it uses to do this. +% \begin{macrocode} +\AtBeginDocument{\def\st@rtbibsection{\mspart{References}}} +% \end{macrocode} +% \subsection{Captions} +% Caption formatting is complicated. For tables, captions go above the +% float body, and are formatted like: +% \begin{center} +% \framebox{\begin{tabular}{ll}Table 3 \\ \textit{My fabulous table}\end{tabular}} +% \end{center} +% For figures, captions go below the float body, and are formatted like: +% \begin{center} +% \framebox{\textit{Figure 7:} My smashing graph.} +% \end{center} +% \begin{macrocode} +\RequirePackage{float} +\floatstyle{plaintop} +\restylefloat{table} +\floatstyle{plain} % This puts captions below the figure +\restylefloat{figure} +\RequirePackage[singlelinecheck=off,justification=RaggedRight]{caption} +\DeclareCaptionLabelFormat{tablelabel}{\hspace{-\RaggedRightParindent}#1 #2} +\DeclareCaptionLabelFormat{figurelabel}{\hspace{-\RaggedRightParindent}\textit{#1 #2}} +\DeclareCaptionTextFormat{tabletext}{\hspace{-\RaggedRightParindent}\textit{#1}} +\captionsetup[table]{position=above,labelformat=tablelabel,labelsep=newline, + textformat=tabletext} +\captionsetup[figure]{position=below,labelformat=figurelabel} +% \end{macrocode} +% \subsection{Sectioning} +% First, disable section numbering. +% \begin{macrocode} +\setcounter{secnumdepth}{0} +% \end{macrocode} +% Now, redefine the various sectioning commands to look like APA +% titles --- |\section| is APA level 1, |\subsection| is APA level 2, +% etc. This requires we use the |\@startsection| macro, which is very +% confusing. Apparently it is documented in something called +% \texttt{rep10.doc}; I found the relevant snippet at +% \url{http://help-csli.stanford.edu/tex/latex-sections.shtml} and +% reproduce it here for reference: +% +% \begin{verbatim} +% \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE} +% optional * [ALTHEADING]{HEADING} +% Generic command to start a section. +% NAME : e.g., 'subsection' +% LEVEL : a number, denoting depth of section -- e.g., chapter=1, +% section = 2, etc. A section number will be printed if +% and only if LEVEL < or = the value of the secnumdepth +% counter. +% INDENT : Indentation of heading from left margin +% BEFORESKIP : Absolute value = skip to leave above the heading. +% If negative, then paragraph indent of text following +% heading is suppressed. +% AFTERSKIP : if positive, then skip to leave below heading, +% else - skip to leave to right of run-in heading. +% STYLE : commands to set style +% If '*' missing, then increments the counter. If it is present, then +% there should be no [ALTHEADING] argument. A sectioning command +% is normally defined to \@startsection + its first six arguments. +% \end{verbatim} +% +% \begin{macro}{\section} +% \begin{macro}{\subsection} +% Now, the code. For level 1 and 2 titles, we give them just a +% \textit{little} bit of extra vertical room --- I find it makes them +% much easier to read. +% \begin{macrocode} +\renewcommand{\section}{\@startsection {section}{1}{\z@}% + {0.2\baselineskip \@plus 0.2ex \@minus 0.2ex}% + {0.2\baselineskip \@plus .2ex}% + {\Centering\normalfont\normalsize\bfseries}} +\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {0.2\baselineskip \@plus 0.2ex \@minus 0.2ex}% + {0.2\baselineskip \@plus 0.2ex}% + {\normalfont\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\subsubsection} +% \begin{macro}{\paragraph} +% \begin{macro}{\subparagraph} +% For levels 3--5, we don't add any extra vertical spacing, but we do +% add just a little bit of extra horizontal space between the section +% name and the text. And of course, we need to handle the obligatory +% period. +% \begin{macrocode} +\renewcommand{\subsubsection}[1]{\@startsection{subsubsection}{3}{\parindent}% + {0\baselineskip \@plus 0.2ex \@minus 0.2ex}% + {-\z@}% + {\normalfont\normalsize\bfseries}{#1}\textbf{.}\hspace{0.2em}} +\renewcommand{\paragraph}[1]{\@startsection{paragraph}{4}{\parindent}% + {0\baselineskip \@plus 0.2ex \@minus 0.2ex}% + {-\z@}% + {\normalfont\normalsize\bfseries\itshape}{#1}\textbf{\textit{.}}\hspace{0.2em}} +\renewcommand{\subparagraph}[1]{\@startsection{subparagraph}{5}{\parindent}% + {0\baselineskip \@plus 0.2ex \@minus 0.2ex}% + {-\z@}% + {\normalfont\normalsize\itshape}{#1}\textit{.}\hspace{0.2em}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\mspart} +% And we define a new sectioning command, for beginning 'manuscript +% parts' (e.g., abstract, main body, references). Unlike section +% headings, these should \textit{not} be bolded, but we do disable +% following indentation. (Note that we cheat and re-use the section +% counter, which doesn't matter since sections are unnumbered anyway.) +% \begin{macrocode} +\newcommand{\mspart}{\newpage\@startsection {section}{1}{\z@}% + {-0.2\baselineskip \@plus -0.2ex \@minus -0.2ex}% + {0.2\baselineskip \@plus .2ex}% + {\Centering\normalfont\normalsize}} +% \end{macrocode} +% \end{macro} +% \subsection{Endnotes} +% If the user requested endnotes, then set them up here. I'm not sure +% why you'd want this, but I wrote the code before realizing that +% ordinary footnotes were legal, so you get the benefit of my +% mistake. +% \begin{macrocode} +\ifdefined\apaSIXe@endnotes + \RequirePackage{endnotes} + \renewcommand{\enoteheading}{\mspart{Footnotes}} + \def\enotesize{\normalsize} + \renewcommand{\footnote}[1]{\def\apaSIXe@hasendnotes\relax{}\endnote{#1}} + \AtEndDocument{\ifdefined \apaSIXe@hasendnotes \theendnotes \fi} +\fi +% \end{macrocode} +% \subsection{Floats at the end} +% This must come after the endnotes handling above, since they both +% use |\AtEndDocument| and floats are supposed to come after +% footnotes. +% \begin{macrocode} +\ifdefined\apaSIXe@leavefloats + \relax +\else + \RequirePackage[nolists,noheads,nomarkers,tablesfirst]{endfloat} + \AtBeginDelayedFloats{\@doublespacing} +\fi +% \end{macrocode} +% +% \Finale +\endinput \ No newline at end of file -- cgit v1.2.3