diff options
author | Karl Berry <karl@freefriends.org> | 2016-04-07 20:51:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-04-07 20:51:23 +0000 |
commit | 8c1fff3e03414232f2e8045614360b485b8f2dd4 (patch) | |
tree | 1fe22f9ba6c16fae94a2d2505380627b7c5f5e7c /Master/texmf-dist/tex/latex | |
parent | a20ff407ba11c229f9f174d1db6ae99ccfb0c9d0 (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')
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.bbx | 427 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/biblatex-bookinother/bookinother.dbx | 65 |
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 |