From 7d3e52c3d1f706817bb17d8ce36fc9e2fdadc578 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 22 Sep 2010 23:35:08 +0000 Subject: biblatex-dw (22sep10) git-svn-id: svn://tug.org/texlive/trunk@19846 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/biblatex-dw/cbx/authortitle-dw.cbx | 245 +++++++++----------- .../tex/latex/biblatex-dw/cbx/footnote-dw.cbx | 175 ++++++--------- .../tex/latex/biblatex-dw/cbx/standard-dw.cbx | 249 ++++++++++++++------- 3 files changed, 339 insertions(+), 330 deletions(-) (limited to 'Master/texmf-dist/tex/latex/biblatex-dw/cbx') diff --git a/Master/texmf-dist/tex/latex/biblatex-dw/cbx/authortitle-dw.cbx b/Master/texmf-dist/tex/latex/biblatex-dw/cbx/authortitle-dw.cbx index 3111bedb54c..b70030ddc5c 100644 --- a/Master/texmf-dist/tex/latex/biblatex-dw/cbx/authortitle-dw.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-dw/cbx/authortitle-dw.cbx @@ -1,6 +1,6 @@ % authortitle-dw.cbx, Dominik Waßenhoven 2010 -\ProvidesFile{authortitle-dw.cbx}[2010/03/11 v1.3 biblatex citation style] +\ProvidesFile{authortitle-dw.cbx}[2010/09/21 v1.3a biblatex citation style] \RequireCitationStyle{standard-dw} @@ -10,7 +10,7 @@ \csuse{bool#1}{cbx:firstfull}} \newbibmacro*{cite}{% - \global\boolfalse{cbx:herename}% + \usebibmacro{cite:citepages}% \global\boolfalse{cbx:loccit}% \global\let\cbx@tempa\empty \ifbool{cbx:firstfull} @@ -32,15 +32,13 @@ {} {\usebibmacro{cite:name}}% \usebibmacro{cite:title}}% - \ifuseeditor + \ifbool{cbx:omiteditor} {} - {\ifbool{cbx:omiteditor} - {} - {\ifnameundef{labelname} - {\newunit - \usebibmacro{cite:byeditor}} - {}}}% - \usebibmacro{cite:save}}}% + {\ifnameundef{labelname} + {\newunit + \usebibmacro{cite:byeditor}} + {}}% + \usebibmacro{cite:save}}}% {\ifbool{cbx:shorthandibid}% {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}% {\usebibmacro{cite:ibid}} @@ -53,31 +51,19 @@ {\usebibmacro{cite:idem}% \booltrue{cbx:idemfull}} {}% - \printtext[bibhyperref]{\usebibmacro{cite:full}} + \printtext[bibhyperref]{\usebibmacro{cite:full}}% \usebibmacro{cite:save}} \newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% \usedriver - {\ifbool{cbx:option:omitpages} - {\global\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}% \iffieldundef{shorthand} {} {\ifbool{cbx:citedas} {\addspace\usebibmacro{shorthandintro}} - {}}% - \iffieldundef{postnote} - {}% - {\iffieldundef{pages} - {}% - {\ifthenelse{\boolean{cbx:option:herename}\AND\NOT - \boolean{cbx:omitpages}} - {\global\booltrue{cbx:herename}% - \herenamepunct% - \bibstring{herename}} - {}}}} + {}}} \newbibmacro*{cite:shorthand}{% \cbx@tempa @@ -87,18 +73,18 @@ \newbibmacro*{textcite}{% \global\boolfalse{cbx:loccit}% \ifnameundef{labelname} - {\gdef\cbx@tempa{% - \global\booltrue{cbx:parens}% - \addspace\bibleftparen}% - \BibliographyWarning{No author or editor given for \textcite}% - \textbf{\thefield{entrykey}}} + {\blxdw@warning@noline{No author or editor given for \textcite}% + \textbf{\thefield{entrykey}}} {\ifbool{cbx:firstfullname} {\printnames[citeauthor]{labelname}} {\printnames{labelname}}% - \gdef\cbx@tempa{% + \setunit{% \global\booltrue{cbx:parens}% - \addspace\bibleftparen}% + \addspace\bibopenparen}% \usebibmacro{cite:save}}% + \ifnumequal{\value{citecount}}{1} + {\usebibmacro{prenote}} + {}% \iffieldundef{shorthand} {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} {\usebibmacro{cite:ibid}} @@ -113,47 +99,40 @@ \ifbool{cbx:firstfull} {\ifciteseen {\iffieldundef{shorthand} - {\ifuseeditor - {\ifnameundef{labelname} - {}% - {\ifbool{cbx:xrefnoidem} - {\usebibmacro{cite:editor} - \citenamepunct}% - {\usebibmacro{cite:idem}}}} + {\ifnameundef{labelname} {}% + {\ifbool{xrefidem} + {\usebibmacro{cite:xref:idem}}% + {\usebibmacro{cite:editor} + \citenamepunct}}% \usebibmacro{cite:title}% - \ifuseeditor - {} - {\ifbool{cbx:omiteditor} - {} - {\ifbool{cbx:xrefnoidem} - {\newunit - \usebibmacro{cite:byeditor}} - {\ifbool{bbx:edbyidem} - {\newunit - \bibstring{byeditor}% - \setunit{\addspace}% - \bibstring[\mkidem]{idemdat\thefield{gender}}} - {\newunit - \usebibmacro{cite:byeditor}}}}}}% + \ifnameundef{labelname} + {\ifboolexpr{ + bool {xrefidem} + and + bool {bbx:edbyidem} + } + {\newunit + \bibstring{byeditor}% + \setunit{\addspace}% + \bibstring[\mkidem]{idemdat\thefield{gender}}} + {\newunit + \usebibmacro{cite:byeditor}}} + {}} {\usebibmacro{cite:shorthand}}}% - {\ifbool{cbx:xrefnoidem} - {\usebibmacro{cite:fullxref}}% - {\ifbool{bbx:edbyidem} - {\usebibmacro{cite:fullxrefidem}}% - {\usebibmacro{cite:fullxref}}}}}% + {\ifbool{xrefidem} + {\ifbool{bbx:edbyidem} + {\usebibmacro{cite:fullxrefidem}}% + {\usebibmacro{cite:fullxref}}}% + {\usebibmacro{cite:fullxref}}}}% {\iffieldundef{shorthand} - {\ifuseeditor - {\ifnameundef{labelname} - {}% - {\ifbool{cbx:xrefnoidem} - {\usebibmacro{cite:editor}% - \citenamepunct}% - {\ifbool{bbx:edbyidem} - {\usebibmacro{cite:idem}}% - {\printnames{labelname}% - \citenamepunct}}}} - {}% + {\ifbool{xrefidem} + {\ifbool{bbx:edbyidem} + {\usebibmacro{cite:idem}}% + {\printnames{labelname}% + \citenamepunct}}% + {\usebibmacro{cite:editor}% + \citenamepunct}% \usebibmacro{cite:title}% \ifuseeditor {} @@ -169,14 +148,14 @@ {\ifuseeditor {\ifnameundef{labelname} {} - {\ifbool{bbx:xrefnoidem}% - {\printnames{labelname}% - \printtext{\labelnamepunct}}% + {\ifbool{xrefidem}% {\ifbool{bbx:edbyidem} {\midsentence% \usebibmacro{cite:idem}}% {\printnames{labelname}% - \printtext{\labelnamepunct}}}}} + \printtext{\labelnamepunct}}}% + {\printnames{labelname}% + \printtext{\labelnamepunct}}}} {}% \iffieldundef{shorttitle}% {\printfield{title}}% @@ -187,24 +166,22 @@ {} {\ifnameundef{editor} {} - {\ifbool{bbx:xrefnoidem}% - {\newunit - \usebibmacro{byeditor}}% - {\ifbool{bbx:edbyidem} + {\ifbool{xrefidem}% + {\ifbool{bbx:edbyidem} {\newunit \bibstring{byeditor}% \setunit{\addspace}% \bibstring[\mkidem]{idemdat\thefield{gender}}} {\newunit - \usebibmacro{byeditor}}}}}}}% + \usebibmacro{byeditor}}}% + {\newunit + \usebibmacro{byeditor}}}}}}% {\printtext[bibhyperref]{\printfield{shorthand}}}}} \newbibmacro*{cite:fullxref}{% + \usebibmacro{cite:full:citepages}% \usedriver - {\ifbool{cbx:option:omitpages} - {\global\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {xref\thefield{entrytype}}% \iffieldundef{shorthand} {} @@ -213,77 +190,34 @@ {}}}% \newbibmacro*{cite:fullxrefidem}{% + \usebibmacro{cite:full:citepages}% \usedriver - {\ifbool{cbx:option:omitpages} - {\global\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}% - \clearfield{editor}} + {\DeclareNameAlias{sortname}{default}} {xrefidem\thefield{entrytype}}% \iffieldundef{shorthand} {} {\ifbool{cbx:citedas} {\addspace\usebibmacro{shorthandintro}} - {}}}% - -\DeclareCiteCommand{\textcite} - {\boolfalse{cbx:parens}% - \usebibmacro{prenote}} - {\usebibmacro{citeindex}% - \usebibmacro{textcite}} - {\ifbool{cbx:parens} - {\bibrightparen\boolfalse{cbx:parens}} - {}% - \multicitedelim} - {\iffieldundef{postnote} - {\ifbool{cbx:parens} - {\bibrightparen} - {}}% - {\ifbool{cbx:parens} - {\postnotedelim} - {\addspace\bibleftparen}% - \printfield{postnote}\bibrightparen}} + {}}} \DeclareCiteCommand{\fullcite} - {\usebibmacro{prenote}} + {\usebibmacro{prenote}% + \usebibmacro{cite:full:citepages}} {\usedriver - {\ifbool{cbx:option:omitpages} - {\global\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}} {\multicitedelim} - {\iffieldundef{postnote} - {} - {\ifthenelse{\boolean{cbx:option:herename}\AND\NOT - \(\iffieldundef{pages}\OR - \boolean{cbx:omitpages}\)} - {\global\booltrue{cbx:herename}% - \herenamepunct% - \bibstring{herename}} - {\global\boolfalse{cbx:herename}}% - \usebibmacro{postnote}}} + {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\footfullcite}[\mkbibfootnote] {\bibsentence - \usebibmacro{prenote}} + \usebibmacro{prenote}% + \usebibmacro{cite:full:citepages}} {\usedriver - {\ifbool{cbx:option:omitpages} - {\global\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}} {\multicitedelim} - {\iffieldundef{postnote} - {} - {\ifthenelse{\boolean{cbx:option:herename}\AND\NOT - \(\iffieldundef{pages}\OR - \boolean{cbx:omitpages}\)} - {\global\booltrue{cbx:herename}% - \herenamepunct% - \bibstring{herename}} - {\global\boolfalse{cbx:herename}}% - \usebibmacro{postnote}}} + {\usebibmacro{cite:postnote}} \newbibmacro*{citetitle}{% \global\boolfalse{cbx:loccit}% @@ -298,12 +232,12 @@ \cbx@tempa \ifsingletitle {\setunit{}}% Löschen des \citenamepunct, falls kein Titel ausgegeben wird - {\printtext[bibhyperlink]{% + {\printtext[bibhyperref]{% \printfield[citetitle]{labeltitle}}}} \newbibmacro*{cite:title:force}{% \cbx@tempa - \printtext[bibhyperlink]{% + \printtext[bibhyperref]{% \printfield[citetitle]{labeltitle}}} %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% %%%%% @@ -325,10 +259,15 @@ {\global\booltrue{cbx:loccit}} {}} -\newbibmacro*{cite:postnote}{% - \ifbool{cbx:loccit} - {}% - {\usebibmacro{postnote}}} +\newbibmacro*{textcite:postnote}{% + \ifthenelse{\iffieldundef{postnote}\OR\boolean{cbx:loccit}} + {\ifbool{cbx:parens} + {\bibcloseparen} + {}} + {\ifbool{cbx:parens} + {\postnotedelim} + {\addspace\bibopenparen}% + \printfield{postnote}\bibcloseparen}} \DeclareCiteCommand{\cite} {\usebibmacro{prenote}} @@ -359,11 +298,27 @@ {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\footcite}[\mkbibfootnote] - {\bibsentence - \usebibmacro{prenote}} + {\usebibmacro{prenote}} + {\usebibmacro{citeindex}% + \usebibmacro{cite}} + {\multicitedelim} + {\usebibmacro{cite:postnote}} + +\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] + {\usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{cite}} {\multicitedelim} {\usebibmacro{cite:postnote}} +\DeclareCiteCommand{\textcite} + {\boolfalse{cbx:parens}} + {\usebibmacro{citeindex}% + \usebibmacro{textcite}} + {\ifbool{cbx:parens} + {\bibcloseparen\boolfalse{cbx:parens}} + {}% + \multicitedelim} + {\usebibmacro{textcite:postnote}} + \endinput diff --git a/Master/texmf-dist/tex/latex/biblatex-dw/cbx/footnote-dw.cbx b/Master/texmf-dist/tex/latex/biblatex-dw/cbx/footnote-dw.cbx index 4df49f87aba..f8545a1ca85 100644 --- a/Master/texmf-dist/tex/latex/biblatex-dw/cbx/footnote-dw.cbx +++ b/Master/texmf-dist/tex/latex/biblatex-dw/cbx/footnote-dw.cbx @@ -1,17 +1,14 @@ % footnote-dw.cbx, Dominik Waßenhoven 2010 -\ProvidesFile{footnote-dw.cbx}[2010/03/11 v1.3 biblatex citation style] +\ProvidesFile{footnote-dw.cbx}[2010/09/21 v1.3a biblatex citation style] \RequireCitationStyle{standard-dw} \newbool{cbx:pageref} -\DeclareBibliographyOption{pageref}[true]{% - \setbool{cbx:pageref}{#1}} - \ExecuteBibliographyOptions{ - uniquename=false, % damit bei idem=false Vor- und Nachname gesetzt werden! loccittracker=true,% für die Option 'ibidpage' + uniquename=false, % damit bei idem=false Vor- und Nachname gesetzt werden! } % Kommandos zum Verpacken der Zitate in Fußnoten @@ -30,14 +27,14 @@ {\booltrue{cbx:parencitefoot}% \begingroup \let\mkbibparens\mkbibbrackets - \bibleftparen#1\bibrightparen + \bibopenparen#1\bibcloseparen \endgroup} {\unspace\footnote{% \toggletrue{blx@footnote}% \bibsentence#1\addperiod}}} \newbibmacro*{cite}{% - \global\boolfalse{cbx:herename}% + \usebibmacro{cite:citepages}% \global\boolfalse{cbx:loccit}% \bibhypertarget{cite\the\value{instcount}}{% \ifciteseen @@ -79,56 +76,43 @@ \label{cbx@\the\value{instcount}}} \newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% \usebibmacro{footref}% - \ifuseeditor - {\ifnameundef{editor} - {\setunit{}} - {}}% - {\setunit{}}% \printtext[bibhypertarget]{% \usedriver - {\ifbool{cbx:option:omitpages} - {\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}% \iffieldundef{shorthand} {} {\ifbool{cbx:citedas} {\addspace\usebibmacro{shorthandintro}} - {}}% - \iffieldundef{pages} - {}% - {\iffieldundef{postnote} - {}% - {\ifthenelse{\boolean{cbx:option:herename}\AND\NOT - \boolean{cbx:omitpages}} - {\global\booltrue{cbx:herename}% - \herenamepunct% - \bibstring{herename}} - {}}}}} - + {}}}} + \newbibmacro*{cite:title}{% \ifsingletitle {\setunit{}}% Löschen des \citenamepunct, falls kein Titel ausgegeben wird {\printtext[bibhyperlink]{% \printfield[citetitle]{labeltitle}}}% - \ifuseeditor + \ifboolexpr{ + test \ifuseeditor + or + test \ifusetranslator + } {} {\ifbool{cbx:omiteditor} {} {\ifnameundef{editor} {} - {\ifbool{bbx:xrefnoidem}% - {\newunit - \usebibmacro{cite:byeditor}}% - {\ifbool{bbx:edbyidem} + {\ifbool{xrefidem}% + {\ifbool{bbx:edbyidem} {\newunit \bibstring{byeditor}% \setunit{\addspace}% \bibstring[\mkidem]{idemdat\thefield{gender}}} {\newunit - \usebibmacro{cite:byeditor}}}}}}% + \usebibmacro{cite:byeditor}}}% + {\newunit + \usebibmacro{cite:byeditor}}}}}% \usebibmacro{cite:seenote}} \newbibmacro*{cite:shorthand}{% @@ -164,29 +148,24 @@ \newbibmacro*{cite:xref}{% \ifciteseen {\iffieldundef{shorthand} - {\ifuseeditor - {\ifnameundef{labelname} - {}% - {\ifbool{cbx:xrefnoidem} - {\usebibmacro{cite:editor}% - \citenamepunct}% - {\usebibmacro{cite:idem}}}} - {}% + {\ifnameundef{labelname} + {} + {\ifbool{xrefidem} + {\usebibmacro{cite:xref:idem}} + {\usebibmacro{cite:editor}% + \citenamepunct}}% \usebibmacro{cite:title}} - {\usebibmacro{cite:shorthand}}}% - {\ifbool{cbx:xrefnoidem} - {\usebibmacro{cite:fullxref}}% + {\usebibmacro{cite:shorthand}}} + {\ifbool{xrefidem} {\ifbool{bbx:edbyidem} {\usebibmacro{cite:fullxrefidem}}% - {\usebibmacro{cite:fullxref}}}}}% + {\usebibmacro{cite:fullxref}}}% + {\usebibmacro{cite:fullxref}}}} \newbibmacro*{cite:fullxref}{% \usebibmacro{footref}% \usedriver - {\ifbool{cbx:option:omitpages} - {\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {xref\thefield{entrytype}}% \iffieldundef{shorthand} {} @@ -197,11 +176,7 @@ \newbibmacro*{cite:fullxrefidem}{% \usebibmacro{footref}% \usedriver - {\ifbool{cbx:option:omitpages} - {\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}% - \clearfield{editor}} + {\DeclareNameAlias{sortname}{default}} {xrefidem\thefield{entrytype}}% \iffieldundef{shorthand} {} @@ -214,38 +189,44 @@ \AtBeginBibliography{% \renewbibmacro*{cite:xref}{% \iffieldundef{shorthand}% - {\ifuseeditor + {\ifboolexpr{ + test \ifuseeditor + or + test \ifusetranslator + } {\ifnameundef{labelname} {} - {\ifbool{bbx:xrefnoidem}% - {\printnames{labelname}% - \printtext{\labelnamepunct}}% + {\ifbool{xrefidem}% {\ifbool{bbx:edbyidem} {\midsentence% - \usebibmacro{cite:idem}}% + \usebibmacro{cite:xref:idem}}% {\printnames{labelname}% - \printtext{\labelnamepunct}}}}} + \printtext{\labelnamepunct}}}% + {\printnames{labelname}% + \printtext{\labelnamepunct}}}} {}% \iffieldundef{shorttitle}% {\printfield{title}}% {\printfield{shorttitle}}% - \ifuseeditor + \ifboolexpr{ + test \ifuseeditor + or + test \ifusetranslator + } {} {\ifbool{cbx:omiteditor} {} - {\ifnameundef{editor} - {} - {\ifbool{bbx:xrefnoidem}% - {\newunit - \usebibmacro{byeditor}}% - {\ifbool{bbx:edbyidem} - {\newunit - \bibstring{byeditor}% - \setunit{\addspace}% - \bibstring[\mkidem]{idemdat\thefield{gender}}} - {\newunit - \usebibmacro{byeditor}}}}}}}% - {\printtext[bibhyperref]{\printfield{shorthand}}}}} + {\ifbool{xrefidem}% + {\ifbool{bbx:edbyidem} + {\newunit + \bibstring{byeditor}% + \setunit{\addspace}% + \bibstring[\mkidem]{idemdat\thefield{gender}}} + {\newunit + \usebibmacro{byeditor+others}}} + {\newunit + \usebibmacro{byeditor+others}}}}}% + {\printtext[bibhyperref]{\printfield{shorthand}}}}} \DeclareCiteCommand{\cite}[\mkfootnotecite] {\usebibmacro{prenote}} @@ -270,45 +251,24 @@ {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\fullcite}[\mkfootnotecite] - {\usebibmacro{prenote}} + {\usebibmacro{prenote}% + \usebibmacro{cite:full:citepages}} {\usedriver - {\ifbool{cbx:option:omitpages} - {\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}} {\multicitedelim} - {\iffieldundef{postnote} - {} - {\ifthenelse{\boolean{cbx:option:herename}\AND\NOT - \(\iffieldundef{pages}\OR - \boolean{cbx:omitpages}\)} - {\global\booltrue{cbx:herename}% - \herenamepunct% - \bibstring{herename}} - {\global\boolfalse{cbx:herename}}% - \usebibmacro{postnote}}} + {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\footfullcite}[\mkfootnotecite] {\bibsentence - \usebibmacro{prenote}} + \usebibmacro{prenote}% + \usebibmacro{cite:full:citepages}} {\usedriver - {\ifbool{cbx:option:omitpages} - {\booltrue{cbx:omitpages}} - {}% - \DeclareNameAlias{sortname}{default}} + {\DeclareNameAlias{sortname}{default}} {\thefield{entrytype}}} {\multicitedelim} - {\iffieldundef{postnote} - {} - {\ifthenelse{\boolean{cbx:option:herename}\AND\NOT - \(\iffieldundef{pages}\OR - \boolean{cbx:omitpages}\)} - {\global\booltrue{cbx:herename}% - \herenamepunct% - \bibstring{herename}} - {\global\boolfalse{cbx:herename}}% - \usebibmacro{postnote}}} + {\usebibmacro{cite:postnote}} + \DeclareMultiCiteCommand{\cites}[\mkfootnotecite]{\cite}{\multicitedelim} \DeclareMultiCiteCommand{\parencites}[\mkparencite]{\parencite}{\multicitedelim} @@ -343,10 +303,5 @@ {}} \newbibmacro*{cite:ibid:page}{} - -\newbibmacro*{cite:postnote}{% - \ifbool{cbx:loccit} - {} - {\usebibmacro{postnote}}} \endinput 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} {}% -- cgit v1.2.3