From 685ba816f3dafba3b41b4679ab0a66524b04aae5 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 19 Oct 2015 22:23:55 +0000
Subject: biblatex-opcit-booktitle (18oct15)

git-svn-id: svn://tug.org/texlive/trunk@38671 c570f23f-e606-0410-a88d-b1316a301751
---
 .../biblatex-opcit-booktitle.sty                   | 140 ++++++++++++++++++---
 1 file changed, 124 insertions(+), 16 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty')

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
-- 
cgit v1.2.3

