summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-note.cbx
diff options
context:
space:
mode:
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.cbx95
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