diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/droit-fr/droit-fr.bbx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/droit-fr/droit-fr.bbx')
-rw-r--r-- | macros/latex/contrib/droit-fr/droit-fr.bbx | 645 |
1 files changed, 645 insertions, 0 deletions
diff --git a/macros/latex/contrib/droit-fr/droit-fr.bbx b/macros/latex/contrib/droit-fr/droit-fr.bbx new file mode 100644 index 0000000000..738a9e2c20 --- /dev/null +++ b/macros/latex/contrib/droit-fr/droit-fr.bbx @@ -0,0 +1,645 @@ +%% Copyright 2010-2016 Yves de Saint-Pern +% +% 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 Yves de Saint-Pern. + +\ProvidesFile{droit-fr.bbx}[2016/20/02 v1.2 style droit francais] + +\RequireBibliographyStyle{verbose-ibid} +\RequireBiber[3] + +%%%%%%%%%%%%%%%%%%%%%% +% OPTIONS DE PACKAGE % +%%%%%%%%%%%%%%%%%%%%%% + +% style du champ auteur: auteurs secondaires inversés ou non ? +\DeclareBibliographyOption{revertauthors}[false]{% + \ifstrequal{#1}{true} + {\DeclareNameAlias{sortname}{last-first}} + {\DeclareNameAlias{sortname}{last-first/first-last}}} + +% style de chaque nom d'une entrée de la bibliographie +\DeclareBibliographyOption{namestyle}[parens]{% + \ifcsdef{bbx@opt@namestyle@#1} + {\csuse{bbx@opt@namestyle@#1}} + {\PackageError{biblatex} + {Invalid option 'namestyle=#1'} + {Valid values are 'parens', 'parensprefix', 'plain'}}} + +\def\bbx@opt@namestyle@parens{% + \renewbibmacro*{name:last-first}{\usebibmacro*{name:last-first:parens}}} + +\def\bbx@opt@namestyle@parensprefix{% + \renewbibmacro*{name:last-first}{\usebibmacro*{name:last-first:parensprefix}}} + +\def\bbx@opt@namestyle@plain{% + \renewbibmacro*{name:last-first}{\usebibmacro*{name:last-first:plain}}} + +% formatage des noms de famille indexés ? +\newcommand{\mkbibindexnamelast}{} +\DeclareBibliographyOption{indexnameformat}[true]{% + \ifstrequal{#1}{true}% + {\renewcommand{\mkbibindexnamelast}{\mkbibnamelast}}% + {\renewcommand{\mkbibindexnamelast}{}}} + +% gestion des prénoms dont l'abréviation doit être formée de 2 ou 3 lettres et non d'une seule: +% - ceux commençant par un digramme (2 consonnes formant un son): Ch, Th, Ph +% - ceux commençant par une consonne ou un digramme, puis l ou r: Cl, Chr, Fr, etc. +% le code ci-dessous s'applique aux prénoms des champs author et editor. +% il protège chacune de ces abréviations par la substitution suivante effectuée a la volée: +% "Malaurie, Philippe" => "Malaurie, {\relax{}Ph}ilippe" +\DeclareBibliographyOption{smartinitials}[true]{% + \ifstrequal{#1}{true}% +{\DeclareStyleSourcemap{% + \maps[datatype=bibtex]{% + \map{% + % champ author + \step[fieldsource=author,% + match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))(\S*,)}},% + replace={\regexp{\{$1\}$3}}]% protection noms de famille si format "prénom nom" + \step[fieldsource=author,% + match={\regexp{([^,]\s)\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))}},% + replace={\regexp{$1\{$2\}}}]% protection noms de famille si format "nom, prénom" + \step[fieldsource=author,% + match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))([^\}])}},% + replace={\regexp{\{\\relax\{\}$1\}$3}}]% insertion \relax dans les prénoms trouvés + % champ editor + \step[fieldsource=editor,% + match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))(\S*,)}},% + replace={\regexp{\{$1\}$3}}]% protection noms de famille si format "prénom nom" + \step[fieldsource=editor,% + match={\regexp{([^,]\s)\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))}},% + replace={\regexp{$1\{$2\}}}]% protection noms de famille si format "nom, prénom" + \step[fieldsource=editor,% + match={\regexp{\b(Chr|Ch|Th|Ph|[B-DF-HJ-NP-TV-XZ](l|r))([^\}])}},% + replace={\regexp{\{\\relax\{\}$1\}$3}}]% insertion \relax dans les prénoms trouvés +}}}% +} +{}} + +% l'editor ne remplace pas un champ author laissé vide. +% il reste imprimé à sa place (généralement après le title). +\ExecuteBibliographyOptions{useeditor=false,sorting=nyt} + +% options locales par défaut +\ExecuteBibliographyOptions{revertauthors=false,namestyle=parens,indexnameformat=true,smartinitials=true} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% REDEFINITIONS/AJOUT DE MOTS-CLES % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NewBibliographyString{byobservator} +\NewBibliographyString{bychronicler} +\NewBibliographyString{numbers} + +\DefineBibliographyStrings{french}{% + in = {in}, + byeditor = {sous la dir\adddot\ de}, + bycommentator = {comm\adddot}, + byannotator = {note}, + byobservator = {obs\adddot}, + byredactor = {rapp\adddot}, + bychronicler = {chron\adddot}, + withafterword = {concl\adddot}, + thiscite = {spéc\adddot}, + section = {art\adddot}, + sections = {art\adddot}, + numbers = {{num\'eros}{n\textsuperscript{os}}} +} + +\DefineBibliographyStrings{british}{% + in = {in}, +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% REDEFINITIONS DE BIBLATEX.DEF % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\setlength{\bibitemsep}{1.5\itemsep} % espacement entre 2 références +\renewcommand*{\newunitpunct}{\addcomma\space} % separation des units par une virgule +\renewcommand*{\mkbibnamelast}[1]{\textsc{\textnohyphenation{#1}}} % petites maj. pour toutes les langues. +\renewcommand*{\subtitlepunct}{\addcolon\space} % separation entre titre et sous-titre + + +% ------------------------------------------------------------------ +% FIELD FORMATS +% ------------------------------------------------------------------ + +% Used in citations + +% book, thesis, collection, report, jurisdiction, case = italique +% legislation = normal +% inbook, incollection, article, commentary = guillemets +\DeclareFieldFormat{citetitle}{\mkbibemph{#1\isdot}} +\DeclareFieldFormat[legislation]{citetitle}{#1\isdot} +\DeclareFieldFormat + [article,inbook,incollection,inproceedings,patent,unpublished] + {citetitle}{\mkbibquote{#1\isdot}} + +% pas de P. majuscule +\DeclareFieldFormat{postnote}{\midsentence\mkpageprefix[pagination]{#1}} +\DeclareFieldFormat{volcitepages}{\midsentence\mkpageprefix[pagination]{#1}} +\DeclareFieldFormat{multipostnote}{\midsentence\mkpageprefix[pagination]{#1}} + +% Used in the bibliography + +% pas de P. majuscule +\DeclareFieldFormat{pages}{\midsentence\mkpageprefix[bookpagination]{#1}} +\DeclareFieldFormat{pagetotal}{\midsentence\mkpagetotal[bookpagination]{#1}} + +% tout italique, sauf legislation +\DeclareFieldFormat{title}{\mkbibemph{#1\isdot}} +\DeclareFieldFormat[thesis]{title}{\mkbibemph{#1\isdot}} +\DeclareFieldFormat[legislation]{title}{#1\isdot} + +\DeclareFieldFormat{chapter}{#1} % pas de 'chap.' +\DeclareFieldFormat[jurisdiction,legislation]{number}{\biblcstring{number}~#1}% no de l'arret +\DeclareFieldFormat[case]{journaltitle}{#1}% pas d'italique' +\DeclareFieldFormat[case]{volume}{#1}% pas de 't.' +\DeclareFieldFormat[case]{pages}{#1} % pas de 'p.' + +% ------------------------------------------------------------------ +% LIST FORMATS +% ------------------------------------------------------------------ + +% institution entre parentheses dans les cases de type legacy +\DeclareListFormat{parenslist}{% + \mkbibparens{\usebibmacro{list:delim}{#1}% + #1\isdot + \usebibmacro{list:andothers}}} + +% ------------------------------------------------------------------ +% NAME LIST FORMATS +% ------------------------------------------------------------------ +% #1 = last name +% #2 = last name (initials) +% #3 = first name +% #4 = first name (initials) +% #5 = name prefix, a.k.a. 'von part' +% #6 = name prefix (initials) +% #7 = name affix, a.k.a. 'junior part' +% #8 = name affix (initials) + +% Forcer l'affichage du prénom en initiales, suivi du nom pour les auteurs dans les citations. +\DeclareNameFormat{labelname}{% + \ifuseprefix + {\usebibmacro{name:first-last}{#1}{#4}{#5}{#8}} + {\usebibmacro{name:first-last}{#1}{#4}{#6}{#8}}% + \usebibmacro{name:andothers}} + +% correspond à la macro "name:last-first" de biblatex.def +% NOM, Prénom particule +\newbibmacro*{name:last-first:plain}[4]{% + \usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibnamelast{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#2#3}{}{\revsdnamepunct}% + \ifblank{#2}{}{\bibnamedelimd\mkbibnamefirst{#2}\isdot}% + \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}} + +% NOM (Prénom particule) +\newbibmacro*{name:last-first:parens}[4]{% + \usebibmacro{name:delim}{#1}% + \mkbibnamelast{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#2#3}{}{\bibnamedelimd\mkbibparens{% + \ifblank{#2}{}{\mkbibnamefirst{#2}\isdot}% + \ifblank{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}} + } +} + +% NOM (particule), Prénom +\newbibmacro*{name:last-first:parensprefix}[4]{% + \usebibmacro{name:delim}{#1}% + \usebibmacro{name:hook}{#1}% + \mkbibnamelast{#1}\isdot + \ifblank{#4}{}{\bibnamedelimd\mkbibnameaffix{#4}\isdot}% + \ifblank{#3}{}{\bibnamedelimd\mkbibparens{\mkbibnameprefix{#3}\isdot}} + \ifblank{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamefirst{#2}\isdot}} + +% affichage du prénom en initiales, suivi du nom pour les autres champs (editor, translator, etc). +\DeclareNameFormat{first-last}{% + \usebibmacro{name:first-last}{#1}{#4}{#5}{#7} + \usebibmacro{name:andothers}} + +% caractère de séparation entre plusieurs entrées référencées dans "related" +\renewcommand*{\relateddelim}{\addsemicolon\addspace} + +% modification du champ "related" pour les commentaires d'arrêt +\renewbibmacro*{related:default}[1]{% + \entrydata{#1}{\usedriver{}{commentary}}} + +%%%%%%%%% +% INDEX % +%%%%%%%%% + +% indexation des auteurs seulement +\renewbibmacro*{bibindex}{% + \ifbibindex + {\indexnames{labelname}} + {}} + +% indexation des auteurs seulement +\renewbibmacro*{citeindex}{% + \ifciteindex + {\indexnames{labelname}} + {}} + +% formatage des noms indexés +\renewcommand*{\mkbibindexname}[4]{% + \ifuseprefix + {\ifblank{#3}{}{#3 }% + \@firstofone #1% remove spurious braces + \actualoperator + \ifblank{#3}{}{\MakeCapital{#3} }% + #1% + \ifblank{#4}{}{ #4}% + \ifblank{#2}{}{, #2}} + {\@firstofone #1% remove spurious braces + \actualoperator % ajouté + \mkbibindexnamelast{#1}% + \ifblank{#4}{}{ #4}% + \ifblank{#2#3}{}{,}% + \ifblank{#2}{}{ #2}% + \ifblank{#3}{}{ #3}}} + + +%%%%%%%%%%%%%%%%%% +% SCHEMAS DE TRI % +%%%%%%%%%%%%%%%%%% + +% schéma de tri destiné à la jurisprudence: institution, date de décision +\DeclareSortingScheme{iymd}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{institution} + } + \sort{ + \field{eventyear} + } + \sort{ + \field[padside=left,padwidth=2,padchar=0]{eventmonth} + \literal{00} + } + \sort{ + \field[padside=left,padwidth=2,padchar=0]{eventday} + \literal{00} + } +} + + +% schéma de tri destiné à la jurisprudence: titre (nom d'affaire), date de décision, institution +\DeclareSortingScheme{tymdi}{ + \sort{ + \field{presort} + } + \sort[final]{ + \field{sortkey} + } + \sort{ + \field{sorttitle} + \field{title} + } + \sort{ + \field{eventyear} + } + \sort{ + \field[padside=left,padwidth=2,padchar=0]{eventmonth} + \literal{00} + } + \sort{ + \field[padside=left,padwidth=2,padchar=0]{eventday} + \literal{00} + } + \sort{ + \field{institution} + } +} + + +%%%%%%%%%%% +% DRIVERS % +%%%%%%%%%%% + +% loi +\DeclareBibliographyDriver{legislation}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \usebibmacro{journal+issuetitle}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printfield{pages} + \newunit\newblock + \usebibmacro{url+urldate}% + \newunit\newblock + \printfield{addendum}% + \newunit\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +% rapport officiel +% ajout de l'editor (byeditor) +\DeclareBibliographyDriver{report}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byauthor}% + \newunit\newblock + \usebibmacro{byeditor}% + \newunit\newblock + \printfield{type}% + \setunit*{\addspace}% + \printfield{number}% + \newunit\newblock + \printfield{version}% + \newunit + \printfield{note}% + \newunit\newblock + \usebibmacro{institution+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit + \printfield{pagetotal}% + \newunit\newblock + \iftoggle{bbx:isbn} + {\printfield{isrn}} + {}% + \newunit\newblock + \usebibmacro{doi+eprint+url}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +% thèse: +% ajout du directeur de thèse (byeditor) +\DeclareBibliographyDriver{thesis}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{author}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{title}% + \newunit + \printlist{language}% + \newunit\newblock + \usebibmacro{byeditor}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printfield{type}% + \newunit + \usebibmacro{institution+location+date}% + \newunit\newblock + \usebibmacro{chapter+pages}% + \newunit\newblock + \printlist{publisher} + \newunit + \printfield{pagetotal} + \setunit*{\addcomma\space} + \newblock + \printfield{doi}% + \newunit\newblock + \usebibmacro{url+urldate}% + \newunit\newblock + \printfield{addendum}% + \newunit\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +% cas de jurisprudence générique +\DeclareBibliographyAlias{jurisdiction}{case} +\DeclareBibliographyDriver{case}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \ifbibmacroundef{case:\strfield{hyphenation}} + {\usebibmacro{case:french}} + {\usebibmacro{case:\strfield{hyphenation}}} + \newunit\newblock + \printfield{note}% + \newunit\newblock + \printfield{addendum}% + \newunit\newblock + \usebibmacro{pageref}% + \setunit{\addsemicolon\addspace}\newblock + \iftoggle{bbx:related} + {\usebibmacro{related:init}% + \usebibmacro{related}} + {}% + \usebibmacro{finentry}} + +% cas de jurisprudence anglaise +% - avec neutral citation: format adopté depuis 2001 par certaines juridictions +% - sans neutral citation: format historique +\newbibmacro*{case:british}{% + \iffieldundef{number} + {\usebibmacro{case:british:legacy}} + {\usebibmacro{case:british:withneutral}} +} + +% jurisprudence anglaise sans neutral citation: +% title | [year] OR (eventyear) | volume | journal | page | (jurisdiction) +\newbibmacro*{case:british:legacy}{% + \usebibmacro{title}% + \setunit{\addspace}\newblock + \iffieldundef{year} + {\printfield[parens]{eventyear}} + {\printfield[brackets]{year}} + \setunit{\addspace} + \printfield{volume}% + \setunit{\addspace} + \usebibmacro{journal}% + \setunit{\addspace}\newblock + \printfield{pages} + \setunit{\addspace}\newblock + \printlist[parenslist]{institution}} + +% case avec neutral citation (depuis 2001 et pour certaines juridictions) +% <neutral citation>, | <infos de publications dans un law report> +\newbibmacro*{case:british:withneutral}{% + \usebibmacro{case:british:neutral}% + \iffieldundef{journaltitle} + {} + {\usebibmacro{case:british:report}}} + +% neutral citation +% title | [eventyear] | jurisdiction | number +\newbibmacro*{case:british:neutral}{% + \usebibmacro{title}% + \setunit{\addspace}\newblock + \printfield[brackets]{eventyear}% + \setunit{\addspace} + \printlist{institution}% + \setunit{\addspace} + \printfield{number}% +} + +% informations de publication relatives à un law report +% dans un arrêt de jurisprudence anglaise avec neutral citation. +% [year] OR (eventyear) | volume | journal | page +\newbibmacro*{case:british:report}{% + \setunit{\addcomma\space}\newblock + \iffieldundef{year} + {\printfield[parens]{eventyear}} + {\printfield[brackets]{year}} + \setunit{\addspace} + \printfield{volume}% + \setunit{\addspace} + \usebibmacro{journal}% + \setunit{\addspace}\newblock + \printfield{pages} +} + +% jurisprudence française. +% institution, | titre, | eventdate, | number, | journal, | date, | volume, | chapter, | pages +% - eventdate: date de décision rendue +% - date: date de publication dans un journal officiel +% - number: numéro de requête ou de l'arrêt (si non publié) +% - chapter: section logique du journal dans laquelle se trouve l'arrêt +\newbibmacro{case:french}{% + \printlist{institution}% + \newunit\newblock + \usebibmacro{title}% + \newunit\newblock + \printeventdate% + \newunit\newblock + \printfield{number}% + \newunit\newblock + \usebibmacro{journal}% + \newunit + \printfield{volume}% + \printfield{part}} + +% jurisprudence selon le format européen ECLI. +% https://e-justice.europa.eu/content_european_case_law_identifier_ecli-175-fr.do +% +% ECLI:<location>:<institution>:<date>:<number> +% - location: code État membre. Ex: FR, DE, NL, etc. +% - institution: juridiction ayant rendu la décision +% - date: année de la décision +% - number: numéro d'ordre, de 25 caractères au maximum présenté selon un format décidé par chaque État membre. +\newbibmacro{case:ecli}{% + \printtext{ECLI}% + \setunit{\addcolon} + \printfield{location}% + \setunit{\addcolon} + \printfield{institution}% + \setunit{\addcolon} + \printfield{year}% + \setunit{\addcolon} + \printfield{number}% + \newunit\newblock + \usebibmacro{chapter+pages}} + +% commentaire d'arrêt +\DeclareBibliographyDriver{commentary}{% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{journal+issuetitle}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \newunit\newblock + \usebibmacro{byeditor+others}% + \newunit\newblock + \usebibmacro{addendum+pubstate}% + \newunit\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% REDEFINITIONS DU STYLE STANDARD.BBX % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% mot-clé "in" non présent dans les articles. +% présent dans les autres types (inbook, incollection...): +% - pas de : +% - pas de virgule (ni avant ni après) +\renewbibmacro*{in:}{% + \ifentrytype{article} + {\newunit} + {\setunit{\addspace} + \biblcstring[\mkbibemph]{in} + \setunit{\addspace} + \nopunct} + } + +% date imprimée sans parenthèses +\renewbibmacro*{issue+date}{% + \printtext{% [parens] + \iffieldundef{issue} + {\printdate} + {\printfield{issue}% + \setunit{\addspace}% + \printfield{year}}}% + \newunit} + +% macro utilisée dans article, legislation, commentary. +% - journal et date toujours séparés par un espace. +% - ajout de "part" et "chapter", pour des journaux comprenant des partie thématiques (Dalloz, JCP, etc) +\renewbibmacro*{journal+issuetitle}{% + \usebibmacro{journal}% + \setunit{\addspace}% + \usebibmacro{issue+date}% + \newunit\newblock + \usebibmacro{issue}% + \newunit + \printfield{volume}% + \newunit + \printfield{part}% + \newunit + \printfield{chapter}% + \newunit + \iffieldundef{series} + {} + {\printfield{series}% + \newunit}% + \printfield{number}% + \newunit + \printfield{eid}% + \newunit} + +% macro utilisée dans les (in)proceedings. +% date imprimée sans parenthèses +\renewbibmacro*{event+venue+date}{% + \printfield{eventtitle}% + \ifboolexpr{ + test {\iffieldundef{venue}} + and + test {\iffieldundef{eventyear}} + } + {} + {\setunit*{\addspace}% + \printtext{% [parens] + \printfield{venue}% + \setunit*{\addcomma\space}% + \printeventdate}}% + \newunit} + +\endinput |