summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/apa6
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-10-22 23:24:30 +0000
committerKarl Berry <karl@freefriends.org>2012-10-22 23:24:30 +0000
commitd9094ea7569d0c7f50e6f127572d5c58537552aa (patch)
tree629cb2467e29a1e6c35e9986d1cf1ee836054376 /Master/texmf-dist/source/latex/apa6
parent6425ad045e76ce8ab5a7ee5cf0c9bbad4671b877 (diff)
apa6 2.0 (22oct12)
git-svn-id: svn://tug.org/texlive/trunk@28045 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/apa6')
-rw-r--r--Master/texmf-dist/source/latex/apa6/apa6.dtx508
-rw-r--r--Master/texmf-dist/source/latex/apa6/apa6.ins3
2 files changed, 492 insertions, 19 deletions
diff --git a/Master/texmf-dist/source/latex/apa6/apa6.dtx b/Master/texmf-dist/source/latex/apa6/apa6.dtx
index c6daf7fcd65..9f650f3562b 100644
--- a/Master/texmf-dist/source/latex/apa6/apa6.dtx
+++ b/Master/texmf-dist/source/latex/apa6/apa6.dtx
@@ -4,11 +4,11 @@
% %
% CHANGE THESE VALUES WITH EACH NEW RELEASE: %
% %
-%<class>\ProvidesClass{apa6}[2012/04/04 v1.3 APA formatting (6th edition)]
+%<class>\ProvidesClass{apa6}[2012/10/20 v2.0 APA formatting (6th edition)]
% %
%<*internal> %
-\def\apaSixVersionDate{2012/04/04}
-\def\apaSixVersionNumber{1.3}
+\def\apaSixVersionDate{2012/10/20}
+\def\apaSixVersionNumber{2.0}
% %
% %
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -118,6 +118,7 @@ and the derived files apa6.ins,
APAczech.txt,
APAendfloat.cfg,
apa6.ptex,
+ TeX2WordForapa6.bas,
Figure1.pdf,
shortsample.tex,
longsample.tex, and
@@ -149,6 +150,7 @@ and the derived files apa6.ins,
\usedir{tex/latex/apa6/pseudoTeX}
\generate{
\file{./pseudoTeX/apa6.ptex}{\from{\jobname.dtx}{ptex}}
+ \file{./pseudoTeX/TeX2WordForapa6.bas}{\from{\jobname.dtx}{bas}}
}
%</install>
%<install>\endbatchfile
@@ -254,6 +256,10 @@ and the derived files apa6.ins,
%
% \changes{v1.3}{2012/04/04}{Added `a4paper' option}
%
+% \changes{v2.0}{2012/10/20}{EndNote integration via `apa6.ptex' file
+% and `FormatTex2WordDocument' macro}
+% \changes{v2.0}{2012/10/20}{Fixed `headwidth' for `doc' mode}
+%
%
% \begin{abstract}
% The \textit{Publication Manual} of the American Psychological
@@ -563,10 +569,11 @@ and the derived files apa6.ins,
% body of the text to refer to that appendix. (Of course, if there is
% only one appendix, simply refer to it as |the Appendix|.)
%
-% \section{Known Restrictions}
+% \section{Known Limitations}
% \begin{itemize}
% \item There is a limit of six affiliations for authors (but an
% unlimited number of authors across those six affiliations).
+% \item The |APAenumerate| environment does not nest properly.
% \end{itemize}
%
% \section{Development of \textsf{apa6}}
@@ -780,21 +787,54 @@ and the derived files apa6.ins,
% will be displayed on the title page of the converted document.
% Mostly this involves moving floats (tables and figures) to their
% places toward the end of the manuscript, some table re-formatting,
-% and editing of bibliographic information---although some of this is
-% expected to improve with upcoming releases of TeX2Word. The major
-% weakness at the moment is a lack of support for bibliographic
-% packages. I will update the |apa6.ptex| file within the
-% \textsf{apa6} class on CTAN as the capabilities of TeX2Word evolve.
-% It's well worth experimenting with the 30-day trial, and perhaps
-% even worth finding---or borrowing---a Windows machine if you don't
-% have one readily available (the conversion process does not require
-% a \TeX\ installation to be present).
-%
-% Another pretty good solution is the Nitro software
-% (\url{http://www.nitropdf.com/}), which does a good job with
-% maintaining bibliographic information but distorts some font
-% formatting. Nitro converts from PDF to Word rather than using the
-% raw .tex file.
+% and editing of bibliographic information. If you wish to have this
+% editing more automated, you can open Word's Visual Basic Editor and
+% import the ``TeX2WordForapa6.bas'' file (from the ``pseudoTeX''
+% subfolder of the \textsf{apa6} installation) as a new module, delete
+% the lines beginning with percent signs at the top and bottom of the
+% module, then run its |FormatTex2WordDocument| macro. This will
+% complete all of the above steps and configure the bibliographic
+% information as temporary citations that EndNote can then interpret
+% (see below for details). However, some minor editing is still
+% necessary (e.g., table titles and footnotes are not moved). For
+% more efficient use of this macro, create a new Word document, open
+% the Visual Basic Editor (VBE) and import the ``TeX2WordForapa6.bas''
+% file as a new module (be sure to delete all lines beginning with two
+% percent signs); close the VBE and save the document in your ``Word
+% Startup'' folder. Then the |FormatTex2WordDocument| macro will be
+% available from the Macros dialog in Word for all documents.
+%
+% The major weakness of TeX2Word at the moment is a near-total lack of
+% support for bibliographic packages. Version 2.0 of \textsf{apa6}
+% introduced mechanisms in the |apa6.ptex| file and the
+% |FormatTex2WordDocument| macro to establish compatibility with
+% EndNote for handling bibliographic citations and the reference list
+% when using TeX2Word. The process works as follows: (a) in Word,
+% open your |.tex| file and let TeX2Word do the conversion; (b) run
+% the |FormatTex2WordDocument| macro as described above to convert
+% citations to a format that EndNote recognizes as ``temporary
+% citations''; (c) go to the EndNote toolbar within Word and run
+% ``Update Citations and Bibliography''; for each temporary citation,
+% EndNote will present a dialog containing the matched references from
+% the EndNote library; for each matched reference, remove any
+% ``@@author-year'' search text if it causes references not to be
+% found (this is a limitation in EndNote) and click ``Insert''; (d)
+% after all citations have been resolved and EndNote has generated the
+% References list at the end of the document, move the References list
+% to the proper position if needed (i.e., when there are appendices,
+% tables, or figures). Unfortunately, this workaround does mean that
+% duplicate databases will need to be maintained in both a |.bib| file
+% and an EndNote library that contain common Bib\TeX\ keys for each
+% reference. To work properly, one modification is necessary to the
+% user preferences in EndNote: un-check the ``Omit Author and/or Year
+% from formatted citation if removed from temporary citation'' option
+% (in the ``Formatting'' section of EndNote preferences).
+%
+% It's well worth experimenting with the 30-day trial of TeX2Word, and
+% perhaps even worth finding---or borrowing---a Windows machine if you
+% don't have one readily available (the conversion process does not
+% require a \TeX\ installation to be present).
+%
%
% \section{Dependencies}
% \textsf{apa6} automatically loads the following packages. If these
@@ -2923,6 +2963,10 @@ and the derived files apa6.ins,
\newcommand{\shorttitle}[1]{\def\@shorttitle{#1}}
\def\leftheader#1{\def\r@headl{#1}}
+% fix headwidth for even-numbered pages
+% suggestion from http://tex.stackexchange.com/questions/42798/apa6-package-heading-line-exceeds-textwidth
+\setlength{\headwidth}{\textwidth}
+
\RequirePackage{fancyhdr}
\setlength{\headheight}{15.2pt}
\fancyhf{}
@@ -3788,6 +3832,103 @@ The detailed results are shown in Table~\ref{tab:DeckedTable}. \lipsum[22]
\@secdef@nonum@paragraphlevel{5}{1}{0}{0}{\normalsize\rm\it}{subparagraph}{Subparagraph}
\@addtoreset{subparagraph}{paragraph}
+\newcommand\DeclareLanguageMapping[2]{}
+\newcommand\addbibresource[1]{}
+\newcommand\printbibliography{}
+
+% convert citations to temporary citations for EndNote
+\def\specialComma{,}
+\def\specialSemicolon{;}
+
+\catcode`\^^G=12
+\newcommand*{\doachar}[1]{%
+ \if#1\specialComma\specialSemicolon\else#1\fi%%
+}
+\newcommand*{\makeCommaIntoSemicolon}[1]{%
+ \def\stuff{#1}\ifx\stuff\@empty\else\@llchars#1^^G\fi}
+\def\@llchars#1#2^^G{%
+ \def\letter{#1}\def\others{#2}%
+ \ifx\letter\@empty\let\next\@gobble%
+ \else%
+ \doachar{#1}%
+ \ifx\others\@empty \let\next\@gobble%
+ \else \let\next\@llchars \fi%
+ \fi%
+\next#2^^G}
+\catcode`\^^G=15
+
+
+\def\parencite{%
+ \@ifnextchar[%
+ {\@parencite}%
+ {\@parencite[]}%
+}
+\def\@parencite[#1]{%
+ \@ifnextchar[%
+ {\@@parencite[#1]}%
+ {\@@parencite[#1][]}%
+}
+\def\@@parencite[#1][#2]#3{%
+ \makeatletter%
+ {\{{{#1}\textbackslash}{\makeCommaIntoSemicolon{#3}}@{#2}\}}%
+ \makeatother%
+}
+\let\maskparencite=\parencite
+
+\let\Parencite=\parencite
+\let\maskParencite=\parencite
+
+\let\citep=\parencite
+\let\maskcitep=\parencite
+\let\Citep=\parencite
+\let\maskCitep=\parencite
+
+\let\cite=\parencite
+\let\maskcite=\parencite
+
+\let\citeyear=\parencite
+\let\maskciteyear=\parencite
+\let\citeyearpar=\parencite
+\let\maskciteyearpar=\parencite
+
+
+\def\textcite{%
+ \@ifnextchar[%
+ {\@textcite}%
+ {\@textcite[]}%
+}
+\def\@textcite[#1]{%
+ \@ifnextchar[%
+ {\@@textcite[#1]}%
+ {\@@textcite[#1][]}%
+}
+\def\@@textcite[#1][#2]#3{%
+ \makeatletter%
+ {\{{{#1}\textbackslash}\makeCommaIntoSemicolon{#3}@{#2}@author-year\}}%
+ \makeatother%
+}
+\let\masktextcite=\textcite
+\let\Textcite=\textcite
+\let\maskTextcite=\textcite
+
+\let\citet=\textcite
+\let\maskcitet=\textcite
+\let\Citet=\textcite
+\let\maskCitet=\textcite
+
+\let\citeA=\textcite
+\let\maskciteA=\textcite
+
+\let\citeauthor=\textcite
+\let\maskciteauthor=\textcite
+\let\Citeauthor=\textcite
+\let\maskCiteauthor=\textcite
+
+\let\citeyearNP=\textcite
+\let\maskciteyearNP=\textcite
+\let\citeNP=\textcite
+\let\maskciteNP=\textcite
+
% re-define the maketitle
\long\def\maketitle{\entity@paragraph@new\begingroup\entity@paragraph@just=1\relax%
@@ -3869,6 +4010,335 @@ The detailed results are shown in Table~\ref{tab:DeckedTable}. \lipsum[22]
%\end{macro}
%
%
+%
+% %%%%%%%%%%% TeX2WordForapa6.bas FILE (macro for Word) %%%%%%%%%%%%
+%
+%\begin{macro}{TeX2WordForapa6.bas}
+% \begin{macrocode}
+%<*bas>
+Attribute VB_Name = "TeX2WordForapa6"
+Sub FormatTex2WordDocument()
+
+ Dim strRunningHead, r, E
+ Dim myrange As Range
+
+ strRunningHead = InputBox("Please type the running head:", "Running Head")
+ If strRunningHead = "" Then Exit Sub
+
+ Selection.EndKey Unit:=wdStory
+ Selection.InsertBreak Type:=wdPageBreak
+ Selection.TypeText Text:="References" & vbCrLf
+ Selection.MoveUp Unit:=wdLine, Count:=1
+ Selection.ParagraphFormat.LeftIndent = InchesToPoints(0)
+ Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
+
+ Selection.HomeKey Unit:=wdStory
+
+ Call FormatTex2WordPageHeader(strRunningHead)
+ Call FormatAndMoveTex2WordTables
+ Call FormatAndMoveTex2WordFigures
+
+ Selection.EndKey Unit:=wdStory
+ Selection.InsertBreak Type:=wdPageBreak
+ Selection.TypeText Text:="Appendix" & vbCrLf
+ Selection.MoveUp Unit:=wdLine, Count:=1
+ Selection.ParagraphFormat.LeftIndent = InchesToPoints(0)
+ Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
+
+ ' touch up temporary citations
+ Selection.HomeKey Unit:=wdStory
+
+ Selection.Find.ClearFormatting
+ Selection.Find.Replacement.ClearFormatting
+ With Selection.Find
+ .Text = "{\"
+ .Replacement.Text = "{"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ With Selection.Find
+ .Text = "@}"
+ .Replacement.Text = "}"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ With Selection.Find
+ .Text = "{e.g.,\"
+ .Replacement.Text = "{e.g.`, \"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ With Selection.Find
+ .Text = "{i.e.,\"
+ .Replacement.Text = "{i.e.`, \"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ With Selection.Find
+ .Text = "{cf.\"
+ .Replacement.Text = "{cf. \"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ With Selection.Find
+ .Text = "@p. "
+ .Replacement.Text = "@"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ With Selection.Find
+ .Text = "@pp. "
+ .Replacement.Text = "@"
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ ' for table footnotes
+ With Selection.Find
+ .Text = "[para,flushleft] "
+ .Replacement.Text = ""
+ .Forward = True
+ .Wrap = wdFindContinue
+ .Format = False
+ .MatchCase = False
+ .MatchWholeWord = False
+ .MatchWildcards = False
+ .MatchSoundsLike = False
+ .MatchAllWordForms = False
+ End With
+ Selection.Find.Execute Replace:=wdReplaceAll
+
+ ' delete the instructions
+ Selection.HomeKey Unit:=wdStory
+
+ Set myrange = Selection.Range
+ myrange.Start = Selection.Start
+
+ Selection.HomeKey Unit:=wdStory
+ Selection.Find.ClearFormatting
+ With Selection.Find
+ .Execute findText:="Delete these instructions!", Forward:=True, Wrap:=wdFindStop
+ myrange.End = Selection.End + 1
+ myrange.Select
+ myrange.Delete
+ End With
+
+ Selection.HomeKey Unit:=wdStory
+
+End Sub
+
+Sub FormatTex2WordPageHeader(strRunningHead)
+
+ Dim r, E
+
+ ' set the first page to be a different header
+ ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
+
+ With ActiveDocument.Sections(1).Headers(wdHeaderFooterFirstPage)
+ .Range.ParagraphFormat.LineSpacingRule = wdLineSpaceDouble
+ .Range.ParagraphFormat.FirstLineIndent = InchesToPoints(0)
+ .Range.ParagraphFormat.TabStops.ClearAll
+ .Range.ParagraphFormat.TabStops.Add Position:=InchesToPoints(6.5), _
+ Alignment:=wdAlignTabRight, Leader:=wdTabLeaderSpaces
+ .Range.Text = "Running head: " & UCase(strRunningHead) & vbTab
+ With .Range.Font
+ .Name = "Times New Roman"
+ .Size = 12
+ .Bold = False
+ .Italic = False
+ End With
+
+ Set r = .Range
+ E = .Range.End
+ r.Start = E
+ .Range.Fields.Add r, wdFieldPage
+
+ End With
+
+ With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)
+ .Range.ParagraphFormat.LineSpacingRule = wdLineSpaceDouble
+ .Range.ParagraphFormat.FirstLineIndent = InchesToPoints(0)
+ .Range.Text = UCase(strRunningHead)
+ .PageNumbers.Add PageNumberAlignment:=wdAlignPageNumberRight
+ With .Range.Font
+ .Name = "Times New Roman"
+ .Size = 12
+ .Bold = False
+ .Italic = False
+ End With
+ End With
+
+End Sub
+
+Sub FormatAndMoveTex2WordTables()
+
+ Dim i, rngParagraphs As Range
+
+ If ActiveDocument.Tables.Count > 0 Then
+
+ For i = 1 To ActiveDocument.Tables.Count
+
+ Selection.HomeKey Unit:=wdStory
+
+ Set rngParagraphs = ActiveDocument.Range( _
+ Start:=ActiveDocument.Tables(1).Range.Start, _
+ End:=ActiveDocument.Tables(1).Range.End)
+ rngParagraphs.Select
+
+ With Selection.Tables(1)
+ .Borders(wdBorderLeft).LineStyle = wdLineStyleNone
+ .Borders(wdBorderRight).LineStyle = wdLineStyleNone
+ With .Borders(wdBorderTop)
+ .LineStyle = wdLineStyleSingle
+ .LineWidth = wdLineWidth050pt
+ .Color = wdColorAutomatic
+ End With
+ With .Borders(wdBorderBottom)
+ .LineStyle = wdLineStyleSingle
+ .LineWidth = wdLineWidth050pt
+ .Color = wdColorAutomatic
+ End With
+ .Borders(wdBorderHorizontal).LineStyle = wdLineStyleNone
+ .Borders(wdBorderVertical).LineStyle = wdLineStyleNone
+ .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone
+ .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone
+ .Borders.Shadow = False
+ '.Rows.Alignment = wdAlignRowLeft
+ .PreferredWidthType = wdPreferredWidthPercent
+ .PreferredWidth = 100
+ .TopPadding = InchesToPoints(0.08)
+ .BottomPadding = InchesToPoints(0.08)
+ .LeftPadding = InchesToPoints(0.08)
+ .RightPadding = InchesToPoints(0.08)
+ .Spacing = 0
+ .AllowPageBreaks = True
+ .AllowAutoFit = False
+ End With
+
+ With Selection.ParagraphFormat
+ .LineSpacingRule = wdLineSpaceSingle
+ .LeftIndent = InchesToPoints(0)
+ .RightIndent = InchesToPoints(0)
+ .SpaceBefore = 0
+ .SpaceBeforeAuto = False
+ .SpaceAfter = 0
+ .SpaceAfterAuto = False
+ .WidowControl = False
+ .KeepWithNext = False
+ .KeepTogether = False
+ .PageBreakBefore = False
+ .NoLineNumber = False
+ .Hyphenation = True
+ .FirstLineIndent = InchesToPoints(0)
+ .CharacterUnitLeftIndent = 0
+ .CharacterUnitRightIndent = 0
+ .CharacterUnitFirstLineIndent = 0
+ .LineUnitBefore = 0
+ .LineUnitAfter = 0
+ .MirrorIndents = False
+ .TextboxTightWrap = wdTightNone
+ End With
+
+ rngParagraphs.Cut
+
+ Selection.EndKey Unit:=wdStory
+ Selection.InsertBreak Type:=wdPageBreak
+ Selection.TypeText Text:="Table " & i & vbCrLf
+ Selection.Paste
+
+ Next
+
+ End If
+
+End Sub
+
+Sub FormatAndMoveTex2WordFigures()
+
+ Dim i, rngParagraphs As Range
+
+ If ActiveDocument.InlineShapes.Count > 0 Then
+
+ For i = 1 To ActiveDocument.InlineShapes.Count
+
+ Selection.HomeKey Unit:=wdStory
+
+ Set rngParagraphs = ActiveDocument.Range( _
+ Start:=ActiveDocument.InlineShapes(1).Range.Start, _
+ End:=ActiveDocument.InlineShapes(1).Range.End)
+ rngParagraphs.Select
+ rngParagraphs.Cut
+
+ Selection.EndKey Unit:=wdStory
+ Selection.InsertBreak Type:=wdPageBreak
+ Selection.Paste
+ Selection.TypeText Text:=vbCrLf & "Figure " & i & vbCrLf
+
+ Next
+
+ End If
+
+End Sub
+%
+%</bas>
+% \end{macrocode}
+%\end{macro}
+%
+%
% %%%%%%%%%%% CONFIGURATION FILES %%%%%%%%%%%%
%
%\begin{macro}{APAamerican.txt}
diff --git a/Master/texmf-dist/source/latex/apa6/apa6.ins b/Master/texmf-dist/source/latex/apa6/apa6.ins
index 9c8164b1dd0..c7ad0616ece 100644
--- a/Master/texmf-dist/source/latex/apa6/apa6.ins
+++ b/Master/texmf-dist/source/latex/apa6/apa6.ins
@@ -89,6 +89,7 @@ and the derived files apa6.ins,
APAczech.txt,
APAendfloat.cfg,
apa6.ptex,
+ TeX2WordForapa6.bas,
Figure1.pdf,
shortsample.tex,
longsample.tex, and
@@ -120,6 +121,7 @@ and the derived files apa6.ins,
\usedir{tex/latex/apa6/pseudoTeX}
\generate{
\file{./pseudoTeX/apa6.ptex}{\from{\jobname.dtx}{ptex}}
+ \file{./pseudoTeX/TeX2WordForapa6.bas}{\from{\jobname.dtx}{bas}}
}
\endbatchfile
%%
@@ -157,6 +159,7 @@ and the derived files apa6.ins,
%% APAczech.txt,
%% APAendfloat.cfg,
%% apa6.ptex,
+%% TeX2WordForapa6.bas,
%% Figure1.pdf,
%% shortsample.tex,
%% longsample.tex, and