diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx | 95 |
1 files changed, 81 insertions, 14 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx index 8744c605da3..55ed02cc5ea 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx @@ -1,23 +1,87 @@ -% $Id: verbose-note.cbx,v 0.9 2010/02/14 15:42:33 lehman beta $ +% $Id: verbose-note.cbx,v 0.9d 2010/09/03 20:11:58 lehman beta $ \ProvidesFile{verbose-note.cbx} -[\abx@cbxid $Id: verbose-note.cbx,v 0.9 2010/02/14 15:42:33 lehman beta $] - -\ExecuteBibliographyOptions{citetracker=context,singletitle,autocite=footnote} -\newbool{cbx:pageref} +[\abx@cbxid $Id: verbose-note.cbx,v 0.9d 2010/09/03 20:11:58 lehman beta $] \DeclareFieldFormat{bibhyperlink}{% \bibhyperlink{\thefield{entrykey}:\csuse{cbx@\iffootnote{f}{t}@\thefield{entrykey}}}{#1}} \DeclareFieldFormat{bibhypertarget}{% \bibhypertarget{\thefield{entrykey}:\the\value{instcount}}{#1}} +\newtoggle{cbx:pageref} +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} \DeclareBibliographyOption{pageref}[true]{% - \setbool{cbx:pageref}{#1}% - \ifbool{cbx:pageref} + \settoggle{cbx:pageref}{#1}% + \iftoggle{cbx:pageref} {\ExecuteBibliographyOptions{pagetracker}} {}} +\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{postnote}}} + +\def\cbx@opt@citepages@suppress{% + \renewbibmacro*{cite:citepages}{}% + \renewbibmacro*{cite:full:citepages}{% + \clearfield{pages}% + \clearfield{pagetotal}}% + \renewbibmacro*{cite:postnote}{\usebibmacro{postnote}}} + +\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{postnote}}} + +\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{postnote}}} + \providebibmacro*{cite:postnote:pages}{% + \setunit{\postnotedelim}% + \bibstring{thiscite}% + \setunit{\addspace}% + \printfield{postnote}}} + +\ExecuteBibliographyOptions{citetracker=context,singletitle,autocite=footnote,citepages=permit} + \newbibmacro*{cite}{% + \usebibmacro{cite:citepages}% \ifciteseen {\iffieldundef{shorthand} {\usebibmacro{cite:short}} @@ -29,6 +93,7 @@ \csxdef{cbx@t@\thefield{entrykey}}{\the\value{instcount}}} \newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% \printtext[bibhypertarget]{% \usedriver {\DeclareNameAlias{sortname}{default}} @@ -37,7 +102,7 @@ \newbibmacro*{cite:short}{% \printnames{labelname}% - \setunit*{\addcomma\space}% + \setunit*{\nametitledelim}% \printtext[bibhyperlink]{% \printfield[citetitle]{labeltitle}}} @@ -45,6 +110,7 @@ \printtext[bibhyperlink]{\printfield{shorthand}}} \newbibmacro*{footcite}{% + \usebibmacro{cite:citepages}% \ifciteseen {\iffieldundef{shorthand} {\usebibmacro{footcite:note}} @@ -57,6 +123,7 @@ \label{cbx@\the\value{instcount}}} \newbibmacro*{footcite:full}{% + \usebibmacro{cite:full:citepages}% \printtext[bibhypertarget]{% \usedriver {\DeclareNameAlias{sortname}{default}} @@ -69,13 +136,13 @@ {\printnames{labelname}}% \ifsingletitle {} - {\setunit*{\addcomma\space}% + {\setunit*{\nametitledelim}% \printfield[title]{labeltitle}}% \setunit*{\addcomma\space}% \printtext{% \bibstring{seenote}\addnbspace \ref{cbx@\csuse{cbx@f@\thefield{entrykey}}}% - \ifbool{cbx:pageref} + \iftoggle{cbx:pageref} {\ifsamepage{\the\value{instcount}} {\csuse{cbx@f@\thefield{entrykey}}} {} @@ -93,7 +160,7 @@ {\usebibmacro{footcite}} {\usebibmacro{cite}}} {\multicitedelim} - {\usebibmacro{postnote}} + {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\parencite}[\mkbibparens] {\usebibmacro{prenote}} @@ -102,20 +169,20 @@ {\usebibmacro{footcite}} {\usebibmacro{cite}}} {\multicitedelim} - {\usebibmacro{postnote}} + {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\footcite}[\mkbibfootnote] {\usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{footcite}} {\multicitedelim} - {\usebibmacro{postnote}} + {\usebibmacro{cite:postnote}} \DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext] {\usebibmacro{prenote}} {\usebibmacro{citeindex}% \usebibmacro{footcite}} {\multicitedelim} - {\usebibmacro{postnote}} + {\usebibmacro{cite:postnote}} \endinput |