% \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