%% apa.bbx %% Copyright 2010 Philip Kime %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% This work has the LPPL maintenance status `maintained'. %% %% The Current Maintainer of this work is Philip Kime. %% %% This work consists of the files: %% %% apa.cbx (biblatex citation style) %% apa.bbx (biblatex references style) %% *.lbx (localisation files for APA-specific strings) %% biblatex-apa.pdf (Style documentation) %% biblatex-apa.tex (Style documentation source) %% biblatex-apa-test.pdf (Style examples) %% biblatex-apa-test.tex (Style examples source) %% biblatex-apa-test-citations.bib (Style examples - citations) %% biblatex-apa-test-references.bib (Style examples - references) \ProvidesFile{apa.bbx} \RequireBibliographyStyle{standard} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.22) Force roman numerals into arabic % using etoolbox macros \newcommand{\apanum}[1]{\ifrmnum{#1}{\rmntonum{#1}}{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % APA does not seem to differentiate between italics and slanted fonts. % All examples in the APA manual are actually in a slanted font, not % italic. \renewrobustcmd*{\mkbibemph}{\textsl} \protected\long\def\blx@imc@mkbibemph#1{% \textsl{#1}\relax \blx@imc@setpunctfont\textsl} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Apa defines no particular hanging indent but this makes it look like the % examples in the style manual. \setlength{\bibhang}{2.5em} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 4.16 Example 29) Some DSM macros \gdef\apaemph#1{\textsl{#1}} \gdef\DSMIII{\apaemph{DSM-III}} \gdef\DSMIIIR{\apaemph{DSM-III-R}} \gdef\DSMIV{\apaemph{DSM-IV}} \gdef\DSMIVTR{\apaemph{DSM-IV-TR}} \gdef\PsycSCAN{\apaemph{PsycSCAN}} \gdef\PsycARTICLES{\apaemph{PsycARTICLES}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.12) Five author max before "et al" and a one author truncation % policy. Note that this doesn't really work properly due to % BibTeX limitations so we effectively disable it with "999" % and deal with it in the author format below % (APA 6.x) citation tracking is global % (APA 6.14) uses initials to disambiguate shared surnames % (APA 6.16) uses year postfix to disambiguate multiple items in same year % (APA 6.10) Never reference anything not cited % (APA 6.25) author initials only % (APA 6.25) sorting is nyt \ExecuteBibliographyOptions{labelyear,% sorting=nyt,% pagetracker,% firstinits=true,% useprefix=true,% usetranslator=true,% uniquename=init,% citetracker=true,% maxnames=999,% minnames=999,% abbreviate=true,% mincrossrefs=999,% alldates=long} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.29) Additional material sometimes goes in parens % after title. This bool tracks the parens. \newbool{bbx:parens} \AtEveryBibitem{\global\boolfalse{bbx:parens}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.30) Sometimes "Vol" is inside the additional % material parens, sometimes not. This bool % tracks if it has been inserted yet. % Can't use \clearfield{volume} as some % later number format tests need to know % whether volume was defined. \newbool{bbx:volseen} \AtEveryBibitem{\global\boolfalse{bbx:volseen}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) This bool tracks if the title was put % in the author position. % Can't use \clearfield{title} as some % later punctuation tests need to know % whether title was defined. \newbool{bbx:titleinauthpos} \AtEveryBibitem{\global\boolfalse{bbx:titleinauthpos}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) Need a flag to say when the editor % is in author position because this % can effect where the year goes. \newbool{bbx:editorinauthpos} \AtEveryBibitem{\global\boolfalse{bbx:editorinauthpos}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) Flag to say whether the "in" has % been placed already in IN* % Reset every bibitem. \newbool{bbx:in} \AtEveryBibitem{\global\boolfalse{bbx:in}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Set up some standard APA formats \DeclareFieldFormat{volume}{\apanum{#1}} \DeclareFieldFormat{series}{#1} \DeclareFieldFormat{chapter}{\bibcpstring{chapter}~\apanum{#1}} \DeclareFieldFormat{volumes}{\bibcpstring{volumes}~#1} \DeclareFieldFormat{addendum}{\mkbibparens{#1}} \DeclareFieldFormat{part}{#1} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.25) Works by the same author have the full author % name, not an eliding dash. Author is always % last name first. % (APA 6.27) Ellipsis in 7th position and then nothing until last % (APA 7.10 Example 67) Unknown names and dates \DeclareNameFormat{apaauthor}{% \ifthenelse{\value{listcount}=7} {\addcomma\addspace\ldots} {\ifthenelse{\value{listcount}>7\AND\value{listcount}<\value{liststop}} {} {\ifthenelse{\iffieldequalstr{usere}{unkauth}\OR\iffieldequalstr{usere}{unkauthdate}} {\mkbibbrackets{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}?}} {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}}}} \renewbibmacro*{author}{% \ifnameundef{author} {\usebibmacro{labeltitle}} {\printnames[apaauthor]{author}% \setunit*{\addspace}% \printfield{nameaddon}}% \newunit\newblock% \usebibmacro{labelyear+extrayear}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) References section delimiters are ampersands, not " and " % Needs to be in this hook otherwise it sets this for all % citations too. % (APA 6.27) Use blank for long lists \AtBeginBibliography{\renewcommand*{\finalnamedelim}{% \ifthenelse{\value{listcount}>7} {} {\ifstrequal{\currentlist}{author} {\ifnum\value{liststop}>1 \finalandcomma\fi\addspace\&\space} {\ifthenelse{\boolean{bbx:editorinauthpos}} {\ifnum\value{liststop}>1 \finalandcomma\fi\addspace\&\space} {\addspace\&\space}}}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.28) Use "(n.d.)." for references with no year. This depends % on the noyear macros and strings from apa.cbx % Months and days go into parenthesis with year, if set % (APA 6.29) Issue goes where month normally goes if it % is set. % Make sure endmonth gets an expansion too \DeclareFieldFormat{endmonth}{\mkbibmonth{#1}} \newbibmacro*{monthorissue}{% \iffieldundef{issue} {\iffieldundef{month} {} {\addcomma\space\printfield{month}% \iffieldundef{endmonth}{}{/\printfield{endmonth}}}} {\addcomma\space\printfield{issue}}} \newbibmacro*{labelyear+extrayear}{% \iffieldundef{labelyear} {\iffieldundef{origyear} {\printtext[parens]{\usebibmacro{cite:noyear}}} {\printtext[yearorunkyear]{\printfield[noformat]{origyear}}}} {\ifthenelse{\iffieldundef{month}\AND\iffieldundef{issue}} {\printtext[yearorunkyear]{\printfield{labelyear}\printfield{extrayear}}} {\iffieldundef{day} {\printtext[yearorunkyear]{\printfield{labelyear}\printfield{extrayear}% \usebibmacro{monthorissue}}} {\printtext[parens]{\printfield{labelyear}\printfield{extrayear}\addcomma\space\printfield{month}\space\printfield{day}}}}}} \DeclareFieldFormat{yearorunkyear}{% \ifthenelse{\iffieldequalstr{usere}{unkdate}\OR\iffieldequalstr{usere}{unkauthdate}} {\mkbibbrackets{ca\adddot\addspace#1}} {\mkbibparens{#1}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.29) General format of titles. % Ugly Chicago-style lowercasing of English titles \DeclareFieldFormat{apacase}{\MakeSentenceCase*{#1}} \DeclareFieldFormat{issuetitle}{#1\isdot} \DeclareFieldFormat{title}{\mkbibemph{#1}\isdot} \DeclareFieldFormat{origtitle}{\mkbibemph{\MakeSentenceCase*{#1}}\isdot} \DeclareFieldFormat[article]{title}{#1\isdot} \DeclareFieldFormat[article]{origtitle}{\MakeSentenceCase*{#1}\isdot} \DeclareFieldFormat[inbook]{title}{#1\isdot} \DeclareFieldFormat[inbook]{origtitle}{\MakeSentenceCase*{#1}\isdot} \DeclareFieldFormat[incollection]{title}{#1\isdot} \DeclareFieldFormat[incollection]{origtitle}{\MakeSentenceCase*{#1}\isdot} \DeclareFieldFormat[inproceedings]{title}{#1\isdot} \DeclareFieldFormat[inproceedings]{origtitle}{\MakeSentenceCase*{#1}\isdot} \DeclareFieldFormat[proceedings]{title}{#1\isdot} \DeclareFieldFormat[proceedings]{origtitle}{\MakeSentenceCase*{#1}\isdot} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.01 Example 10) Articles that aren't newspapers don't have % prefix for pages. \DeclareFieldFormat[article]{pages}{\iffieldequalstr{entrysubtype}{newspaper} {\mkpageprefix{#1}} {#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.29) Additional {main}title information in brackets (using) % {MAIN}TITLEADDON field. Colon after maintitle. \DeclareFieldFormat{titleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}} \DeclareFieldFormat{maintitleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}} \DeclareFieldFormat{booktitleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}} \newbibmacro*{bookaddinfo}{% \ifthenelse{\iffieldundef{edition}\AND\iffieldundef{volumes}} {} {\printtext{\bibleftparen}% \printfield{edition}% \setunit*{\addcomma\addspace}% \printfield{volumes}% \setunit{}% \printtext{\bibrightparen}}% } \renewbibmacro*{title}{% \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}} {} {\iffieldundef{origtitle} {\printtext[title]{% \printfield[apacase]{title}% \setunit{\subtitlepunct}% \printfield[apacase]{subtitle}}}% {\printfield{origtitle}% \setunit{\addspace}% \printtext[brackets]{% \printfield[apacase]{title}% \setunit{\subtitlepunct}% \printfield[apacase]{subtitle}}} \setunit{\addspace}% \printfield{titleaddon}% \iffieldequalstr{entrytype}{book}% {\setunit{\addspace}\usebibmacro{bookaddinfo}}% {}% \ifthenelse{% \ifnameundef{author}\AND% \(\ifnameundef{editor}\AND\NOT\boolean{bbx:editorinauthpos}\)\AND% \ifnameundef{namea}\AND% \ifnameundef{nameb}} {\newunit\newblock \usebibmacro{labelyear+extrayear}} {}}} \renewbibmacro*{maintitle}{% \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{mainsubtitle}} {} {\printtext[maintitle]{% \printfield[apacase]{maintitle}% \setunit{\subtitlepunct}% \printfield[apacase]{mainsubtitle}}% \setunit{\addspace}} \printfield{maintitleaddon}% \addcolon} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.30) Format of volume and number for articles \DeclareFieldFormat[article]{volume}{\mkbibemph{\apanum{#1}}} \DeclareFieldFormat[article]{number}{\mkbibparens{\apanum{#1}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.30) Commas between title and volume for articles \renewbibmacro*{journal+issuetitle}{% \usebibmacro{journal}% \setunit*{\addcomma\addspace}% \iffieldundef{series} {} {\newunit \printfield{series} \setunit{\addcomma\space}}% \printfield{volume}% \printfield{number}% \setunit{\addspace}\newblock \usebibmacro{issuename}% \newunit} \newbibmacro*{issuename}{% \iffieldundef{issuetitle} {} {\printtext[issuetitle]{% \printfield[noformat]{issuetitle}% \setunit{\subtitlepunct}% \printfield[noformat]{issuesubtitle}}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.29) Additional information for non-periodicals in % parenthesis after title. This is ugly but it's % hard to put in "optional parens" like this % around an unknown amount of characters. \newbibmacro*{addinfo}{% \ifthenelse{\iffieldundef{edition}\AND% \iffieldundef{chapter}\AND% \iffieldundef{volumes}\AND% \iffieldundef{pages}\AND% \iffieldundef{number}\AND% \(\iffieldundef{volume}\OR\boolean{bbx:volseen}\)} {} {\printtext{\bibleftparen}% \printfield{edition}% \setunit*{\addcomma\addspace}% \printfield{chapter}% \setunit*{\addcomma\addspace}% \notbool{bbx:volseen}% {\iffieldundef{volume}{}{\global\booltrue{bbx:volseen}}% \printfield{volume}% \iffieldundef{part}{}{\printfield{part}}}{}% \setunit*{\addcomma\addspace}% \printfield{number}% \setunit*{\addcomma\addspace}% \printfield{volumes}% \setunit*{\addcomma\addspace}% \printfield{pages}% \setunit{}% \printtext{\bibrightparen}% \newunit}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) "In " precedes editor/trans list, no colon \newbibmacro*{in}{% \ifbool{bbx:in}% {}% {\global\booltrue{bbx:in}% \bibcpstring{in}\setunit{\space}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) Editors have first names first ... % (APA 7.02 Example 27) ... unless there is no author \DeclareNameFormat{apatranslator}{% \ifthenelse{\value{listcount}=7} {\addcomma\addspace\ldots} {\ifthenelse{\value{listcount}>7\AND\value{listcount}<\value{liststop}} {} {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}}} \DeclareNameFormat{apaeditor}{% \ifthenelse{\value{listcount}=7} {\addcomma\addspace\ldots} {\ifthenelse{\value{listcount}>7\AND\value{listcount}<\value{liststop}} {} {\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}}}} \DeclareNameFormat{editorinauthpos}{% \ifthenelse{\value{listcount}=7} {\addcomma\addspace\ldots} {\ifthenelse{\value{listcount}>7\AND\value{listcount}<\value{liststop}} {} {\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}}}} \renewbibmacro*{author/editor}{% \ifnameundef{author} {\usebibmacro{editorinauthpos}} {\global\boolfalse{bbx:editorinauthpos}% \usebibmacro{author}}} \newbibmacro*{editorinauthpos}{% \printnames[editorinauthpos]{editor}% \setunit{\addspace}% \ifnameundef{editor} {} {\printtext[parens]{\usebibmacro{apaeditorstrg}{editor}}% % need to clear editor so we don't get an "In" clause later % But we also need to set a flag to say we did this so we % don't lose sight of the fact we once had an editor for % various year placement tests \clearname{editor}\global\booltrue{bbx:editorinauthpos}% \setunit{\adddot\addspace}% \usebibmacro{labelyear+extrayear}% \setunit{\adddot\addspace}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.01 Example 20) Even non-numeral pages need prefix \NumCheckSetup{\ifcurrentfield{pages} {\DeclareNumChars{.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}} {\DeclareNumChars{.}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27 Name format. Don't capitalise prefixes \renewbibmacro*{name:last-first}[4]{% \ifuseprefix {\usebibmacro{name:delim}{#3#1}% \usebibmacro{name:hook}{#3#1}% \ifblank{#3}{}{% \mkbibnameprefix{#3\isdot}% \ifpunctmark{'}{}{\addhighpenspace}}% \mkbibnamelast{#1\isdot}% \ifblank{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#2}\isdot}% \ifblank{#4}{}{\addcomma\addlowpenspace\mkbibnameaffix{#4}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% \mkbibnamelast{#1}\isdot \ifblank{#2#3}{}{\addcomma}% \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#2}\isdot}% \ifblank{#3}{}{\addlowpenspace\mkbibnameprefix{#3}\isdot}% \ifblank{#4}{}{\addcomma\addlowpenspace\mkbibnameaffix{#4}\isdot}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) Editor string in parens after author list % (APA 7.02 Example 21) Collapse editor and trans if same % (APA 7.02 Example 26) Translator % Separated out into book and in* macros because otherwise % this makes one ugly, huge, unreadable beast. \newbibmacro*{book:editor+trans}{% \ifthenelse{\ifnameundef{editor}\AND% \ifnameundef{editora}\AND% \ifnameundef{editorb}\AND% \ifnameundef{editorc}\AND% \ifnameundef{translator}}% {}% {\ifnamesequal{editor}{translator}% {\printtext{\bibleftparen}\global\booltrue{bbx:parens}% \printnames[apaeditor]{editor}% \setunit*{\addcomma\addspace}% \usebibmacro{apaeditorstrg}{editor}% \setunit*{\addspace\&\space}% \printtext{\bibcpstring{translator}}% \ifbool{bbx:parens}{\printtext{\bibrightparen}\global\boolfalse{bbx:parens}}{}} {\printtext{\bibleftparen}\global\booltrue{bbx:parens}% \ifnameundef{editor}% {}% {\printnames[apaeditor]{editor}% \setunit{\addcomma\addspace}% \usebibmacro{apaeditorstrg}{editor}% \clearname{editor}% \setunit{\adddot}% \setunit*{\addspace\&\space}}% \ifnameundef{translator}% {\setunit{}}% {\printnames[apatranslator]{translator}% \setunit{\addcomma\addspace}% \printtext{\bibcpstring{translator}}% \clearname{translator}% \setunit{\adddot}}% \ifbool{bbx:parens}{\printtext{\bibrightparen}\global\boolfalse{bbx:parens}}{}}}} \newbibmacro*{editor+trans}{% \ifthenelse{\ifnameundef{editor}\AND% \ifnameundef{editora}\AND% \ifnameundef{editorb}\AND% \ifnameundef{editorc}\AND% \ifnameundef{translator}}% {}% {\ifnamesequal{editor}{translator}% {\usebibmacro{in}% \printnames[apaeditor]{editor}% \setunit{\addspace\bibleftparen\global\booltrue{bbx:parens}}% \usebibmacro{apaeditorstrg}{editor}% \setunit*{\addspace\&\space}% \printtext{\bibcpstring{translator}}% \ifbool{bbx:parens}{\printtext{\bibrightparen}\global\boolfalse{bbx:parens}}{}} {\ifnameundef{translator}% {}% {\setunit{\relax}% \printtext[parens]{\printnames[apatranslator]{translator}% \setunit{\addcomma\addspace}% \printtext{\bibcpstring{translator}}}% \clearname{translator}% \setunit{\adddot\addspace}}% \usebibmacro{in}% \usebibmacro{editorx}}}% \newunit} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.29) Special journal issues \DeclareFieldFormat[periodical]{title}{#1\isdot} \DeclareFieldFormat[periodical]{issuetitle}{\mkbibemph{#1}\isdot} \renewbibmacro*{periodical}{% \iffieldundef{title} {} {\printtext[title]{% \printfield[apacase]{title}% \setunit{\subtitlepunct}% \printfield[apacase]{subtitle}}}} \renewbibmacro*{title+issuetitle}{% \usebibmacro{periodical}% \newunit \usebibmacro{issue}% \setunit*{\addcomma\addspace}% \setunit{\addcomma\space}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.02 Example 21) Original year \DeclareFieldFormat{origyear}{\mkbibparens{\bibcpstring{origyear}~\thefield{origyear}}} % Only give ORIGYEAR in references if both: % YEAR is also given % YEAR and ORIGYEAR are different \newbibmacro*{origyear}{% \ifthenelse{\NOT\iffieldundef{labelyear}\AND\NOT\iffieldsequal{labelyear}{origyear}} {\printfield{origyear}} {}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.02) "In " before booktitle, edited or not % (APA 6.30) Non-periodical volume number followed by "." \renewbibmacro*{maintitle+title}{% \iffieldsequal{maintitle}{title} {\clearfield{maintitle}% \clearfield{mainsubtitle}% \clearfield{maintitleaddon}} {\iffieldundef{maintitle} {} {\usebibmacro{maintitle}% \newunit\newblock \iffieldundef{volume} {} {\setunit{\global\booltrue{bbx:volseen}}% \printfield{volume}% \printfield{part}% \setunit{\adddot}% \printfield{number}% \setunit{\adddot\space}}}}% \usebibmacro{title}% \newunit} \renewbibmacro*{maintitle+booktitle}{% \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{booktitle}} {} {\usebibmacro{in}% \iffieldundef{maintitle} {} {\usebibmacro{maintitle}% \newunit\newblock \iffieldundef{volume} {} {\setunit{\global\booltrue{bbx:volseen}}% \printfield{volume}% \printfield{part}% \setunit{\adddot}% \printfield{number}% \setunit{\adddot\addspace}}}% \usebibmacro{booktitle}}} \renewbibmacro*{booktitle}{% \ifthenelse{\iffieldundef{booktitle}\AND\iffieldundef{booksubtitle}} {} {\printtext[booktitle]{% \printfield[apacase]{booktitle}% \setunit{\subtitlepunct}% \printfield[apacase]{booksubtitle}}% \setunit{\addspace}}% \printfield{booktitleaddon}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.29) Colon separates title/subtitle \renewcommand*{\subtitlepunct}{\addcolon\space} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.30) Format of volume depends on whether % there is a maintitle (what APA calls "series") or not. \DeclareFieldFormat{volume}{\iffieldundef{maintitle} {\bibcpstring{volume}~\apanum{#1}} {\mkbibemph{\bibcpstring{volume}~\apanum{#1}}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.30) Number for reports with no prefix if not % a numeral. Report number is optional and so must be % the parens. \DeclareFieldFormat{number}{\iffieldundef{volume} {\ifinteger{\thefield{number}} {\addspace\mkbibemph{\bibcpstring{number}~\apanum{#1}}\adddot} {\apanum{#1}}} {\mkbibemph{\apanum{#1}}}} \DeclareFieldFormat[report]{number}{\mkbibparens{\iffieldundef{type} {} {\printfield{type}\setunit{\addspace}}% \bibcpstring{number}~\apanum{#1}}} \newbibmacro*{apa:reportnum}{% \iffieldundef{number}% {}% {\printfield{number}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.30) Periodicals emph number, location % and pages (with no prefix) \DeclareFieldFormat[periodical]{pages}{\mkbibemph{#1}} \DeclareFieldFormat[periodical]{number}{\mkbibemph{\apanum{#1}}} \DeclareListFormat[periodical]{location}{\mkbibemph{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.02 Example 38) Proceedings emph number, location % and location. Pages have no prefix \DeclareListFormat[proceedings]{location}{\mkbibemph{#1}} \DeclareFieldFormat[proceedings]{pages}{#1} \DeclareFieldFormat[proceedings]{number}{\mkbibemph{\apanum{#1}}} \DeclareFieldFormat[proceedings]{volume}{\mkbibemph{\apanum{#1}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.02 Example 40--44) Theses titles and volume % Titles are not emph if only an abstract \DeclareFieldFormat[thesis]{title}{\iffieldequalstr{userb}{isabstract}{#1}{\mkbibemph{#1}}} \DeclareFieldFormat[thesis]{volume}{\mkbibemph{\apanum{#1}}\addspace} \DeclareFieldFormat[thesis]{number}{\mkbibparens{\apanum{#1}}\addspace} \DeclareFieldFormat[thesis]{eprinttype}{\mkbibemph{#1}\addspace} \DeclareFieldFormat[thesis]{eprint}{#1} \DeclareFieldFormat[thesis]{pages}{#1} \newbibmacro*{thesis:retrinfo}{% \printfield{eprinttype}% \clearfield{eprinttype}% \setunit{\addcomma\addspace}% \printfield{volume}% \setunit{\addspace}% \printfield{number}% \setunit{\addcomma\addspace}% \printfield{eprint}% \clearfield{eprint}% \setunit{\addcomma\addspace}% \printfield{pages}% \setunit{\relax}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.05) Unpublished theses \DeclareFieldFormat[unpublished]{title}{\mkbibemph{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.06) Reviews \DeclareFieldFormat[review]{title}{#1} \DeclareFieldFormat[review]{origtitle}{\mkbibemph{#1}} \DeclareFieldFormat[review]{pages}{#1} \DeclareFieldFormat[review]{volume}{\mkbibemph{\apanum{#1}}} \DeclareFieldFormat[review]{number}{\mkbibparens{\apanum{#1}}} \newbibmacro*{reviewauthor}{% \ifnameundef{author} {\usebibmacro{reviewlabeltitle}} {\printnames[apaauthor]{author}}% \newunit\newblock% \usebibmacro{labelyear+extrayear}} \newbibmacro*{reviewlabeltitle}{% \iffieldundef{label} {\usebibmacro{reviewof}% \clearfield{entrysubtype}% \clearfield{origtitle}% \clearfield{verba}} {\printfield{label}}} \newbibmacro*{reviewtitle}{% \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}} {\printtext{}}% Dummy printtext as we do want to record that we output % a title for the punctuation tracker {\printtext[title]{% \printfield[apacase]{title}% \setunit{\subtitlepunct}% \printfield[apacase]{subtitle}}% \setunit{\addspace}% \printfield{titleaddon}}} \newbibmacro*{reviewof}{% \iffieldundef{origtitle} {} {\printtext[brackets]{% \printfield{entrysubtype}\addspace% \printtext[origtitle]{% \printfield[apacase]{origtitle}% \setunit{\subtitlepunct}% \printfield[apacase]{origsubtitle}}% \setunit{\addcomma\addspace}% \printfield{verba}}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Films \DeclareNameFormat[movie]{namea}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareNameFormat[movie]{nameb}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \newbibmacro*{mediaauthor}{% \ifnameundef{namea} {} {\printnames{namea}% \newunit% \printtext[parens]{\printfield{nameatype}}} \setunit*{\addcomma\addspace\&\addspace}% \ifnameundef{nameb} {} {\printnames{nameb}% \setunit{\addspace}% \printtext[parens]{\printfield{namebtype}}} \newunit \usebibmacro{labelyear+extrayear}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% % (APA 7.07) Misc \DeclareNameFormat[misc]{namea}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareNameFormat[misc]{namea}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareFieldFormat[misc]{title}{\iffieldequalstr{userd}{dataset}{\mkbibemph{#1}}{% \iffieldequalstr{userd}{description}{\mkbibbrackets{#1}}{#1}}} \DeclareFieldFormat[misc]{entrysubtype}{\mkbibbrackets{#1}} \DeclareFieldFormat[misc]{nameaddon}{\mkbibparens{#1}} % %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.07) Audiovisual \DeclareNameFormat[audio]{namea}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareNameFormat[audio]{nameb}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareNameFormat[video]{namea}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareNameFormat[video]{nameb}{\usebibmacro{name:last-first}{#1}{#4}{#5}{#7}} \DeclareNameFormat[video]{namec}{\usebibmacro{name:first-last}{#1}{#4}{#5}{#7}} \DeclareFieldFormat[video]{title}{\iffieldundef{maintitle}{\mkbibemph{#1}}{#1}} \DeclareFieldFormat[video]{maintitle}{\mkbibemph{#1}} \DeclareFieldFormat[video]{entrysubtype}{\mkbibbrackets{#1}} \DeclareFieldFormat[audio]{entrysubtype}{\mkbibbrackets{#1}} \DeclareFieldFormat[music]{title}{#1} \DeclareFieldFormat[music]{maintitle}{\mkbibemph{#1}} \DeclareFieldFormat[music]{mainsubtitle}{\mkbibemph{#1}} \DeclareFieldFormat[audio]{howpublished}{\mkbibparens{#1}} \newbibmacro*{tvseries}{% \iffieldundef{maintitle} {} {\usebibmacro{in}% \ifnameundef{namec} {} {\printnames{namec}% \setunit{\addspace}% \printtext[parens]{\printfield{namectype}}} \setunit{\addcomma\addspace}% \usebibmacro{avmaintitle}% \newunit}} \newbibmacro*{avmaintitle}{% \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{mainsubtitle}} {} {\printtext[maintitle]{% \printfield[apacase]{maintitle}% \setunit{\subtitlepunct}% \printfield[apacase]{mainsubtitle}}% \setunit{\addspace}} \printfield{maintitleaddon}} \newbibmacro*{on}{% \bibcpstring{on}\setunit{\space}} \newbibmacro*{album}{% \iffieldundef{maintitle} {} {\usebibmacro{on}% \setunit{\addspace}% \usebibmacro{avmaintitle}% \newunit}} % %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% % (APA 7.10) Letters \DeclareFieldFormat[letter]{title}{\iffieldequalstr{entrysubtype}{collection}{#1}{\mkbibbrackets{#1}}} \DeclareFieldFormat[letter]{number}{\mkbibparens{#1}} % %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% % (APA 6.31) URLs \DeclareFieldFormat{url}{\url{#1}} \DeclareFieldFormat{urldate}{#1} \DeclareFieldFormat{eprinttype}{#1} \DeclareFieldFormat{eprint}{\mkbibparens{#1}} \renewbibmacro*{url+urldate}{% \def\@apaar{retrieved}% default \ifthenelse{\iffieldundef{url}\OR\NOT\iffieldundef{doi}} {} {\iffieldundef{usera}{}{\patchcmd{\@apaar}{retrieved}{\thefield{usera}}{}{}}% \iffieldequalstr{userb}{urlisabstract} {\printtext{\bibcpstring{abstract}}\addspace% \printtext{\bibstring{\@apaar}}} {\printtext{\bibcpstring{\@apaar}}}% \setunit{\addspace}% \iffieldundef{urlyear} {} {\printurldate% \setunit*{\addcomma\addspace}}% \printtext{\bibstring{from}}% \setunit*{\addspace}% \printlist{organization}% \setunit*{\addcolon\addspace}% \iffieldundef{url}{}{\printfield{url}\renewcommand*{\finentrypunct}{\relax}}}} \renewbibmacro*{eprint}{% \def\@apaar{retrieved}% default \iffieldundef{eprint} {} {\iffieldundef{usera}{}{\patchcmd{\@apaar}{retrieved}{\thefield{usera}}{}{}}% \iffieldequalstr{userb}{urlisabstract} {\printtext{\bibcpstring{abstract}}\addspace% \printtext{\bibstring{\@apaar}}} {\printtext{\bibcpstring{\@apaar}}}% \setunit{\addspace}% \printtext{\bibstring{from}}% \setunit*{\addspace}% \printfield{eprinttype}% \newunit \printfield{eprint}}} % %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.11) Non-emph titles for online items % Subtype in brackets \DeclareFieldFormat[online]{title}{#1} \DeclareFieldFormat[online]{entrysubtype}{\mkbibbrackets{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA A7.07) Emph titles for patents \DeclareFieldFormat[patent]{title}{\mkbibemph{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.08 Example 56) Software has version in title \DeclareFieldFormat[software]{title}{#1} \DeclareFieldFormat[software]{version}{\mkbibparens{\bibcpstring{version}~#1}} \newbibmacro*{apa:softwaretitle}{% \printtext[title]{% \printfield[apacase]{title}% \setunit{\subtitlepunct}% \printfield[apacase]{subtitle}}% \setunit{\addspace}% \iffieldundef{version}% {} {\printfield{version}} \printfield{titleaddon}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newbibmacro*{apa:finpunct}{% \iffieldundef{addendum}{}{\renewcommand*{\finentrypunct}{\relax}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.x) General type layouts \DeclareBibliographyDriver{article}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \usebibmacro{journal+issuetitle}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit\newblock \printfield{pubstate}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{book}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{maintitle+title}% \setunit{\addspace}\newblock \usebibmacro{book:editor+trans}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{origyear}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{booklet}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \printfield{howpublished}% \newunit\newblock \printfield{type}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+year}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{proceedings}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \usebibmacro{booktitle}% \setunit{\addcomma\addspace}\newblock \usebibmacro{location+publisher}% \setunit{\addcomma\addspace}% \printfield{volume}% \setunit*{\adddot}% \printfield{number}% \setunit{\addcomma\addspace} \printfield{pages}% \newunit\newblock \printfield{note}% \newunit\newblock \printlist{organization}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{collection}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \usebibmacro{location+publisher}% \setunit{\addcomma\addspace}% \printtext{\printfield{number}}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{inbook}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\NOT\iffieldundef{title}\OR\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \usebibmacro{editor+trans}% \newunit\newblock \usebibmacro{maintitle+booktitle}% \newblock \usebibmacro{addinfo}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \setunit*{\addspace}\newblock \usebibmacro{origyear}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{incollection}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\NOT\iffieldundef{title}\OR\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \usebibmacro{editor+trans}% \setunit*{\addcomma\addspace}\newblock \usebibmacro{maintitle+booktitle}% \newblock \usebibmacro{addinfo}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{origyear}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{inproceedings}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\NOT\iffieldundef{title}\OR\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \usebibmacro{editor+trans}% \setunit*{\addcomma\addspace}\newblock \usebibmacro{maintitle+booktitle}% \newblock \usebibmacro{addinfo}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \printlist{organization}% \newunit \printfield{eventtitle}% \newunit \printfield{venue}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{origyear}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{manual}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \printfield{edition}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{type}% \newunit \printfield{version}% \newunit \printfield{note}% \newunit\newblock \printlist{organization}% \newunit \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{online}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\iffieldundef{title}\AND\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \printfield{entrysubtype}% \addperiod\addspace \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{patent}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\NOT\iffieldundef{title}\OR\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \setunit*{\addspace}% \printfield{number}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{byholder}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{date}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{periodical}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title+issuetitle}% \setunit{\addcomma\addspace} \printlist{location}% \setunit{\addcomma\addspace} \printfield{volume}% \setunit*{\adddot}% \printfield{number}% \setunit{\addcomma\addspace} \printfield{pages}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \usebibmacro{apa:reportnum}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{thesis}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\NOT\iffieldundef{title}\OR\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \usebibmacro{type+institution}% \newunit\newblock \usebibmacro{thesis:retrinfo} \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{review}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{reviewauthor}% \setunit{\labelnamepunct}\newblock \usebibmacro{reviewtitle}% \newblock \usebibmacro{reviewof}% \newunit\newblock \usebibmacro{journal+issuetitle}% \newunit\newblock \printfield{note}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{misc}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \newunit\newblock \usebibmacro{title}% \ifthenelse{\iffieldundef{title}\AND\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \printfield{entrysubtype}% \newunit\newblock \printfield{howpublished}% \newunit\newblock \printfield{type}% \newunit \printfield{version}% \newunit \printfield{note}% \newunit\newblock \printlist{organization}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{letter}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \printlist{institution}% \setunit{\addspace}\newblock \printfield{number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{video}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{mediaauthor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \setunit{\addspace}\newblock \printfield{entrysubtype}% \newunit\newblock \usebibmacro{tvseries}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{movie}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{mediaauthor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \setunit{\addspace}\newblock \printfield{entrysubtype}% \newunit\newblock \usebibmacro{tvseries}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{audio}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{mediaauthor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \setunit{\addspace}\newblock \printfield{entrysubtype}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{music}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \ifthenelse{\NOT\iffieldundef{title}\OR\boolean{bbx:titleinauthpos}}{\newunit}{\setunit{\addspace}}\newblock \usebibmacro{album}% \newunit\newblock \usebibmacro{location+publisher}% \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{software}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{apa:softwaretitle}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \printfield{addendum}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{unpublished}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \printfield{howpublished}% \setunit{\addcomma\addspace}\newblock \printlist{institution}% \newunit\newblock \printfield{note}% \setunit*{\addcomma\addspace}\newblock \printlist{location}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \usebibmacro{apa:finpunct} \usebibmacro{finentry}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Modified, common macros \newbibmacro*{editorx}{% \ifnameundef{editor} {} {\printnames[apaeditor]{editor}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editor}} \clearname{editor}% \newunit}% \ifnameundef{editora} {} {\printnames[apaeditor]{editora}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editora}} \clearname{editora}% \newunit}% \ifnameundef{editorb} {} {\printnames[apaeditor]{editorb}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editorb}} \clearname{editorb}% \newunit}% \ifnameundef{editorc} {} {\printnames[apaeditor]{editorc}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editorc}} \clearname{editorc}% \newunit}} \newbibmacro*{apaeditorstrg}[1]{% \iffieldundef{#1type} {\ifthenelse{\value{#1}>1\OR\ifandothers{#1}} {\bibcpstring{editors}} {\bibcpstring{editor}}} {\ifthenelse{\value{#1}>1\OR\ifandothers{#1}} {\bibcpstring{type\thefield{#1type}s}} {\bibcpstring{type\thefield{#1type}}}}} \renewbibmacro*{doi+eprint+url}{% \iftoggle{bbx:doi} {\printfield{doi}% \iffieldundef{doi}{}{\renewcommand*{\finentrypunct}{\relax}}} {}% \newunit\newblock \iftoggle{bbx:eprint} {\usebibmacro{eprint}% \iffieldundef{eprint}{}{\renewcommand*{\finentrypunct}{\relax}}} {}% \newunit\newblock \iftoggle{bbx:url} {\usebibmacro{url+urldate}% \iffieldundef{url}{}{\renewcommand*{\finentrypunct}{\relax}}} {}} \DeclareFieldFormat{doi}{% doi\addcolon\space \ifhyperref {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} {\nolinkurl{#1}}} \newbibmacro*{location+publisher}{% \printlist{location}% \setunit*{\addcolon\space}% \printlist{publisher}% \newunit} \newbibmacro*{type+institution}{% \ifthenelse{\iffieldundef{type}\AND\iffieldundef{institution}} {} {\printtext[parens]{% \iflistundef{institution} {\setunit*{\addspace}} {\setunit*{\addcolon\space}}% \printfield{type}% \setunit*{\addcomma\space}% \printlist{institution}% \setunit*{\addcomma\space}% \printlist{location}}% \newunit}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Unchanged from authoryear-comp (biblatex v0.9) \DeclareBibliographyOption{dashed}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{pagetracker}% \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} {\ExecuteBibliographyOptions{pagetracker=false}% \renewbibmacro*{bbx:savehash}{}}} \DeclareFieldFormat{shorthandwidth}{#1} \renewcommand*{\thebibitem}{\item} \renewcommand*{\thelositem}{\item} \setlength{\bibitemsep}{0pt} \DeclareNameAlias{author}{sortname} \DeclareNameAlias{editor}{sortname} \DeclareNameAlias{translator}{sortname} \renewenvironment*{thebibliography} {\list {} {\setlength{\leftmargin}{\bibhang}% \setlength{\itemindent}{-\leftmargin}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}} {\endlist} \renewenvironment*{theshorthands} {\list {\printfield[shorthandwidth]{shorthand}} {\setlength{\labelwidth}{\shorthandwidth}% \setlength{\leftmargin}{\labelwidth}% \setlength{\labelsep}{\biblabelsep}% \addtolength{\leftmargin}{\labelsep}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}% \renewcommand*{\makelabel}[1]{##1\hss}}} {\endlist} \InitializeBibliographyStyle{% \global\undef\bbx@lasthash} \newbibmacro*{bbx:savehash}{% \savefield{fullhash}{\bbx@lasthash}} \newbool{bbx@inset} \DeclareBibliographyDriver{set}{% \booltrue{bbx@inset}% \entryset{}{}% \finentry} \newbibmacro*{labeltitle}{% \iffieldundef{label} {\iffieldundef{shorttitle} {\printfield{title}% \clearfield{title} \global\booltrue{bbx:titleinauthpos}} {\printfield[title]{shorttitle}}} {\printfield{label}}} \endinput