summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx1207
1 files changed, 1000 insertions, 207 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx
index ce97a2b3a0..71c8e6fcdb 100644
--- a/macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-mla/mla-strict.bbx
@@ -1,19 +1,133 @@
-% mla-strict.bbx, v2.0 2021/06/07 * compatible with biblatex 3.16
+% mla-strict.bbx, v2.1 2022/02/21 * compatible with biblatex 3.16
% Maintained at <https://github.com/jmclawson/biblatex-mla>.
%
% Feel free to improve, redistribute, and adapt to your own ends. Please share improvements back to the project on GitHub or to James Clawson: <clawson@gmail.com>.
%
% 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]
+\ProvidesFile{mla-strict.bbx}[2022/02/21 v2.1 biblatex bibliography style]
\RequireBibliographyStyle{standard}
\DeclareLanguageMappingSuffix{-mla}
-\NewBibliographyString{byserieseditor}
-\NewBibliographyString{reviewof}
+
+
+% add leading zero to page range
+\newrobustcmd*{\mkcomprangezero}{%
+ \begingroup
+ \@ifstar
+ {\blx@range@aux\blx@comprange@ii}
+ {\blx@range@aux\blx@comprange@i}}
+\def\blx@comprange@i[#1][#2]#3{%
+ \let\blx@tempa\@empty
+ \protected\def\blx@range@out@value{\appto\blx@tempa}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\blx@range@out@value
+ \let\blx@range@split\blx@genrange@split
+ \let\blx@range@process\blx@comprange@check
+ \blx@range@chunk{#3}%
+ \begingroup
+ \edef\blx@tempa{\endgroup
+ \unexpanded{#1}{\expandonce\blx@tempa}}%
+ \blx@tempa
+ \endgroup}
+\def\blx@comprange@ii[#1][#2]#3{%
+ \protected\def\blx@range@out@value{#1}%
+ \def\blx@range@out@item@process{#2}%
+ \let\blx@range@out@delim\@firstofone
+ \let\blx@range@split\blx@genrange@split
+ \let\blx@range@process\blx@comprange@check
+ \blx@range@chunk{#3}%
+ \endgroup}
+\def\blx@comprange@check#1#2{%
+ \blx@imc@ifinteger{#1}
+ {\blx@imc@ifinteger{#2}
+ {\@firstoftwo}
+ {\@secondoftwo}}
+ {\@secondoftwo}
+ {\blx@comprange@comp{#1}{#2}}
+ {\begingroup
+ \protected@edef\blx@tempc{\endgroup
+ \blx@range@out@value{%
+ \blx@range@out@item@process{\unexpanded{#1}}%
+ \noexpand\bibrangedash
+ \blx@range@out@item@process{\unexpanded{#2}}}}%
+ \blx@tempc}}
+\def\blx@comprange@comp#1#2{%
+ \def\blx@tempb{#1}%
+ \def\blx@tempc{#2}%
+ \let\blx@tempd\blx@tempc
+ \ifnum\c@maxcomprange<\abx@rangeproclimit\relax
+ \numdef\blx@tempe\abx@rangeproclimit
+ \else
+ \numdef\blx@tempe\c@maxcomprange
+ \fi
+ \blx@tempcntc=\blx@tempe\relax
+ \ifnum
+ \ifnum\c@mincompwidth<1\space1\fi
+ \ifnum\c@maxcomprange<10\space1\fi
+ \ifnum\c@mincomprange<\blx@tempb\space\else1\fi
+ \ifnum\blx@tempb<\numexpr\blx@tempcntc*10\relax\else1\fi
+ 0=\z@
+ \expandafter\blx@comprange@comp@div
+ \else
+ \expandafter\blx@comprange@end
+ \fi}
+\def\blx@comprange@end{%
+ \numdef\blx@tempb\blx@tempb
+ \ifnum\blx@tempe>\c@maxcomprange\relax
+ \numdef\blx@tempc\blx@tempc
+ \else
+ \numdef\blx@tempc\blx@tempd
+ \fi
+ \begingroup
+ \protected@edef\blx@tempb{\endgroup
+ \blx@range@out@value{%
+ \blx@range@out@item@process{\blx@tempb}%
+ \noexpand\bibrangedash
+ % mkcomprangezero changes start here
+ \ifnum\blx@tempc<10
+ \ifnum\blx@tempb<10
+ \blx@range@out@item@process{\blx@tempc}
+ \else
+ \blx@range@out@item@process{0\blx@tempc}% force leading zero
+ \fi
+ \else
+ \blx@range@out@item@process{\blx@tempc}
+ \fi}}% mkcomprangezero changes end here
+ \blx@tempb}
+\def\blx@comprange@comp@div{%
+ \unless\ifnum\blx@tempb<\blx@tempcntc
+ \blx@tempcnta\blx@tempb\relax
+ \blx@tempcntb\blx@tempc\relax
+ \divide\blx@tempcnta\blx@tempcntc
+ \divide\blx@tempcntb\blx@tempcntc
+ \ifnum\blx@tempcnta=\blx@tempcntb
+ \edef\blx@tempd{\expandafter\@gobble\blx@tempd}%
+ \numdef\blx@tempe\blx@tempcntc
+ \fi
+ \fi
+ \divide\blx@tempcntc10\relax
+ \ifnum
+ \ifnum\blx@tempcntc<10 1\fi
+ \ifnum\blx@tempcntc>\c@mincompwidth\else 1\fi
+ 0=\z@
+ \expandafter\blx@comprange@comp@div
+ \else
+ \expandafter\blx@comprange@end
+ \fi}
+%%%%% \end add leading zero to page range
+
+% \NewBibliographyString{byserieseditor}
+\NewBibliographyString{bydirector}
+\NewBibliographyString{bycreator}% 2.1
+\NewBibliographyString{creator}% 2.1
+\NewBibliographyString{byscreenplay}% 2.1
+\NewBibliographyString{tvseason}% 2.1
+\NewBibliographyString{tvepisode}% 2.1
+% \NewBibliographyString{reviewof} 2.1 ---- remove in favor of provided string reviewof
\NewBibliographyString{specissue}
-\NewBibliographyString{phd}
+\NewBibliographyString{phd}% ---------- FIXME: should these use some standard?
\NewBibliographyString{dphil}
\NewBibliographyString{lic}
\NewBibliographyString{ma}
@@ -29,6 +143,10 @@
\NewBibliographyString{adaptor}
\NewBibliographyString{performer}
\NewBibliographyString{performers}
+\NewBibliographyString{byperformer}
+\NewBibliographyString{bynarrator}% 2.1
+\NewBibliographyString{narrator}% 2.1
+\NewBibliographyString{numbers}% 2.1
\NewBibliographyString{composer}
\NewBibliographyString{composedby}
\NewBibliographyString{producer}
@@ -36,39 +154,79 @@
\NewBibliographyString{proceedings}
\NewBibliographyString{compilerandeditor}%
\NewBibliographyString{bycompilerandeditor}%
-\NewBibliographyString{transof}%
+% \NewBibliographyString{transof}% -------- 2.1 replace with provided string translationof
\NewBibliographyString{volstodate}%
\NewBibliographyString{supptotitle}%
\NewBibliographyString{print}%
\NewBibliographyString{web}%
\NewBibliographyString{generaleditor}%
+\NewBibliographyString{conductor}% 2.1
+\NewBibliographyString{byconductor}% 2.1
+\NewBibliographyString{bycomposer}% 2.1
+\NewBibliographyString{recorded}% 2.1
+\NewBibliographyString{byhost}% 2.1
+\NewBibliographyString{host}% 2.1
+\NewBibliographyString{interviewer}% 2.1
+\NewBibliographyString{byinterviewer}% 2.1
\setlength{\bibitemsep}{0pt}
\renewcommand*{\mkbibnamesuffix}[1]{\addcomma\addlowpenspace#1}
+\renewcommand*{\bibdatetimesep}{\addcomma\addspace}
+\DeclareDelimFormat{andothersdelim}{\addspace}
+\DeclareDelimFormat[notreversed]{andothersdelim}{\addspace}
+\DeclareDelimFormat[bib]{andothersdelim}{\addcomma\addspace}
\DeclareNameAlias{author}{sortname}
-\@ifpackagelater{biblatex}{2016/03/01}{%
- \DeclareNameFormat{mla:last}{\nameparts{#1}\namepartfamily}%
- \DeclareNameFormat{default}{%
- \nameparts{#1}%
+\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}%
}%
-}
+
+% Redefined in 2.1 to move the name suffix (junior) after the given name in the bibliography
+\renewbibmacro*{name:family-given}[4]{%
+ \ifuseprefix
+ {\usebibmacro{name:delim}{#3#1}%
+ \usebibmacro{name:hook}{#3#1}%
+ \mkbibcompletenamefamilygiven{%
+ \ifdefvoid{#3}
+ {}
+ {\ifcapital
+ {\mkbibnameprefix{\MakeCapital{#3}}\isdot}
+ {\mkbibnameprefix{#3}\isdot}%
+ \ifprefchar{}{\bibnamedelimc}}%
+ \mkbibnamefamily{#1}\isdot
+ \ifdefvoid{#2}
+ {}
+ {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
+ \ifdefvoid{#4}
+ {}
+ {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}
+ {\usebibmacro{name:delim}{#1}%
+ \usebibmacro{name:hook}{#1}%
+ \mkbibcompletenamefamilygiven{%
+ \mkbibnamefamily{#1}\isdot
+ \ifboolexpe{%
+ test {\ifdefvoid{#2}}
+ and
+ test {\ifdefvoid{#3}}}
+ {}
+ {\revsdnamepunct}%
+ \ifdefvoid{#2}
+ {}
+ {\bibnamedelimd\mkbibnamegiven{#2}\isdot}%
+ \ifdefvoid{#3}
+ {}
+ {\bibnamedelimd\mkbibnameprefix{#3}\isdot}%
+ \ifdefvoid{#4}
+ {}
+ {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}}
+
\defbibenvironment{bibliography}
{\list
@@ -80,7 +238,19 @@
{\endlist}
{\item}
+
+% compressing page ranges
+\setcounter{mincomprange}{100}
+% \setcounter{maxcomprange}{1000}
+\setcounter{mincompwidth}{10}
+
\DeclareFieldFormat{title:article}{\mkbibquote{#1}}%
+\DeclareFieldFormat{title:manuscript}{\mkbibquote{#1}}% 2.1
+\DeclareFieldFormat{title:artwork}{\mkbibemph{#1}}%
+\DeclareFieldFormat{title:music}{\mkbibquote{#1}}%
+\DeclareFieldFormat{title:audio}{\mkbibquote{#1}}%
+\DeclareFieldFormat{booktitle:music}{\mkbibemph{#1}}%
+\DeclareFieldFormat{booktitle:audio}{\mkbibemph{#1}}%
\DeclareFieldFormat{title:online}{\mkbibquote{#1}}%
\DeclareFieldFormat{title:inreference}{\mkbibquote{#1}}%
\DeclareFieldFormat{title:book}{\mkbibemph{#1}}
@@ -91,19 +261,37 @@
\DeclareFieldFormat{title:inproceedings}{\mkbibquote{#1}}%
\DeclareFieldFormat{title:mvbook}{\mkbibemph{#1}}% mla-2.0
\DeclareFieldFormat{title:patent}{\mkbibquote{#1}}
+\DeclareFieldFormat{title:proceedings}{\mkbibemph{#1}}% 2.1
+\DeclareFieldFormat{title:report}{\mkbibemph{#1}}% 2.1
+\DeclareFieldFormat{title:review}{\mkbibquote{#1}}% 2.1
+\DeclareFieldFormat{title:video}{\mkbibquote{#1}}% 2.1
+\DeclareFieldFormat{title:software}{\mkbibemph{#1}}% 2.1 added support for software
+\DeclareFieldFormat{title:performance}{\mkbibemph{#1}}% 2.1 added support for performance
+\DeclareFieldFormat{title:dataset}{\mkbibquote{#1}}% 2.1 added support for dataset
+\DeclareFieldFormat{title:misc}{#1}% 2.1 TRIED to support proper styling for citations of misc titles
+\DeclareFieldFormat{title:image}{#1}% 2.1 TRIED to support proper styling for citations of images
\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{pages}{\mkpageprefix[bookpagination]{#1}}
+\DeclareFieldFormat{pages}{\mkcomprangezero[{\mkpageprefix[pagination]}]{#1}}% 2.1
\DeclareFieldFormat[review]{volume}{#1}%
\DeclareFieldFormat[article]{volume}{#1}%
\DeclareListFormat[article]{location}%
- {\unspace\mkbibbrackets{#1}\addspace}%
+ {\mkbibbrackets{#1}}% 2.1 removed spacing controls
\DeclareFieldFormat[article]{version}{#1\isdot}%
+\DeclareFieldFormat[review]{version}{#1\isdot}% 2.1
\DeclareFieldFormat[incollection]{bibliography:origyear}{\openrangeformat{#1}\addperiod}%
\DeclareFieldFormat[video]{mla:publimedium}{\MakeCapital{film}}%
+\DeclareFieldFormat[movie]{titleaddon}{\mkbibbrackets{\mkbibemph{#1}}}%
+\DeclareFieldFormat[movie]{version}{#1}%
+\DeclareFieldFormat[video]{title}{\mkbibquote{#1}}% 2.1
+\DeclareFieldFormat[video]{season}{\bibstring{tvseason}\addspace#1}% 2.1
+\DeclareFieldFormat[video]{number}{\bibstring{tvepisode}\addspace#1}% 2.1
+\DeclareFieldFormat{date:brackets}{\mkbibbrackets{#1}}% 2.1
+
\DeclareFieldFormat[patent]{number}{#1}%
@@ -116,7 +304,8 @@
\DeclareFieldFormat{mla:lowercase}{\MakeLowercase{#1}}%
\DeclareFieldFormat{nameaddon}{\mkbibbrackets{#1}}%
\DeclareFieldFormat{issuetitle}{\mkbibemph{#1}}
-\DeclareFieldFormat{mla:newspaper:section}{\bibstring{section}\addspace#1}%
+\DeclareFieldFormat{mla:news:section:name}{#1\addspace\bibstring{section}}% 2.1
+\DeclareFieldFormat{mla:news:section:number}{\bibstring{section}\addspace#1}%
\DeclareFieldFormat{library}{#1\isdot}%
\DeclareFieldFormat{reviewededitor}{\bibstring{byeditor}\addspace#1}%
\DeclareFieldFormat{reviewedauthor}{\bibstring{byauthor}\addspace#1}%
@@ -147,43 +336,50 @@
\mkbibemph{Project Muse}}}
\DeclareFieldFormat{eprint}{\emph{#1}}%
\DeclareFieldFormat{doi}{%
- doi\addcolon%
+ https://doi.org/% 2.1
\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
+% \DeclareFieldFormat[article,periodical,review]{number}{\bibstring{number}\ppspace#1}% number of a journal
+\DeclareFieldFormat[article,periodical,review,dataset]{number}{% 2.1
+ \ifnumerals{#1}%
+ {\ifnumeral{#1}%
+ {\bibstring{number}}%
+ {\bibstring{numbers}}}%
+ {}%
+ ~\mkcomprangezero{#1}}%
-\DeclareBibliographyAlias{artwork}{article}%
-\DeclareBibliographyAlias{audio}{article}%
\DeclareBibliographyAlias{booklet}{book}%
\DeclareBibliographyAlias{bookinbook}{incollection}%
\DeclareBibliographyAlias{collection}{book}%
\DeclareBibliographyAlias{reference}{book}%
-\DeclareBibliographyAlias{image}{article}%
+% \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{video}{incollection}% 2.1 ADDED ... and then commented out this line
+\DeclareBibliographyAlias{audio}{music}%
\DeclareBibliographyAlias{online}{article}
\DeclareBibliographyAlias{patent}{article}% 2.0 ADDED √
\DeclareBibliographyAlias{report}{book}% 2.0 ADDED √
\DeclareBibliographyAlias{suppcollection}{suppbook}%
+\DeclareBibliographyAlias{dataset}{article}% 2.1 ADDED
\DeclareFieldAlias[online]{maintitle}{journaltitle}
\DeclareFieldAlias[book]{subtitle}{booksubtitle}
\DeclareFieldAlias[book]{title}{booktitle}
+\DeclareListAlias[report]{institution}{publisher}
% \DeclareFieldAlias[patent]{holder}{addendum}
\renewcommand*{\newunitpunct}{\addcomma\addspace}
-\renewcommand*{\multilistdelim}{/}
-\renewcommand*{\finallistdelim}{/}
+\renewcommand*{\multilistdelim}{\addspace/\addspace}
+\renewcommand*{\finallistdelim}{\addspace/\addspace}
+\renewcommand*{\revsdnamedelim}{\addcomma}
\renewcommand*{\newblockpunct}{\addperiod\addspace}
-\renewcommand*{\andothersdelim}{\ifcitation{}{\addcomma}\addspace}
\renewcommand*{\subtitlepunct}{\ifterm{}{\addcolon}\addspace}
\newboolean{bbx@mla-incollection}
@@ -209,6 +405,17 @@
\newboolean{bbx@uniquetranslator}%
\DeclareEntryOption{uniquetranslator}[true]{%
\setbool{bbx@uniquetranslator}{#1}}
+
+% especially for a tv episode with a unique named individual
+\newboolean{bbx@uniquenamea}%
+\newboolean{bbx@uniquenameb}%
+\newboolean{bbx@uniquenamec}%
+\DeclareEntryOption{uniquenamea}[true]{%
+ \setbool{bbx@uniquenamea}{#1}}
+\DeclareEntryOption{uniquenameb}[true]{%
+ \setbool{bbx@uniquenameb}{#1}}
+\DeclareEntryOption{uniquenamec}[true]{%
+ \setbool{bbx@uniquenamec}{#1}}
\newtoggle{bbx:showlocation}% 2.0 add a global/entry toggle to show location
\settoggle{bbx:showlocation}{false}
@@ -219,6 +426,53 @@
\settoggle{bbx:longdash}{true}
\DeclareBibliographyOption{longdash}[true]{\settoggle{bbx:longdash}{#1}}
+\newtoggle{bbx:datebrackets}% 2.1 new toggle to print date in brackets
+\settoggle{bbx:datebrackets}{false}
+\DeclareEntryOption{datebrackets}[true]{\settoggle{bbx:datebrackets}{#1}}
+
+\newtoggle{mla:image}% 2.1 new internal toggle for images
+\settoggle{mla:image}{false}
+
+\newtoggle{mla:delayed}% 2.1 new internal toggle for logic testing
+\settoggle{mla:delayed}{false}
+\newtoggle{del:p}% 2.1 delay plus, to add to containing
+\settoggle{del:p}{false}
+\newtoggle{del:m}% 2.1 delay minus, to subtract from containing
+\settoggle{del:m}{false}
+\newcounter{containing}% 2.1 new global/entry options for multivolumes
+\setcounter{containing}{0}
+\DeclareBibliographyOption[string]{containerized}[auto]{%
+ \ifthenelse{\equal{\detokenize{#1}}{\detokenize{auto}}}
+ {\settoggle{del:p}{false}\settoggle{del:m}{false}}% containerized=auto
+ {\ifthenelse{\equal{\detokenize{#1}}{\detokenize{true}}}
+ {\settoggle{del:p}{true}\settoggle{del:m}{false}}% ...=true
+ {\ifthenelse{\equal{\detokenize{#1}}{\detokenize{false}}}
+ {\settoggle{del:p}{false}\settoggle{del:m}{true}}% ...=false
+ {\PackageError{biblatex-mla}
+ {Option 'containerized=#1' invalid}
+ {The option you have supplied is invalid.\MessageBreak
+ Please choose among auto, true, and false.}}% ...!=auto;!=true;!=false
+ }% ...!=auto;!=true
+ }% ...!=auto
+}%
+\DeclareEntryOption[string]{containerized}[true]{%
+ \ifthenelse{\equal{\detokenize{#1}}{\detokenize{auto}}}
+ {\settoggle{del:p}{false}\settoggle{del:m}{false}}% containerized=auto
+ {\ifthenelse{\equal{\detokenize{#1}}{\detokenize{true}}}
+ {\settoggle{del:p}{true}\settoggle{del:m}{false}}% ...=true
+ {\ifthenelse{\equal{\detokenize{#1}}{\detokenize{false}}}
+ {\settoggle{del:p}{false}\settoggle{del:m}{true}}% ...=false
+ {\PackageError{biblatex-mla}
+ {Option 'containerized=#1' invalid}
+ {The option you have supplied is invalid.\MessageBreak
+ Please choose among auto, true, and false.}}% ...!=auto;!=true;!=false
+ }% ...!=auto;!=true
+ }% ...!=auto
+}%
+
+\ExecuteBibliographyOptions{containerized=auto}
+\ExecuteBibliographyOptions[inreference]{useeditor=false}
+
\newbool{bbx:gnoreminfo}%
\setbool{bbx:gnoreminfo}{false}
\DeclareBibliographyOption{noremoteinfo}[true]{\setbool{bbx:gnoreminfo}{#1}}
@@ -242,6 +496,7 @@
\newboolean{mla@nodate}%
\DeclareEntryOption{nodate}[true]{\setbool{mla@nodate}{#1}}
+
\ExecuteBibliographyOptions{maxnames=2,datezeros=false,eprint=true}%
\newrobustcmd{\openrangeformat}[1]{%
@@ -346,70 +601,132 @@
\usebibmacro{translator+othersstrg}\clearname{translator}}%
{\global\undef\bbx@lasthash}}
+\renewbibmacro*{bytranslator+othersstrg}{%
+ \let\abx@tempb=\empty
+ \ifnamesequal{editor}{translator}
+ {\iffieldundef{editortype}
+ {\def\abx@tempa{byeditortr}}
+ {\edef\abx@tempa{by\thefield{editortype}tr}}
+ \appto\abx@tempb{\clearname{editor}}}
+ {\def\abx@tempa{bytranslator}}%
+ \ifnamesequal{translator}{commentator}
+ {\appto\abx@tempa{co}%
+ \clearname{commentator}}
+ {\ifnamesequal{translator}{annotator}
+ {\appto\abx@tempa{an}%
+ \clearname{annotator}}
+ {}}%
+ \ifnamesequal{translator}{introduction}
+ {\appto\abx@tempa{in}%
+ \clearname{introduction}}
+ {\ifnamesequal{translator}{foreword}
+ {\appto\abx@tempa{fo}%
+ \clearname{foreword}}
+ {\ifnamesequal{translator}{afterword}
+ {\appto\abx@tempa{af}%
+ \clearname{afterword}}
+ {}}}%
+ \bibstring{\abx@tempa}\abx@tempb}
+
\newbibmacro*{journal+issue+year+pages}{%
\usebibmacro{journal+ser+vol+num}%
\setunit{\addspace}%
\printtext[parens]{%
\iffieldundef{issue}%
{\iffieldundef{month}%
- {\printfield{year}}%
+ {\printfield{year}\clearfield{year}}%
{\iffieldundef{day}%
- {\printfield{month}%
+ {\printfield{month}\clearfield{month}%
\setunit{\addspace}%
- \printfield{year}}%
- {\printtext{\bibdate}}}}%
+ \printfield{year}\clearfield{year}}%
+ {\printtext{\bibdate}\clearfield{year}\clearfield{month}\clearfield{day}}}}%
{\printfield{issue}%
\setunit{\addspace}%
- \printfield{year}}}%
+ \printfield{year}\clearfield{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}}%
+ \iffieldundef{urlyear}{}{\bibstring{urlseen}\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}}%
+ \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}}}%
+ \newunit%
+ % \usebibmacro{byauthor}%
\printunit{\addperiod\space}\newblock%
- }
+ \ifthenelse{\ifentrytype{letter}}
+ {\usebibmacro{mla:archival}\newunit}
+ {}
+}
+
+\newbibmacro*{mla:imageholder:top}{% 2.1 used for works containing a cited image
+ \ifthenelse{\iffieldequalstr{entrytype}{suppbook}%
+ \OR\iffieldequalstr{entrytype}{suppcollection}}%
+ {\usebibmacro{title}%
+ \printunit{\addperiod\space}\newblock%
+ \printfield[mla:capital]{entrysubtype}}%
+ {\ifentrytype{book}
+ {\usebibmacro{booktitle}}
+ {\usebibmacro{maintitle+booktitle}}}%
+ \newunit%
+ \usebibmacro{byauthor}%
+ \newunit%
+}
\newbibmacro*{mla:container:one}{%
- \usebibmacro{mla:article:journal+issuetitle}%
+ \ifthenelse{\iffieldequalstr{entrytype}{software}}%
+ {\usebibmacro{mla:container:software}}%
+ {\usebibmacro{mla:article:journal+issuetitle}}%
\newunit\newblock
- \printfield{note}%
+ \printfield{note}\clearfield{note}%
\newunit%
\printfield{pages}%
\newunit%
- \ifthenelse{\iffieldundef{eprinttype} \OR \(\iffieldundef{eprinttype} \AND \iffieldundef{eprint}\)}
+ \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
+ \ifthenelse{\iffieldequalstr{entrytype}{software}}%
+ {\ifthenelse{\iffieldundef{eventyear}}
+ {}
+ {\bibstring{urlseen}\space\printeventdate%
+ \clearfield{eventyear}\clearfield{eventmonth}\clearfield{eventday}}}% 2.1
+ {}%
+ \newunit
+ \printfield{note}\clearfield{note}%
+ \newunit
\usebibmacro{url+urldate}%
- \newunit\newblock
+ \newunit
\printfield{addendum}%
\printunit{\addperiod\space}\newblock%
\usebibmacro{pageref}%
}
+\newbibmacro*{mla:container:software}{%
+ \newunit\newblock
+ \printfield{version}\clearfield{version}%
+ \newunit%
+ \printlist{publisher}\clearlist{publisher}
+ }
+
\DeclareFieldFormat{titlea}{\mkbibemph{#1}}
\DeclareFieldFormat{titleb}{\mkbibemph{#1}}
\DeclareFieldFormat[mlasource]{mla:unstyled}{#1}
@@ -449,19 +766,19 @@
\newbibmacro*{mla:containerb}{%
\printfield{titleb}%
- \newunit\newblock
+ \newunit
\printfield{contributorb}%
- \newunit\newblock
+ \newunit
\printfield{versionb}%
- \newunit\newblock
+ \newunit
\printfield{numberb}%
- \newunit\newblock
+ \newunit
\printfield{publisherb}%
- \newunit\newblock
+ \newunit
\printfield{dateb}%
- \newunit\newblock
+ \newunit
\printfield{locationb}%
- \newunit\newblock
+ \newunit
\printfield{supplementalb}%
}
@@ -476,40 +793,63 @@
\DeclareBibliographyDriver{book}{%
\usebibmacro{mla:container:top}%
\printunit{\addperiod\space}\newblock%
+ \newunit{}%
+ \usebibmacro{test:mla:delayed}% 2.1 new test and toggle
+ \usebibmacro{byauthor}% 2.1 moved
+ \newunit{}%
\usebibmacro{bytranslator+others}%
\newunit%
\usebibmacro{byeditor+others}%
\newunit%
\printfield{edition}\isdot%
\newunit%
- \iffieldundef{maintitle}{\printfield{volume}\clearfield{volume}\printfield{part}}{}%
+ \iffieldundef{maintitle}% 2.1
+ % \iftoggle{mla:delayed}% 2.1
+ % \ifnumcomp{\value{containing}}{<}{2}% 2.1
+ {\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}}
- {}%
+ \iftoggle{mla:delayed}%
+ {}%
+ {\printfield{version}\clearfield{version}%
+ \newunit%
+ \iftoggle{bbx:showlocation}%
+ {\printlist{location}\clearlist{location}}%
+ {}%
+ \newunit%
+ \printlist{publisher}\clearlist{publisher}%
+ \newunit%
+ \printlist{institution}\clearlist{institution}}%
\newunit%
- \printdate%
+ \usebibmacro{mla:date}%
+ % \printdate\clearfield{year}\clearfield{month}\clearfield{day}%
\newunit%
\printfield{pages}% really?
\newunit\newblock%
\usebibmacro{mla:isbn/issn+doi+eprint}%
\newunit%
+ \usebibmacro{url+urldate}%
+ \newunit%
\iffieldundef{origtitle}%
{}%
{\usebibmacro{mla:reprint}}%
\setunit{\addperiod\addspace}%
- \iffieldundef{volumes}%
- {}%
- {\usebibmacro{mla:multivolumes}}%
+ % \ifthenelse{\NOT\iffieldundef{volume}%
+ % \AND\NOT\iffieldundef{maintitle}}% 2.1
+ % {\printfield{volume}\clearfield{volume}%
+ % \setunit{\addspace\bibstring{ofseries}\addspace}%
+ % \usebibmacro{mla:multivolumes}}%
+ % {}%
+ % \newunit%
+ \usebibmacro{mla:series+maintitle+combo}% 2.1
+ % \newunit%
+ % \iffieldundef{volumes}%
+ % {}%
+ % {\usebibmacro{mla:multivolumes}}% mla:series+maintitle+combo
\newunit%
\printfield[mla:sentence-case]{addendum}%
\newunit%
@@ -520,11 +860,55 @@
\DeclareBibliographyDriver{article}{%
\usebibmacro{mla:container:top}%
\printunit{\addperiod\space}\newblock%
- \usebibmacro{mla:container:one}%
+ \ifnameundef{translator}% 2.1 include article translator
+ {}
+ {\usebibmacro{bytranslator+othersstrg}%
+ \setunit{\addspace}%
+ \ifnamesequal{labelname}{translator}%
+ {\printnames[mla:last]{translator}}%
+ {\printnames[byauthor]{translator}}%
+ \clearname{translator}}%
\printunit{\addperiod\space}\newblock%
+ \usebibmacro{mla:container:one}%
+ \ifthenelse{\iffieldequalstr{entrysubtype}{newspaper} \or \iffieldequalstr{entrysubtype}{magazine} \or \iffieldequalstr{entrysubtype}{blog} \or \iffieldequalstr{entrysubtype}{comment} \or \iffieldequalstr{entrysubtype}{online} \or \iffieldequalstr{entrytype}{online} \or \iffieldequalstr{entrytype}{software}}%
+ {\printunit{\addcomma\space}\newblock}% 2.1
+ {\printunit{\addperiod\space}\newblock}%
\usebibmacro{mla:container:two}%
\usebibmacro{finentry}}
+\newbibmacro*{test:mla:delayed}{% 2.1
+ \setcounter{containing}{0}
+ \ifthenelse{\iffieldequalstr{editortype}{generaleditor}\OR%
+ \iffieldequalstr{editoratype}{generaleditor}\OR%
+ \iffieldequalstr{editorbtype}{generaleditor}\OR%
+ \iffieldequalstr{editorctype}{generaleditor}}%
+ {\addtocounter{containing}{1}}%
+ {}%
+ \ifthenelse{\NOT\iffieldundef{maintitle}\AND%
+ \(\NOT\iffieldundef{booktitle}\OR
+ \NOT\iffieldundef{title}\)}%
+ {\addtocounter{containing}{1}}%
+ {}%
+ \ifthenelse{\NOT\iffieldundef{eventdate}}%
+ {\addtocounter{containing}{1}}%
+ {}%
+ \ifthenelse{\NOT\iffieldundef{volumes}}%
+ {\addtocounter{containing}{1}}%
+ {}%
+ \ifthenelse{\NOT\iffieldundef{volume}}%
+ {\addtocounter{containing}{1}}%
+ {}%
+ \iftoggle{del:p}% if delay plus
+ {\addtocounter{containing}{10}}
+ {}
+ \iftoggle{del:m}% if delay minus
+ {\addtocounter{containing}{-10}}
+ {}
+ \ifnumcomp{\value{containing}}{>}{2}%
+ {\settoggle{mla:delayed}{true}}%
+ {\settoggle{mla:delayed}{false}}%
+}
+
\DeclareBibliographyDriver{periodical}{%
\usebibmacro{bibindex}%
\usebibmacro{author/editor+others/translator+others}%
@@ -545,21 +929,46 @@
\newunit%
\usebibmacro{finentry}}
+\newbibmacro*{mla:date}{% 2.1
+ \iftoggle{bbx:datebrackets}%
+ {\printtext[date:brackets]{\printdate}}%
+ {\printdate}%
+ \clearfield{year}%
+}%
+
\newbibmacro*{mla:reprint}{%
\iffieldundef{origtitle}%
{\newunit}%
{\iflistundef{origlanguage}
{\setunit{\newunitpunct\bibstring{reprintof}\addspace}}%
- {\setunit{\newunitpunct\bibstring{transof}\addspace}}%
-}%
+ {\setunit{\newunitpunct\bibstring{translationof}\addspace}}%
+ }%
\printfield[title:\strfield{entrytype}]{origtitle}%
\newunit\newblock%
- \printlist{origlocation}\clearlist{origlocation}%
- \setunit*{\addcolon\addspace}%
- \printlist{origpublisher}\clearlist{origpublisher}%
- \newunit%
+ \iffieldequalstr{entrysubtype}{artwork}%
+ {}%
+ {\printlist{origlocation}\clearlist{origlocation}%
+ \newunit%
+ \printlist{origpublisher}\clearlist{origpublisher}%
+ \newunit}%
\ifbool{bbx@mla-incollection}%
- {\printfield[bibliography:origyear]{origyear}\clearfield{origyear}}%
+ {\ifthenelse{\iffieldequalstr{entrytype}{music}\OR%
+ \iffieldequalstr{entrytype}{audio}}%
+ {\iffieldundef{origyear}%
+ {}%
+ {\bibstring{recorded}% platypus - localize this
+ \addspace%
+ \printorigdate\clearfield{origyear}}}%
+ {%\printfield[bibliography:origyear]{origyear}
+ \printorigdate\clearfield{origyear}%
+ \newunit%
+ \iffieldequalstr{entrysubtype}{artwork}%
+ {\printlist{institution}\clearlist{institution}%
+ \newunit%
+ \printlist{origlocation}\clearlist{location}}%
+ {}
+ }%
+ }%
{\ifthenelse{\iffieldundef{volume}\OR\iffieldundef{volumes}}%
{\printorigdate\clearfield{origyear}}%
{}%
@@ -573,6 +982,12 @@
\newunit%
\printfield{volume}%
\newunit%
+ \printfield{version}\clearfield{version}%
+ \newunit%
+ \iftoggle{bbx:showlocation}%
+ {\printlist{location}\clearlist{location}}%
+ {}%
+ \newunit%
\printlist{publisher}\clearlist{publisher}%
\newunit%
\printeventdate\clearfield{eventyear}%
@@ -609,14 +1024,20 @@
\newbibmacro*{mla:generaleditor:internal}[1]{%
\iffieldequalstr{editor#1type}{generaleditor}%
- {\printnames{editor#1}%
+ {\printnames{editor#1}\clearname{editor#1}%
\setunit{\addcomma\addspace}
- \bibstring{generaleditor}
+ \bibstring{generaleditor}\clearfield{editor#1type}
\newunit}%
{}%
}
\newbibmacro*{mla:isbn/issn+doi+eprint}{%
+ \iftoggle{bbx:eprint}
+ {\setunit{\addperiod\space}\newblock\usebibmacro{eprint+extra}}
+ {}%
+ \newunit\newblock
+ \printdate\clearfield{year}\clearfield{month}\clearfield{day}% 2.1
+ \newunit\newblock
\iftoggle{bbx:isan}{\printfield{isan}\clearfield{isan}}{}%
\newunit\newblock%
\iftoggle{bbx:isbn}{\printfield{isbn}\clearfield{isbn}}{}%
@@ -629,13 +1050,12 @@
\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}
+ {\printunit{\addperiod\space}\iffieldundef{eprint}
{\printfield{eprinttype}}
{\printfield[eprint:\strfield{eprinttype}]{eprint}}}}
@@ -671,12 +1091,11 @@
\usebibmacro{bibindex}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\addperiod\space}\newblock%
- \ifthenelse{%
- \iffieldequalstr{entrysubtype}{book}%
- \OR%
- \iffieldequalstr{entrysubtype}{play}%
- \OR%
- \iffieldequalstr{entrytype}{bookinbook}}%
+ \ifthenelse{\iffieldequalstr{entrysubtype}{book}%
+ \OR\iffieldequalstr{entrysubtype}{play}%
+ \OR\iffieldequalstr{entrysubtype}{album}%
+ \OR\iffieldequalstr{entrysubtype}{artwork}%
+ \OR\iffieldequalstr{entrytype}{bookinbook}}%
{\usebibmacro{title:incollection:italics}}%
{\setbool{bbx@mla-incollection}{true}%
\usebibmacro{title}%
@@ -685,6 +1104,21 @@
\ifbool{bbx@uniquetranslator}%
{\usebibmacro{bytranslator+others}}%
{}%
+ \ifbool{bbx@uniquenamea}% new in 2.1
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{namea}
+ \clearname{namea}}%
+ {}%
+ \ifbool{bbx@uniquenameb}% new in 2.1
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{nameb}
+ \clearname{nameb}}%
+ {}%
+ \ifbool{bbx@uniquenamec}% new in 2.1
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{namec}
+ \clearname{namec}}%
+ {}%
\setunit{\addperiod\addspace}%
\iffieldundef{crossref}%
{\iffieldundef{xref}%
@@ -700,28 +1134,132 @@
\newunit}%
\newunit%
\usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{music}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\addperiod\space}\newblock%
+ \ifthenelse{\iffieldequalstr{entrysubtype}{album}}%
+ {\usebibmacro{title:incollection:italics}\clearfield{title}}%
+ {\setbool{bbx@mla-incollection}{true}%
+ \usebibmacro{title}%
+ \setbool{bbx@mla-incollection}{false}\clearfield{title}}%
+ \newunit\newblock%
+ \ifbool{bbx@uniquenamea}%
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{namea}
+ \clearname{namea}}%
+ {}%
+ \ifbool{bbx@uniquenameb}%
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{nameb}
+ \clearname{nameb}}%
+ {}%
+ \ifbool{bbx@uniquenamec}%
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{namec}
+ \clearname{namec}}%
+ {}%
+ \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}}
+
+\DeclareBibliographyDriver{artwork}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\addperiod\space}\newblock%
+ \usebibmacro{title}
+ \setunit{\addperiod\space}\newblock%
+ \iffieldundef{eventtitle}%
+ {}%
+ {\printfield[booktitle]{eventtitle}}%
+ \newunit%
+ \iffieldundef{eventyear}%
+ {}%
+ {\printeventdate\clearfield{eventyear}\clearfield{eventmonth}\clearfield{eventday}}%
+ \newunit%
+ \printdate\clearfield{year}\clearfield{month}\clearfield{day}%
+ \newunit%
+ \printlist{institution}%
+ \newunit%
+ \printlist{location}%
+ \newunit%
+ \usebibmacro{mla:isbn/issn+doi+eprint}
+ \newunit
+ \usebibmacro{url+urldate}%
+ \setunit{\addperiod\space}\newblock%
+ \printfield{addendum}%
+ \newunit%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{image}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\addperiod\space}\newblock%
+ \usebibmacro{title}
+ \setunit{\addperiod\space}\newblock%
+ \iffieldundef{related}%
+ {}%
+ {\entrydata{\thefield{related}}
+ {\usedriver
+ {\togglefalse{blx@useauthor}%
+ \settoggle{mla:image}{true}}%
+ {\thefield{entrytype}}%
+ % \usebibmacro{mla:imageholder:top}
+ % \printunit{\addperiod\space}\newblock%
+ % \usebibmacro{mla:container:one}%
+ % \setunit{\addperiod\space}\newblock%
+ % \usebibmacro{mla:container:two}%
+ % \usebibmacro{finentry}
+ }
+ }%
+ % \printdate%
+ % \newunit%
+ % \printlist{institution}%
+ % \newunit%
+ % \printlist{location}%
+ % \newunit%
+ % \usebibmacro{mla:isbn/issn+doi+eprint}
+ % \newunit
+ % \usebibmacro{url+urldate}%
+ % \setunit{\addperiod\space}\newblock%
+ % \printfield{addendum}%
+ \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{entrytype}{suppbook}\OR%
+ \iffieldequalstr{entrytype}{suppcollection}\OR%
+ \iffieldequalstr{entrysubtype}{interview}\OR%
+ \iffieldequalstr{entrysubtype}{artwork}\OR%
\iffieldequalstr{entrysubtype}{untitled}}%
{\setunit{\newunitpunct\bibstring{byauthor}\addspace}%
\ifnamesequal{labelname}{bookauthor}%
{\printnames[mla:last]{bookauthor}}%
{\printnames[byauthor]{bookauthor}}}%
{}%
- \newunit\newblock%
+ \newunit%
\usebibmacro{byauthor}%
- \newunit\newblock
- \usebibmacro{byeditor+others}%
- \newunit\newblock
+ \newunit
+ \usebibmacro{mla:generaleditor}%
+ \newunit
+ \usebibmacro{byeditor+others}% platypus-return
+ \newunit
\printfield{edition}\isdot%
\newunit
\iffieldundef{maintitle}%
@@ -753,6 +1291,59 @@
\usebibmacro{pageref}%
\setbool{bbx@mla-incollection}{false}}
+\renewbibmacro*{byeditor+others}{% 2.1 redefined
+ \delimcontext{notreversed}
+ \ifnameundef{editor}
+ {}
+ {\iffieldequalstr{editortype}{generaleditor}
+ {}
+ {\usebibmacro{byeditor+othersstrg}%
+ \setunit{\addspace}}%
+ \ifnamesequal{labelname}{editor}%
+ {\printnames[mla:last]{editor}}% 2.1 print only last with repeat
+ {\printnames[byauthor]{editor}}%
+ \clearname{editor}%
+ \newunit}%
+ \usebibmacro{byeditorx}%
+ \iftoggle{mla:delayed}
+ {}
+ {\usebibmacro{mla:generaleditor}}%
+ \usebibmacro{bytranslator+others}}
+
+\renewbibmacro*{bytranslator+others}{% 2.1 renewed
+ \ifnameundef{translator}
+ {}
+ {\usebibmacro{bytranslator+othersstrg}%
+ \setunit{\addspace}%
+ \ifnamesequal{labelname}{translator}%
+ {\printnames[mla:last]{translator}}% 2.1 print only last with repeat
+ {\printnames[byauthor]{translator}}%
+ \clearname{translator}%
+ \newunit}%
+ \usebibmacro{withothers}}
+
+\renewbibmacro*{withothers}{% 2.1 nameb
+ \usebibmacro{withcommentator}%
+ \clearname{commentator}%
+ \newunit
+ \usebibmacro{withannotator}%
+ \clearname{annotator}%
+ \newunit
+ \usebibmacro{withintroduction}%
+ \clearname{introduction}%
+ \newunit
+ \usebibmacro{withforeword}%
+ \clearname{foreword}%
+ \newunit
+ \usebibmacro{withafterword}%
+ \clearname{afterword}%
+ \newunit%
+ \usebibmacro{mla:special:localized:first-last}{namea}
+ \newunit%
+ \usebibmacro{mla:special:localized:first-last}{nameb}
+ \newunit%
+ \usebibmacro{mla:special:localized:first-last}{namec}}
+
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{author/editor+others/translator+others}%
@@ -771,10 +1362,7 @@
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
- \printfield{addendum}%
- \newunit\newblock
- \usebibmacro{pageref}%
- \newunit%
+ \usebibmacro{mla:container:two}% 2.1
\usebibmacro{finentry}}
\DeclareBibliographyDriver{proceedings}{%
@@ -807,7 +1395,25 @@
\setunit{\addperiod\space}\newblock%
\printfield{note}%
\newunit\newblock%
- \printfield{origyear}
+ \iffieldundef{eventyear}%
+ {\usebibmacro{mla:archival}}%
+ {\printlist{organization}%
+ \newunit
+ \printeventdate\clearfield{eventyear}%
+ \newunit
+ \printfield{venue}%
+ \newunit
+ \printlist{location}}%
+ \newunit%
+ \printdate\clearfield{year}\clearfield{month}\clearfield{day}%
+ \setunit{\addperiod\addspace}
+ \printfield{addendum}%
+ \newunit%
+ \usebibmacro{finentry}}
+
+\newbibmacro*{mla:archival}{%
+ \printorigdate\clearfield{origyear}\clearfield{origmonth}\clearfield{origday}%
+ \iforigdateuncertain{\unspace,\addspace}{\newunit\newblock}% 2.1
\newunit\newblock
\printfield{library}%
\newunit%
@@ -816,10 +1422,7 @@
\usebibmacro{mla:all:type}%
\setunit{\addspace}
\printfield{number}%
- \setunit{\addperiod\addspace}
- \printfield{addendum}%
- \newunit%
- \usebibmacro{finentry}}
+}
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
@@ -829,7 +1432,7 @@
\setunit{\addperiod\space}\newblock%
\iffieldequalstr{entrysubtype}{published}%
{\printfield{origyear}\clearfield{origyear}}%
- {\printfield{year}}%
+ {\printfield{year}\clearfield{year}}% 2.1 add clearfield
\printunit{\addperiod\space}\newblock%
\newunit\newblock
\printlist{institution}%
@@ -841,6 +1444,11 @@
\newunit%
\usebibmacro{publisher+location+date}}%
{}%
+ \newunit%
+ \usebibmacro{mla:isbn/issn+doi+eprint}%
+ \newunit%
+ \usebibmacro{url+urldate}%
+ \newunit%
\newunit\newblock
\printfield{addendum}%
\newunit\newblock
@@ -851,14 +1459,19 @@
\usebibmacro{bibindex}%
\usebibmacro{author}%
\setunit{\addperiod\space}\newblock%
- \printfield[title:article]{title}%
+ \iffieldundef{title}%
+ {}%
+ {\usebibmacro{title+stitle}}% 2.1
+ % \printfield[title:article]{title}%
\setunit{\addperiod\space}\newblock%
\printfield[title:reviewedbook]{booktitle}%
\newunit%
\ifnameundef{bookauthor}%
- {\printtext[reviewededitor]{\printnames[default]{editor}}}%
+ {\ifnameundef{editor}%
+ {}%
+ {\printtext[reviewededitor]{\printnames[default]{editor}}}}%
{\printtext[reviewedauthor]{\printnames[default]{bookauthor}}}%
- \setunit{\addperiod\space}\newblock%
+ \printunit{\addperiod\space}\newblock%
\usebibmacro{mla:container:one}%
\setunit{\addperiod\space}\newblock%
\usebibmacro{mla:container:two}%
@@ -936,62 +1549,181 @@
\clearname{#1}%
}
-\newbibmacro{mla:video:localized:first-last}[1]{%
+\newbibmacro{mla:special:localized:first-last}[1]{%
\ifnameundef{#1}%
{}%
{\ifthenelse{\iffieldbibstring{#1type} \and \not %
- \iffieldundef{#1type} \and \not %
- \iffieldequalstr{#1type}{composer}}%
- {\bibstring{\thefield{#1type}}}%
+ \iffieldundef{#1type}}% \and \not \iffieldequalstr{#1type}{composer}% 2.1 clean up composer, moving from composedby to bycomposer
+ {\ifbibxstring{by\thefield{#1type}}
+ {\bibstring{by\thefield{#1type}}}
+ {\bibstring{\thefield{#1type}}}}%
{\iffieldundef{#1type}%
{\bibstring{with}}%
- {\iffieldequalstr{#1type}{composer}%
- {\bibstring{composedby}}%
- {\printfield[mla:capital]{#1type}}}}%
- \addspace\printnames[byeditor][-\value{listtotal}]{#1}}%
+ % {\iffieldequalstr{#1type}{composer}%
+ % {\bibstring{composedby}}%
+ % {\printfield[mla:capital]{#1type}}}}%
+ {\printfield[mla:capital]{#1type}}}%
+ \addspace%
+ % Check to see if the name matches the labelname
+ \ifnamesequal{labelname}{#1}%
+ {\printnames[mla:last]{#1}\clearname{#1}}%
+ {\printnames[byeditor][-\value{listtotal}]{#1}\clearname{#1}}%
+ }%
\newunit}%
\newbibmacro{mla:video:name:second:footnote}[1]{%
\ifnameundef{#1}%
{}%
{\ifthenelse{\iffieldbibstring{#1type} \and \not %
- \iffieldundef{#1type} \and \not %
- \iffieldequalstr{#1type}{composer}}%
+ \iffieldundef{#1type}}% \and \not \iffieldequalstr{#1type}{composer}% 2.1 clean up composer, moving from composedby to bycomposer
{\bibstring{\thefield{#1type}}}%
{\iffieldundef{#1type}%
{\bibstring{with}}%
- {\iffieldequalstr{#1type}{composer}%
- {\bibstring{composedby}}%
- {\printfield[mla:lowercase]{#1type}}}}%
+ % {\iffieldequalstr{#1type}{composer}%
+ % {\bibstring{composedby}}%
+ % {\printfield[mla:lowercase]{#1type}}}}%
+ {\printfield[mla:lowercase]{#1type}}}%
\addspace\printnames[byeditor][-\value{listtotal}]{#1}%
}}%
-\DeclareBibliographyDriver{video}{%
+\DeclareBibliographyDriver{movie}{%
\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%
+ \setunit{\addspace}%
+ \printfield{titleaddon}%
+ \setunit{\addperiod\addspace}%
+ \printfield{origyear}\clearfield{origyear}%
+ \printunit{\addperiod\addspace}%
+ \iffieldundef{bookauthor}%
+ {}%
+ {\bibstring{byauthor}\addspace\printnames[byeditor]{bookauthor}%
+ \newunit}%
\ifthenelse{\NOT\ifnamesequal{author}{labelname}%
- \AND\NOT\ifnameundef{author}}%
- {\usebibmacro{mla:video:localized:first-last}{author}}%
+ \AND\NOT\ifnameundef{author}}%
+ {\usebibmacro{mla:special:localized:first-last}{author}}%
{}%
\ifthenelse{\NOT\ifnamesequal{editor}{labelname}%
- \AND\NOT\ifnameundef{editor}}%
- {\usebibmacro{mla:video:localized:first-last}{editor}}%
+ \AND\NOT\ifnameundef{editor}}%
+ {\usebibmacro{mla:special: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}%
+ \usebibmacro{mla:special:localized:first-last}{namea}%
+ \usebibmacro{mla:special:localized:first-last}{nameb}%
+ \usebibmacro{mla:special:localized:first-last}{namec}%
+ \newunit%
+ \printfield{version}%
+ \newunit%
+ \printlist{publisher}%
+ \newunit%
+ \printfield{year}\clearfield{year}%
\newunit\newblock%
+ \usebibmacro{mla:container:two}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{video}{%
+ \usebibmacro{author/editor+others/translator+others}% 2.1 changed
+ \setunit{\addperiod\space}\newblock%
+ \iffieldundef{maintitle}
+ {\printfield[maintitle]{title}}%
+ {\iffieldundef{title}%
+ {}%
+ {\usebibmacro{title+stitle}}% 2.1
+ }%
+ \printunit{\addperiod\addspace}%
+ \printfield{origyear}
+ \ifbool{bbx@uniquenamea}%
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{namea}
+ \clearname{namea}}%
+ {}%
+ \ifbool{bbx@uniquenameb}%
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{nameb}
+ \clearname{nameb}}%
+ {}%
+ \ifbool{bbx@uniquenamec}%
+ {\newunit%
+ \usebibmacro{mla:special:localized:first-last}{namec}
+ \clearname{namec}}%
+ {}%
+ \printunit{\addperiod\addspace}%
+ \iffieldundef{maintitle}% 2.1 added support for subtitles in maintitle
+ {}%
+ {\printtext[maintitle]{%
+ \printfield[noformat]{maintitle}%
+ \setunit{\subtitlepunct}%
+ \printfield[noformat]{mainsubtitle}}}%
+ \newunit%
+ \printfield{maintitleaddon}
+ \newunit%
+ \iffieldundef{bookauthor}%
+ {}%
+ {\bibstring{byauthor}\addspace\printnames[byeditor]{bookauthor}%
+ \newunit}%
+ \ifthenelse{\NOT\ifnamesequal{author}{labelname}%
+ \AND\NOT\ifnameundef{author}}%
+ {\usebibmacro{mla:special:localized:first-last}{author}}%
+ {}%
+ \ifthenelse{\NOT\ifnamesequal{editor}{labelname}%
+ \AND\NOT\ifnameundef{editor}}%
+ {\usebibmacro{mla:special:localized:first-last}{editor}}%
+ {}%
+ \usebibmacro{mla:special:localized:first-last}{namea}%
+ \usebibmacro{mla:special:localized:first-last}{nameb}%
+ \usebibmacro{mla:special:localized:first-last}{namec}%
+ \newunit%
+ \printfield{version}%
+ \newunit%
+ \printfield{season}\clearfield{season}
+ \newunit%
+ \printfield{number}\clearfield{number}
+ \newunit%
\printlist{publisher}%
\newunit%
- \printfield{year}%
+ \printdate\clearfield{year}\clearfield{month}\clearfield{day}%
\newunit\newblock%
+ \usebibmacro{mla:container:two}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{performance}{% New in 2.1
+ \usebibmacro{mla:container:top}%
+ % \ifnamesequal{labelname}{author}%
+% {\usebibmacro{mla:video:localized:last-first}{author}}{}%
+% \ifnamesequal{labelname}{editor}%
+% {\usebibmacro{mla:video:localized:last-first}{editor}}{}%
+% \usebibmacro{title}%
+ \setunit{\addspace}%
+ \printfield{titleaddon}%
+ \setunit{\addperiod\addspace}%
+ \iffieldundef{bookauthor}%
+ {}%
+ {\bibstring{byauthor}\addspace\printnames[byeditor]{bookauthor}%
+ \newunit}%
+ \ifthenelse{\NOT\ifnamesequal{author}{labelname}%
+ \AND\NOT\ifnameundef{author}}%
+ {\usebibmacro{mla:special:localized:first-last}{author}}%
+ {}%
+ \ifthenelse{\NOT\ifnamesequal{editor}{labelname}%
+ \AND\NOT\ifnameundef{editor}}%
+ {\usebibmacro{mla:special:localized:first-last}{editor}}%
+ {}%
+ \usebibmacro{mla:special:localized:first-last}{namea}%
+ \usebibmacro{mla:special:localized:first-last}{nameb}%
+ \usebibmacro{mla:special:localized:first-last}{namec}%
+ \newunit%
+ \printlist{organization}%
+ \newunit%
+ \printeventdate\clearfield{eventyear}%
+ \newunit%
+ \printdate\clearfield{year}%
+ \newunit%
+ \printfield{venue}%
+ \newunit%
+ \printlist{location}%
+ \newunit\newblock%
+ \usebibmacro{mla:container:two}%
\usebibmacro{finentry}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -999,19 +1731,13 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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
+ \setunit{\subtitlepunct}% 2.1 fixed
\printfield[noformat]{mainsubtitle}}%
\setunit{\addspace}% 2.0 include titleaddon inside unit punctuation
\printfield{maintitleaddon}%
@@ -1029,10 +1755,22 @@
{\printfield{series}\clearfield{series}\setunit*{\addspace}\printfield{number}}%
}
+\newbibmacro*{mla:series+maintitle+combo}{% 2.1
+ \usebibmacro{series+number}%
+ \setunit{\addperiod\addspace}%
+ \iftoggle{mla:delayed}%
+ {}%
+ {\printfield{volume}\clearfield{volume}%
+ \setunit{\addspace\bibstring{ofseries}\addspace}}%
+ \usebibmacro{mla:multivolumes}%
+}
+
\renewbibmacro*{title}{%
\iffieldequalstr{entrytype}{thesis}%
{\usebibmacro{mla:title:thesis}}%
- {\ifthenelse{\iffieldequalstr{entrytype}{unpublished}\OR\iffieldequalstr{entrytype}{misc}} %
+ {\ifthenelse{\iffieldequalstr{entrytype}{unpublished}\OR%
+ \iffieldequalstr{entrysubtype}{untitled}\OR%
+ \iffieldequalstr{entrytype}{misc}} %
{\usebibmacro{mla:title:unpublished}}%
{\usebibmacro{title+stitle}}}}%
@@ -1042,7 +1780,7 @@
\printlist{publisher}%
\newunit%
\ifbool{mla@nodate}{\printtext{n.d.}}%
- \printdate%
+ \printdate\clearfield{year}\clearfield{month}\clearfield{day}%
\newunit}
\newbibmacro*{mla:title:unpublished}{%
@@ -1058,11 +1796,16 @@
\setunit*{\subtitlepunct}%
\printfield[noformat]{subtitle}}}%
}%
- \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation
+ \ifthenelse{\ifentrytype{misc} \OR \iffieldequalstr{entrysubtype}{untitled}}
+ {\setunit{\addperiod\space}}% 2.1 add block for unformatted titleaddon
+ {\setunit{\addspace}}% 2.0 include titleaddon inside unit punctuation
\printfield[noformat]{titleaddon}%
- \printunit{\addperiod\space}%
+ \printunit{\addperiod\space}
+ % \setunit{\addspace}% 2.0 include titleaddon inside unit punctuation
+ % \printfield[noformat]{titleaddon}%
+ % \printunit{\addperiod\space}%
\usebibmacro{byauthor}%
- \iffieldundef{origtitle}%
+ \ifthenelse{\iffieldundef{origtitle}\AND\NOT\ifentrytype{letter}}%
{\usebibmacro{mla:reprint}}%
{}%
}%
@@ -1124,18 +1867,21 @@
\newunit}
\renewbibmacro*{maintitle+booktitle}{%
- \usebibmacro{booktitle}%
- \printunit*{\addperiod\space}%
+ \usebibmacro{booktitle}\clearfield{booktitle}% 2.1
+ \newunit%
\iffieldundef{maintitle}%
{}%
- {\usebibmacro{maintitle}%
+ {\usebibmacro{maintitle}\clearfield{maintitle}% 2.1
\newunit%
\iffieldundef{volume}%
{}%
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}%
- \printunit*{\addperiod\space}}
+ \iftoggle{mla:image}
+ {\printunit{\addcomma\space}}
+ {\setunit*{\addperiod\space}}
+ }
\renewbibmacro*{booktitle}{%
\ifboolexpr{
@@ -1154,14 +1900,17 @@
}
\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}%
+ \iffieldundef{booktitle}% 2.1 for unpublished
+ {\printfield[default]{eventtitle}
+ \setunit*{\isdot\addcomma\addspace}}
+ {\usebibmacro{booktitle}%
+ \printunit{\addperiod\addspace}%
+ \iffieldundef{eventtitle}%
+ {}%
+ {\printtext[default]{%
+ \bibstring{proceedings}\addspace\bibstring{ofseries}\addspace%
+ \printfield[default]{eventtitle}\isdot}}
+ \setunit*{\isdot\addcomma\addspace}}%
\printlist{organization}%
\newunit%
\printeventdate%
@@ -1173,9 +1922,9 @@
\newbibmacro*{title+stitle}{%
\iffieldundef{title}%
{\ifthenelse{%
- \iffieldequalstr{entrytype}{suppbook}%
- \OR%
- \iffieldequalstr{entrytype}{suppcollection}}%
+ \iffieldequalstr{entrytype}{suppbook}\OR%
+ \iffieldequalstr{entrytype}{suppcollection}\OR%
+ \iffieldequalstr{entrytype}{review}}% added review in 2.1
{}%
{\ifthenelse{% 2.0 changed logic to allow for untitled pieces (e.g. for interviews)% CHECK
\iffieldundef{booktitle}}%
@@ -1184,19 +1933,27 @@
\printfield[noformat]{booktitle}%
\setunit*{\subtitlepunct}%
\printfield[noformat]{booksubtitle}}}}}%
- {\iffieldequalstr{entrysubtype}{untitled}% 2.0 added check to allow for works with unformatted titles
+ {\ifthenelse{\iffieldequalstr{entrysubtype}{untitled}\OR%
+ \iffieldequalstr{entrysubtype}{comment}}% 2.1
{\printfield[noformat]{title}%
\setunit*{\subtitlepunct}%
\printfield[noformat]{subtitle}}%
- {\printtext[title:\strfield{entrytype}]{%
+ {\ifthenelse{\iffieldequalstr{entrysubtype}{website}\AND
+ \iffieldequalstr{entrytype}{online}}
+ {\printtext[title:book]{%
\printfield[noformat]{title}%
\setunit*{\subtitlepunct}%
- \printfield[noformat]{subtitle}}}}%
+ \printfield[noformat]{subtitle}}%
+ \clearfield{title}\clearfield{subtitle}}%
+ {\printtext[title:\strfield{entrytype}]{%
+ \printfield[noformat]{title}%
+ \setunit*{\subtitlepunct}%
+ \printfield[noformat]{subtitle}}\clearfield{title}}}}%
\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}%
+ \printunit{\addperiod\space}
+ % \usebibmacro{byauthor}% 2.1 commented out and moved
+ \ifthenelse{\iffieldundef{origtitle}\AND\NOT\ifentrytype{letter}}%
{\usebibmacro{mla:reprint}}%
{}%
}%
@@ -1207,7 +1964,8 @@
{\printtext[title:book]{%
\printfield[noformat]{title}%
\setunit*{\subtitlepunct}%
- \printfield[noformat]{subtitle}}%
+ \printfield[noformat]{subtitle}%
+ \clearfield{title}\clearfield{subtitle}}%
\setunit{\addspace}% 2.0 include titleaddon inside unit punctuation
\printfield[noformat]{titleaddon}%
% \newunit\newblock% platyp
@@ -1220,55 +1978,90 @@
\newunit\newblock%
\iffieldundef{issuetitle}%
{}%
- {\usebibmacro{byeditor+others}%
- \newunit\newblock%
- \bibstring{specissue}\setunit*{\addspace}}%
+ {\ifthenelse{\NOT\iffieldundef{entrysubtype}%
+ \AND\iffieldequalstr{entrysubtype}{specissue}}%
+ {\bibstring{specissue}
+ \setunit*{\addspace}}%
+ {\setunit{\addperiod\addspace}}}% 2.1? added star
+ % (above) 2.1 added support for named issues that aren't specissues
\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
+ \usebibmacro{byeditor+others}
+ \newunit% 2.1?
+ \ifthenelse{\iffieldequalstr{entrytype}{online}}%
+ {\usebibmacro{mla:online}}%
+ {\setunit{\addspace}}% 2.1? removed asterisk
+ \ifthenelse{\iffieldequalstr{entrysubtype}{newspaper} \or \iffieldequalstr{entrysubtype}{magazine} \or \iffieldequalstr{entrysubtype}{blog} \or \iffieldequalstr{entrysubtype}{comment} \or \iffieldequalstr{entrytype}{online}}%
+ {\setunit{\addspace}%
+ \printlist[brackets]{location}%
\newunit%
- \printfield[mla:newspaper:section]{chapter}%
+ \iffieldequalstr{entrysubtype}{magazine}% 2.1
+ {\printfield{volume}%
+ \newunit%
+ \printfield{number}\clearfield{number}%
+ \newunit%
+ \ifthenelse{\iffieldequalstr{entrytype}{online} \and \not\iffieldundef{eprinttype} \and \iffieldundef{journaltitle}}%
+ {}%
+ {\usebibmacro{issue+date}\clearfield{year}\clearfield{month}\clearfield{day}}%
+ }%
+ {\printfield{version}%
+ \newunit%
+ \ifthenelse{\iffieldequalstr{entrytype}{online} \and \not\iffieldundef{eprinttype} \and \iffieldundef{journaltitle}}%
+ {}%
+ {\printtext{\printdate}\clearfield{year}\clearfield{month}\clearfield{day}}%
+ }%
+ \newunit
+ \iffieldnum{chapter}% 2.1
+ {\printfield[mla:news:section:number]{chapter}}% 2.1
+ {\printfield[mla:news:section:name]{chapter}}% 2.1
+ % }%
}%
- {\printfield{series}\clearfield{series}%
+ {\newunit% 2.1
+ \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}%
+ \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}%
+ \ifthenelse{\iffieldequalstr{entrytype}{patent}}%
+ {\iffieldbibstring{type}%
+ {\biblstring{\strfield{type}}%
+ \newunit}%
+ {}%
+ }%
+ {}%
+ \ifthenelse{\NOT\iffieldundef{issuetitle}\AND
+ \NOT\iffieldequalstr{entrysubtype}{specissue}}
+ {\printlist{publisher}%
+ \newunit}%
+ {}%
+ \usebibmacro{issue+date}\clearfield{year}\clearfield{month}\clearfield{day}%
\newunit\newblock
\newunit}%
}
\newbibmacro*{mla:online}{%
\iffieldundef{maintitle}%
- {}%
+ {\ifthenelse{\iffieldequalstr{entrysubtype}{website}}
+ {}
+ {\printunit{\addcomma\addspace}}}%\printunit{\addcomma\addspace}}%
{\printtext[maintitle]{%
\printfield[titlecase]{maintitle}%
\setunit{\subtitlepunct}%
- \printfield[titlecase]{mainsubtitle}}}%
- \newunit\newblock%
+ \printfield[titlecase]{mainsubtitle}}
+ \iffieldequalstr{entrysubtype}{website}
+ {\printunit{\addperiod\addspace}}%
+ {\printunit{\addcomma\addspace}}%
+ }%
\printlist{publisher}%
\newunit%
}
@@ -1276,9 +2069,9 @@
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
- \ifthenelse{\iffieldequalstr{entrysubtype}{newspaper} \or \iffieldequalstr{entrysubtype}{magazine}}%
+ \ifthenelse{\iffieldequalstr{entrysubtype}{newspaper} \or \iffieldequalstr{entrysubtype}{magazine} \or \iffieldequalstr{entrysubtype}{blog} \or \iffieldequalstr{entrysubtype}{comment}}%
{\printlist[brackets]{location}%
- \printtext{\printdate}%
+ \printtext{\printdate}\clearfield{year}\clearfield{month}\clearfield{day}%
\newunit%
\printfield{version}%
\newunit%
@@ -1300,10 +2093,10 @@
\renewbibmacro*{issue+date}{%
\printtext{%
\iffieldundef{issue}
- {\usebibmacro{date}}
+ {\usebibmacro{date}\clearfield{year}\clearfield{month}\clearfield{day}}
{\printfield{issue}%
\setunit*{\addspace}%
- \usebibmacro{date}}}%
+ \usebibmacro{date}\clearfield{year}\clearfield{month}\clearfield{day}}}%
\newunit}
\renewbibmacro{finentry}{%