%% Copyright 2013 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. \ProvidesFile{apa.bbx}[2013/10/30\space v6.4\space APA biblatex references style] \RequireBiber[3] \RequireBibliographyStyle{standard} \urlstyle{rm} % APA examples all have URLs in same font as text %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Used to join citations/references to % extrayear \newcommand{\apashortdash}{-} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Allow variable max authors/editors limit \newcommand{\maxprtauth}{7} \DeclareBibliographyOption{apamaxprtauth}{% \ifstrempty{#1} {} {\renewcommand{\maxprtauth}{#1}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.22) Force roman numerals into arabic % using etoolbox macros \newcommand{\apanum}[1]{\ifrmnum{#1}{\rmntonum{#1}}{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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\DSMIII{\emph{DSM-III}} \gdef\DSMIIIR{\emph{DSM-III-R}} \gdef\DSMIV{\emph{DSM-IV}} \gdef\DSMIVTR{\emph{DSM-IV-TR}} \gdef\PsycSCAN{\emph{PsycSCAN}} \gdef\PsycARTICLES{\emph{PsycARTICLES}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Date formats. Suppress end range of less specific fields \newcommand*{\mkbibrangeapalong}[1]{% \ifthenelse{\equal{#1}{url}} {\printtext{% \mkbibdateapalongmdy{#1year}{#1month}{#1day}% \iffieldundef{#1endyear}% {}% {\iffieldequalstr{#1endyear}{}% open-ended range? {\mbox{\bibdatedash}} {\bibdatedash% \iffieldsequal{#1year}{#1endyear}% {\iffieldsequal{#1month}{#1endmonth}% {\iffieldsequal{#1day}{#1endday}% {}% {\mkbibdateapalongmdy{}{}{#1endday}}}% {\mkbibdateapalongmdy{}{#1endmonth}{#1endday}}}% {\mkbibdateapalongmdy{#1endyear}{#1endmonth}{#1endday}}}}}} {\printtext{% \mkbibdateapalong{#1year}{#1month}{#1day}% \iffieldundef{#1endyear}% {}% {\iffieldequalstr{#1endyear}{}% open-ended range? {\mbox{\bibdatedash}} {\bibdatedash% \iffieldsequal{#1year}{#1endyear}% {\iffieldsequal{#1month}{#1endmonth}% {\iffieldsequal{#1day}{#1endday}% {}% {\mkbibdateapalong{}{}{#1endday}}}% {\mkbibdateapalong{}{#1endmonth}{#1endday}}}% {\mkbibdateapalong{#1endyear}{#1endmonth}{#1endday}}}}}}} % Only for DATE as only \printdateextra is used \newcommand*{\mkbibrangeapalongextra}[1]{% \printtext{% \mkbibdateapalongextra{#1year}{#1month}{#1day}% \iffieldundef{#1endyear}% {}% {\iffieldequalstr{#1endyear}{}% open-ended range? {\mbox{\bibdatedash}} {\bibdatedash% \iffieldsequal{#1year}{#1endyear}% {\iffieldsequal{#1month}{#1endmonth}% {\iffieldsequal{#1day}{#1endday}% {}% {\mkbibdateapalongextra{}{}{#1endday}}} {\mkbibdateapalongextra{}{#1endmonth}{#1endday}}} {\mkbibdateapalongextra{#1endyear}{#1endmonth}{#1endday}}}}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.09 Example 62) ERIC % eprint references \DeclareFieldFormat{eprint:eric}{% \printtext{\bibcpstring{retrieved}}% \setunit{\addspace}% \printtext{\bibstring{from}}\addspace% ERIC\addspace database\adddot\addspace% \mkbibparens{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.12) Five author max before "et al" and a one author truncation policy % However, only after the first cite, see the labelname format % in .cbx. It's also overridden per-entry by uniquelist % (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 but we need to account for PUBSTATE which comes % after all normal cites for the same author \DeclareSortingScheme{apa}{ \sort{ \field{presort} } \sort[final]{ \field{sortkey} } \sort{ \field{sortname} \field{author} \field{editor} \field{translator} \field{writer} \field{director} \field{producer} \field{execproducer} \field{origauthor} \field{sorttitle} \field{title} } \sort{ \field{sortyear} \field{year} \field{pubstate} } \sort{ \field{sorttitle} \field{title} } \sort{ \field[padside=left,padwidth=4,padchar=0]{volume} \literal{0000} } } % Don't fall back on other year fields if there is no year, use % "nodate" string \DeclareLabeldate{% \field{pubstate} \field{date} \literal{nodate} } % Due to APA strange requirements like truncation after first cite and % ellipsis from 7th to n-1 in bib, there might be some really strange % edge cases which can't be handled as this needs treating in the style % after biber has finished. Very unlikely though. \ExecuteBibliographyOptions{labeldate=true,% sorting=apa,% autocite=inline,% backref=true,% pagetracker=true,% useprefix=true,% usetranslator=true,% uniquelist=minyear,% uniquename=full,% citetracker=true,% maxcitenames=2,% mincitenames=1,% maxbibnames=7,% minbibnames=6,% abbreviate=true,% mincrossrefs=999,% date=apalong,% datelabel=apalong,% origdate=apalong,% urldate=apalong,% eventdate=comp} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Enforce ignoring of PUBSTATE if there is a YEAR or DATE field \DeclareStyleSourcemap{ \maps[datatype=bibtex]{ \map{ \step[fieldsource=year, final] \step[fieldset=pubstate, null] } \map{ \step[fieldsource=date, final] \step[fieldset=pubstate, null] } } } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % It is not APA standard to have backrefs in the bib % Some users might like it though. \newbool{apa:backref} \DeclareBibliographyOption{apabackref}{% \ifstrequal{#1}{true} {\global\booltrue{apa:backref}} {\global\boolfalse{apa:backref}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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 7.06:47) Reviews are awkward - if no author, date % position changes so we need a flag to % track this \newbool{bbx:noreviewauthor} \AtEveryBibitem{\global\boolfalse{bbx:noreviewauthor}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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 % % \printnames does different things depending on whether the format you are % calling is the default for the name field or is a custom format: % % * Default format (e.g. "labelname" format for printing labelname): no % start/stop max/minnames truncation is done first - the format is % supposed to do it. % * Custom format (e.g. "labelname" format for printing author): % max/minnames truncation is done before calling the format so we have % to do \printnames[format][-\value{listtotal}]{field} to ensure we get % all of the names in the list to work on \DeclareNameAlias{default}{apaauthor} \DeclareNameFormat{apaauthor}{% \ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}} {\addcomma\addspace\ldots\addspace} {\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}} {} {\iffieldequalstr{doubtfulauthor}{true} {\mkbibbrackets{\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}?}} {\usebibmacro{name:apa:last-first}{#1}{#3}{#4}{#5}{#7}}}}% \ifthenelse{\value{listcount}=\value{listtotal}}% {\ifmorenames{\andothersdelim\bibstring{andothers}}{}}{}} \renewbibmacro*{author}{% \ifnameundef{author} {\usebibmacro{labeltitle}} {\printnames[apaauthor][-\value{listtotal}]{author}% \setunit*{\addspace}% \printfield{nameaddon}% \ifnameundef{with} {} {\setunit{}\addspace\mkbibparens{\printtext{\bibstring{with}\addspace}% \printnames[apaauthor][-\value{listtotal}]{with}} \setunit*{\addspace}}}% \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 % (APA 4.03) Serial comma for lists of three or more \AtBeginBibliography{\renewcommand*{\finalnamedelim}{% \ifthenelse{\value{listcount}>\maxprtauth} {} {\ifthenelse{\value{liststop}>2} {\finalandcomma\addspace\&\space} {\addspace\&\space}}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.28) Use "nodate" bibstring for references with no year % 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[yearorunkyear]{\printfield[noformat]{origyear}}}}% {\printtext[yearorunkyear]{\printdateextralabel}}} \DeclareFieldFormat{yearorunkyear}{% \ifthenelse{\iffieldequalstr{doubtfuldate}{true}} {\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}{\iffieldequalstr{titleisdescription}{true}{\mkbibbrackets{#1}}{\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) Newspapers have prefix for pages. \DeclareFieldFormat[newsarticle]{pages}{% \DeclareNumChars{.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ}% \mkpageprefix{#1}% \DeclareNumChars{.}} \DeclareFieldFormat[newsarticle]{newspaper}{\mkbibemph{#1}} \DeclareFieldFormat[newsarticle]{entrysubtype}{\mkbibbrackets{#1}} \DeclareFieldFormat[newsarticle]{title}{#1} \DeclareFieldFormat[article]{pages}{#1} \newbibmacro*{newspaper}{% \printfield{newspaper} \setunit{\addcomma\space}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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{\bibopenparen}% \printfield{edition}% \setunit*{\addcomma\addspace}% \printfield{volumes}% \setunit{}% \printtext{\bibcloseparen}}% } \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{producer}\AND% \ifnameundef{director}\AND% \ifnameundef{writer}} {\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{\bibopenparen}% \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{\bibcloseparen}% \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{apanames}{% \ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}} {\addcomma\addspace\ldots} {\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}} {} {\usebibmacro{name:apa:first-last}{#1}{#3}{#4}{#5}{#7}}}% \ifthenelse{\value{listcount}=\value{listtotal}}% {\ifmorenames{\andothersdelim\bibstring{andothers}}{}}{}} \renewbibmacro*{author/editor}{% \ifnameundef{author} {\ifnameundef{editor} {} {\usebibmacro{editorinauthpos}}} {\global\boolfalse{bbx:editorinauthpos}% \usebibmacro{author}}} \newbibmacro*{editorinauthpos}{% \global\booltrue{bbx:editorinauthpos}% \printnames[apaauthor][-\value{listtotal}]{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}% \setunit{\adddot\addspace}% \usebibmacro{labelyear+extrayear}% \setunit{\adddot\addspace}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 6.27) Name format. Don't capitalise prefixes % (APA 6.27) Full name disambiguation using brackets % #1 = last name % #2 = first name % #3 = first name (initials) % #4 = name prefix, a.k.a. 'von part' % #5 = name affix, a.k.a. 'junior part' \newbibmacro*{name:apa:last-first}[5]{% \ifuseprefix {\usebibmacro{name:delim}{#4#1}% \usebibmacro{name:hook}{#4#1}% \ifblank{#4}{}{% \mkbibnameprefix{#4}% \ifpunctmark{'}{}{\addhighpenspace}}% \mkbibnamelast{#1\isdot}% \ifblank{#2}{}{\addcomma\addlowpenspace\mkbibnamefirst{#3}\isdot% \ifthenelse{\value{uniquename}>1} {\addspace\mkbibbrackets{#2}} {}}% \ifblank{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% \mkbibnamelast{#1}\isdot \ifblank{#2#4}{}{\addcomma}% \ifblank{#2}{}{\addlowpenspace\mkbibnamefirst{#3}% \ifthenelse{\value{uniquename}>1} {\addspace\mkbibbrackets{#2}} {}}% \ifblank{#4}{}{% \addhighpenspace\mkbibnameprefix{#4}% \ifpunctmark{'}{}{\addhighpenspace}}% \ifblank{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\isdot}}} \newbibmacro*{name:apa:first-last}[5]{% \ifuseprefix {\usebibmacro{name:delim}{#2}% \usebibmacro{name:hook}{#2}% \ifblank{#2}{}{\mkbibnamefirst{#3}\isdot% \ifthenelse{\value{uniquename}>1} {\addspace\mkbibbrackets{#2}} {}\addspace}% \ifblank{#4}{}{% \mkbibnameprefix{#4\isdot}% \ifpunctmark{'}{}{\addhighpenspace}}% \mkbibnamelast{#1\isdot}% \ifblank{#5}{}{\addlowpenspace\mkbibnameaffix{#5}\isdot}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% \ifblank{#2}{}{\mkbibnamefirst{#3}\isdot% \ifthenelse{\value{uniquename}>1} {\addspace\mkbibbrackets{#2}} {}\addspace}% \mkbibnamelast{#1}\isdot \ifblank{#5}{}{\addcomma\addlowpenspace\mkbibnameaffix{#5}\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{\bibopenparen}\global\booltrue{bbx:parens}% \printnames[apanames][-\value{listtotal}]{editor}% \setunit*{\addcomma\addspace}% \usebibmacro{apaeditorstrg}{editor}% \setunit*{\addspace\&\space}% \printtext{\bibcpstring{translator}}% \ifbool{bbx:parens}{\printtext{\bibcloseparen}\global\boolfalse{bbx:parens}}{}} {\printtext{\bibopenparen}\global\booltrue{bbx:parens}% \ifnameundef{editor}% {}% {\printnames[apanames][-\value{listtotal}]{editor}% \setunit{\addcomma\addspace}% \usebibmacro{apaeditorstrg}{editor}% \clearname{editor}% \setunit{\adddot}% \setunit*{\addspace\&\space}}% \ifnameundef{translator}% {\setunit{}}% {\printnames[apanames][-\value{listtotal}]{translator}% \setunit{\addcomma\addspace}% \printtext{\bibcpstring{translator}}% \clearname{translator}% \setunit{\adddot}}% \ifbool{bbx:parens}{\printtext{\bibcloseparen}\global\boolfalse{bbx:parens}}{}}}} \newbibmacro*{editor+trans}{% \ifthenelse{\ifnameundef{editor}\AND% \ifnameundef{editora}\AND% \ifnameundef{editorb}\AND% \ifnameundef{editorc}\AND% \ifnameundef{translator}}% {\setunit{\adddot\addspace}}% {\ifnamesequal{editor}{translator}% {\usebibmacro{in}% \printnames[apanames][-\value{listtotal}]{editor}% \setunit{\addspace\bibopenparen\global\booltrue{bbx:parens}}% \usebibmacro{apaeditorstrg}{editor}% \setunit*{\addspace\&\space}% \printtext{\bibcpstring{translator}}% \ifbool{bbx:parens}{\printtext{\bibcloseparen}\global\boolfalse{bbx:parens}}{}} {\ifnameundef{translator}% {}% {\setunit{\addspace}% \printtext[parens]{\printnames[apanames][-\value{listtotal}]{translator}% \setunit{\addcomma\addspace}% \printtext{\bibcpstring{translator}}}% \clearname{translator}% \setunit{\adddot\addspace}}% \usebibmacro{in}% \usebibmacro{editorx}}% \setunit{\addcomma\addspace}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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{\addspace\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 % Skip if following terminating punctuation \renewcommand*{\subtitlepunct}{\ifterm{}{\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) Location only shows first item \DeclareListFormat{default}{% \usebibmacro{list:delim}{#1}% #1\isdot} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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}{\mkbibemph{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.05) Unpublished theses \DeclareFieldFormat[unpublished]{title}{\mkbibemph{#1}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.06) Reviews % The title of the review depends on the entrytype of the thing reviewed \DeclareFieldFormat[review]{title}{% \entrydata*{\thefield{related}}{% \iffieldequalstr{entrytype}{article} {\mkbibemph{\printtext[apacase]{\thefield{savedtitle}}}} {\printtext[apacase]{\thefield{savedtitle}}}}} \DeclareFieldFormat[review]{pages}{#1} \DeclareFieldFormat[review]{volume}{\mkbibemph{\apanum{#1}}} \DeclareFieldFormat[review]{number}{\mkbibparens{\apanum{#1}}} \newbibmacro*{reviewauthor}{% \ifnameundef{author} {\booltrue{bbx:noreviewauthor}} {\usebibmacro{author}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Media authors \newbibmacro*{producer}{% \ifnameundef{producer} {} {\printnames[apaauthor][-\value{listtotal}]{producer}% \newunit \printtext[parens]{\bibcpstring{producer}}% \setunit*{\addcomma\addspace\&\addspace}}} \newbibmacro*{director}{% \ifnameundef{director} {} {\printnames[apaauthor][-\value{listtotal}]{director}% \newunit \printtext[parens]{\bibcpstring{director}}% \setunit*{\addcomma\addspace\&\addspace}}} \newbibmacro*{writer}{% \ifnameundef{writer} {} {\printnames[apaauthor][-\value{listtotal}]{writer}% \newunit \printtext[parens]{\bibcpstring{writer}}% \setunit*{\addcomma\addspace\&\addspace}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% % (APA 7.07) Misc and data \DeclareFieldFormat[data]{title}{\mkbibemph{#1}} \DeclareFieldFormat[data]{entrysubtype}{\mkbibbrackets{#1}} \DeclareFieldFormat[misc]{entrysubtype}{\mkbibbrackets{#1}} \DeclareFieldFormat[misc]{nameaddon}{\mkbibparens{#1}} \DeclareFieldFormat[misc]{title}{\iffieldequalstr{titleisdescription}{true}{\mkbibbrackets{#1}}{{#1}\isdot}} \newbibmacro*{datatitle}{% \iffieldundef{title} {\iffieldundef{entrysubtype} {} {\printfield{entrysubtype}}} {\iffieldundef{entrysubtype} {} {\usebibmacro{title}\addspace \printfield{entrysubtype}}}} % %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%% % (APA 7.07) Audiovisual \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{execproducer} {} {\printnames[apanames][-\value{listtotal}]{execproducer}% \addspace \printtext[parens]{\bibcpstring{execproducer}}} \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*{album}{% \iffieldundef{maintitle} {} {\bibcpstring{on}% \setunit{\addspace}% \usebibmacro{avmaintitle}% \newunit}} % %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%% % (APA 7.10) Letter/Letters \DeclareFieldFormat[letter]{title}{\mkbibbrackets{#1}} \DeclareFieldFormat[letters]{title}{#1} \DeclareFieldFormat[letter]{number}{\mkbibparens{#1}} \DeclareFieldFormat[letters]{number}{\mkbibparens{#1}} % %%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% % (APA 6.31) URLs \DeclareFieldFormat{url}{\url{#1}} \DeclareFieldFormat{abstracturl}{\url{#1}} \DeclareFieldFormat{urldate}{#1} \renewbibmacro*{url+urldate}{% \ifthenelse{\(\iffieldundef{url}\AND\iffieldundef{abstracturl}\AND\iffieldundef{abstractloc}\)\OR\NOT\iffieldundef{doi}} {} {\ifthenelse{\iffieldundef{abstracturl}\AND\iffieldundef{abstractloc}} {} {\printtext{\bibcpstring{abstract}}\addspace}% \printtext{\bibstring{retrieved}}% \setunit{\addspace}% \iffieldundef{urlyear} {} {\printurldate% \setunit*{\addcomma\addspace}}% \printtext{\bibstring{from}}% \setunit*{\addspace}% \printfield{urldescription}% \setunit*{\addcolon\addspace}% \iffieldundef{url}{}{\printfield{url}\renewcommand*{\finentrypunct}{\relax}}% \iffieldundef{abstractloc}{}{\printfield{abstractloc}\renewcommand*{\finentrypunct}{\relax}} \iffieldundef{abstracturl}{}{\printfield{abstracturl}\renewcommand*{\finentrypunct}{\relax}}}} % %%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Hacky bits to suppress final period in some cases. % * If there is an ORIGYEAR field (APA 7.02:21) % * Unless there is a RELATED and ADDENDUM \newbibmacro*{apa:finpunct}{% \iffieldundef{origyear} {\ifboolexpr{ test {\iffieldundef{addendum}} and test {\iffieldundef{related}}} {} {\renewcommand*{\finentrypunct}{\relax}}} {\renewcommand*{\finentrypunct}{\relax}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Related entries \DeclareFieldFormat{related:reprintfrom}{\mkbibparens{#1}} \DeclareFieldFormat{related:reviewof}{\mkbibbrackets{#1}} \renewbibmacro*{related:reprintfrom}[1]{% \entrydata*{#1}{% \printtext{\mkbibemph{\printfield[apacase]{title}}}% \setunit{\bibpagespunct}% \printfield{pages}% \setunit{\addcomma\addspace}% \bibstring{byauthor}\addspace \printnames[apanames][-\value{listtotal}]{editor}% \printnames[apanames][-\value{listtotal}]{author}% \setunit{\addcomma\addspace}% \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{related}}} \newbibmacro*{related:reviewof}[1]{% \setunit{}% Sanitize this in case no author \entrydata*{#1}{% \ifentrytype{article} {\printtext{\printfield[apacase]{title}}} {\printtext{\mkbibemph{\printfield[apacase]{title}}}}% \setunit{\addspace}% \bibstring{byauthor}\addspace \printnames[apanames][-\value{listtotal}]{author}% \printnames[apanames][-\value{listtotal}]{producer}% \printnames[apanames][-\value{listtotal}]{director}% \setunit{\addcomma\addspace}% \printdateextra \newunit\newblock \usebibmacro{related}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (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{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:finpunct}% \usebibmacro{apa:pageref}% \usebibmacro{finentry}} \DeclareBibliographyDriver{newsarticle}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newunit\newblock \usebibmacro{newspaper}% \setunit{\bibpagespunct}% \printfield{pages}% \newunit\newblock \printfield{entrysubtype}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:finpunct}% \usebibmacro{apa:pageref}% \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{doi+eprint+url}% \newunit\newblock \usebibmacro{origyear}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \printfield{number}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \iffieldundef{eventyear}{}{\setunit{\addcomma\addspace}}% \printeventdate \setunit*{\addspace}\newblock \usebibmacro{addinfo}% \newunit\newblock \printfield{series}% \newunit\newblock \printfield{note}% \newunit\newblock \printlist{organization}% \newunit \printfield[apacase]{eventtitle}% \newunit \printfield{venue}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{origyear}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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 \iftoggle{bbx:doi} {\printfield{doi}% \iffieldundef{doi}{}{\renewcommand*{\finentrypunct}{\relax}}} {}% \newunit\newblock \iftoggle{bbx:eprint} {\usebibmacro{eprint}% \iffieldundef{eprint}{}{\renewcommand*{\finentrypunct}{\relax}}} {}% \newunit\newblock \usebibmacro{url+urldate}% \iffieldundef{url}{}{\renewcommand*{\finentrypunct}{\relax}} \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{report}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author/editor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \usebibmacro{apa:reportnum}% \newunit\newblock \printlist{institution}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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 \printfield{note}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{review}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{reviewauthor}% \setunit{\labelnamepunct}\newblock \usebibmacro{title}% \newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \newunit\newblock \ifbool{bbx:noreviewauthor}{\usebibmacro{labelyear+extrayear}}{}% \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:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{data}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{author}% \newunit\newblock \usebibmacro{datatitle}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \setunit{\addcomma\addspace}\newblock \usebibmacro{location+publisher}% \newunit\newblock \usebibmacro{doi+eprint+url}% \newunit\newblock \printfield{addendum}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{letters}{% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{video}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{writer}% \usebibmacro{director}% \usebibmacro{producer}% \newunit\newblock \usebibmacro{labelyear+extrayear}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{movie}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{writer}% \usebibmacro{director}% \usebibmacro{producer}% \newunit\newblock \usebibmacro{labelyear+extrayear}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct}% \usebibmacro{finentry}} \DeclareBibliographyDriver{audio}{% \usebibmacro{bibindex}% \usebibmacro{begentry}% \usebibmacro{writer}% \usebibmacro{director}% \usebibmacro{producer}% \newunit\newblock \usebibmacro{labelyear+extrayear}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \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}% \newunit\newblock \iftoggle{bbx:related} {\usebibmacro{related:init}% \usebibmacro{related}} {}% \usebibmacro{apa:pageref}% \usebibmacro{apa:finpunct} \usebibmacro{finentry}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Modified, common macros \newbibmacro*{editorx}{% \ifnameundef{editor} {} {\printnames[apanames][-\value{listtotal}]{editor}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editor}} \clearname{editor}% \newunit}% \ifnameundef{editora} {} {\printnames[apanames][-\value{listtotal}]{editora}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editora}} \clearname{editora}% \newunit}% \ifnameundef{editorb} {} {\printnames[apanames][-\value{listtotal}]{editorb}% \setunit{\addspace}% \printtext[parens]{\usebibmacro{apaeditorstrg}{editorb}} \clearname{editorb}% \newunit}% \ifnameundef{editorc} {} {\printnames[apanames][-\value{listtotal}]{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 \ifhyperref {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} {\nolinkurl{#1}}} % APA 6th \newbibmacro*{location+publisher}{% \printlist[default][1-1]{location}% \setunit*{\addcolon\space}% \printlist{publisher}% \newunit} \newbibmacro*{type+institution}{% \setunit{\addspace}% \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}} \newbibmacro*{labeltitle}{% \iffieldundef{label} {\iffieldundef{shorttitle} {\printfield{title}% \clearfield{title}% \setunit{\addspace}% \printfield{entrysubtype}% \clearfield{entrysubtype}% \global\booltrue{bbx:titleinauthpos}} {\printfield[title]{shorttitle}}} {\printfield{label}}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Wrapper for backrefs \newbibmacro{apa:pageref}{% \ifbool{apa:backref}{\usebibmacro{pageref}}{}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Unchanged from authoryear-comp \DeclareBibliographyOption{dashed}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{pagetracker}% \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} {\ExecuteBibliographyOptions{pagetracker=false}% \renewbibmacro*{bbx:savehash}{}}} \DeclareFieldFormat{shorthandwidth}{#1} \setlength{\bibitemsep}{0pt} \DeclareNameAlias{author}{sortname} \DeclareNameAlias{editor}{sortname} \DeclareNameAlias{translator}{sortname} \defbibenvironment{bibliography} {\list {} {\setlength{\leftmargin}{\bibhang}% \setlength{\itemindent}{-\leftmargin}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}} {\endlist} {\item} \defbibenvironment{shorthands} {\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} {\item} \InitializeBibliographyStyle{% \global\undef\bbx@lasthash} \newbibmacro*{bbx:savehash}{% \savefield{fullhash}{\bbx@lasthash}} \newbool{bbx@inset} \DeclareBibliographyDriver{set}{% \booltrue{bbx@inset}% \entryset{}{}% \newunit\newblock \usebibmacro{setpageref}% \finentry} \endinput