summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-opcit-booktitle
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-opcit-booktitle')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty140
1 files changed, 124 insertions, 16 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty b/Master/texmf-dist/tex/latex/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty
index 0a1f524a728..a373b4927c1 100644
--- a/Master/texmf-dist/tex/latex/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty
+++ b/Master/texmf-dist/tex/latex/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty
@@ -15,9 +15,16 @@
%
% The Current Maintainer of this work is Maïeul Rouquette
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{biblatex-opcit-booktitle}[2015/07/02 v1.1.1 Manage op. cit. when using subentry]
+\ProvidesPackage{biblatex-opcit-booktitle}[2015/08/30 v1.2.0 Manage op. cit. when using subentry]
\RequirePackage{xpatch}
+\DeclareFieldFormat{bibhypertarget:crossref}{%
+ \bibhypertarget{\iffootnote{f}{t}:\cbx@resetcount:\thefield{crossref}}{#1}}
+
+\DeclareFieldFormat{bibhyperlink:crossref}{%
+ \bibhyperlink{\iffootnote{f}{t}:\cbx@resetcount:\thefield{crossref}}{#1}}
+
+
\newbibmacro*{cite:seen:related}{%
{\xifinlistcs{\thefield{crossref}}{blx@bsee@\the\c@refsection}%
{}%
@@ -28,6 +35,7 @@
{#2}%
{#1}}
+% verbose-trad-1 and verbose-trad2
\xpatchbibmacro{cite}%
{\usebibmacro{cite:full}%
\usebibmacro{cite:save}}%
@@ -35,7 +43,12 @@
{}%
{}%
-
+% verbose-trad3. Not that lines must be applied AFTER the previous one
+\xpatchbibmacro{cite}%
+ {\usebibmacro{cite:full}}%
+ {\usebibmacro{cite:test:ifrelated:verbose-trad3}}%
+ {}%
+ {}%
\newbibmacro*{cite:test:ifrelated}%
{\ifboolexpr {%
test {\iffieldundef{crossref}}%
@@ -46,10 +59,27 @@
{\usebibmacro{cite:full}%
\usebibmacro{cite:save}}%
{\ifrelatedunseen%
- {\usebibmacro{cite:seen:related}%
+ {\printtext[bibhypertarget:crossref]{%
+ \usebibmacro{cite:seen:related}%
\usebibmacro{cite:full}%
- \usebibmacro{cite:save}}%
+ \usebibmacro{cite:save}}}%
{\usebibmacro{related:info}}}}
+
+\newbibmacro*{cite:test:ifrelated:verbose-trad3}%
+ {\ifboolexpr {%
+ test {\iffieldundef{crossref}}%
+ or not (test {\ifentrytype{inbook}}%
+ or test {\ifentrytype{incollection}}%
+ or test {\ifentrytype{inproceedings}}%
+ or test {\ifentrytype{bookinbook}})}%
+ {\usebibmacro{cite:full}%
+ }%
+ {\ifrelatedunseen%
+ {\printtext[bibhypertarget:crossref]{%
+ \usebibmacro{cite:seen:related}%
+ \usebibmacro{cite:full}%
+ }}%
+ {\usebibmacro{related:info}}}}
\newbibmacro*{related:info}{%
% Here an hack to use the short form of the booktitle without recurring to a .dbx file in order to define new fields (because recurring to a .dbx file for such feature is complex for a little feature)
@@ -61,16 +91,21 @@
}%
{}%
\usebibmacro{cite:full:citepages}%
- \usedriver%
+ \printtext[bibhypertarget]{\usedriver%
{\DeclareNameAlias{sortname}{default}}%
- {inbook:rel}%
+ {inbook:rel:\blx@cbxfile}}%
}
-\DeclareBibliographyDriver{inbook:rel}{%
+\DeclareBibliographyDriver{inbook:rel:verbose-trad1}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
- \usebibmacro{author/translator+others}%
- \setunit{\labelnamepunct}\newblock
+ \ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}%
+ {\usebibmacro{cite:idem}}%
+ {\ifnameundef{labelname}%
+ {}%
+ {\usebibmacro{cite:name}}%
+ }%
+ \newblock%
\usebibmacro{title}%
\newunit
\printlist{language}%
@@ -78,16 +113,89 @@
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
+ \printtext[bibhyperlink:crossref]{%
\usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \iffieldundef{maintitle}%
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ }%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
\newunit\newblock
- \usebibmacro{byeditor+others}%
- \newunit%
- \iffieldundef{maintitle}%
- {\printfield{volume}%
- \printfield{part}}
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
{}%
- \newunit%
- \bibstring[\mkibid]{opcit}%
+ \usebibmacro{finentry}}
+
+
+\DeclareBibliographyDriver{inbook:rel:verbose-trad2}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}%
+ {\usebibmacro{cite:idem}}%
+ {\usebibmacro{author/translator+others}\setunit{\labelnamepunct}}%
+ \newblock%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \printtext[bibhyperlink:crossref]{%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \iffieldundef{maintitle}%
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit%
+ \bibstring[\mkibid]{opcit}%
+ }%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{inbook:rel:verbose-trad3}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \printnames{labelname}%
+ \setunit*{\nametitledelim}%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \printtext[bibhyperlink:crossref]{%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \iffieldundef{maintitle}%
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ }%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock