% mla-strict.bbx, v2.0 2021/06/07 * compatible with biblatex 3.16 % Maintained at . % % Feel free to improve, redistribute, and adapt to your own ends. Please share improvements back to the project on GitHub or to James Clawson: . % % This material is subject to the LaTeX Project Public License. See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for the details of that license. \ProvidesFile{mla-strict.bbx}[2021/06/07 v2.0 biblatex bibliography style] \RequireBibliographyStyle{standard} \DeclareLanguageMappingSuffix{-mla} \NewBibliographyString{byserieseditor} \NewBibliographyString{reviewof} \NewBibliographyString{specissue} \NewBibliographyString{phd} \NewBibliographyString{dphil} \NewBibliographyString{lic} \NewBibliographyString{ma} \NewBibliographyString{ms} \NewBibliographyString{msc} \NewBibliographyString{mphil} \NewBibliographyString{mlitt} \NewBibliographyString{manuscript} \NewBibliographyString{typescript} \NewBibliographyString{director} \NewBibliographyString{screenplay} \NewBibliographyString{adaptation} \NewBibliographyString{adaptor} \NewBibliographyString{performer} \NewBibliographyString{performers} \NewBibliographyString{composer} \NewBibliographyString{composedby} \NewBibliographyString{producer} \NewBibliographyString{with} \NewBibliographyString{proceedings} \NewBibliographyString{compilerandeditor}% \NewBibliographyString{bycompilerandeditor}% \NewBibliographyString{transof}% \NewBibliographyString{volstodate}% \NewBibliographyString{supptotitle}% \NewBibliographyString{print}% \NewBibliographyString{web}% \NewBibliographyString{generaleditor}% \setlength{\bibitemsep}{0pt} \renewcommand*{\mkbibnamesuffix}[1]{\addcomma\addlowpenspace#1} \DeclareNameAlias{author}{sortname} \@ifpackagelater{biblatex}{2016/03/01}{% \DeclareNameFormat{mla:last}{\nameparts{#1}\namepartfamily}% \DeclareNameFormat{default}{% \nameparts{#1}% \ifgiveninits{% \usebibmacro{name:given-family}{\namepartfamily}{\namepartgiveni}{\namepartprefix}{\namepartsuffix}% }{% \usebibmacro{name:given-family}{\namepartfamily}{\namepartgiven}{\namepartprefix}{\namepartsuffix}% }% \usebibmacro{name:andothers}% }% }{% \DeclareNameFormat{mla:last}{#1}% \DeclareNameFormat{default}{% \iffirstinits{% \usebibmacro{name:first-last}{#1}{#4}{#5}{#7}% }{% \usebibmacro{name:first-last}{#1}{#3}{#5}{#7}% }% \usebibmacro{name:andothers}% }% } \defbibenvironment{bibliography} {\list {} {\setlength{\leftmargin}{\bibhang}% \setlength{\itemindent}{-\leftmargin}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}} {\endlist} {\item} \DeclareFieldFormat{title:article}{\mkbibquote{#1}}% \DeclareFieldFormat{title:online}{\mkbibquote{#1}}% \DeclareFieldFormat{title:inreference}{\mkbibquote{#1}}% \DeclareFieldFormat{title:book}{\mkbibemph{#1}} \DeclareFieldFormat{title:booklet}{\mkbibemph{#1}} \DeclareFieldFormat{title:collection}{\mkbibemph{#1}} \DeclareFieldFormat{title:incollection}{\mkbibquote{#1}}% \DeclareFieldFormat{title:inbook}{\mkbibquote{#1}}% \DeclareFieldFormat{title:inproceedings}{\mkbibquote{#1}}% \DeclareFieldFormat{title:mvbook}{\mkbibemph{#1}}% mla-2.0 \DeclareFieldFormat{title:patent}{\mkbibquote{#1}} \DeclareFieldFormat{title:thesis}{\mkbibquote{#1}}% \DeclareFieldFormat{title:unpublished}{\mkbibquote{#1}}% \DeclareFieldFormat{title:reviewedbook}{\bibstring{reviewof}\addspace\mkbibemph{#1}}% \DeclareFieldFormat{title:reference}{\mkbibemph{#1}}% \DeclareFieldFormat{isbn}{#1}% \DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}} \DeclareFieldFormat[review]{volume}{#1}% \DeclareFieldFormat[article]{volume}{#1}% \DeclareListFormat[article]{location}% {\unspace\mkbibbrackets{#1}\addspace}% \DeclareFieldFormat[article]{version}{#1\isdot}% \DeclareFieldFormat[incollection]{bibliography:origyear}{\openrangeformat{#1}\addperiod}% \DeclareFieldFormat[video]{mla:publimedium}{\MakeCapital{film}}% \DeclareFieldFormat[patent]{number}{#1}% \DeclareFieldFormat{mla:publimedium}{\MakeCapital{#1}}% \DeclareFieldFormat{mla:capital}{\MakeCapital{#1}}% \DeclareFieldFormat{url}{% \ifhyperref% {\href{http://#1}{\nolinkurl{#1}}}% {\url{#1}}}% \DeclareFieldFormat{mla:lowercase}{\MakeLowercase{#1}}% \DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1}}% \DeclareFieldFormat{issuetitle}{\mkbibemph{#1}} \DeclareFieldFormat{mla:newspaper:section}{\bibstring{section}\addspace#1}% \DeclareFieldFormat{library}{#1\isdot}% \DeclareFieldFormat{reviewededitor}{\bibstring{byeditor}\addspace#1}% \DeclareFieldFormat{reviewedauthor}{\bibstring{byauthor}\addspace#1}% \DeclareFieldFormat{title:suppbook}{\mkbibquote{#1}} \DeclareFieldFormat{openrangevolumes}{#1~\bibstring{volstodate}}% \DeclareFieldFormat{volumeof}{\bibstring{volume}~#1~\bibstring{ofseries}}% \DeclareFieldFormat{mla:sentence-case}{\MakeSentenceCase{#1}}% \DeclareFieldFormat{eprinttype}{\mkbibemph{#1}} \DeclareFieldFormat{eprint:arxiv}{% \iffieldundef{url}{% \mkbibemph{arXiv}\addcomma\space \printtext[url]{arxiv.org/abs/#1}}{% \mkbibemph{arXiv}}} \DeclareFieldFormat{eprint:jstor}{% \iffieldundef{url}{% \mkbibemph{JSTOR}\addcomma\space \printtext[url]{www.jstor.org/stable/#1}}{% \mkbibemph{JSTOR}}} \DeclareFieldFormat{eprint:hulu}{% \iffieldundef{url}{% \mkbibemph{Hulu}\addcomma\space \printtext[url]{www.hulu.com/watch/#1}}{% \mkbibemph{Hulu}}} \DeclareFieldFormat{eprint:googlebooks}{% \iffieldundef{url}{% \mkbibemph{Google Books}\addcomma\space \printtext[url]{books.google.com/books?id=#1}}{% \mkbibemph{Google Books}}} \DeclareFieldFormat{eprint:muse}{% \iffieldundef{url}{% \mkbibemph{Project Muse}\addcomma\space \printtext[url]{muse.jhu.edu/article/#1}}{% \mkbibemph{Project Muse}}} \DeclareFieldFormat{eprint}{\emph{#1}}% \DeclareFieldFormat{doi}{% doi\addcolon% \ifhyperref% {\href{https://doi.org/#1}{\nolinkurl{#1}}}% {\nolinkurl{#1}}} \DeclareFieldFormat{urldate}{#1}% \DeclareFieldFormat[article,periodical,review]{volume}{\bibstring{volume}\ppspace#1}% volume of a journal \DeclareFieldFormat[article,periodical,review]{number}{\bibstring{number}\ppspace#1}% number of a journal \DeclareBibliographyAlias{artwork}{article}% \DeclareBibliographyAlias{audio}{article}% \DeclareBibliographyAlias{booklet}{book}% \DeclareBibliographyAlias{bookinbook}{incollection}% \DeclareBibliographyAlias{collection}{book}% \DeclareBibliographyAlias{reference}{book}% \DeclareBibliographyAlias{image}{article}% \DeclareBibliographyAlias{inbook}{incollection}% \DeclareBibliographyAlias{letter}{article}% \DeclareBibliographyAlias{manual}{book}% 2.0 ADDED √ \DeclareBibliographyAlias{misc}{article}% 2.0 ADDED √ \DeclareBibliographyAlias{movie}{video}% 2.0 ADDED √ \DeclareBibliographyAlias{music}{audio}% \DeclareBibliographyAlias{online}{article} \DeclareBibliographyAlias{patent}{article}% 2.0 ADDED √ \DeclareBibliographyAlias{report}{book}% 2.0 ADDED √ \DeclareBibliographyAlias{suppcollection}{suppbook}% \DeclareFieldAlias[online]{maintitle}{journaltitle} \DeclareFieldAlias[book]{subtitle}{booksubtitle} \DeclareFieldAlias[book]{title}{booktitle} % \DeclareFieldAlias[patent]{holder}{addendum} \renewcommand*{\newunitpunct}{\addcomma\addspace} \renewcommand*{\multilistdelim}{/} \renewcommand*{\finallistdelim}{/} \renewcommand*{\newblockpunct}{\addperiod\addspace} \renewcommand*{\andothersdelim}{\ifcitation{}{\addcomma}\addspace} \renewcommand*{\subtitlepunct}{\ifterm{}{\addcolon}\addspace} \newboolean{bbx@mla-incollection} \newbool{bbx@inset} \DeclareBibliographyOption{dashed}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{pagetracker}% \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}} {\ExecuteBibliographyOptions{pagetracker=false}% \renewbibmacro*{bbx:savehash}{}}} \newboolean{bbx@annotation}% same as biblatex-dw \DeclareBibliographyOption{annotation}[true]{% \setbool{bbx@annotation}{#1}} \newboolean{bbx@totalnames} \newboolean{cbx@totalnames} \DeclareEntryOption{totalnames}[true]{% \setbool{bbx@totalnames}{#1}\setbool{cbx@totalnames}{#1}} % for translated incollections where the collection has no shared translator \newboolean{bbx@uniquetranslator}% \DeclareEntryOption{uniquetranslator}[true]{% \setbool{bbx@uniquetranslator}{#1}} \newtoggle{bbx:showlocation}% 2.0 add a global/entry toggle to show location \settoggle{bbx:showlocation}{false} \DeclareBibliographyOption{showlocation}[true]{\settoggle{bbx:showlocation}{#1}} \DeclareEntryOption{showlocation}[true]{\settoggle{bbx:showlocation}{#1}} \newtoggle{bbx:longdash}% 2.0 change bibnamedash default and add a toggle to revert \settoggle{bbx:longdash}{true} \DeclareBibliographyOption{longdash}[true]{\settoggle{bbx:longdash}{#1}} \newbool{bbx:gnoreminfo}% \setbool{bbx:gnoreminfo}{false} \DeclareBibliographyOption{noremoteinfo}[true]{\setbool{bbx:gnoreminfo}{#1}} \newbool{bbx:lnoreminfo}% \setbool{bbx:lnoreminfo}{false} \DeclareEntryOption{noremoteinfo}[true]{\setbool{bbx:lnoreminfo}{#1}} \newtoggle{bbx:isan} \DeclareBibliographyOption{isan}[true]{\settoggle{bbx:isan}{#1}}% \newtoggle{bbx:ismn} \DeclareBibliographyOption{ismn}[true]{\settoggle{bbx:ismn}{#1}}% \newtoggle{bbx:isrn} \DeclareBibliographyOption{isrn}[true]{\settoggle{bbx:isrn}{#1}}% \newtoggle{bbx:issn} \DeclareBibliographyOption[boolean]{issn}[true]{\settoggle{bbx:issn}{#1}}% \newboolean{mla@nodate}% \DeclareEntryOption{nodate}[true]{\setbool{mla@nodate}{#1}} \ExecuteBibliographyOptions{maxnames=2,datezeros=false,eprint=true}% \newrobustcmd{\openrangeformat}[1]{% \begingroup% \let\blx@org@rangedash=\bibrangedash% \def\bibrangedash{% \blx@org@rangedash% \futurelet\@let@token\blx@openrangeformat}% #1% \endgroup} \newcommand*{\blx@openrangeformat}{% \ifx\@let@token\endgroup% \openrangemark% \fi} \newcommand*{\openrangemark}{\mbox{ }}% \newbibmacro*{bbx:savehash}{% \savefield{fullhash}{\bbx@lasthash}} \iftoggle{bbx:longdash}% MLA Handbook 9 says either is viable if used consistently {\newcommand*{\mlanamedash}{\textemdash\textemdash\textemdash}} {\newcommand*{\mlanamedash}{-{}-{}-}} \renewcommand*{\bibnamedash}{% \iftoggle{bbx:longdash}% MLA Handbook 9 says either is viable if used consistently {\printtext[noformat]{\textemdash\textemdash\textemdash}}% {\printtext[noformat]{-{}-{}-}}% % \printtext[noformat]{\mlanamedash}% \iffieldundef{nameaddon}% {\setunit{\addperiod\addspace}}% {\setunit{\nopunct}}}% \renewbibmacro*{author}{% \ifthenelse{\ifuseauthor\AND\NOT\ifnameundef{author}} {\usebibmacro{bbx:dashcheck}% {\bibnamedash}% {\ifbool{bbx@totalnames}% {\printnames[sortname][-\value{listtotal}]{author}} {\printnames{author}}% \usebibmacro{bbx:savehash}}% \iffieldundef{nameaddon}% {}% {\setunit{\addspace}% \printfield{nameaddon}}% \iffieldundef{authortype}% {}% {\newunit% \usebibmacro{authorstrg}}}% {\global\undef\bbx@lasthash}} \renewbibmacro*{editor}{% \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}% {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND\NOT \iffirstonpage}% {\mbox{\mlanamedash\unspace\addcomma\addspace}}% {\ifbool{bbx@totalnames}% {\printnames[sortname][-\value{listtotal}]{editor}}% {\printnames{editor}}% \newunit% \savefield{namehash}{\bbx@lasthash}}% \usebibmacro{editorstrg}\clearname{editor}\setunit{\addperiod\space}}% {\global\undef\bbx@lasthash}} \renewbibmacro*{editor+others}{% \ifthenelse{\ifuseeditor\AND\NOT\ifnameundef{editor}}% {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND\NOT \iffirstonpage}% {\mbox{\mlanamedash\unspace\addcomma\addspace}}% {\ifbool{bbx@totalnames}% {\printnames[sortname][-\value{listtotal}]{editor}}% {\printnames[sortname]{editor}}% \newunit% \savefield{namehash}{\bbx@lasthash}}% \usebibmacro{editor+othersstrg}\clearname{editor}\clearfield{editortype}}% {\global\undef\bbx@lasthash}} \renewbibmacro*{translator}{% \ifthenelse{\ifusetranslator\AND\NOT\ifnameundef{translator}}% {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND\NOT \iffirstonpage}% {\mbox{\mlanamedash\unspace\addcomma\addspace}}% {\ifbool{bbx@totalnames}% {\printnames[sortname][-\value{listtotal}]{translator}}% {\printnames[sortname]{translator}}% \newunit% \savefield{namehash}{\bbx@lasthash}}% \usebibmacro{translatorstrg}\clearname{translator}}% {\global\undef\bbx@lasthash}} \renewbibmacro*{translator+others}{% \ifthenelse{\ifusetranslator\AND\NOT\ifnameundef{translator}}% {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND\NOT \iffirstonpage}% {\mbox{\mlanamedash\unspace\addcomma\addspace}}% {\ifbool{bbx@totalnames}% {\printnames[sortname][-\value{listtotal}]{translator}}% {\printnames[sortname]{translator}}% \newunit% \savefield{namehash}{\bbx@lasthash}}% \usebibmacro{translator+othersstrg}\clearname{translator}}% {\global\undef\bbx@lasthash}} \newbibmacro*{journal+issue+year+pages}{% \usebibmacro{journal+ser+vol+num}% \setunit{\addspace}% \printtext[parens]{% \iffieldundef{issue}% {\iffieldundef{month}% {\printfield{year}}% {\iffieldundef{day}% {\printfield{month}% \setunit{\addspace}% \printfield{year}}% {\printtext{\bibdate}}}}% {\printfield{issue}% \setunit{\addspace}% \printfield{year}}}% \newunit% \printfield{pages}} \renewbibmacro*{url+urldate}{% \printfield[mla:capital:web]{url}\clearfield{url}% \printunit{\addperiod\space}\newblock% \iffieldundef{urlyear}{}{\printtext{Accessed}\space\printurldate\clearfield{urlyear}}% } \newbibmacro*{mla:container:top}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% bibnamedash \setunit{\addperiod\space}\newblock% \ifthenelse{% \iffieldequalstr{entrytype}{suppbook}% \OR% \iffieldequalstr{entrytype}{suppcollection}}% {\usebibmacro{title}% \printunit{\addperiod\space}\newblock% \printfield[mla:capital]{entrysubtype}}% 2.0 adjusted to show both title and entrysubtype {\ifentrytype{book} {\usebibmacro{booktitle}} {\usebibmacro{maintitle+booktitle}}}% \printunit{\addperiod\space}\newblock% } \newbibmacro*{mla:container:one}{% \usebibmacro{mla:article:journal+issuetitle}% \newunit\newblock \printfield{note}% \newunit% \printfield{pages}% \newunit% \ifthenelse{\iffieldundef{eprinttype} \OR \(\iffieldundef{eprinttype} \AND \iffieldundef{eprint}\)} {}%\usebibmacro{url+urldate}}% mla9 - drop {}% \printunit{\addperiod\space}\newblock% } \newbibmacro*{mla:container:two}{% \usebibmacro{mla:isbn/issn+doi+eprint}% \newunit\newblock \usebibmacro{url+urldate}% \newunit\newblock \printfield{addendum}% \printunit{\addperiod\space}\newblock% \usebibmacro{pageref}% } \DeclareFieldFormat{titlea}{\mkbibemph{#1}} \DeclareFieldFormat{titleb}{\mkbibemph{#1}} \DeclareFieldFormat[mlasource]{mla:unstyled}{#1} \DeclareFieldFormat[mlasource]{mla:complete}{\mkbibemph{#1}} \DeclareFieldFormat[mlasource]{mla:part}{\mkbibquote{#1}} \newbibmacro*{mla:source}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \iffieldundef{titletype} {\iffieldundef{titlea} {\printfield[mla:complete]{title}} {\printfield[mla:part]{title}}} {\printfield[mla:\thefield{titletype}]{title}} \setunit{\addperiod\space}\newblock% \printfield[noformat]{supplemental} } \newbibmacro*{mla:containera}{% \printfield{titlea}% \newunit\newblock \printfield{contributora}% \newunit\newblock \printfield{versiona}% \newunit\newblock \printfield{numbera}% \newunit\newblock \printfield{publishera}% \newunit\newblock \printfield{datea}% \newunit\newblock \printfield{locationa}% \newunit\newblock \printfield{supplementala}% } \newbibmacro*{mla:containerb}{% \printfield{titleb}% \newunit\newblock \printfield{contributorb}% \newunit\newblock \printfield{versionb}% \newunit\newblock \printfield{numberb}% \newunit\newblock \printfield{publisherb}% \newunit\newblock \printfield{dateb}% \newunit\newblock \printfield{locationb}% \newunit\newblock \printfield{supplementalb}% } \DeclareBibliographyDriver{mlasource}{% \usebibmacro{mla:source}% \printunit{\addperiod\space}\newblock% \usebibmacro{mla:containera}% \printunit{\addperiod\space}\newblock% \usebibmacro{mla:containerb}% \usebibmacro{finentry}} \DeclareBibliographyDriver{book}{% \usebibmacro{mla:container:top}% \printunit{\addperiod\space}\newblock% \usebibmacro{bytranslator+others}% \newunit% \usebibmacro{byeditor+others}% \newunit% \printfield{edition}\isdot% \newunit% \iffieldundef{maintitle}{\printfield{volume}\clearfield{volume}\printfield{part}}{}% % \newunit% % \iffieldundef{volume}{\printfield{volumes}\clearfield{volumes}}{}%% 2.0 undefined to show later \newunit% \usebibmacro{series+number}% \newunit% \printfield{note}% \newunit% \iftoggle{bbx:showlocation}{\printlist{location}}{}% new toggle IN 2.0 \newunit% \iffieldundef{maintitle} {\newunit% \printlist{publisher}\clearlist{publisher}} {}% \newunit% \printdate% \newunit% \printfield{pages}% really? \newunit\newblock% \usebibmacro{mla:isbn/issn+doi+eprint}% \newunit% \iffieldundef{origtitle}% {}% {\usebibmacro{mla:reprint}}% \setunit{\addperiod\addspace}% \iffieldundef{volumes}% {}% {\usebibmacro{mla:multivolumes}}% \newunit% \printfield[mla:sentence-case]{addendum}% \newunit% \usebibmacro{pageref}% \newunit% \usebibmacro{finentry}} \DeclareBibliographyDriver{article}{% \usebibmacro{mla:container:top}% \printunit{\addperiod\space}\newblock% \usebibmacro{mla:container:one}% \printunit{\addperiod\space}\newblock% \usebibmacro{mla:container:two}% \usebibmacro{finentry}} \DeclareBibliographyDriver{periodical}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \usebibmacro{mla:article:journal+issuetitle}% \newunit\newblock% \printfield{note}% \newunit% \printfield{pages}% \newunit\newblock% \usebibmacro{mla:isbn/issn+doi+eprint}% \newunit\newblock% \usebibmacro{url+urldate}% \newunit\newblock% \printfield{addendum}% \newunit\newblock% \usebibmacro{pageref}% \newunit% \usebibmacro{finentry}} \newbibmacro*{mla:reprint}{% \iffieldundef{origtitle}% {\newunit}% {\iflistundef{origlanguage} {\setunit{\newunitpunct\bibstring{reprintof}\addspace}}% {\setunit{\newunitpunct\bibstring{transof}\addspace}}% }% \printfield[title:\strfield{entrytype}]{origtitle}% \newunit\newblock% \printlist{origlocation}\clearlist{origlocation}% \setunit*{\addcolon\addspace}% \printlist{origpublisher}\clearlist{origpublisher}% \newunit% \ifbool{bbx@mla-incollection}% {\printfield[bibliography:origyear]{origyear}\clearfield{origyear}}% {\ifthenelse{\iffieldundef{volume}\OR\iffieldundef{volumes}}% {\printorigdate\clearfield{origyear}}% {}% }% } \newbibmacro*{mla:multivolumes}{% 2.0 improvement for mla-compliant multivolumes \usebibmacro{maintitle}% \newunit% \usebibmacro{mla:generaleditor}% \newunit% \printfield{volume}% \newunit% \printlist{publisher}\clearlist{publisher}% \newunit% \printeventdate\clearfield{eventyear}% \setunit{\addperiod\addspace}% \iffieldequalstr{eventendyear}{}% {\printfield[openrangevolumes]{volumes}\clearfield{volumes}}% {\printfield{volumes}\clearfield{volumes}}% } \renewbibmacro*{byeditorx}{% \usebibmacro{byeditorx:internal}{a}% \usebibmacro{byeditorx:internal}{b}% \usebibmacro{byeditorx:internal}{c}% } \newbibmacro*{byeditorx:internal}[1]{% \ifnameundef{editor#1} {} {\iffieldequalstr{editor#1type}{generaleditor} {} {\usebibmacro{bytypestrg}{editor#1}{editor}% \setunit{\addspace}% \printnames[byeditor#1]{editor#1}% \newunit}}% } \newbibmacro*{mla:generaleditor}{% \usebibmacro{mla:generaleditor:internal}{}% \usebibmacro{mla:generaleditor:internal}{a}% \usebibmacro{mla:generaleditor:internal}{b}% \usebibmacro{mla:generaleditor:internal}{c}% } \newbibmacro*{mla:generaleditor:internal}[1]{% \iffieldequalstr{editor#1type}{generaleditor}% {\printnames{editor#1}% \setunit{\addcomma\addspace} \bibstring{generaleditor} \newunit}% {}% } \newbibmacro*{mla:isbn/issn+doi+eprint}{% \iftoggle{bbx:isan}{\printfield{isan}\clearfield{isan}}{}% \newunit\newblock% \iftoggle{bbx:isbn}{\printfield{isbn}\clearfield{isbn}}{}% \newunit\newblock% \iftoggle{bbx:ismn}{\printfield{ismn}\clearfield{ismn}}{}% \newunit\newblock% \iftoggle{bbx:isrn}{\printfield{isrn}\clearfield{isrn}}{}% \newunit\newblock% \iftoggle{bbx:issn}{\printfield{issn}\clearfield{issn}}{}% \newunit\newblock% \iftoggle{bbx:doi}{\printfield{doi}\clearfield{doi}}{}% \newunit\newblock% \iftoggle{bbx:eprint}{\setunit{\addperiod\space}\newblock\usebibmacro{eprint+extra}}{}% \newunit\newblock} \newbibmacro*{eprint+extra}{% \iffieldundef{eprinttype} {\printfield{eprint}} {\iffieldundef{eprint} {\printfield{eprinttype}} {\printfield[eprint:\strfield{eprinttype}]{eprint}}}} \DeclareBibliographyDriver{suppbook}{% \usebibmacro{mla:container:top}% \newunit\newblock \iffieldundef{crossref}% {\iffieldundef{xref}% {\usebibmacro{mla:incollection:internal}}% {\bbx@crossref{\thefield{xref}}% \setunit{\addspace}% \printfield{pages}}}% {\bbx@crossref{\thefield{crossref}}% \setunit{\addspace}% \printfield{pages}% \newunit}% \newunit% \usebibmacro{finentry}} \DeclareCiteCommand{\bbx@crossref}% {} {\ifsingletitle% {\printtext[bibhyperref]{\printnames{labelname}}% \setunit{\space}}% {\printnames{labelname}% \newunit% \printtext[bibhyperref]{\printfield[citetitle:book]{labeltitle}}% }}% {}% {} \DeclareBibliographyDriver{incollection}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \ifthenelse{% \iffieldequalstr{entrysubtype}{book}% \OR% \iffieldequalstr{entrysubtype}{play}% \OR% \iffieldequalstr{entrytype}{bookinbook}}% {\usebibmacro{title:incollection:italics}}% {\setbool{bbx@mla-incollection}{true}% \usebibmacro{title}% \setbool{bbx@mla-incollection}{false}}% \newunit\newblock% \ifbool{bbx@uniquetranslator}% {\usebibmacro{bytranslator+others}}% {}% \setunit{\addperiod\addspace}% \iffieldundef{crossref}% {\iffieldundef{xref}% {\usebibmacro{mla:incollection:internal}}% {\bbx@crossref{\thefield{xref}}% \setunit{\addspace}% \printfield{pages}}}% {\bbx@crossref{\thefield{crossref}}% \setunit{\addcomma\addspace}% \printfield{volume}% \setunit{\addcomma\addspace}% \printfield{pages}% \newunit}% \newunit% \usebibmacro{finentry}} \newbibmacro*{mla:incollection:internal}{% \setbool{bbx@mla-incollection}{true}% \usebibmacro{maintitle+booktitle}% \ifthenelse{% \iffieldequalstr{entrytype}{suppbook}% \OR% \iffieldequalstr{entrytype}{suppcollection}% \OR% \iffieldequalstr{entrysubtype}{interview}% \OR% \iffieldequalstr{entrysubtype}{untitled}}% {\setunit{\newunitpunct\bibstring{byauthor}\addspace}% \ifnamesequal{labelname}{bookauthor}% {\printnames[mla:last]{bookauthor}}% {\printnames[byauthor]{bookauthor}}}% {}% \newunit\newblock% \usebibmacro{byauthor}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \printfield{edition}\isdot% \newunit \iffieldundef{maintitle}% {\printfield{volume}\printfield{part}}% {}% \newunit \iffieldundef{volume}% {\printfield{volumes}\clearfield{volumes}}% {}%% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit% \usebibmacro{chapter+pages}% \newunit% \usebibmacro{mla:isbn/issn+doi+eprint}% \newunit% \usebibmacro{url+urldate}% \newunit% \iffieldundef{volumes}% {}% {\usebibmacro{mla:multivolumes}}% \newunit% \printfield{addendum}% \newunit% \usebibmacro{pageref}% \setbool{bbx@mla-incollection}{false}} \DeclareBibliographyDriver{inproceedings}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \usebibmacro{title}% \setunit{\addperiod\space}\newblock% \usebibmacro{mla:proceedings:booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \printfield{addendum}% \newunit\newblock \usebibmacro{pageref}% \newunit% \usebibmacro{finentry}} \DeclareBibliographyDriver{proceedings}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \usebibmacro{mla:proceedings:booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \printfield{addendum}% \newunit\newblock \usebibmacro{pageref}% \newunit% \usebibmacro{finentry}} \DeclareBibliographyDriver{unpublished}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \usebibmacro{title}% \setunit{\addperiod\space}\newblock% \printfield{note}% \newunit\newblock% \printfield{origyear} \newunit\newblock \printfield{library}% \newunit% \printlist{location}% \newunit\newblock \usebibmacro{mla:all:type}% \setunit{\addspace} \printfield{number}% \setunit{\addperiod\addspace} \printfield{addendum}% \newunit% \usebibmacro{finentry}} \DeclareBibliographyDriver{thesis}{% \usebibmacro{bibindex}% \usebibmacro{author/editor+others/translator+others}% \setunit{\addperiod\space}\newblock% \usebibmacro{title}% \setunit{\addperiod\space}\newblock% \iffieldequalstr{entrysubtype}{published}% {\printfield{origyear}\clearfield{origyear}}% {\printfield{year}}% \printunit{\addperiod\space}\newblock% \newunit\newblock \printlist{institution}% \newunit% \usebibmacro{mla:thesis:type}% \printunit{\addperiod\addspace}\newblock% \iffieldequalstr{entrysubtype}{published}% {\usebibmacro{series+number}% \newunit% \usebibmacro{publisher+location+date}}% {}% \newunit\newblock \printfield{addendum}% \newunit\newblock \newunit% \usebibmacro{finentry}} \DeclareBibliographyDriver{review}{% \usebibmacro{bibindex}% \usebibmacro{author}% \setunit{\addperiod\space}\newblock% \printfield[title:article]{title}% \setunit{\addperiod\space}\newblock% \printfield[title:reviewedbook]{booktitle}% \newunit% \ifnameundef{bookauthor}% {\printtext[reviewededitor]{\printnames[default]{editor}}}% {\printtext[reviewedauthor]{\printnames[default]{bookauthor}}}% \setunit{\addperiod\space}\newblock% \usebibmacro{mla:container:one}% \setunit{\addperiod\space}\newblock% \usebibmacro{mla:container:two}% \usebibmacro{finentry}} \DeclareBibliographyDriver{inreference}{% \usebibmacro{bibindex}% \usebibmacro{author}% \setunit{\addperiod\space}\newblock% \usebibmacro{title}% \setunit{\addperiod\space}\newblock% \iffieldundef{crossref}% {\iffieldundef{xref}% {\newunit\newblock \usebibmacro{maintitle+booktitle}% \newunit\newblock \usebibmacro{byeditor+others}% \newunit\newblock \iffieldsequal{year}{edition}% {\printfield{year}~\bibstring{edition}\clearfield{year}}% {\printfield{edition}\isdot}% \newunit \iffieldundef{maintitle}% {\printfield{volume}% \printfield{part}}% {}% \newunit \printfield{volumes}% \newunit\newblock \usebibmacro{series+number}% \newunit\newblock \printfield{note}% \newunit\newblock \usebibmacro{publisher+location+date}% \newunit\newblock \usebibmacro{chapter+pages}% \newunit\newblock \usebibmacro{mla:isbn/issn+doi+eprint}% \newunit\newblock \usebibmacro{url+urldate}% \newunit\newblock \printfield{addendum}% \newunit\newblock \usebibmacro{pageref}}% {}}% {\bbx@crossref{\thefield{crossref}}% \nopunct\unspace\printfield{pages}}% \newunit% \usebibmacro{finentry}} \newbibmacro{mlabelnamepunct}{\setunit{\labelnamepunct}\newblock} \newbibmacro{mla:video:localized:last-first}[1]{% \ifnameundef{#1}% {}% {\printnames{#1}\addcomma\addspace% \ifthenelse{\iffieldbibstring{#1type} \and \not % \iffieldundef{#1type}}% {\bibstring{\thefield{#1type}}}% {\iffieldundef{#1type}% {\bibstring{with}}% {\printfield[mla:lowercase]{#1type}}}}% \newunit}% \newbibmacro{mla:video:name:first:footnote}[1]{% \ifnameundef{#1}% {}% {\printnames[byeditor]{#1}\addcomma\addspace% \ifthenelse{\iffieldbibstring{#1type} \and \not % \iffieldundef{#1type}}% {\bibstring{\thefield{#1type}}}% {\iffieldundef{#1type}% {\bibstring{with}}% {\printfield[mla:lowercase]{#1type}}}}% \clearname{#1}% } \newbibmacro{mla:video:localized:first-last}[1]{% \ifnameundef{#1}% {}% {\ifthenelse{\iffieldbibstring{#1type} \and \not % \iffieldundef{#1type} \and \not % \iffieldequalstr{#1type}{composer}}% {\bibstring{\thefield{#1type}}}% {\iffieldundef{#1type}% {\bibstring{with}}% {\iffieldequalstr{#1type}{composer}% {\bibstring{composedby}}% {\printfield[mla:capital]{#1type}}}}% \addspace\printnames[byeditor][-\value{listtotal}]{#1}}% \newunit}% \newbibmacro{mla:video:name:second:footnote}[1]{% \ifnameundef{#1}% {}% {\ifthenelse{\iffieldbibstring{#1type} \and \not % \iffieldundef{#1type} \and \not % \iffieldequalstr{#1type}{composer}}% {\bibstring{\thefield{#1type}}}% {\iffieldundef{#1type}% {\bibstring{with}}% {\iffieldequalstr{#1type}{composer}% {\bibstring{composedby}}% {\printfield[mla:lowercase]{#1type}}}}% \addspace\printnames[byeditor][-\value{listtotal}]{#1}% }}% \DeclareBibliographyDriver{video}{% \ifnamesequal{labelname}{author}% {\usebibmacro{mla:video:localized:last-first}{author}}{}% \ifnamesequal{labelname}{editor}% {\usebibmacro{mla:video:localized:last-first}{editor}}{}% \printfield{title}% \setunit{\newunitpunct\bibstring{byauthor}\addspace}% \printnames[byeditor]{bookauthor}% \newunit% \ifthenelse{\NOT\ifnamesequal{author}{labelname}% \AND\NOT\ifnameundef{author}}% {\usebibmacro{mla:video:localized:first-last}{author}}% {}% \ifthenelse{\NOT\ifnamesequal{editor}{labelname}% \AND\NOT\ifnameundef{editor}}% {\usebibmacro{mla:video:localized:first-last}{editor}}% {}% \usebibmacro{mla:video:localized:first-last}{namea}% \usebibmacro{mla:video:localized:first-last}{nameb}% \usebibmacro{mla:video:localized:first-last}{namec}% \printfield{origyear}\clearfield{origyear}% \newunit\newblock% \printlist{publisher}% \newunit% \printfield{year}% \newunit\newblock% \usebibmacro{finentry}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % % % % % % % % % % % % % % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % drivers to add eventually: % * \DeclareBibliographyDriver{performance} % % Specifically important mainstay types to check for MLA users % 0 support for multiple publishers? % can't do with bibtex % * editorial % * letter (to the editor, etc.) % * interview \newbibmacro*{mtitle+mstitle+vol+part+title+stitle}{% \iffieldundef{maintitle}% {}% {\printtext[maintitle]{% \printfield[noformat]{maintitle}% \newunit \printfield[noformat]{mainsubtitle}}% \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation \printfield{maintitleaddon}% \newunit\newblock \iffieldundef{volume}% {}% {\printfield{volume}% \printfield{part}% \setunit{\addcolon\space}}}% \usebibmacro{title+stitle}} \renewbibmacro*{series+number}{% \iffieldundef{series}% {}% {\printfield{series}\clearfield{series}\setunit*{\addspace}\printfield{number}}% } \renewbibmacro*{title}{% \iffieldequalstr{entrytype}{thesis}% {\usebibmacro{mla:title:thesis}}% {\ifthenelse{\iffieldequalstr{entrytype}{unpublished}\OR\iffieldequalstr{entrytype}{misc}} % {\usebibmacro{mla:title:unpublished}}% {\usebibmacro{title+stitle}}}}% \renewbibmacro*{publisher+location+date}{% \iftoggle{bbx:showlocation}{\printlist{location}}{}% new toggle in 2.0 \newunit% \printlist{publisher}% \newunit% \ifbool{mla@nodate}{\printtext{n.d.}}% \printdate% \newunit} \newbibmacro*{mla:title:unpublished}{% \iffieldundef{title}% {}% {\iffieldundef{entrysubtype}% {\printtext[title:\strfield{entrytype}]{% \printfield[noformat]{title}% \setunit*{\subtitlepunct}% \printfield[noformat]{subtitle}}}% {\printtext[title:\strfield{entrysubtype}]{% \printfield[noformat]{title}% \setunit*{\subtitlepunct}% \printfield[noformat]{subtitle}}}% }% \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation \printfield[noformat]{titleaddon}% \printunit{\addperiod\space}% \usebibmacro{byauthor}% \iffieldundef{origtitle}% {\usebibmacro{mla:reprint}}% {}% }% \newbibmacro*{name:first-last:andothers}{% \ifthenelse{\value{listcount}=\value{liststop}\AND \ifmorenames} {\ifnum\value{liststop}>1 \finalandcomma\fi \addspace\bibstring{andothers}} {}} \newbibmacro*{mla:title:thesis}{% \iffieldundef{title}% {}% {\ifthenelse{\iffieldequalstr{type}{phd}\OR% \iffieldequalstr{type}{dphil}}% {\printtext[title:book]{% \printfield[noformat]{title}% \setunit{\subtitlepunct}% \printfield[noformat]{subtitle}}}% {\printtext[title:\strfield{entrytype}]{% \printfield[noformat]{title}% \setunit{\subtitlepunct}% \printfield[noformat]{subtitle}}}% \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation \printfield{titleaddon}% \newunit\newblock}} \newbibmacro*{mla:thesis:type}{% \iffieldundef{type}% {\printtext[mla:capital]{\bibstring{phdthesis}}}% {\usebibmacro{mla:all:type}}}% \newbibmacro*{mla:all:type}{% \iffieldbibstring{type}% {\printtext[mla:capital]{\bibstring{\thefield{type}}}}% {\printfield[mla:capital]{type}}}% \newbibmacro*{mla:all:type:foot}{% \ifbibstring{\thefield{type}}% {\printtext[noformat]{\bibstring{\thefield{type}}}}% {\printtext[noformat]{\printfield{type}}}}% \renewbibmacro*{maintitle+title}{% \usebibmacro{title}% \newunit% \iffieldsequal{maintitle}{title}% {\clearfield{maintitle}% \clearfield{mainsubtitle}% \clearfield{maintitleaddon}}% {}% \iffieldundef{volume}% {\usebibmacro{maintitle}}% {}% \iffieldundef{maintitle}% {\printfield{volume}\clearfield{volume}}% {}% \newunit} \renewbibmacro*{maintitle+booktitle}{% \usebibmacro{booktitle}% \printunit*{\addperiod\space}% \iffieldundef{maintitle}% {}% {\usebibmacro{maintitle}% \newunit% \iffieldundef{volume}% {}% {\printfield{volume}% \printfield{part}% \setunit{\addcolon\space}}}% \printunit*{\addperiod\space}} \renewbibmacro*{booktitle}{% \ifboolexpr{ test {\iffieldundef{booktitle}} and test {\iffieldundef{booksubtitle}} } {\usebibmacro{title}} {\printtext[booktitle]{% \printfield[titlecase]{booktitle}% \setunit{\subtitlepunct}% \printfield[titlecase]{booksubtitle}}}% \setunit{\addspace}% \printfield{booktitleaddon}% \newunit% 2.0 include titleaddon inside unit punctuation } \newbibmacro*{mla:proceedings:booktitle}{% \usebibmacro{booktitle}% \newunit% \iffieldundef{eventtitle}% {}% {\printtext[default]{% \bibstring{proceedings}\addspace\bibstring{ofseries}\addspace% \printfield[default]{eventtitle}\isdot}}% \setunit*{\isdot\addcomma\addspace}% \printlist{organization}% \newunit% \printeventdate% \newunit% \printlist{institution}% \newunit% \printfield{venue}} \newbibmacro*{title+stitle}{% \iffieldundef{title}% {\ifthenelse{% \iffieldequalstr{entrytype}{suppbook}% \OR% \iffieldequalstr{entrytype}{suppcollection}}% {}% {\ifthenelse{% 2.0 changed logic to allow for untitled pieces (e.g. for interviews)% CHECK \iffieldundef{booktitle}}% {}% {\printtext[title:\strfield{entrytype}]{% \printfield[noformat]{booktitle}% \setunit*{\subtitlepunct}% \printfield[noformat]{booksubtitle}}}}}% {\iffieldequalstr{entrysubtype}{untitled}% 2.0 added check to allow for works with unformatted titles {\printfield[noformat]{title}% \setunit*{\subtitlepunct}% \printfield[noformat]{subtitle}}% {\printtext[title:\strfield{entrytype}]{% \printfield[noformat]{title}% \setunit*{\subtitlepunct}% \printfield[noformat]{subtitle}}}}% \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation \printfield[noformat]{titleaddon}% \printunit{\addperiod\space}% 2.0 include titleaddon inside unit punctuation \usebibmacro{byauthor}% \iffieldundef{origtitle}% {\usebibmacro{mla:reprint}}% {}% }% \newbibmacro*{title:incollection:italics}{% \iffieldundef{title}% {}% {\printtext[title:book]{% \printfield[noformat]{title}% \setunit*{\subtitlepunct}% \printfield[noformat]{subtitle}}% \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation \printfield[noformat]{titleaddon}% % \newunit\newblock% platyp \printunit{\addperiod\addspace}% platyp troubleshooting incollection with titleaddon \setbool{bbx@mla-incollection}{true}\usebibmacro{mla:reprint}\setbool{bbx@mla-incollection}{false}% \newunit\newblock}} \newbibmacro*{mla:article:journal+issuetitle}{% \usebibmacro{issue}% \newunit\newblock% \iffieldundef{issuetitle}% {}% {\usebibmacro{byeditor+others}% \newunit\newblock% \bibstring{specissue}\setunit*{\addspace}}% \ifthenelse{\iffieldequalstr{entrytype}{periodical} \AND \iffieldundef{journaltitle}}% {\usebibmacro{periodical}}% {\usebibmacro{journal}}% \ifthenelse{\iffieldequalstr{entrytype}{online}}{\usebibmacro{mla:online}}{\setunit*{\addspace}}% \ifthenelse{\iffieldequalstr{entrysubtype}{newspaper} \or \iffieldequalstr{entrysubtype}{magazine} \or \iffieldequalstr{entrytype}{online}}% {\printlist[brackets]{location}% \newunit% \printtext{\printdate}% \newunit% \printfield{version}% \newunit% \printfield[mla:newspaper:section]{chapter}% }% {\printfield{series}\clearfield{series}% \newunit% \printfield{volume}% \newunit% \ifthenelse{\iffieldequalstr{entrytype}{patent}}% {\printfield{type}% \setunit*{\addspace}% \printfield{number}\clearfield{number}% \newunit}% {\printfield{number}\clearfield{number} \newunit}% \printnames{holder}% mla9- NEW IN 2.0 - preliminary support for patents \newunit% \ifthenelse{\iffieldequalstr{entrytype}{patent}}% {\iffieldbibstring{type}% {\biblstring{\strfield{type}}% \newunit}% {}% }% {}% \usebibmacro{issue+date}% \newunit\newblock \newunit}% } \newbibmacro*{mla:online}{% \iffieldundef{maintitle}% {}% {\printtext[maintitle]{% \printfield[titlecase]{maintitle}% \setunit{\subtitlepunct}% \printfield[titlecase]{mainsubtitle}}}% \newunit\newblock% \printlist{publisher}% \newunit% } \renewbibmacro*{journal+issuetitle}{% \usebibmacro{journal}% \setunit*{\addspace}% \ifthenelse{\iffieldequalstr{entrysubtype}{newspaper} \or \iffieldequalstr{entrysubtype}{magazine}}% {\printlist[brackets]{location}% \printtext{\printdate}% \newunit% \printfield{version}% \newunit% \printfield[mla:newspaper:section]{chapter}% }% {\printfield{series}\clearfield{series}% \setunit{\addspace}% \printfield{volume}% \newunit% \printfield{number}\clearfield{number}% \newunit% \usebibmacro{mla:isbn/issn+doi+eprint}% \newunit% \usebibmacro{issue+date}% \newunit\newblock \usebibmacro{issue}% \newunit}} \renewbibmacro*{issue+date}{% \printtext{% \iffieldundef{issue} {\usebibmacro{date}} {\printfield{issue}% \setunit*{\addspace}% \usebibmacro{date}}}% \newunit} \renewbibmacro{finentry}{% \finentry% \iffieldundef{annotation}% {}% {\ifbool{bbx@annotation}% {\begin{quotation}\noindent% \printfield{annotation}% \end{quotation}}% {}}% } \newbibmacro*{bbx:dashcheck}[2]{% \ifboolexpr{ test {\iffieldequals{fullhash}{\bbx@lasthash}} and not test \iffirstonpage and ( not bool {bbx@inset} or test {\iffieldequalstr{entrysetcount}{1}} ) } {#1} {#2}} % mla-basic.bbx has no sourcemap rules; use mla.bbx for some standard mla-style replacements \endinput