diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx | 249 |
1 files changed, 174 insertions, 75 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx b/Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx index 2258c80549e..6b4fb701250 100644 --- a/Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx @@ -1,34 +1,29 @@ % standard-dw.cbx, Dominik Waßenhoven 2010 -\ProvidesFile{standard-dw.cbx}[2010/03/11 v1.3 biblatex citation style] +\ProvidesFile{standard-dw.cbx}[2010/09/21 v1.3a biblatex citation style] \newbool{cbx:authedxref} \newbool{cbx:citedas} \newbool{cbx:edstringincitations} \newbool{cbx:firstfullname} -\newbool{cbx:herename} \newbool{cbx:idemfull} \newbool{cbx:noidem} \newbool{cbx:omiteditor} -\newbool{cbx:omitpages} -\newbool{cbx:option:herename} -\newbool{cbx:option:omitpages} -\newbool{cbx:xrefnoidem} \newbool{cbx:xrefparent:firstcite} \newbool{cbx:shorthandibid} +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} + \DeclareBibliographyOption{citedas}[true]{% \csuse{bool#1}{cbx:citedas}} \DeclareBibliographyOption{edstringincitations}[true]{% \csuse{bool#1}{cbx:edstringincitations}} \DeclareBibliographyOption{firstfullname}[true]{% \csuse{bool#1}{cbx:firstfullname}} -\DeclareBibliographyOption{herename}[true]{% - \csuse{bool#1}{cbx:option:herename}} \DeclareBibliographyOption{omiteditor}[true]{% \csuse{bool#1}{cbx:omiteditor}} -\DeclareBibliographyOption{omitpages}[true]{% - \csuse{bool#1}{cbx:option:omitpages}} \DeclareBibliographyOption{shorthandibid}[true]{% \csuse{bool#1}{cbx:shorthandibid}} @@ -37,12 +32,78 @@ \DeclareEntryOption{shorthandibid}[true]{% \csuse{bool#1}{cbx:shorthandibid}} +\DeclareBibliographyOption{pageref}[true]{% + \setbool{cbx:pageref}{#1}} + +\DeclareBibliographyOption{citepages}[permit]{% + \ifcsdef{cbx@opt@citepages@#1} + {\csuse{cbx@opt@citepages@#1}} + {\PackageError{biblatex} + {Invalid option 'citepages=#1'} + {Valid values are 'permit', 'suppress', 'omit', 'separate'.}}} + +\def\cbx@opt@citepages@permit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@omit{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \ifboolexpr{ + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + test {\iffieldpages{postnote}} + } + {\clearfield{pages}% + \clearfield{pagetotal}} + {}}% + \renewbibmacro*{cite:postnote}{% + \usebibmacro{cite:postnote:ibidpage}}} + +\def\cbx@opt@citepages@separate{% + \providetoggle{cbx:fullcite}% + \renewbibmacro*{cite:citepages}{% + \global\togglefalse{cbx:fullcite}}% + \renewbibmacro*{cite:full:citepages}{% + \global\toggletrue{cbx:fullcite}}% + \renewbibmacro*{cite:postnote}{% + \ifboolexpr{ + togl {cbx:fullcite} + and + test {\iffieldpages{postnote}} + and + test {\ifnumequal{\value{citecount}}{\value{citetotal}}} + and + ( + not test {\iffieldundef{pages}} + or + not test {\iffieldundef{pagetotal}} + ) + } + {\usebibmacro{cite:postnote:pages}} + {\usebibmacro{cite:postnote:ibidpage}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\postnotedelim}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + \ExecuteBibliographyOptions{ autocite=footnote, citedas=true, + citepages=separate, citetracker=true, edstringincitations=true, - herename=true, ibidtracker=constrict, idemtracker=constrict, loccittracker=false, @@ -101,55 +162,56 @@ \DeclareFieldFormat[unpublished]{citetitle}{#1} \DeclareFieldFormat{labelyear}{#1}% e.g., the 'a' in '1995a' -%% herename -\newcommand*{\herenamepunct}{\addcomma\space} - \newbibmacro*{cite:name}{% \printnames{labelname}% - \ifbool{cbx:edstringincitations} - {\usebibmacro{cite:editorstrg/translatorstrg}} - {}% - \setunit*{\citenamepunct}} + \usebibmacro{cite:edstringincitations}} \newbibmacro*{cite:idem}{% \bibstring[\mkidem]{idem\thefield{gender}}% + \usebibmacro{cite:edstringincitations}} + +\newbibmacro*{cite:xref:idem}{% + \bibstring[\mkidem]{idem\thefield{gender}}% + \usebibmacro{cite:edstringincitations}% + \ifuseeditor + {\ifnameundef{editor} + {\ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\clearname{translator}} + {}} + {\clearname{editor}}} + {\ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + } + {\clearname{translator}} + {}}} + +\newbibmacro*{cite:edstringincitations}{% \ifbool{cbx:edstringincitations} {\usebibmacro{cite:editorstrg/translatorstrg}} {}% \setunit{\citenamepunct}} - + \newbibmacro*{cite:editorstrg/translatorstrg}{% \ifthenelse{\ifuseeditor\AND\ifnameundef{author}% \AND\NOT\ifnameundef{editor}} - {\ifdefstring{\bbx@option@editorstring}{brackets}% - {\addspace}% - {\ifdefstring{\bbx@option@editorstring}{parens}% - {\addspace}% - {\addcomma\space}}% + {\usebibmacro{editorstringpunct}% \usebibmacro{editorstrg}% \clearname{editor}} {}% \ifthenelse{\ifusetranslator\AND\ifnameundef{author}% \AND\ifnameundef{editor}% \AND\NOT\ifnameundef{translator}} - {\ifdefstring{\bbx@option@editorstring}{brackets}% - {\addspace}% - {\ifdefstring{\bbx@option@editorstring}{parens}% - {\addspace}% - {\addcomma\space}}% + {\usebibmacro{editorstringpunct}% \usebibmacro{translatorstrg}% \clearname{translator}} {}} -\renewbibmacro*{postnote}{% - \iffieldundef{postnote} - {} - {\ifthenelse{\boolean{cbx:herename}\AND\NOT - \boolean{cbx:omitpages}} - {\addspace} - {\postnotedelim}% - \printfield{postnote}}} - % Option 'nameseen' \newcommand*{\cbx@seennames}{} \newrobustcmd*{\cbx@nameseen}[1]{% @@ -161,7 +223,13 @@ \ifbool{cbx:firstfullname} {\DeclareNameFormat{citeauthor}{% \cbx@ifnameseen{#1#3#5#7} - {\usebibmacro{name:last}{#1}{#3}{#5}{#7}}% + {\ifcase\value{uniquename}% + \usebibmacro{name:last}{#1}{#3}{#5}{#7}% + \or + \ifuseprefix + {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}} + {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}% + \fi}% {\usebibmacro{name:first-last}{#1}{#3}{#5}{#7}% \cbx@nameseen{#1#3#5#7}}% \usebibmacro{name:andothers}} @@ -177,61 +245,92 @@ %% Formatierung von 'ibidem' entsprechend der Option 'ibidemfont' \providecommand*{\mkibid}[1]{% - \ifdefstring{\bbx@option@ibidemfont}{smallcaps}% - {\textsc{#1}}% - {\ifdefstring{\bbx@option@ibidemfont}{italic}% - {\textit{#1}} - {\ifdefstring{\bbx@option@ibidemfont}{bold}% - {\textbf{#1}} - {#1}}}} - -%% pages (berücksichtigt die Option 'omitpages') + \bbx@ibidemfont{#1}} + +%% pages (wichtig für xref) \newbibmacro*{pages}{% - \ifbool{cbx:omitpages} - {}% keine Seitenzahl bei Vollzitat und omitpages=true - {\setunit{\bibpagespunct}% - \printfield{pages}}} - -\renewbibmacro*{chapter+pages}{% - \printfield{chapter}% - \ifbool{cbx:omitpages} - {}% keine Seitenzahl bei Vollzitat und omitpages=true - {\setunit{\bibpagespunct}% - \printfield{pages}}% - \newunit} + \setunit{\bibpagespunct}% + \printfield{pages}} %% in manchen Literaturverweisen (wenn nicht fullcite) %% müssen statt der vollen Namen (Format [byeditor]) %% nur die Nachnamen ausgegeben werden (Format [labelname]) \newbibmacro*{cite:byeditor}{% \ifnameundef{editor} - {} - {\bibstring{byeditor}% + {\ifnameundef{translator} + {} + {\usebibmacro{bytypestrg}{translator}{translator}% + \setunit{\addspace}% + \printnames[labelname]{translator}}} + {\usebibmacro{bytypestrg}{editor}{editor}% \setunit{\addspace}% \printnames[labelname]{editor}}} \newbibmacro*{cite:editor}{% - \ifnameundef{editor} - {} - {\printnames[labelname]{editor}% - \ifbool{cbx:edstringincitations} - {\addspace% - \usebibmacro{editorstrg}} - {\citenamepunct} - \clearname{editor}}} + \ifboolexpr{ + test \ifuseeditor + and + not test {\ifnameundef{editor}} + } + {\ifbool{bbx:edbyidem} + {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND + \NOT\iffirstonpage} + {\usebibmacro{cite:idem}} + {\printnames[labelname]{editor}% + \usebibmacro{cite:edstringincitations}}} + {\printnames[labelname]{editor}% + \usebibmacro{cite:edstringincitations}% + \global\undef\bbx@lasthash}% + \clearname{editor}} + {}% + \ifboolexpr{ + test \ifusetranslator + and + not test {\ifnameundef{translator}} + and + ( not test \ifuseeditor + or + ( test \ifuseeditor + and + test {\ifnameundef{editor}} ) ) + } + {\ifbool{bbx:edbyidem} + {\ifthenelse{\iffieldequals{namehash}{\bbx@lasthash}\AND + \NOT\iffirstonpage} + {\usebibmacro{cite:idem}} + {\printnames[labelname]{translator}% + \usebibmacro{cite:edstringincitations}}} + {\printnames[labelname]{translator}% + \usebibmacro{cite:edstringincitations}% + \global\undef\bbx@lasthash}% + \clearname{translator}} + {}} +\newbibmacro*{cite:postnote:ibidpage}{% + \ifbool{cbx:loccit} + {} + {\usebibmacro{postnote}}} + %% Test, ob author und editor bei xref identisch sind -%% (für xref=true, useeditor=false, edbyidem=true) +%% (für xref=true, useeditor=false oder usetranslator=false, +%% edbyidem=true) \newbibmacro*{authedxrefcheck}{% \iffieldundef{xref} {} {\savefield{xref}{\bbx@tempa}% + \savefield{xref}{\bbx@tempb}% \entrydata{\bbx@tempa}{% \savename{editor}{\bbx@tempa}}% - \ifnameequals{author}{\bbx@tempa}% - {\booltrue{cbx:authedxref}} - {\boolfalse{cbx:authedxref}}}} - + \entrydata{\bbx@tempb}{% + \savename{translator}{\bbx@tempb}}% + \ifboolexpr{ + test {\ifnameequals{author}{\bbx@tempa}} + or + test {\ifnameequals{author}{\bbx@tempb}} + } + {\booltrue{cbx:authedxref}} + {\boolfalse{cbx:authedxref}}}} + %% xref \DeclareCiteCommand{\bbx@xref} {}% |