summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx102
1 files changed, 83 insertions, 19 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
index a6564e7b6e4..e3c644b1d7d 100644
--- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
+++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-trad1.cbx
@@ -1,31 +1,96 @@
-% $Id: verbose-trad1.cbx,v 0.9 2010/02/14 15:42:33 lehman beta $
+% $Id: verbose-trad1.cbx,v 0.9d 2010/09/03 20:11:58 lehman beta $
\ProvidesFile{verbose-trad1.cbx}
-[\abx@cbxid $Id: verbose-trad1.cbx,v 0.9 2010/02/14 15:42:33 lehman beta $]
+[\abx@cbxid $Id: verbose-trad1.cbx,v 0.9d 2010/09/03 20:11:58 lehman beta $]
-\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict,
- idemtracker=constrict,opcittracker=context,
- loccittracker=context,autocite=footnote}
\providecommand*{\mkibid}[1]{#1}
-\newbool{cbx:loccit}
+\newtoggle{cbx:ibidpage}
+\newtoggle{cbx:loccit}
\newbool{cbx:noidem}
\DeclareBibliographyOption{ibidpage}[true]{%
- \ifstrequal{#1}{true}
- {\renewbibmacro*{cite:ibid:page}{\global\booltrue{cbx:loccit}}}
- {\renewbibmacro*{cite:ibid:page}{}}}
+ \settoggle{cbx:ibidpage}{#1}}
\DeclareBibliographyOption{strict}[true]{%
\ifstrequal{#1}{true}
{\ExecuteBibliographyOptions{ibidtracker=constrict,idemtracker=constrict}}
{\ExecuteBibliographyOptions{ibidtracker=context,idemtracker=context}}}
+\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{citetracker=context,ibidtracker=constrict,
+ idemtracker=constrict,opcittracker=context,
+ loccittracker=context,autocite=footnote,
+ citepages=permit}
+
\newbibmacro*{cite:save}{%
\csxdef{cbx@lastcite@\thefield{entrykey}}{\the\value{instcount}}%
\global\boolfalse{cbx:noidem}}
\newbibmacro*{cite}{%
- \global\boolfalse{cbx:loccit}%
+ \usebibmacro{cite:citepages}%
+ \global\togglefalse{cbx:loccit}%
\bibhypertarget{cite\the\value{instcount}}{%
\ifciteseen
{\iffieldundef{shorthand}
@@ -48,6 +113,7 @@
\usebibmacro{cite:save}}}}
\newbibmacro*{cite:full}{%
+ \usebibmacro{cite:full:citepages}%
\printtext[bibhypertarget]{%
\usedriver
{\DeclareNameAlias{sortname}{default}}
@@ -56,11 +122,11 @@
\newbibmacro*{cite:name}{%
\printnames{labelname}%
- \setunit*{\addcomma\space}}
+ \setunit*{\nametitledelim}}
\newbibmacro*{cite:idem}{%
\bibstring[\mkibid]{idem\thefield{gender}}%
- \setunit{\addcomma\space}}
+ \setunit{\nametitledelim}}
\newbibmacro*{cite:title}{%
\printtext[bibhyperlink]{%
@@ -73,24 +139,22 @@
\printtext{%
\bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
\bibstring[\mkibid]{loccit}}}%
- \global\booltrue{cbx:loccit}}
+ \global\toggletrue{cbx:loccit}}
\newbibmacro*{cite:ibid}{%
\printtext{%
\bibhyperlink{cite\csuse{cbx@lastcite@\thefield{entrykey}}}{%
\bibstring[\mkibid]{ibidem}}}%
- \ifloccit
- {\usebibmacro{cite:ibid:page}}
+ \ifboolexpr{ test {\ifloccit} and togl {cbx:ibidpage} }
+ {\global\toggletrue{cbx:loccit}}
{}}
-\newbibmacro*{cite:ibid:page}{}
-
\newbibmacro*{cite:shorthand}{%
\printtext[bibhyperlink]{\printfield{shorthand}}%
\global\booltrue{cbx:noidem}}
-\newbibmacro*{cite:postnote}{%
- \ifbool{cbx:loccit}
+\newbibmacro*{cite:postnote:ibidpage}{%
+ \iftoggle{cbx:loccit}
{}
{\usebibmacro{postnote}}}