summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle
Initial commit
Diffstat (limited to 'macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle')
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/README8
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty325
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.bib93
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.pdfbin0 -> 27666 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.tex33
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.pdfbin0 -> 78491 bytes
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.tex287
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/latexmkrc2
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/makefile5
-rw-r--r--macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/makefile16
10 files changed, 769 insertions, 0 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/README b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/README
new file mode 100644
index 0000000000..11f5992969
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/README
@@ -0,0 +1,8 @@
+When citing subentry, use also the op. cit. for the title of the main entry
+
+
+Maïeul Rouquette - 2015… - LPPL 1.3, from Paul Stanley 2014 (http://tex.stackexchange.com/a/172777/7712)
+
+http://latex-project.org/lppl/lppl-1-3c.html
+
+Feature requests and bug reports can be made in https://git.framasoft.org/maieul/biblatex-opcit-booktitle/issues \ No newline at end of file
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty
new file mode 100644
index 0000000000..fb5063f624
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/biblatex-opcit-booktitle.sty
@@ -0,0 +1,325 @@
+% Copyright 2015-... Maïeul Rouquette
+%
+% Inspired by Paul Stanley http://tex.stackexchange.com/a/172777/7712
+%
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Maïeul Rouquette
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{biblatex-opcit-booktitle}[2018/10/24 v1.9.0 Manage op. cit. when using subentry]
+\RequirePackage{xpatch}
+\RequirePackage{xkeyval}%
+
+\newtoggle{opcit@booktitle@bibliography@shorttitle}%
+\newtoggle{opcit@booktitle@bibliography@onlyshorttitle}%
+\DeclareOptionX{bibliography}[]{\toggletrue{opcit@booktitle@bibliography@#1}}%
+\ProcessOptionsX%
+
+% Declaration of the entries concerned. Some package could have already add their own entry
+\def\opcit@booktitle@entrytypes@novolume{}
+\listadd\opcit@booktitle@entrytypes{inbook}
+\listadd\opcit@booktitle@entrytypes{incollection}
+\listadd\opcit@booktitle@entrytypes{inproceedings}
+\listadd\opcit@booktitle@entrytypes{bookinbook}
+
+
+\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}{%
+ \ifboolexpr{test{\ifdefequal{\blx@imc@ifciteseen}{\blx@ifciteseen@context}} and togl{blx@footnote}}%Mode context + footnote?
+ {%
+ \xifinlistcs{\thefield{crossref}}{blx@fsee@\the\c@refsection}%
+ {}%
+ {\listcsxadd{blx@fsee@\the\c@refsection}{\thefield{crossref}}}%
+ }%
+ {%
+ \xifinlistcs{\thefield{crossref}}{blx@bsee@\the\c@refsection}%
+ {}%
+ {\listcsxadd{blx@bsee@\the\c@refsection}{\thefield{crossref}}}%
+ }%
+}%
+
+
+\newcommand{\ifrelatedunseen}[2]{%
+ \ifboolexpr{test{\ifdefequal{\blx@imc@ifciteseen}{\blx@ifciteseen@context}} and togl{blx@footnote}}%Mode context + footnote?
+ {%
+ \xifinlistcs{\thefield{crossref}}{blx@fsee@\the\c@refsection}%
+ {#2}%
+ {#1}%
+ }%
+ {%
+ \xifinlistcs{\thefield{crossref}}{blx@bsee@\the\c@refsection}%
+ {#2}%
+ {#1}%
+ }%
+}%
+
+
+
+\RequirePackage{ltxcmds}
+\newcommand{\opcit@booktitle@failpatch}[2]{%
+ \PackageError{opcit-booktitle}{Fail to patch `#1` bibmacro (#2)}{}%
+}
+
+% verbose-trad-1 and verbose-trad2
+\ifboolexpr{%
+ test{\ltx@iffileloaded{verbose-trad2.cbx}}%
+ or test{\ltx@iffileloaded{verbose-trad1.cbx}}%
+ }{%
+ \xpatchbibmacro{cite}%
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}%
+ {\usebibmacro{cite:test:ifrelated}}%
+ {}%
+ {\opcit@booktitle@failpatch{cite}{verbose-trad1.cbx or verbose-trad2.cbx}}%
+}%
+{}
+
+% verbose-trad3. Not that lines must be applied AFTER the previous one
+\ltx@iffileloaded{verbose-trad3.cbx}{%
+ \xpatchbibmacro{cite}%
+ {\usebibmacro{cite:full}}%
+ {\usebibmacro{cite:test:ifrelated:verbose-trad3}}%
+ {}%
+ {\opcit@booktitle@failpatch{cite}{verbose-trad3.cbx}}%
+}{}
+
+\newbibmacro*{cite:test:ifrelated}%
+ {\ifboolexpr {%
+ test {\iffieldundef{crossref}}%
+ or not (test {\xifinlist{\thefield{entrytype}}{\opcit@booktitle@entrytypes}})}%
+ {\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}%
+ {\ifrelatedunseen%
+ {\printtext[bibhypertarget:crossref]{%
+ \usebibmacro{cite:seen:related}%
+ \usebibmacro{cite:full}%
+ \usebibmacro{cite:save}}}%
+ {\usebibmacro{related:info}}}}
+
+\newbibmacro*{cite:test:ifrelated:verbose-trad3}%
+ {\ifboolexpr {%
+ test {\iffieldundef{crossref}}%
+ or not (test {\xifinlist{\thefield{entrytype}}{\opcit@booktitle@entrytypes}})}%
+ {\usebibmacro{cite:full}%
+ }%
+ {\ifrelatedunseen%
+ {\printtext[bibhypertarget:crossref]{%
+ \usebibmacro{cite:seen:related}%
+ \usebibmacro{cite:full}%
+ }}%
+ {\usebibmacro{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).
+% The related:info:booktitle macro change the booktitle field to the shorttitle field of the parent entry.
+% The related:info calls this macro and them call the driver of the main entry.
+
+\newbibmacro*{related:info:booktitle}{%
+ \undef\shortbooktitle%
+ \undef\bookentrytype%
+ \entrydata{\thefield{crossref}}{%
+ \savefield{shorttitle}{\shortbooktitle}%
+ \savefield{entrytype}{\bookentrytype}%
+ }%
+ \ifdef{\shortbooktitle}%
+ {%
+ \iffieldundef{crossref}%
+ {}%
+ {%
+ \restorefield{booktitle}{\shortbooktitle}%
+ \clearfield{booksubtitle}%
+ }%
+ }%
+ {}%
+}%
+
+\newbibmacro*{related:info}{%
+ \usebibmacro{related:info:booktitle}%
+ \usebibmacro{cite:full:citepages}%
+ \printtext[bibhypertarget]{\usedriver%
+ {\DeclareNameAlias{sortname}{default}}%
+ {inbook:rel:\blx@cbxfile}}%
+}
+
+\DeclareBibliographyDriver{inbook:rel:verbose-trad1}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \ifthenelse{\ifciteidem\AND\NOT\boolean{cbx:noidem}}%
+ {\usebibmacro{cite:idem}}%
+ {\ifnameundef{labelname}%
+ {}%
+ {\usebibmacro{cite:name}}%
+ }%
+ \newblock%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \printtext[bibhyperlink:crossref]{%
+ \usebibmacro{inbook:rel:bookauthor}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \iffieldundef{maintitle}%
+ {\xifinlist{\thefield{entrytype}}{\opcit@booktitle@entrytypes@novolume}%
+ {}%
+ {%
+ \printfield{volume}%
+ \printfield{part}}%
+ }%
+ {}%
+ \newunit%
+ \restorefield{entrytype}{\bookentrytype}%
+ \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-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{inbook:rel:bookauthor}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \iffieldundef{maintitle}%
+ {\xifinlist{\thefield{entrytype}}{\opcit@booktitle@entrytypes@novolume}%
+ {}%
+ {%
+ \printfield{volume}%
+ \printfield{part}}%
+ }%
+ {}%
+ \newunit%
+ \restorefield{entrytype}{\bookentrytype}%
+ \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*{\printdelim{nametitledelim}}%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \printtext[bibhyperlink:crossref]{%
+ \usebibmacro{inbook:rel:bookauthor}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \iffieldundef{maintitle}%
+ {\xifinlist{\thefield{entrytype}}{\opcit@booktitle@entrytypes@novolume}%
+ {}%
+ {%
+ \printfield{volume}%
+ \printfield{part}}%
+ }%
+ {}%
+ }%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+\newbibmacro{inbook:rel:bookauthor}{%
+ \ifnameundef{bookauthor}%
+ {}
+ {%
+ \usebibmacro{bybookauthor}%
+ \setunit{\labelnamepunct}\newblock%
+ }%
+}
+
+% Patching begenentry macro to apply bibliography option
+\xpretobibmacro{begentry}%
+ {%
+ \ifbibliography%
+ {\usebibmacro{opcitbooktitle:bibliography}}%
+ {}%
+ }%
+ {}%
+ {\opcit@booktitle@failpatch{begentry}{standard.bbx}}%
+
+\newbibmacro{opcitbooktitle:bibliography}{%
+ \iftoggle{opcit@booktitle@bibliography@shorttitle}%
+ {\usebibmacro{related:info:booktitle}}%
+ {}%
+ \iftoggle{opcit@booktitle@bibliography@onlyshorttitle}{%
+ \usebibmacro{related:info:booktitle}%
+ \iffieldundef{crossref}{}{%
+ \clearlist{publisher}%
+ \clearlist{location}%
+ \clearfield{series}%
+ \clearfield{number}%
+ \clearfield{year}%
+ \clearfield{month}%
+ \clearfield{day}%
+ }%
+ }{}%
+}%
+\endinput
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.bib b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.bib
new file mode 100644
index 0000000000..c8c5f0f620
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.bib
@@ -0,0 +1,93 @@
+
+
+@bookinarticle{BHG1850z_o,
+ Crossref = {Halkin1961},
+ Pages = {244-252},
+ Title = {Τοῦ ἁγίου ἀποστόλου Τίτου, ἐπισκόπου γενομένου Κρήτης πόλεως Γορτύνης, μαθητοῦ τοῦ ἁγίου ἀποστόλου Παύλου},
+ }
+
+@bookinarticle{BHG1850z_r,
+ Crossref = {Halkin1961},
+ Pages = {252-256},
+ Title = {Τοῦ ἁγίου ἀποστόλου Τίτου, ἐπισκόπου Γορτύνης τῆς Κρητῶν νήσου},
+ }
+
+@article{Halkin1961,
+ Author = {François Halkin},
+ Date = {1961},
+ Journal = {Analecta Bollandiana},
+ Number = {79},
+ Pages = {241-256},
+ Title = {La légende crétoise de Saint Tite}
+}
+
+@incollection{Klausner1997,
+ Author = {David N. Klausner},
+ Crossref = {Izydorczyk1997},
+ Pages = {403-425},
+ Title = {The \emph{Gospel of Nicodemus} in the Literature of Medieval Wales}}
+
+@incollection{Ogorman1997,
+ Author = {Richard O'Gorman},
+ Crossref = {Izydorczyk1997},
+ Pages = {103-131},
+ Title = {The \emph{Gospel of Nicodemus} in the Vernacular Literatur of Medieval France}}
+
+@collection{Izydorczyk1997,
+ Address = {Tempe},
+ Editor = {Izydorczyk, Zbigniew},
+ Publisher = {Medieval \& Renaissance Texts \& Studies},
+ Subtitle = {Texts, Intertexts, and Contexts in Western Europe},
+ Title = {The Medieval \emph{Gospel of Nicodemus}},
+ Shorttitle = {The Medieval \emph{Gospel of Nicodemus}},
+ Year = {1997}}
+
+@book{Pleiade2,
+ Address = {Paris},
+ Number = {516},
+ Publisher = {Gallimard},
+ Series = {Bibliothèque de la Pléiade},
+ Title = {Écrits apocryphes chrétiens},
+ Volume = {2},
+ Year = {2005}}
+
+@bookinbook{Pleiade_Barnabe,
+ Annotator = {Enrico Norelli},
+ Crossref = {Pleiade2},
+ Pages = {627-642},
+ Title = {Actes de Barnabé},
+ Translator = {Enrico Norelli}}
+
+@bookinbook{Pleiade_Tite,
+ Annotator = {Willy Rordorf},
+ Bhg = {1850z},
+ Crossref = {Pleiade2},
+ Pages = {609-615},
+ Title = {Actes de Tite},
+ Translator = {Willy Rordorf}}
+
+@book{Schermann1907,
+ Address = {Leipzig},
+ Editor = {Theodor Schermann},
+ Publisher = {Teubner},
+ Title = {Prophetarum vitae fabulosae indices apostolorum discipulorumque Domini Dorotheo · Epiphanio · Hippolyto aliisque vindicata},
+ Year = {1907}
+}
+
+@bookinbook{Pseudo-Hippolyte,
+ Author = {{Pseudo-Hippolyte}},
+ Crossref = {Schermann1907},
+ Pages = {163-170},
+ Title = {Index apostolorum discipulorumque Domini}}
+
+@bookinbook{Pseudo-Epiphane,
+ Author = {{Pseudo-Épiphane}},
+ Crossref = {Schermann1907},
+ Pages = {107-126},
+ Title = {Index apostolorum discipulorumque Domini}}
+
+@bookinbook{Pseudo-Dorothee,
+ Author = {{Pseudo-Dorothée}},
+ Crossref = {Schermann1907},
+ Pages = {131-160},
+ Title = {Index apostolorum discipulorumque Domini}}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.pdf
new file mode 100644
index 0000000000..f446173afd
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.tex b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.tex
new file mode 100644
index 0000000000..c679a11578
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle-example.tex
@@ -0,0 +1,33 @@
+\documentclass{article}
+\usepackage{libertine}
+\usepackage{polyglossia}
+\setmainlanguage{french}
+\usepackage[tools={bookinother,morenames}]{biblatex-multiple-dm}
+\usepackage[bibstyle=multiple-dm,citestyle=verbose-trad2,citepages=omit]{biblatex}
+\usepackage{biblatex-opcit-booktitle}
+\bibliography{biblatex-opcit-booktitle-example.bib}
+\usepackage{hyperref}
+\renewcommand{\mkibid}[1]{\emph{#1}}
+\begin{document}
+
+
+\cite{Klausner1997}
+
+\cite{BHG1850z_o}
+
+\cite{Pleiade_Barnabe}
+
+\cite{Klausner1997}
+
+\cite[23]{Pseudo-Epiphane}
+
+\cite{Ogorman1997}
+
+\cite{Pleiade_Tite}
+
+\cite[22]{Pseudo-Hippolyte}
+
+\cite{BHG1850z_r}
+
+\end{document}
+
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.pdf
new file mode 100644
index 0000000000..1794bcd2c3
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.pdf
Binary files differ
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.tex b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.tex
new file mode 100644
index 0000000000..ec85cc37cd
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/biblatex-opcit-booktitle.tex
@@ -0,0 +1,287 @@
+\documentclass{ltxdockit}[2011/03/25]
+\usepackage{btxdockit}
+\usepackage{fontspec}
+\usepackage[mono=false]{libertine}
+\usepackage{microtype}
+\usepackage[american]{babel}
+\usepackage[strict]{csquotes}
+\setmonofont[Scale=MatchLowercase]{DejaVu Sans Mono}
+\usepackage{shortvrb}
+\usepackage{pifont}
+\usepackage{minted}
+\setminted{breaklines}
+\hypersetup{citecolor=black}
+% Usefull commands
+\newcommand{\biblatex}{biblatex\xspace}
+\newcommand{\meta}[1]{\texttt{<#1>}}
+\pretocmd{\bibfield}{\sloppy}{}{}
+\pretocmd{\bibtype}{\sloppy}{}{}
+\newcommand{\namebibstyle}[1]{\texttt{#1}}
+% Meta-datas
+\titlepage{%
+ title={\emph{Op. cit.} for booktitle field},
+ subtitle={Abbreviated references},
+ email={maieul <at> maieul <dot> net},
+ author={Maïeul Rouquette},
+ revision={1.9.0},
+ date={2018/10/24},
+ url={https://git.framasoft.org/maieul/biblatex-opcit-booktitle}}
+
+% biblatex
+\usepackage[citestyle=verbose-trad2]{biblatex}
+\addbibresource{biblatex-opcit-booktitle-example.bib}
+\usepackage{biblatex-opcit-booktitle}
+
+\begin{document}
+
+\printtitlepage
+\tableofcontents
+
+
+\section{Aim of the package}
+
+The default citation styles \verb+verbose-trad1+;\verb+verbose-trad2+;\verb+verbose-trad3+ use the \emph{op. cit.} form in order to have shorter reference when a title have been already cited.
+
+However, when you cite two entries which share the same \bibfield{booktitle} but not the same \bibfield{title}, the \emph{op. cit.} mechanism does not work.
+
+For example we obtain the following example:
+
+\begin{quotation}
+\makeatletter
+\cite{Pleiade_Barnabe}
+
+\csundef{blx@bsee@\the\c@refsection}
+
+\cite{Pseudo-Hippolyte}
+
+\csundef{blx@bsee@\the\c@refsection}
+
+\cite{Pleiade_Tite}
+
+\csundef{blx@bsee@\the\c@refsection}
+
+\cite{Pseudo-Epiphane}
+\makeatother
+\end{quotation}
+
+While we would like to obtain:
+
+\citereset
+
+
+\begin{quotation}
+
+\cite{Pleiade_Barnabe}
+
+\cite{Pseudo-Hippolyte}
+
+\cite{Pleiade_Tite}
+
+\cite{Pseudo-Epiphane}
+\end{quotation}
+
+The aim of this package is to enable such abbreviation.
+
+\section{Use}
+
+The \verb+biblatex-opcit-booktitle+ package must be loaded after the \verb+biblatex+ package, which must be at version 3.4 or greater. You must use a \verb+verbose-trad+ citation style. For example:
+
+\begin{minted}{latex}
+\usepackage[bibstyle=verbose,citestyle=verbose-trad1,citepages=omit]{biblatex}
+\usepackage{biblatex-opcit-booktitle}
+\end{minted}
+
+In order to know when two entry share the same \bibfield{booktitle}, you must use the crossref mechanism of \biblatex. In the case of the previous example, we used:
+\begin{minted}{latex}
+@book{Pleiade2,
+ Address = {Paris},
+ Number = {516},
+ Publisher = {Gallimard},
+ Series = {Bibliothèque de la Pléiade},
+ Title = {Écrits apocryphes chrétiens},
+ Volume = {2},
+ Year = {2005}}
+
+@bookinbook{Pleiade_Barnabe,
+ Annotator = {Enrico Norelli},
+ Crossref = {Pleiade2},
+ Pages = {627-642},
+ Title = {Actes de Barnabé},
+ Translator = {Enrico Norelli}}
+
+@bookinbook{Pleiade_Tite,
+ Annotator = {Willy Rordorf},
+ Bhg = {1850z},
+ Crossref = {Pleiade2},
+ Pages = {609-615},
+ Title = {Actes de Tite},
+ Translator = {Willy Rordorf}}
+
+@book{Schermann1907,
+ Address = {Leipzig},
+ Editor = {Theodor Schermann},
+ Publisher = {Teubner},
+ Title = {Prophetarum vitae fabulosae indices apostolorum discipulorumque Domini Dorotheo · Epiphanio · Hippolyto aliisque vindicata},
+ Year = {1907}
+}
+
+@bookinbook{Pseudo-Hippolyte,
+ Author = {{Pseudo-Hippolyte}},
+ Crossref = {Schermann1907},
+ Pages = {163-170},
+ Title = {Index apostolorum discipulorumque Domini}}
+
+@bookinbook{Pseudo-Epiphane,
+ Author = {{Pseudo-Épiphane}},
+ Crossref = {Schermann1907},
+ Pages = {107-126},
+ Title = {Index apostolorum discipulorumque Domini}}
+\end{minted}
+
+There is not other thing to do!
+
+The feature works with these entrytypes: \bibtype{inbook}, \bibtype{incollection}, \bibtype{inproceedings}, \bibtype{bookinbook}.
+
+If you define a \bibfield{shorttitle} in the main entry, it will be used instead of the full title when we need an abbreviated form.
+\subsection{Limits}
+
+We have not implemented options to use abbreviation like \verb+ibid+, because we want to have not ambiguous abbreviated forms.
+
+If you have redefined the \verb+cite+ bibliographic macro, you must changes:
+\begin{minted}{latex}
+\usebibmacro{cite:full}%
+ \usebibmacro{cite:save}
+\end{minted}
+
+by:
+
+\begin{minted}{latex}
+\usebibmacro{cite:test:ifrelated}
+\end{minted}
+
+\subsection{Use in final bibliography}\label{bibliography}
+
+The package has a \opt{bibliography=<value>} option. \meta{value} can be:
+\begin{description}
+ \item[shorttitle] the final bibliography will print the short form of \bibfield{booktitle} field, and not the full form;
+ \item[onlyshortitle] like the previous one, but also clear the field related to the main entry (except the editor), like the location, the date, the publisher.
+\end{description}
+If loaded, the final bibliography will print the short form of \bibfield{booktitle} field, and not the full form.
+
+
+
+\subsection{Use with own citation style}
+
+If you have created your own citation style file (\verb.+cbx.), you must create a bibliographic driver called \verb+inbook:rel:<yourcitationstyle>+. You can look at the model \verb+inbook:rel:verbose-trad-xxx+ in the .sty file, or just use \cs{DeclareBibliographyAlias} to use an already existing model.
+
+If your citation style is public (i. e. published on CTAN), please contact us: we could provide the bibliographic driver directly in this package.
+
+If you have created your own \verb+cite+ bibmacro, this bibmacro must call, directly or indirectly the `cite:test:ifrelated` bibmacro (or your adaptation of this bibmacro).
+
+
+\subsection{Customization}
+
+You can change the \verb+inbook:rel:verbose-trad-xxx+ bibliographic driver to customize the way the main title is printed, \verb+xxx+ meaning 1, 2, or 3, depending of you specific citation style.
+
+\subsection{Use with new entrytypes}
+
+If you create new entrytypes, as the \emph{biblatex-bookintother} package does, you can let know to \emph{biblatex-opcit-booktitle} that these entry types are concerned by using short form of the main entry.
+
+
+To do it, just add in your \verb+.bbx+ or \verb+.dbx+ file:
+\begin{minted}{latex}
+\listadd\opcit@booktitle@entrytypes{<newentrytype>}
+\end{minted}
+
+\verb+<newentrytype>+ must be the new sub-entrytype concerned. For example, the \emph{biblatex-bookinother} package contains:
+
+\begin{minted}{latex}
+\listadd\opcit@booktitle@entrytypes{inarticle}
+\end{minted}
+
+In general, you want to have the volume number after the title of the volume. However, for some case, it could be useful to not have it. In this case, add you subtype entry to the \verb+\opcit@booktitle@entrytypes@novolume+ list. For example, the \emph{biblatex-bookinother} package contains:
+
+\begin{minted}{latex}
+\listadd\opcit@booktitle@entrytypes@novolume{inarticle}
+\end{minted}
+
+Depending of the fields of the new entry, you could have to modify the \verb+inbook:rel:verbose-trad-xxx+. But in this case, please contact us, in order to know if we could provide a generic mechanism directly in this package.
+\section{Credits}
+
+
+
+This package was created for Maïeul Rouquette's phd dissertation\footnote{\url{http://apocryphes.hypothese.org}.} in 2015. It is freely inspired by Paul Stanley code.\footnote{\url{http://tex.stackexchange.com/a/172777/7712}.} It is licensed on the \emph{\LaTeX\ Project Public License}.\footnote{\url{http://latex-project.org/lppl/lppl-1-3c.html}.}
+
+
+All issues can be submitted, in French or English, in the Framasoft issues page\footnote{\url{https://git.framasoft.org/maieul/biblatex-opcit-booktitle/issues}.}.
+
+
+\section{Change history}
+
+
+\begin{changelog}
+
+\begin{release}{1.9.0}{2018-10-24}
+ \item Add \opt{bibliography} option to the package. See~\ref{bibliography}.
+ \item Avoid side effect when mixing entries with direct booktitle and entry with inherited booktitle.
+\end{release}
+
+\begin{release}{1.8.0}{2017-03-27}
+ \item Add support entrytype where you don't need to print volume number.
+\end{release}
+
+\begin{release}{1.7.0}{2017-02-08}
+ \item Add support for the \option{citetracker=context} option of \biblatex.
+\end{release}
+
+\begin{release}{1.6.0}{2016-09-08}
+ \item Add hooks for new entrytype.
+\end{release}
+
+\begin{release}{1.5.0a}{2016-06-12}
+ \item Precisions in the handbook.
+\end{release}
+
+
+\begin{release}{1.5.0}{2016-06-09}
+ \item Add error message to know more quickly break compatibility with new releases of biblatex.
+\end{release}
+
+\begin{release}{1.4.0}{2016-06-07}
+ \item Use new tool of biblatex 3.4.
+ \item Require biblatex 3.4.
+\end{release}
+\begin{release}{1.3.0}{2016-03-27}
+\item Add \emph{op. cit.} also for verbose-trad1.
+\item Set the entry type for the \emph{op. cit.} as the entry type of the main entry.
+\end{release}
+
+\begin{release}{1.2.0}{2015-10-18}
+\item Fix bug with internal hyperref.
+\item Fix shorter form to be consistent with verbose-trad1 and verbose-trad2.
+\item Use short form of name (idem or just last name, depending of style).
+\item Change bibliography driver name. If you have customized your bibliographic driver, you should adapt name: \verb+inbook:rel:verbose-trad-1+ or \verb+inbook:rel:verbose-trad-2+ or \verb+inbook:rel:verbose-trad-3+.
+\end{release}
+
+\begin{release}{1.1.1}{2015-07-02}
+\item Fix spurious space.
+\end{release}
+
+\begin{release}{1.1.0}{2015-06-18}
+\item If defined, use the \bibfield{shortitle} field of the main entry.
+\end{release}
+
+\begin{release}{1.0.2}{2015-06-05}
+\item Wrap \enquote{op. cit} in \cmd{mkibid}.
+\end{release}
+
+\begin{release}{1.0.1}{2015-06-03}
+\item Correct order of name's part (first name / last name).
+\end{release}
+
+\begin{release}{1.0.0}{2015-05-31}
+\item First public release.
+\end{release}
+
+\end{changelog}
+\end{document}
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/latexmkrc b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/latexmkrc
new file mode 100644
index 0000000000..d6cfc714fa
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/latexmkrc
@@ -0,0 +1,2 @@
+$pdflatex = "xelatex --shell-escape %S";
+$pdf_mode = "1";
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/makefile b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/makefile
new file mode 100644
index 0000000000..f35a8a7bfa
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/documentation/makefile
@@ -0,0 +1,5 @@
+all: *tex *bib
+ latexmk biblatex-opcit-booktitle.tex
+ latexmk biblatex-opcit-booktitle-example.tex
+
+
diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/makefile b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/makefile
new file mode 100644
index 0000000000..0ed77a116c
--- /dev/null
+++ b/macros/latex/contrib/biblatex-contrib/biblatex-opcit-booktitle/makefile
@@ -0,0 +1,16 @@
+dist: all
+ rm -rf biblatex-opcit-booktitle
+ mkdir biblatex-opcit-booktitle
+ ln README makefile *sty biblatex-opcit-booktitle
+ mkdir biblatex-opcit-booktitle/documentation
+ ln documentation/*tex documentation/*bib documentation/*pdf documentation/latexmkrc documentation/makefile biblatex-opcit-booktitle/documentation
+ $(RM) ../biblatex-opcit-booktitle.zip
+ zip -r ../biblatex-opcit-booktitle.zip biblatex-opcit-booktitle
+
+
+clean:
+ $(MAKE) -C documentation clean
+ @$(RM) *.pdf *.toc *.aux *.out *.fdb_latexmk *.log *.bbl *.bcf *.blg *run.xml *.synctex.gz*
+
+all: documentation/biblatex-opcit-booktitle-example.tex documentation/biblatex-opcit-booktitle.tex documentation/biblatex-opcit-booktitle-example.bib documentation/latexmkrc
+ $(MAKE) -C documentation all