summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/biblatex-bookinother
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-04-07 20:51:23 +0000
committerKarl Berry <karl@freefriends.org>2016-04-07 20:51:23 +0000
commit8c1fff3e03414232f2e8045614360b485b8f2dd4 (patch)
tree1fe22f9ba6c16fae94a2d2505380627b7c5f5e7c /Master/texmf-dist/tex/latex/biblatex-bookinother
parenta20ff407ba11c229f9f174d1db6ae99ccfb0c9d0 (diff)
biblatex-bookinother (7apr16)
git-svn-id: svn://tug.org/texlive/trunk@40324 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/biblatex-bookinother')
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.bbx427
-rw-r--r--Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.dbx65
2 files changed, 492 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.bbx b/Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.bbx
new file mode 100644
index 00000000000..83d7556debb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.bbx
@@ -0,0 +1,427 @@
+%% Copyright 2014-… Maïeul Rouquette
+%
+% 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
+%0. Preamble
+
+\ProvidesFile{bookinother.bbx}
+[2016/04/06 v2.0.0 biblatex bibliography style to have entry type for book edited in other entry type (MR)]
+
+\RequireBiber
+\RequirePackage{xpatch}
+\ifdef{\biblatexmultipledm@bibstyle}
+ {\RequireBibliographyStyle{\biblatexmultipledm@bibstyle}}
+ {\RequireBibliographyStyle{verbose}}
+
+
+% 1. The drivers
+\DeclareBibliographyDriver{inarticle}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit
+ \usebibmacro{bybookineditor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle}%
+ \newunit\newblock
+ \usebibmacro{bybookeditor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{journal+issuetitle}%
+ \newunit
+ \usebibmacro{byeditor+others}%
+ \newunit
+ \usebibmacro{note+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \usebibmacro{finentry}}
+
+\DeclareBibliographyDriver{inincollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit
+ \usebibmacro{bybookineditor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{booktitle}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle}%
+ \ifbibmacroundef{bymaineditor+others}%
+ {}
+ {\newunit%
+ \usebibmacro{bymaineditor+others}%
+ }%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock}%%
+ }%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \usebibmacro{finentry}}
+
+
+\DeclareBibliographyDriver{ininproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit
+ \usebibmacro{bybookineditor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{booktitle}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle}%
+ \newunit%
+ \ifbibmacroundef{bymaineditor+others}%
+ {}
+ {\newunit%
+ \usebibmacro{bymaineditor+others}%
+ }%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inthesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit
+ \usebibmacro{bybookineditor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{booktitle}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+% 2. The alias and sourcemaps
+
+\DeclareBibliographyAlias{bookinarticle}{inarticle}
+\DeclareBibliographyAlias{bookincollection}{incollection}
+\DeclareBibliographyAlias{bookinincollection}{inincollection}
+\DeclareBibliographyAlias{bookininproceedings}{ininproceedings}
+\DeclareBibliographyAlias{bookinjournal}{article}
+\DeclareBibliographyAlias{bookinproceedings}{inproceedings}
+\DeclareBibliographyAlias{bookinreference}{incollection}
+\DeclareBibliographyAlias{bookininreference}{inincollection}
+\DeclareBibliographyAlias{bookinthesis}{inthesis}
+
+\DeclareSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[typesource=inmastersthesis, typetarget=inthesis, final]
+ \step[fieldset=type, fieldvalue=mathesis]
+ }
+ \map{
+ \step[typesource=inphdthesis, typetarget=inthesis, final]
+ \step[fieldset=type, fieldvalue=phdthesis]
+ }
+ \map{
+ \step[typesource=bookinmastersthesis, typetarget=inthesis, final]
+ \step[fieldset=type, fieldvalue=mathesis]
+ }
+ \map{
+ \step[typesource=bookinphdthesis, typetarget=inthesis, final]
+ \step[fieldset=type, fieldvalue=phdthesis]
+ }
+ }
+}
+
+% 3. The new fields format
+
+
+% 3.a bookeditor
+
+\newbibmacro*{bybookeditor}{%
+ \ifnameundef{bookeditor}
+ {}
+ {\usebibmacro{bytypestrg}{bookeditor}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{bookeditor}%
+ \newunit}%
+ }
+
+% 3.b Booinkeditor
+\xpatchbibdriver{incollection}%
+ {\usebibmacro{byauthor}}
+ {\usebibmacro{byauthor}\newunit\usebibmacro{bybookineditor}}
+ {}
+ {}
+
+\xpatchbibdriver{inproceedings}%
+ {\usebibmacro{byauthor}}
+ {\usebibmacro{byauthor}\newunit\usebibmacro{bybookineditor}}
+ {}
+ {}
+
+\newbibmacro*{bybookineditor}{%
+ \ifnameundef{bookineditor}
+ {}
+ {\usebibmacro{bytypestrg}{bookineditor}{editor}%
+ \setunit{\addspace}%
+ \printnames[byeditor]{bookineditor}%
+ \newunit}%
+ }
+
+\xpatchbibdriver{article}%
+ {\usebibmacro{byauthor}}
+ {\usebibmacro{byauthor}%
+ \ifbibmacroundef{byineditor}%
+ {\newunit\usebibmacro{bybookineditor}}%
+ {}%
+ }
+ {}
+ {}
+
+% 4. The formats for classical fields
+
+\DeclareFieldFormat[%
+ inarticle,%
+ inincollection,%
+ ininproceedings,%
+ ininreference,%
+ inthesis,%
+ ]{title}{\mkbibquote{#1\isdot}}
+\DeclareFieldFormat[%
+ inincollection,%
+ bookinincollection,%
+ inthesis,%
+ bookinthesis,%
+ ininproceedings,%
+ bookininproceedings,%
+ ininreference,%
+ bookininreference,%
+ ]{booktitle}{\mkbibquote{#1\isdot}}
+\DeclareFieldFormat[inarticle,bookinarticle]{maintitle}{\mkbibquote{#1\isdot}}
+
+% Inspired from biblatex.def
+\DeclareFieldFormat[inarticle,bookinarticle]{series}{% series of a journal
+ \ifinteger{#1}
+ {\mkbibordseries{#1}~\bibstring{jourser}}
+ {\ifbibstring{#1}{\bibstring{#1}}{#1}}}
+\DeclareFieldFormat[inarticle,bookinarticle]{volume}{#1}% volume of a journal
+\DeclareFieldFormat[inarticle,bookinarticle]{number}{#1}% number of a journal
+
+% 5. Inheritance
+
+\DeclareDataInheritance{article}{bookinarticle,inarticle}{
+ \inherit{author}{bookauthor}%
+ \inherit{ineditor}{bookeditor}%
+ \inherit{title}{maintitle}%
+ \inherit{subtitle}{mainsubtitle}%
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{collection,reference}
+{bookincollection,bookinreference}{%
+ \inherit{title}{booktitle}
+ \inherit{subtitle}{booksubtitle}
+ \inherit{titleaddon}{booktitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{inproceedings,incollection,inreference}{bookinincollection,inincollection,bookininproceedings,inproceedings,ininreference,bookininreference}{
+ \inherit{author}{bookauthor}%
+ \inherit{title}{booktitle}%
+ \inherit{subtitle}{booksubtitle}%
+ \inherit{booktitle}{maintitle}%
+ \inherit{booksubtitle}{mainsubtitle}%
+ \inherit{booktitleaddon}{maintitleaddon}%
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{proceedings}{bookinproceedings}{%
+ \inherit{title}{booktitle}
+ \inherit{subtitle}{booksubtitle}
+ \inherit{titleaddon}{booktitleaddon}
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+\DeclareDataInheritance{thesis,phdthesis,mathesis}{bookinthesis,inthesis,inphdthesis,inmathesis,bookinphdthesis,bookinmathesis}{
+ \inherit{author}{bookauthor}%
+ \inherit{title}{booktitle}%
+ \inherit{titleaddon}{booktitleaddon}%
+ \inherit{subtitle}{booksubtitle}%
+ \noinherit{shorttitle}
+ \noinherit{sorttitle}
+ \noinherit{indextitle}
+ \noinherit{indexsorttitle}
+}
+
+
+
+
+% 6. Label name
+
+\DeclareLabelname[%
+ bookinarticle,%
+ bookincollection,%
+ bookinincollection,%
+ bookininproceedings,
+ bookininreference,%
+ bookinjournal,%
+ bookinproceedings,%
+ bookinreference,%
+ bookinthesis,%
+ bookinphdthesis,%
+ bookinmathesis
+ ]{%
+ \field{shortauthor}
+ \field{author}
+ \field{ineditor}
+ \field{bookineditor}
+}
+\endinput
diff --git a/Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.dbx b/Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.dbx
new file mode 100644
index 00000000000..20bfc857a5c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.dbx
@@ -0,0 +1,65 @@
+%% Copyright 2016-… Maïeul Rouquette
+%
+% 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
+% This work consists of the files realauthor.dbx, realauthor.bbx
+\ProvidesFile{bookinother.dbx}
+[2016/04/06 v2.0.0 biblatex bibliography style to have entry type for book edited in other entry type (MR)]
+
+%1. New fields
+
+\DeclareDatamodelFields[type=list,datatype=name]{
+ bookeditor,
+ bookineditor,
+}
+
+%2. For bookinother entrytypes
+\DeclareDatamodelEntryfields[
+ bookinarticle,
+ inarticle,
+ bookinthesis,bookinmathesis,bookinphdthesis,
+ inthesis,inmathesis,inphdthesis,
+ bookincollection,bookinproceedings,bookinreference,%
+ bookinincollection,bookininproceedings,bookininreference,%
+ inincollection,ininproceedings,ininreference%
+ ]{%
+ bookeditor,
+ bookineditor
+}
+
+\DeclareDatamodelEntryfields[
+ bookinarticle,
+ inarticle,
+ bookinincollection,bookininproceedings,bookininreference,%
+ inincollection,ininproceedings,ininreference,%
+ bookinjournal%
+ ]{%
+ bookineditor
+}
+%3. For standard entry type
+\DeclareDatamodelEntryfields[
+ bookincollection,bookinproceedings,bookinreference
+]{%
+ bookeditor,
+ bookineditor
+}
+%4. Fields declared by morenames.dbx, for bookinother entrytypes
+\DeclareDatamodelEntryfields[%
+ bookincollection,bookinproceedings,bookinreference,%
+ bookinincollection,bookininproceedings,bookininreference,%
+ inincollection,ininproceedings,ininreference%
+ ]{
+ maineditor
+}
+
+
+\endinput \ No newline at end of file