diff options
author | Karl Berry <karl@freefriends.org> | 2010-09-06 22:29:57 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-09-06 22:29:57 +0000 |
commit | 240dbb5ee820f2e77e4106bf872f363540c413e2 (patch) | |
tree | 3921b3f18013915f30f418d31199a3770604a0db /Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx | |
parent | 6892558c73756d9f24023e6269e025fa6f3cf15d (diff) |
biblatex 0.9d (4sep10)
git-svn-id: svn://tug.org/texlive/trunk@19592 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx | 100 |
1 files changed, 86 insertions, 14 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx index 1a06a81f20b..ea26e14379c 100644 --- a/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx +++ b/Master/texmf-dist/tex/latex/biblatex/cbx/verbose-ibid.cbx @@ -1,36 +1,108 @@ -% $Id: verbose-ibid.cbx,v 0.9 2010/02/14 15:42:33 lehman beta $ +% $Id: verbose-ibid.cbx,v 0.9d 2010/09/03 20:11:58 lehman beta $ \ProvidesFile{verbose-ibid.cbx} -[\abx@cbxid $Id: verbose-ibid.cbx,v 0.9 2010/02/14 15:42:33 lehman beta $] - -\ExecuteBibliographyOptions{citetracker=context,ibidtracker=constrict, - pagetracker,autocite=footnote} -\providecommand*{\mkibid}[1]{#1} -\newbool{cbx:loccit} -\newcommand*{\cbx@resetcount}{0} +[\abx@cbxid $Id: verbose-ibid.cbx,v 0.9d 2010/09/03 20:11:58 lehman beta $] \InitializeCitationStyle{\numgdef{\cbx@resetcount}{\cbx@resetcount+1}} \DeclareFieldFormat{bibhyperlink}{% \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} \DeclareFieldFormat{bibhypertarget}{% \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{entrykey}}{#1}} +\newcommand*{\cbx@resetcount}{0} +\providecommand*{\mkibid}[1]{#1} +\newtoggle{cbx:loccit} +\newbibmacro*{cite:citepages}{} +\newbibmacro*{cite:full:citepages}{} +\newbibmacro*{cite:postnote}{} \DeclareBibliographyOption{ibidpage}[true]{% \ifstrequal{#1}{true} {\ExecuteBibliographyOptions{loccittracker=constrict}} {\ExecuteBibliographyOptions{loccittracker=false}}} +\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, + pagetracker,autocite=footnote,citepages=permit} + \newbibmacro*{cite}{% - \global\boolfalse{cbx:loccit}% + \usebibmacro{cite:citepages}% + \global\togglefalse{cbx:loccit}% \ifciteseen {\iffieldundef{shorthand} - {\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage} + {\ifboolexpr{ + test {\ifciteibid} + and + not test {\iffirstonpage} + } {\usebibmacro{cite:ibid}} {\usebibmacro{cite:short}}} {\usebibmacro{cite:shorthand}}} {\usebibmacro{cite:full}}} \newbibmacro*{cite:full}{% + \usebibmacro{cite:full:citepages}% \printtext[bibhypertarget]{% \usedriver {\DeclareNameAlias{sortname}{default}} @@ -39,22 +111,22 @@ \newbibmacro*{cite:short}{% \printnames{labelname}% - \setunit*{\addcomma\space}% + \setunit*{\nametitledelim}% \printtext[bibhyperlink]{% \printfield[citetitle]{labeltitle}}} \newbibmacro*{cite:ibid}{% \printtext[bibhyperlink]{\bibstring[\mkibid]{ibidem}}% \ifloccit - {\global\booltrue{cbx:loccit}} + {\global\toggletrue{cbx:loccit}} {}} \newbibmacro*{cite:shorthand}{% \printtext[bibhyperlink]{% \printfield{shorthand}}} -\newbibmacro*{cite:postnote}{% - \ifbool{cbx:loccit} +\newbibmacro*{cite:postnote:ibidpage}{% + \iftoggle{cbx:loccit} {} {\usebibmacro{postnote}}} |