Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %% Copyright 2020 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}[2020/08/28\space v9.14\space APA biblatex references style]
- \RequireBiber[3]
- \RequireBibliographyStyle{standard}
- \urlstyle{same} % APA examples all have URLs in same font as text
- % Declare the language mapping suffix
- \DeclareLanguageMappingSuffix{-apa}
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Optional parens/brackets
- % Thanks to egreg from https://tex.stackexchange.com/questions/53068/how-to-check-if-a-macro-value-is-empty-or-will-not-create-text-with-plain-tex-co
- % for this test for expanded emptiness so that we can easily opt to not print parens around nothing
- % Without this, it is very messy - you have to test all potential fields for defness first and this
- % is messy because the fields in the additional info vary betwee entrytypes
- \def\foreverunspace{%
- \ifnum\lastnodetype=11
- \unskip\foreverunspace
- \else
- \ifnum\lastnodetype=12
- \unkern\foreverunspace
- \else
- \ifnum\lastnodetype=13
- \unpenalty\foreverunspace
- \fi
- \fi
- \fi
- }
- % we need a way to save the state of the punctuation buffer
- % cf. \blx@initunit in biblatex.sty for what we need to copy
- % this uses the internal implementation of etoolbox toggles
- % fingers crossed no one messes with it
- \newrobustcmd*{\apablx@savetoggle}[1]{%
- \csletcs{apablx@savedtoggle@#1}{etb@tgl@#1}}
- \newrobustcmd*{\apablx@restoretoggle}[1]{%
- \csletcs{etb@tgl@#1}{apablx@savedtoggle@#1}}
- \newrobustcmd*{\apablx@savepunctstate}{%
- \apablx@savetoggle{blx@block}%
- \apablx@savetoggle{blx@unit}%
- \apablx@savetoggle{blx@insert}%
- \apablx@savetoggle{blx@lastins}%
- \apablx@savetoggle{blx@keepunit}%
- \let\apablx@savd@unitpunct\blx@unitpunct
- \let\apablx@savd@puncthook\abx@puncthook}
- \newrobustcmd*{\apablx@restorepunctstate}{%
- \global\apablx@restoretoggle{blx@block}%
- \global\apablx@restoretoggle{blx@unit}%
- \global\apablx@restoretoggle{blx@insert}%
- \global\apablx@restoretoggle{blx@lastins}%
- \global\apablx@restoretoggle{blx@keepunit}%
- \global\let\blx@unitpunct\apablx@savd@unitpunct
- \global\let\abx@puncthook\apablx@savd@puncthook}
- % printtext that checks if it would print anything
- \newrobustcmd{\printtexte}[2][]{%
- \apablx@savepunctstate
- \setbox0=\hbox{#2\foreverunspace}%
- \apablx@restorepunctstate
- \ifdim\wd0=0pt
- \else
- \ifblank{#1}
- {\printtext{#2}}
- {\printtext[#1]{#2}}%
- \fi}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.8) - Allow variable max authors/editors limit
- % Default to APA 19
- \newcommand{\maxprtauth}{20}
- \DeclareBibliographyOption{apamaxprtauth}{%
- \ifstrempty{#1}
- {}
- {\renewcommand{\maxprtauth}{#1}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Multiple related entries, even though there are no
- % examples in APA 7th, should probably be this
- \renewcommand*{\relateddelim}{\addcomma\addspace}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Force roman numerals into arabic using
- % etoolbox macros
- \newcommand{\apanum}[1]{\ifrmnum{#1}{\rmntonum{#1}}{#1}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.43) Hanging indent of 0.5in
- \setlength{\bibhang}{0.5in}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Date formats. Suppress end range of less specific fields
- \newcommand*{\mkdaterangeapalong}[1]{%
- \begingroup
- \blx@metadateinfo{#1}%
- \iffieldundef{#1year}{}
- {\datecircaprint
- \ifboolexpr{ test {\ifstrequal{#1}{url}}
- or test {\ifentrytype{legal}}
- or ( test {\ifentrytype{legadminmaterial}} and
- test {\ifkeyword{proposed}} ) }
- {\printtext{%
- \mkbibdateapalongmdy{#1year}{#1month}{#1day}%
- \iffieldundef{#1endyear}%
- {}%
- {\iffieldequalstr{#1endyear}{}% open-ended range?
- {\bibdatedash\bibstring{present}}
- {\bibdatedash%
- \iffieldsequal{#1year}{#1endyear}%
- {\iffieldsequal{#1month}{#1endmonth}%
- {\iffieldsequal{#1day}{#1endday}%
- {}%
- {\mkbibdateapalongmdy{}{}{#1endday}}}%
- {\mkbibdateapalongmdy{}{#1endmonth}{#1endday}}}%
- {\mkbibdateapalongmdy{#1endyear}{#1endmonth}{#1endday}}}}%
- \dateuncertainprint}}
- {\printtext{%
- \mkbibdateapalong{#1year}{#1month}{#1day}%
- \dateeraprint{#1year}%
- \iffieldundef{#1endyear}%
- {}%
- {\iffieldequalstr{#1endyear}{}% open-ended range?
- {\bibdatedash\bibstring{present}}
- {\bibdatedash%
- \iffieldsequal{#1year}{#1endyear}%
- {\iffieldsequal{#1month}{#1endmonth}%
- {\iffieldsequal{#1day}{#1endday}%
- {}%
- {\mkbibdateapalong{}{}{#1endday}}}%
- {\mkbibdateapalong{}{#1endmonth}{#1endday}}}%
- {\mkbibdateapalong{#1endyear}{#1endmonth}{#1endday}%
- \dateeraprint{#1endyear}}}%
- \enddateuncertainprint}}}}%
- \endgroup}
- % Only for DATE as only \printdateextra is used
- \newcommand*{\mkdaterangeapalongextra}[1]{%
- \begingroup
- \blx@metadateinfo{#1}%
- \iffieldundef{#1year}{}
- {\printtext{%
- \datecircaprint
- \mkbibdateapalongextra{#1year}{#1month}{#1day}%
- \dateeraprint{#1year}%
- \dateuncertainprint
- \iffieldundef{#1endyear}%
- {}%
- {\iffieldequalstr{#1endyear}{}% open-ended range?
- {\bibdatedash\bibstring{present}}
- {\bibdatedash%
- \iffieldsequal{#1year}{#1endyear}%
- {\iffieldsequal{#1month}{#1endmonth}%
- {\iffieldsequal{#1day}{#1endday}%
- {}%
- {\mkbibdateapalongextra{}{}{#1endday}}}
- {\mkbibdateapalongextra{}{#1endmonth}{#1endday}}}
- {\mkbibdateapalongextra{#1endyear}{#1endmonth}{#1endday}%
- \dateeraprint{#1endyear}}}%
- \enddateuncertainprint}}}%
- \endgroup}
- \AtEndPreamble{%
- \renewcommand*{\datecircaprint}{%
- \ifdatecirca{\biblcstring{circa}\printdelim{datecircadelim}}{}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 8.12) sort citations
- % (APA 8.17) More than two authors is truncated to one but overriden for list ambiguity to
- % point of no ambiguity
- % (APA 8.20) Use initials to disambiguate shared surnames
- % (APA 8.19) Use year postfix to disambiguate multiple items in same year
- % (APA 9.44, 9.46, 9.47) Sorting is nyt but we need to account for PUBSTATE which comes
- % after all normal cites for the same author
- % (APA 9.42) Secular Before Common Era dates, approximate dates
- % (APA Figure 9.2) Sorting ignores punctuation in names
- % (APA 9.47) Ignore "The", "An" and "A" when sorting titles
- \DeclareNosort{
- \nosort{setnames}{\regexp{\p{General_Category=Punctuation}}}
- \nosort{settitles}{\regexp{\A(?:The|An|A)\s+}}
- }
- \DeclareSortingTemplate{apa}{
- \sort{
- \field{presort}
- }
- \sort[final]{
- \field{sortkey}
- }
- \sort{
- \field{sortname}
- \field{author}
- \field{groupauthor}
- \field{editor}
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{pubstate}
- }
- \sort{
- \field{sortyear}
- \field{year}
- \literal{-2000000000}% APA has "nodates" coming first
- }
- \sort{
- \field{sorttitle}
- \field{title}
- }
- \sort{
- \field{volume}
- \literal{0}
- }
- }
- % Include groupauthor
- \DeclareLabelname{%
- \field{shortauthor}
- \field{author}
- \field{groupauthor}
- \field{shorteditor}
- \field{editor}
- }
- % Don't fall back on other year fields if there is no year, use
- % "nodate" string
- \DeclareLabeldate{%
- \field{pubstate}
- \field{date}
- \field{eventdate}
- \field{year}%legacy - no ISO8601 support
- \literal{nodate}
- }
- % CONSTITUTION entrytypes have no dates at all so no fall back to nodate literal either
- \DeclareLabeldate[constitution]{\field{date}}
- \ExecuteBibliographyOptions{%
- abbreviate=true,%
- autocite=inline,%
- backref=false,%
- citetracker=true,%
- date=apalong,%
- dateabbrev=false,%
- datecirca=true,%
- dateera=secular,%
- dateuncertain=true,%
- eventdate=comp,%
- labeldate=apalong,%
- labeldateparts=true,%
- maxbibnames=20,%
- maxcitenames=2,%
- minbibnames=19,%
- mincitenames=1,%
- mincrossrefs=999,%
- maxitems=999,%
- origdate=apalong,%
- pagetracker=true,%
- sortcites=true,%
- sorting=apa,%
- uniquelist=minyear,%
- uniquename=init,%
- uniqueprimaryauthor=true,%
- urldate=apalong,%
- useprefix=true,%
- usetranslator=true,%
- usenarrator=true}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Enforce ignoring of PUBSTATE if there is a YEAR or DATE field
- % (APA 10.2:32) Remove PUBLISHER if it is the same as GROUPAUTHOR
- % Force @COLLECTION, @REFERENCE->@BOOK and @INCOLLECTION,@INREFERENCE->@INBOOK
- \DeclareStyleSourcemap{
- \maps[datatype=bibtex]{
- \map{
- \step[typesource=reference, typetarget=book]
- }
- \map{
- \step[typesource=inreference, typetarget=inbook]
- }
- \map{
- \step[typesource=collection, typetarget=book]
- }
- \map{
- \step[typesource=incollection, typetarget=inbook]
- }
- \map{
- \step[typesource=hardware, typetarget=software]
- }
- \map{
- \pertype{proceedings}
- \step[fieldsource=booktitle, fieldtarget=title]
- \step[typesource=proceedings, typetarget=book]
- }
- \map{
- \pertype{inproceedings}
- \step[notfield=editor, final]
- \step[fieldsource=booktitle, fieldtarget=journaltitle]
- \step[typesource=inproceedings, typetarget=article]
- }
- \map{
- \step[typesource=inproceedings, typetarget=inbook]
- }
- \map{
- \step[fieldsource=year, final]
- \step[fieldset=pubstate, null]
- }
- \map{
- \step[fieldsource=date, final]
- \step[fieldset=pubstate, null]
- }
- \map{
- \step[fieldsource=groupauthor, match=\regexp{([^{}]+)}, final]
- \step[fieldsource=publisher, match=\regexp{$1}, final]%$
- \step[fieldset=publisher, null]
- }
- }
- }
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % 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
- % General format of titles. Ugly Chicago-style lowercasing of English titles
- \DeclareFieldFormat{apacase}{\MakeSentenceCase*{#1}}
- % HOWPUBLISHED
- \DeclareFieldFormat[unpublished]{howpublished}{\mkbibbrackets{%
- \ifbibstring{#1}{\bibcpstring{#1}}{#1}}}
- % TITLE
- \DeclareFieldFormat*{title}{\mkbibemph{#1}\isdot}
- \DeclareFieldFormat[article,inbook,incollection,periodical,misc,legislation,legadminmaterial,jurisdiction,inproceedings,legal]{title}{#1\isdot}
- \DeclareFieldFormat[audio,video]{title}{\iffieldundef{maintitle}{\mkbibemph{#1}\isdot}{#1}}
- \DeclareFieldFormat[presentation]{title}{\iffieldundef{maintitle}{\mkbibemph{#1}}{#1}\isdot}
- % SUBTITLE
- \DeclareFieldFormat[legmaterial]{subtitle}{\mkbibemph{#1}}
- % TITLEADDON
- \DeclareFieldFormat{titleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}}
- \DeclareFieldFormat[legislation]{titleaddon}{#1}
- % MAINTITLEADDON
- \DeclareFieldFormat{maintitleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}}
- % NOTE
- \DeclareFieldFormat[legmaterial,legadminmaterial]{note}{\mkbibparens{#1}}
- % BOOKTITLEADDON
- \DeclareFieldFormat{booktitleaddon}{\mkbibbrackets{\MakeSentenceCase*{#1}}}
- % ISSUETITLE
- \DeclareFieldFormat{issuetitle}{#1\isdot}
- \DeclareFieldFormat[periodical]{issuetitle}{\mkbibbrackets{#1}}
- % ORIGTITLE
- \DeclareFieldFormat{origtitle}{\mkbibemph{\MakeSentenceCase*{#1}}\isdot}
- \DeclareFieldFormat[article,inbook,incollection,inproceedings,proceedings,presentation]{origtitle}{\MakeSentenceCase*{#1}\isdot}
- % VOLUME
- \DeclareFieldFormat{volume}{\iffieldundef{maintitle}
- {\bibcpstring{volume}~\apanum{#1}}
- {\mkbibemph{\bibcpstring{volume}~\apanum{#1}}}}
- \DeclareFieldFormat[article]{volume}{\mkbibemph{\apanum{#1}}}
- \DeclareFieldFormat[inproceedings,periodical]{volume}{\mkbibemph{\apanum{#1}}}
- % VOLUMES
- \DeclareFieldFormat{volumes}{\bibcpstring{volumes}~#1}
- % CHAPTER
- \DeclareFieldFormat{chapter}{\bibcpstring{chapter}~\apanum{#1}}
- % NUMBER
- \DeclareFieldFormat{number}{\iffieldundef{volume}
- {\ifinteger{\thefield{number}}
- {\addspace\mkbibemph{\bibcpstring{number}~\apanum{#1}}\adddot}
- {\apanum{#1}}}
- {\mkbibemph{\apanum{#1}}}}
- \DeclareFieldFormat[report]{number}{\apanum{#1}}
- \DeclareFieldFormat[article,periodical,inproceedings]{number}{\mkbibparens{\apanum{#1}}}
- \DeclareFieldFormat[reprint]{number}{\mkbibbrackets{\apanum{#1}}}
- \DeclareFieldFormat{legmaterialnum}{%
- \ifthenelse{%
- \iffieldequalstr{type}{report}\OR%
- \iffieldequalstr{type}{execorder}}{\bibcpstring{number}~\apanum{#1}}{\apanum{#1}}}
- % PAGES
- \DeclareFieldFormat{pageswithprefix}{\mkpageprefix[bookpagination]{#1}}
- \DeclareFieldFormat[inbook,incollection]{pages}{\mkpageprefix[bookpagination]{#1}}
- \DeclareFieldFormat[periodical]{pages}{#1}
- % PART
- \DeclareFieldFormat*{part}{#1}
- % ORGANIZATION
- \DeclareListFormat[misc]{organization}{\mkbibemph{#1}}
- % LOCATION
- \DeclareListFormat[periodical]{location}{\mkbibemph{#1}}
- \DeclareListFormat{publisher}{%
- \usebibmacro{publisher:delim}{#1}%
- #1\isdot}
- \DeclareListFormat{location}{%
- \usebibmacro{location:delim}{#1}%
- #1\isdot}
- % NAMEADDON
- \DeclareFieldFormat[misc]{nameaddon}{\mkbibparens{#1}}
- % VERSION
- \DeclareFieldFormat[dataset,software]{version}{\bibcpstring{version}~#1}
- \DeclareFieldFormat[online]{version}{\mkbibparens{#1}}
- % URL
- \DeclareFieldFormat{url}{\url{#1}}
- \DeclareFieldFormat{urldate}{#1}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.47) Works by the same author have the full author
- % name, not an eliding dash. Author is always
- % last name first.
- % (APA 10.1:4) Ellipsis from 20th position and then nothing until last
- % (APA 9.x) Unknown names and dates
- % (APA 9.8) Two group authors drop the comma in between
- % \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
- % It's not completely obvious but it's implied that names identical apart from a suffix
- % are to be treated as different name lists for extradate calculation so we add suffix
- % to the default definition
- \DeclareUniquenameTemplate{
- \namepart[use=true, base=true]{prefix}
- \namepart[base=true]{family}
- \namepart{given}
- \namepart{suffix}
- }
- \DeclareNameAlias{default}{apaauthor}
- \DeclareNameFormat{apaauthor}{%
- \ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
- {\addcomma\space\ldots\space}
- {\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
- {}
- {\usebibmacro{name:apa:family-given}%
- {\namepartfamily}%
- {\namepartgiven}%
- {\namepartgiveni}%
- {\namepartprefix}%
- {\namepartsuffix}%
- \let\bibstring\bibcplstring
- \usebibmacro{role}{\addspace}{\mkbibparens}%
- \hasitemannotation[\currentname][username]
- {\addspace\mkbibbrackets{\getitemannotation[\currentname][username]}}
- {}}}%
- \ifthenelse{\value{listcount}=\value{listtotal}}%
- {\ifmorenames
- {\printdelim{andothersdelim}%
- \biblcstring{andothers}}
- {}%
- \let\bibstring\bibcplstring
- \usebibmacro{roles}{\addspace}{\mkbibparens}}
- {}}
- \DeclareNameFormat{apanames}{%
- \ifthenelse{\value{listcount}=\maxprtauth\AND\value{listcount}<\value{listtotal}}
- {\addcomma\space\ldots\space}
- {\ifthenelse{\value{listcount}>\maxprtauth\AND\value{listcount}<\value{listtotal}}
- {}
- {\usebibmacro{name:apa:given-family}%
- {\namepartfamily}%
- {\namepartgiven}%
- {\namepartgiveni}%
- {\namepartprefix}%
- {\namepartsuffix}%
- \let\bibstring\bibcpsstring
- \usebibmacro{role}{\addcomma\space}{\@firstofone}}}%
- \ifthenelse{\value{listcount}=\value{listtotal}}%
- {\ifmorenames
- {\printdelim{andothersdelim}%
- \biblcstring{andothers}}
- {}%
- \let\bibstring\bibcplstring
- \usebibmacro{roles}{\addspace}{\@firstofone}}
- {}}
- \renewbibmacro*{author/editor}{%
- \ifthenelse{\ifnameundef{author}\AND\ifnameundef{groupauthor}}
- {\ifnameundef{editor}
- {\usebibmacro{title}%
- % need to clear all title fields so we don't get them again later
- \clearfield{title}%
- \clearfield{subtitle}%
- \clearfield{titleaddon}}
- {\usebibmacro{editorinauthpos}}}
- {\usebibmacro{author}}%
- \newunit\newblock%
- \usebibmacro{labelyear+extradate}}
- \newbibmacro*{author/editor:related}{%
- \ifthenelse{\ifnameundef{author}\AND\ifnameundef{groupauthor}}
- {\ifnameundef{editor}
- {\usebibmacro{title}%
- % need to clear all title fields so we don't get them again later
- \clearfield{title}%
- \clearfield{subtitle}%
- \clearfield{titleaddon}}
- {\usebibmacro{editorinauthpos:related}}}
- {\usebibmacro{author:related}}}
- \newbibmacro*{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
- \clearname{editor}}}
- \newbibmacro*{editorinauthpos:related}{%
- \printnames[apanames][-\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
- \clearname{editor}}}
- \renewbibmacro*{author}{%
- \ifnameundef{author}
- {\printnames[apaauthor][-\value{listtotal}]{groupauthor}}
- {\printnames[apaauthor][-\value{listtotal}]{author}}%
- \setunit*{\addspace}%
- \printfield{nameaddon}%
- \ifnameundef{with}
- {}
- {\setunit{\addspace}%
- \printtext[parens]{%
- \bibstring{with}%
- \setunit{\addspace}%
- \printnames[apaauthor][-\value{listtotal}]{with}}%
- \setunit{\addspace}}}
- \newbibmacro*{author:related}{%
- \ifnameundef{author}
- {\printnames[apanames][-\value{listtotal}]{groupauthor}}
- {\printnames[apanames][-\value{listtotal}]{author}}%
- \setunit*{\addspace}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.8) Author delimiters are ampersands before final author
- % Long author lists
- % Serial comma for lists of three or more
- % Ampersand only (no comma) between two group authors
- \DeclareDelimFormat[bib,biblist]{finalnamedelim}{%
- \ifthenelse{\value{listcount}>\maxprtauth}
- {}
- {\ifthenelse{\value{liststop}>2}
- {\finalandcomma\addspace\&\space}
- {\addspace\&\space}}}
- \DeclareDelimFormat[bib,biblist]{finalnamedelim:apa:family-given}{%
- \ifthenelse{\value{listcount}>\maxprtauth}
- {}
- {\ifthenelse{\ifcurrentname{groupauthor}\AND%
- \value{liststop}=2}
- {\addspace\&\space}
- {\finalandcomma\addspace\&\space}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.47) Use "nodate" bibstring for references with no year
- % Months and days go into parenthesis with year, if set
- % (APA 8.13, 10.2) circa or uncertain dates in brackets
- % Make sure endmonth gets an expansion too
- \DeclareFieldFormat{endmonth}{\mkbibmonth{#1}}
- \newbibmacro*{labelyear+extradate}{%
- \iffieldundef{labelyear}
- {\iffieldundef{origyear}
- {}
- {\printtext[apadate]{\printorigdate}}}%
- {\printtext[apadate]{\printlabeldateextra}}}
- \DeclareFieldFormat{apadate}{%
- \ifboolexpr{ test {\ifdatecirca} or test {\ifdateuncertain} }
- {\mkbibbrackets{#1}}
- {\mkbibparens{#1}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.5) Conference event information
- \newbibmacro*{eventinfo}{%
- \printfield{eventtitle}%
- \setunit{\addcomma\addspace}%
- \printfield{venue}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.25) No prefix for pages
- \DeclareFieldFormat{pages}{#1}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.52) References in a meta-analysis
- % Dates ignore month/day in nonacademic
- % articles
- \renewbibmacro*{begentry}{%
- \ifkeyword{meta}{\textsuperscript{*}}{}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Title and additional post title information
- \renewbibmacro*{title}{%
- \ifthenelse{\iffieldundef{title}\AND\iffieldundef{subtitle}}
- {\printfield{titleaddon}}
- {\iffieldundef{origtitle}
- {\printtext[title]{%
- \printfield{title}%
- \setunit{\subtitlepunct}%
- \printfield{subtitle}}}
- {\printfield{origtitle}%
- \setunit{\addspace}%
- \printtext[brackets]{%
- \printfield{title}%
- \setunit{\subtitlepunct}%
- \printfield{subtitle}}}%
- \setunit{\addspace}%
- \ifentrytype{inbook}{}{\usebibmacro{addinfo1}}% additional info in parens
- \setunit{\addspace}%
- \printfield{titleaddon}%
- \setunit{\addspace}%
- \usebibmacro{addinfo2}}}%
- \newbibmacro*{addinfo1}{%
- \printtexte[parens]{%
- \usebibmacro{editor+trans+narr}%
- \setunit*{\addsemicolon\addspace}%
- \printfield{edition}%
- \setunit*{\addcomma\addspace}%
- \ifthenelse{\ifentrytype{report}\OR%
- \ifentrytype{thesis}\OR%
- \ifentrytype{unpublished}\OR%
- \ifentrytype{dataset}\OR%
- \ifentrytype{software}\OR%
- \ifentrytype{audio}\OR%
- \ifentrytype{patent}\OR%
- \ifentrytype{image}}{\usebibmacro{addinfo3}}{}%
- \setunit*{\addcomma\addspace}%
- \ifentrytype{inbook}{\printfield{pages}}{}%
- \setunit*{\addcomma\addspace}%
- \ifentrytype{book}{\printfield{volumes}}{}%
- \setunit*{\addcomma\addspace}%
- \ifentrytype{book}{\printfield{volume}}{}}}
- % Additional post title information in brackets unless it's the meta subtype "nonacademic"
- % which is used to conditionalise date formats in the .lbx files
- \newbibmacro*{addinfo2}{%
- \printtexte[brackets]{%
- \iffieldequalstr{entrysubtype}{nonacademic}
- {}
- {\iffieldbibstring{entrysubtype}
- {\bibcplstring{\thefield{entrysubtype}}}
- {\printfield{entrysubtype}}}%
- \setunit*{\addsemicolon\addspace}%
- \printfield{note}}}
- % number/issue information
- \newbibmacro*{addinfo3}{%
- \iffieldundef{type}
- {\iffieldundef{issue}
- {\iffieldnums{number}{\bibcpstring{number}~}{}\printfield{number}}
- {\printfield{issue}\setunit{\addspace}%
- \iffieldundef{number}
- {}
- {\iffieldnums{number}{\bibcpstring{number}~}{}\printfield{number}}}}
- {\printfield{type}\setunit{\addspace}%
- \iffieldundef{number}
- {}
- {\iffieldnums{number}{\bibcpstring{number}~}{}\printfield{number}}}%
- \ifthenelse{\ifentrytype{dataset}\OR\ifentrytype{software}}
- {\setunit*{\addsemicolon\addspace}%
- \printfield{version}}
- {}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.1 Example 6) eprints (eLocator)
- \DeclareFieldFormat[article]{eid}{\bibcpstring{jourarticle}~#1}
- \DeclareFieldFormat{eprint}{#1}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10) Commas between title and volume for articles
- % (APA 10.6) eLocator is part of journal info
- \renewbibmacro*{journal+issuetitle}{%
- \usebibmacro{journal}%
- \setunit*{\addcomma\addspace}%
- \printfield{volume}%
- \printfield{number}%
- \setunit{\addcomma\addspace}%
- \printfield{eid}%
- \newunit\newblock
- \usebibmacro{issuename}%
- \newunit}
- \newbibmacro*{issuename}{%
- \iffieldundef{issuetitle}
- {}
- {\printtext[issuetitle]{%
- \printfield[noformat]{issuetitle}%
- \setunit{\subtitlepunct}%
- \printfield[noformat]{issuesubtitle}}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % "In" precedes editor/trans list, no colon
- % Use a flag to track as it could be inserted in more
- % than one potential location
- \newbibmacro*{in}{%
- \ifbool{bbx:in}%
- {}%
- {\global\booltrue{bbx:in}%
- \bibcpstring{in}\setunit{\space}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Names
- \newcommand*{\apabbx@ifrole@item}{%
- \xifinlist{item@\currentname @role@\the\value{listcount}}%
- \abx@annotation@defined}
- \newtoggle{apabbx:role:item:punct}
- \newcommand*{\apabbx@rolelist@item}{}
- \forcsvlist{\listadd\apabbx@rolelist@item}{%
- writer,director,execproducer,producer,host,chair,guestexpert}
- \newcommand*{\apabbx@printrole@item@i}[1]{%
- \ifitemannotation[\currentname][role]{#1}
- {\iftoggle{apabbx:role:item:punct}
- {\addspace\&\space}
- {}%
- \bibstring{#1}%
- \toggletrue{apabbx:role:item:punct}}
- {}%
- }
- \newcommand*{\apabbx@printrole@item}{%
- \forlistloop{\apabbx@printrole@item@i}{\apabbx@rolelist@item}}
- % Individual name roles
- % takes two arguments
- % {<pre punct>}{<wrapper>}
- \newbibmacro*{role}[2]{%
- \apabbx@ifrole@item
- {#1%
- #2{%
- \togglefalse{apabbx:role:item:punct}%
- \hasitemannotation[\currentname][role]%
- {\getitemannotation[\currentname][role]}
- {\apabbx@printrole@item}}}
- {}%
- }
- \newcommand*{\apabbx@ifrole@field}{%
- \xifinlist{field@\currentname @role}%
- \abx@annotation@defined}
- \newtoggle{apabbx:role:field:punct}
- \newcommand*{\apabbx@rolelist@field}{}
- \forcsvlist{\listadd\apabbx@rolelist@field}{%
- writers,directors,execproducers,producers,hosts,chairs,guestexperts}
- \newcommand*{\apabbx@printrole@field@i}[1]{%
- \iffieldannotation[\currentname][role]{#1}
- {\iftoggle{apabbx:role:field:punct}
- {\addspace\&\space}
- {}%
- \bibstring{#1}%
- \toggletrue{apabbx:role:field:punct}}
- {}%
- }
- \newcommand*{\apabbx@printrole@field}{%
- \forlistloop{\apabbx@printrole@field@i}{\apabbx@rolelist@field}}
- % roles for complete name lists
- % takes two arguments
- % {<pre punct>}{<wrapper>}
- \newbibmacro*{roles}[2]{%
- \apabbx@ifrole@field
- {#1%
- #2{%
- \togglefalse{apabbx:role:field:punct}%
- \hasfieldannotation[\currentname][role]%
- {\getfieldannotation[\currentname][role]}
- {\apabbx@printrole@field}}}
- {}%
- }
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Name format
- % #1 = family name
- % #2 = given name
- % #3 = given name (initials)
- % #4 = name prefix
- % #5 = name suffix
- \newbibmacro*{name:delim:apa:family-given}[1]{%
- \ifnumgreater{\value{listcount}}{\value{liststart}}
- {\ifboolexpr{
- test {\ifnumless{\value{listcount}}{\value{liststop}}}
- or
- test \ifmorenames
- }
- {\printdelim{multinamedelim}}
- {\printdelim{finalnamedelim:apa:family-given}}}
- {}}
- \newbibmacro*{name:apa:family-given}[5]{%
- \ifuseprefix
- {\usebibmacro{name:delim:apa:family-given}{#4#1}%
- \usebibmacro{name:hook}{#4#1}%
- \ifdefvoid{#4}{}{%
- \mkbibnameprefix{#4}\isdot%
- \ifprefchar{}{\bibnamedelimc}}%
- \mkbibnamefamily{#1}\isdot%
- \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#3}\isdot%
- \ifthenelse{\value{uniquename}>1}
- {\bibnamedelimd\mkbibbrackets{#2}}
- {}}%
- \ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}
- {\usebibmacro{name:delim:apa:family-given}{#1}%
- \usebibmacro{name:hook}{#1}%
- \mkbibnamefamily{#1}\isdot
- \ifboolexpe{%
- test {\ifdefvoid{#2}}
- and
- test {\ifdefvoid{#4}}}
- {}
- {\revsdnamepunct}%
- \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#3}%
- \ifthenelse{\value{uniquename}>1}
- {\bibnamedelimd\mkbibbrackets{#2}}
- {}}%
- \ifdefvoid{#4}{}{%
- \bibnamedelimc\mkbibnameprefix{#4}%
- \ifprefchar{}{\bibnamedelimc}}%
- \ifdefvoid{#5}{}{\addcomma\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}}
- \newbibmacro*{name:apa:given-family}[5]{%
- \usebibmacro{name:delim}{#2#4#1#5}%
- \usebibmacro{name:hook}{#2#4#1#5}%
- \ifdefvoid{#2}{}{\mkbibnamegiven{#3}\isdot%
- \ifthenelse{\value{uniquename}>1}
- {\bibnamedelimd\mkbibbrackets{#2}}
- {}%
- \bibnamedelimd}%
- \ifdefvoid{#4}{}{%
- \mkbibnameprefix{#4}\isdot
- \ifprefchar{}{\bibnamedelimc}}%
- \mkbibnamefamily{#1}\isdot%
- \ifdefvoid{#5}{}{\bibnamedelimd\mkbibnamesuffix{#5}\isdot}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.10) Role strings in parens after author list
- % Collapse roles if same person
- % (APA 10.1 Example 10) Translator
- % (APA 10.2 Example 22) Narrator
- \newbibmacro*{editor+trans+narr}{%
- \ifthenelse{\ifnameundef{editor}\AND%
- \ifnameundef{editora}\AND%
- \ifnameundef{editorb}\AND%
- \ifnameundef{editorc}\AND%
- \ifnameundef{translator}\AND%
- \ifnameundef{narrator}}%
- {\printtext{}}% Print nothing, so the puncutation tracker is kept informed
- {\ifnamesequal{editor}{translator}%
- {\printnames[apanames][-\value{listtotal}]{editor}%
- \setunit*{\addcomma\addspace}%
- \usebibmacro{apaeditorstrg}{editor}%
- \setunit*{\addspace\&\space}%
- \bibcpstring{translator}}
- {\ifnameundef{editor}%
- {}%
- {\printnames[apanames][-\value{listtotal}]{editor}%
- \setunit{\addcomma\addspace}%
- \usebibmacro{apaeditorstrg}{editor}%
- \clearname{editor}%
- \setunit{\addsemicolon\space}}%
- \ifnameundef{translator}%
- {\setunit{}}%
- {\printnames[apanames][-\value{listtotal}]{translator}%
- \setunit{\addcomma\addspace}%
- \bibcpstring{translator}%
- \clearname{translator}%
- \setunit{\addsemicolon\space}}%
- \ifnameundef{narrator}%
- {\setunit{}}%
- {\printnames[apanames][-\value{listtotal}]{narrator}%
- \setunit{\addcomma\addspace}%
- \bibcpstring{narrator}%
- \clearname{narrator}}}}}
- \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}%
- \printtext[parens]{%
- \usebibmacro{apaeditorstrg}{editor}%
- \setunit*{\addspace\&\space}%
- \bibcpstring{translator}}}
- {\ifnameundef{translator}%
- {}%
- {\setunit{\addspace}%
- \printtext[parens]{\printnames[apanames][-\value{listtotal}]{translator}%
- \setunit{\addcomma\addspace}%
- \bibcpstring{translator}}%
- \clearname{translator}%
- \setunit{\adddot\addspace}}%
- \usebibmacro{in}%
- \usebibmacro{editorx}}%
- \setunit{\addcomma\addspace}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Special journal issues are periodicals
- \renewbibmacro*{periodical}{%
- \iffieldundef{title}
- {}
- {\printtext[title]{%
- \printfield[apacase]{title}%
- \setunit{\subtitlepunct}%
- \printfield[apacase]{subtitle}}}}
- \renewbibmacro*{title+issuetitle}{%
- \usebibmacro{periodical}%
- \setunit{\addspace}%
- \printfield{issuetitle}}%
- \newbibmacro*{pnumber}{%
- \printfield{volume}%
- \printfield{number}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.1 Example 10) Original year
- % Only give ORIGYEAR in references if both:
- % YEAR is also given
- % YEAR and ORIGYEAR are different
- \newbibmacro*{origyear}{%
- \ifboolexpr{%
- not test {\iffieldundef{origyear}}
- not test {\iffieldundef{labelyear}}
- and not test {\iffieldsequal{labelyear}{origyear}}}
- {\printtext[parens]{%
- \bibcpstring{origyear}
- \setunit{\addnbspace}%
- \printorigdate}%
- \renewcommand*{\finentrypunct}{\relax}}
- {}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.3) Reference work references
- \renewbibmacro*{maintitle+title}{%
- \iffieldsequal{maintitle}{title}
- {\clearfield{maintitle}%
- \clearfield{mainsubtitle}%
- \clearfield{maintitleaddon}}
- {\iffieldundef{maintitle}
- {}
- {\usebibmacro{maintitle}%
- \newunit\newblock
- \iffieldundef{volume}
- {}
- {\printfield{volume}%
- \printfield{part}%
- \setunit{\adddot\space}}}}%
- \usebibmacro{title}%
- \newunit}
- \renewbibmacro*{maintitle+booktitle}{%
- \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{booktitle}}
- {}
- {\ifthenelse{\ifnameundef{editor}\AND
- \ifnameundef{editora}\AND
- \ifnameundef{editorb}\AND
- \ifnameundef{editorc}\AND
- \(\ifnameundef{groupauthor}\AND\NOT\ifnameundef{author}\)}{}{\usebibmacro{in}}%
- \iffieldundef{maintitle}
- {}
- {\usebibmacro{maintitle}%
- \newunit\newblock
- \iffieldundef{volume}
- {}
- {\printfield{volume}%
- \printfield{part}%
- \setunit{\adddot\addspace}}}%
- \usebibmacro{booktitle}%
- \setunit{\addspace}%
- \usebibmacro{addinfo1}}}
- \renewbibmacro*{maintitle}{%
- \ifthenelse{\iffieldundef{maintitle}\AND\iffieldundef{mainsubtitle}}
- {}
- {\printtext[maintitle]{%
- \printfield[apacase]{maintitle}%
- \setunit{\subtitlepunct}%
- \printfield[apacase]{mainsubtitle}}%
- \setunit{\addspace}}
- \printfield{maintitleaddon}}
- \renewbibmacro*{booktitle}{%
- \ifthenelse{\iffieldundef{booktitle}\AND\iffieldundef{booksubtitle}}
- {}
- {\printtext[booktitle]{%
- \printfield[apacase]{booktitle}%
- \setunit{\subtitlepunct}%
- \printfield[apacase]{booksubtitle}}%
- \setunit{\addspace}}%
- \printfield{booktitleaddon}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Colon separates title/subtitle
- % Skip if following terminating punctuation
- \renewcommand*{\subtitlepunct}{\ifterm{}{\addcolon}\space}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.2.24) Multiple publishers, semi-colon sep
- \newbibmacro*{publisher:delim}[1]{%
- \ifnumgreater{\value{listcount}}{\value{liststart}}
- {\printdelim[publisher]{multilistdelim}}
- {}}
- \DeclareDelimFormat[publisher]{multilistdelim}{\addsemicolon\space}
- \DeclareDelimFormat[publisher]{finallistdelim}{\addsemicolon\space}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.10) Software
- \newbibmacro*{appentry}{%
- \iffieldundef{appentry}
- {\newunit\newblock}
- {\printfield[apacase]{appentry}%
- \newunit\newblock
- \usebibmacro{in}%
- \setunit{\addspace}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.1 Example 18) Comment on article
- \newcommand*{\begrelateddelimcommenton}{\addspace}
- \DeclareFieldFormat{related:commenton}{\def\bibstring{\blx@imc@bibcpstring}\mkbibbrackets{#1}}
- \newbibmacro*{related:commenton}[1]{%
- \entrydata*{#1}{%
- \printtext{\mkbibquote{\printfield[apacase]{title}}}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.7) Reviews - role strings need to be the
- % short versions in reviews
- \DeclareFieldFormat{reviewtitle}{%
- \iffieldequalstr{entrysubtype}{tvepisode}
- {\mkbibquote{\MakeSentenceCase*{#1}}}
- {\MakeSentenceCase*{#1}}}
- \newcommand*{\begrelateddelimreviewof}{\addspace}
- \DeclareFieldFormat{related:reviewof}{\def\bibstring{\blx@imc@bibcpsstring}\mkbibbrackets{#1}}
- \newbibmacro*{related:reviewof}[1]{%
- \entrydata*{#1}{%
- \printtext{\mkbibemph{%
- \printfield[reviewtitle]{title}%
- \iffieldundef{subtitle}
- {}
- {\setunit{\addcolon\addspace}%
- \printfield[reviewtitle]{subtitle}}}%
- \setunit{\addcomma\addspace}%
- \biblstring{byauthor}%
- \setunit{\addspace}%
- \usebibmacro{author/editor:related}}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.13) Audio
- \newbibmacro*{mainaudio}{%
- \iffieldundef{maintitle}{}
- {\iffieldequalstr{entrysubtype}{podcastepisode}{\bibcpstring{in}}{\bibcpstring{on}}%
- \setunit{\addspace}%
- \printfield{maintitle}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.12) Audiovisual
- \newbibmacro*{mainvideo}{%
- \iffieldundef{maintitle}
- {}
- {\usebibmacro{in}%
- \printnames[apanames][-\value{listtotal}]{execproducer}%
- \setunit{\addspace}%
- \bibcplstring[\mkbibparens]{execproducers}%
- \setunit{\addcomma\addspace}%
- \printfield{maintitle}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % Related entries
- %
- % Have to force capitlisation bibstring variant because the delim
- % has no printable char and this breaks default capitalisation
- % Suppress final period after reprints in parens
- \renewbibmacro*{endrelated}{%
- \iffieldequalstr{relatedtype}{reprintfrom}
- {\renewcommand*{\finentrypunct}{\relax}}
- {}}
- \newcommand*{\begrelateddelimreprintfrom}{\addperiod\addspace}
- % Some APA related entries are just after title, some are at the end of
- % the entry. This is for those after the title
- \newbibmacro*{apa:related}{%
- \iffieldundef{related}
- {}
- {\ifthenelse{\iffieldequalstr{relatedtype}{reviewof}\OR%
- \iffieldequalstr{relatedtype}{commenton}}
- {\usebibmacro{related:init}%
- \usebibmacro{related}%
- \togglefalse{bbx:related}}% disable default related expansion later on
- {}}}
- \DeclareFieldFormat{related:reprintfrom}{\let\bibstring\bibcpstring\mkbibparens{#1}}
- \renewbibmacro*{related:reprintfrom}[1]{%
- \entrydata*{#1}{%
- \ifentrytype{article}
- {\mkbibquote{%
- \printfield[apacase]{title}%
- \setunit{\subtitlepunct}%
- \printfield[apacase]{subtitle}}%
- \setunit{\addcomma\addspace}%
- \printlabeldateextra
- \setunit{\addcomma\addspace}%
- \usebibmacro{journal}%
- \setunit*{\addcomma\addspace}%
- \printfield{volume}%
- \printfield[reprint]{number}%
- \setunit*{\addcomma\addspace}%
- \usebibmacro{eprint}%
- \setunit{\addcomma\addspace}%
- \iffieldundef{issuetitle}
- {}
- {\printtext[issuetitle]{%
- \printfield[noformat]{issuetitle}%
- \setunit{\subtitlepunct}%
- \printfield[noformat]{issuesubtitle}}}%
- \setunit{\addcomma\addspace}%
- \printfield{pages}%
- \setunit{\addcomma\addspace}%
- \printfield{note}%
- \setunit{\addcomma\addspace}%
- \usebibmacro{location+publisher}%
- \setunit{\addcomma\addspace}%
- \usebibmacro{doi+url}%
- \setunit{}}
- {\ifentrytype{book}
- {\mkbibemph{%
- \printfield[apacase]{title}%
- \setunit{\subtitlepunct}%
- \printfield[apacase]{subtitle}}%
- \setunit{\addcomma\addspace}%
- \printfield[pageswithprefix]{pages}%
- \setunit{\addcomma\addspace}%
- \biblstring{byauthor}\space
- \printnames[apanames][-\value{listtotal}]{editor}%
- \setunit{\addcomma\addspace}%
- \usebibmacro{apaeditorstrg}{editor}%
- \setunit{\addcomma\addspace}%
- \printlabeldateextra
- \setunit{\addcomma\addspace}%
- \usebibmacro{location+publisher}%
- \setunit{\addcomma\addspace}%
- \usebibmacro{doi+url}%
- \setunit{}}
- {}}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 9.51) Annotations
- \newtoggle{bbx:annotation}
- \DeclareBiblatexOption{global,type,entry}[boolean]{annotation}[true]{%
- \settoggle{bbx:annotation}{#1}}
- \ExecuteBibliographyOptions{annotation=true}
- \renewbibmacro*{annotation}{%
- \ifboolexpr{ test {\iffieldundef{annotation}}
- or not togl {bbx:annotation}}
- {}
- {\begingroup
- \togglefalse{blx@bibliography}%
- \newline
- \setunit{}%
- \printfield{annotation}%
- \endgroup}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 11.4) Court cases
- \newtoggle{apa:courtdate}
- \DeclareListFormat{citation}{%
- \global\toggletrue{apa:courtdate}%
- \hasitemannotation[\currentlist][citeorg]%
- {#1\addspace\mkbibparens{\getitemannotation[\currentlist][citeorg]%
- \hasitemannotation[\currentlist][citedate]
- {\addspace\getitemannotation[\currentlist][citedate]%
- \global\togglefalse{apa:courtdate}} % disable normal date printing if it's in the citation info
- {}}}
- {\ifitemannotation[\currentlist][citeinfo]{appeal}
- {\mkbibemph{#1}}
- {#1}}%
- \ifthenelse{\value{listcount}<\value{liststop}}
- {\addcomma\addspace}
- {}}
- \DeclareFieldFormat{courtdate}{%
- % disable normal date printing if it's in the citation info
- \iftoggle{apa:courtdate}
- {\iflistundef{organization}
- {\mkbibparens{#1}}
- {\mkbibparens{%
- \printlist{organization}\space #1}}}
- {}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 11.5) Statutes
- \newbibmacro*{statdate}{%
- \iffieldundef{origyear}
- {\printtext[parens]{\printlabeldate}}
- {\printtext[parens]{\printorigdate%
- \addspace\&\addspace rev\adddot\addspace\printlabeldate}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 11.6) Legislative Material and Admin Material
- \newbibmacro*{location:delim}[1]{%
- \ifnumgreater{\value{listcount}}{\value{liststart}}
- {\printdelim[location]{multilistdelim}}
- {}}
- \DeclareDelimFormat[location]{multilistdelim}{\addcomma\space}
- \DeclareDelimFormat[location]{finallistdelim}{\addcomma\space}
- \newbibmacro*{legmattitle}{%
- \iffieldundef{title}
- {\ifbibxstring{\thefield{source}}{\bibcpsstring{\thefield{source}}}{}%
- \setunit*{\addspace}%
- \bibcpsstring{\thefield{type}}%
- \setunit*{\addspace}%
- \printfield[legmaterialnum]{number}}
- {\printfield{title}%
- \setunit*{\addcolon\addspace}\newblock
- \printfield{subtitle}}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % (APA 10.x) General entrytype drivers
- % Custom driver to make a cleaner example for 9.44
- \DeclareBibliographyDriver{nameonly}{%
- \usebibmacro{begentry}%
- \printnames[apaauthor][-\value{listtotal}]{author}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{article}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{journal+issuetitle}%
- \setunit{\bibpagespunct}%
- \printfield{pages}%
- \newunit\newblock
- \printfield{howpublished}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \usebibmacro{origyear}%
- \newunit\newblock
- \printfield{addendum}%
- \setunit{\addspace}\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{audio}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{mainaudio}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \usebibmacro{origyear}%
- \newunit\newblock
- \printfield{addendum}%
- \setunit{\addspace}\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{book}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{maintitle+title}%
- \newunit\newblock
- \printlist{publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \usebibmacro{origyear}%
- \newunit\newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{constitution}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \bibcpsstring{\thefield{source}}%
- \setunit{\addspace}\newblock
- \bibcpsstring{\thefield{type}}%
- \setunit{\addspace}\newblock
- \iffieldundef{amendment}{}{\bibsstring{amendment}\setunit{\addspace}\printfield{amendment}}%
- \setunit{\addcomma\addspace}\newblock
- \iffieldundef{article}{}{\bibsstring{article}\setunit{\addspace}\printfield{article}}%
- \setunit{\addcomma\addspace}\newblock
- \iffieldundef{section}{}{\bibsstring{section}\setunit{\addspace}\printfield{section}}%
- \setunit{\addcomma\addspace}\newblock
- \iffieldundef{part}{}{\bibsstring{paragraph}\setunit{\addspace}\printfield{part}}%
- \setunit{\addspace}\newblock
- \ifkeyword{repealed}{\printtext[parens]{\biblcsstring{repealed}\setunit{\addspace}\printeventdate}}{}%
- \usebibmacro{doi+url}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{dataset}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \newunit\newblock
- \printfield{type}%
- \newunit\newblock
- \printlist{organization}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \printlist{institution}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{image}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{inbook}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{editor+trans}%
- \newblock
- \usebibmacro{maintitle+booktitle}%
- \newunit\newblock
- \printlist{publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \usebibmacro{origyear}%
- \newunit\newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{jurisdiction}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \printfield{title}%
- \setunit{\addcomma\addspace}\newblock
- \printlist{citation}%
- \setunit{\addspace}\newblock
- \printtext[courtdate]{\printlabeldate}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{legal}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \printfield{title}%
- \setunit{\addspace}%
- \printfield{titleaddon}%
- \setunit{\addcomma\addspace}\newblock
- \printlabeldate%
- \setunit{\addcomma\addspace}\newblock
- \usebibmacro{doi+url}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{legislation}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \printfield{title}%
- \setunit{\addspace}%
- \printfield{titleaddon}%
- \setunit{\addcomma\addspace}\newblock
- \printlist{location}%
- \setunit{\addspace}\newblock
- \usebibmacro{statdate}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{legadminmaterial}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{legmattitle}%
- \setunit{\addcomma\addspace}\newblock
- \printlist{citation}%
- \setunit{\addspace}\newblock
- \printtext[parens]{\ifkeyword{proposed}{\bibstring{proposed}\space}{}\printlabeldate}%
- \setunit{\addspace}\newblock
- \printfield{note}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{legmaterial}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{legmattitle}%
- \setunit{\addcomma\addspace}\newblock
- \printlist{location}%
- \setunit{\addspace}\newblock
- \printtext[parens]{\printlabeldate}%
- \setunit{\addspace}\newblock
- \printfield{note}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{manual}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \newunit\newblock
- \printfield{type}%
- \newunit
- \printfield{version}%
- \newunit\newblock
- \printlist{organization}%
- \newunit
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{misc}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \printlist{organization}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{online}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \printfield{version}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{eprint}%
- \newunit\newblock
- \printlist{organization}%
- \addperiod\addspace
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{patent}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newunit\newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{periodical}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title+issuetitle}%
- \setunit{\adddot\addspace}
- \usebibmacro{journal}%
- \setunit{\addcomma\addspace}
- \printlist{location}%
- \setunit{\addcomma\addspace}
- \usebibmacro{pnumber}%
- \setunit{\addcomma\addspace}
- \printfield{pages}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newunit\newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{presentation}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{editor+trans}%
- \setunit*{\addcomma\addspace}\newblock
- \usebibmacro{maintitle+booktitle}%
- \newunit\newblock
- \usebibmacro{eventinfo}%
- \newunit\newblock
- \printlist{organization}%
- \newunit
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \printfield{pages}%
- \newunit\newblock
- \usebibmacro{origyear}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{report}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \printlist{institution}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{software}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{appentry}%
- \usebibmacro{title}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{thesis}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \newunit\newblock
- \printlist{institution}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newunit\newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{unpublished}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \setunit{\addspace}%
- \printfield{howpublished}%
- \newunit\newblock
- \printfield{venue}%
- \setunit{\addcomma\addspace}
- \printlist{institution}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \usebibmacro{finentry}}
- \DeclareBibliographyDriver{video}{%
- \usebibmacro{bibindex}%
- \usebibmacro{begentry}%
- \usebibmacro{author/editor}%
- \setunit{\printdelim{nametitledelim}}\newblock
- \usebibmacro{title}%
- \setunit{\addspace}\newblock
- \usebibmacro{apa:related}%
- \newunit\newblock
- \usebibmacro{mainvideo}%
- \newunit\newblock
- \usebibmacro{location+publisher}%
- \newunit\newblock
- \usebibmacro{doi+url}%
- \newblock
- \printfield{addendum}%
- \newunit\newblock
- \iftoggle{bbx:related}
- {\usebibmacro{related:init}%
- \usebibmacro{related}}
- {}%
- \usebibmacro{pageref}%
- \usebibmacro{annotation}%
- \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}}}}}
- %(APA 9.35) No periods after URLS
- % we'll override a global url option for for @online entries
- \ExecuteBibliographyOptions[online]{url=true}
- \newbibmacro*{doi+url}{%
- \ifboolexpr{ test {\iffieldundef{doi}}
- or not togl {bbx:doi}}
- {\ifboolexpr{ test {\iffieldundef{url}}
- or not togl {bbx:url}}
- {\newunit}
- {\usebibmacro{url+urldate}%
- \setunit{\addspace}}}
- {\printfield{doi}%
- \renewcommand*{\finentrypunct}{\relax}%
- \setunit{\addspace}}}
- \renewbibmacro*{url+urldate}{%
- \ifthenelse{\iffieldundef{url}\OR\NOT\iffieldundef{doi}}
- {}
- {\iffieldundef{urlyear}
- {}
- {\bibstring{retrieved}%
- \setunit{\addspace}%
- \printurldate
- \setunit{\urldatecomma}%
- \bibstring{from}%
- \setunit{\addspace}}%
- \iffieldundef{url}{}{\printfield{url}\renewcommand*{\finentrypunct}{\relax}}}}
- \DeclareFieldFormat{doi}{%
- \ifhyperref
- {\href{https://doi.org/#1}{\nolinkurl{https://doi.org/#1}}}
- {\nolinkurl{https://doi.org/#1}}}
- \newbibmacro*{location+publisher}{%
- \printlist{location}%
- \setunit*{\addcomma\space}%
- \printlist{publisher}}
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % 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}
- \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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement