summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-dw/cbx/standard-dw.cbx
diff options
context:
space:
mode:
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.cbx249
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}
{}%