5
1

Je suis en train de finaliser mon HDR écrite avec la classe yathesis et, sachant que j'utilise biblatex, je souhaite faire figurer deux bibliographies : une globale et une ne contenant que ma propre production scientifique. La première ne pose pas de problème mais je ne sais pas comment obtenir la 2e.

Avec \nocite{*}, je pense biblatex va sortir mes publications mélangées aux références bibliographiques de mon document, même si les deux sont dans deux fichiers .bib différents. Or j'ai besoin d'isoler ces deux sources d'information, autrement dit de faire deux bibliographies complètement indépendantes : une globale et une locale à une section uniquement.

Posée 21 Sep '15, 12:31

frank's gravatar image

frank
137258
Taux d'acceptation : 0%

Modifiée 22 Sep '15, 16:25

denis's gravatar image

denis ♦♦
7.3k1510

L'utilisation de yathesis ne change rien à la question (mais ça ne fait pas de mal de le dire). Quant aux tags global et local, leur sens habituel en TeX n'a aucun rapport avec les bibliographies. Donc, à mon avis, il faudrait supprimer ces trois derniers tags...

(22 Sep '15, 10:46) Paul Gaborit Paul%20Gaborit's gravatar image

Il y a au moins deux façons de faire. Comme elles ne sont pas propres à la classe yathesis, je les illustre ci-dessous avec la classe standard article (et avec le style bibliographique par défaut, numeric).

Fichier .bib distincts

L'une d'elles consiste à utiliser deux fichiers .bib :

  • l'un pour les publications autres que les nôtres (\jobname.bib dans les exemples ci-dessous, \jobname prenant le nom du fichier .tex utilisé lors de la compilation) ;
  • l'un, disons mywork.bib, pour nos propres publications dans un fichier bibliographique spécifique ;

et à afficher nos propres publications au moyen de la commande habituelle \printbibliography, mais en limitant sa portée grâce à un environnement refsection auquel est passée l'option mywork.bib indiquant la ressource bibliographique à prendre en compte dans cet environnement.

L'ECM suivant en est un exemple

Ouvrir dans l'éditeur
\begin{filecontents}{\jobname.bib}
@Book{            another1,
  author        = {Author 1, Another},
  title         = {Another's Book 1},
  date          = {1900-09-01}
}
@Book{            another2,
  author        = {Author 2, Another},
  title         = {Another's Book 2},
  date          = {1900-09-02}
}
@Book{            another3,
  author        = {Author 3, Another},
  title         = {Another's Book 3},
  date          = {1900-09-03}
}
\end{filecontents}
%
\begin{filecontents}{mywork.bib}
@Book{            mybook1,
  author        = {Me, Myself},
  title         = {My Book 1},
  date          = {2015-09-01}
}
@Book{            mybook2,
  author        = {Me, Myself},
  title         = {My Book 2},
  date          = {2015-09-02}
}
\end{filecontents}
%
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,defernumbers=true]{biblatex}
\usepackage{babel}
%
\addbibresource{\jobname.bib}
\addbibresource{mywork.bib}
%
\begin{document}
%
D'après \autocite{another1}, il est clair que $E=mc^2$ et, d'après
\autocite{another3}, il est clair que $mc^2=E$.
%
\printbibliography
%
\begin{refsection}[mywork.bib]
  \DeclareFieldFormat{labelnumberwidth}{#1}
  \DeclareFieldFormat{labelnumber}{\textbullet} % ou n'importe quoi d'autre
  \nocite{*}
  \printbibliography[title={Mes publications},omitnumbers=true]
\end{refsection}
%
\end{document}

On note dans l'exemple ci-dessus un certain nombre d'ajustements supplémentaires, nécessaires uniquement si on recourt effectivement au style bibliographique numeric :

  • option defernumbers=true passée au package biblatex, pour que les numérotations des différentes bibliographies soient indépendantes ;
  • option omitnumbers=true passée à \printbibliography, sans quoi le document comporterait plusieurs références numérotées « [1] » (ou « [2] », etc.) ;
  • déclarations :

    Ouvrir dans l'éditeur
    \DeclareFieldFormat{labelnumberwidth}{#1}
    \DeclareFieldFormat{labelnumber}{\textbullet}
    

l'option omitnumbers=true conduisant en effet à des crochets vides ; là, on demande que chaque référence soit introduite par (par exemple), des « bullets ».

Recours à un mot-clé pour distinguer les références qui nous sont propres des autres

L'autre méthode :

  • ne nécessite pas de, artificiellement, stocker nos propres publications dans un fichier bibliographique spécifique et de, ainsi, n'avoir qu'un seul fichier .bib ;
  • nécessite l'ajout systématique d'un mot-clé, par exemple « me », à chacune des entrées correspondant aux publications dont on est l'auteur (ou un des auteurs), au moyen de l'attribut keywords (avec un « s ») :

    Ouvrir dans l'éditeur
    keywords      = {me}
    

On crée alors la bibliographie ne contenant que les publications dont on est (un des) auteur(s) en ajoutant à \printbibliography l'option (sans « s ») :

Ouvrir dans l'éditeur
keyword=me

L'ECM suivant illustre cela.

Ouvrir dans l'éditeur
\begin{filecontents}{\jobname-bis.bib}
@Book{            another1,
  author        = {Author 1, Another},
  title         = {Another's Book 1},
  date          = {1900-09-01}
}
@Book{            another2,
  author        = {Author 2, Another},
  title         = {Another's Book 2},
  date          = {1900-09-02}
}
@Book{            another3,
  author        = {Author 3, Another},
  title         = {Another's Book 3},
  date          = {1900-09-03}
}
% My work
@Book{            mybook1,
  author        = {Me, Myself},
  title         = {My Book 1},
  date          = {2015-09-01},
  keywords      = {me}
}
@Book{            mybook2,
  author        = {Me, Myself},
  title         = {My Book 2},
  date          = {2015-09-02},
  keywords      = {me}
}
\end{filecontents}
%
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,defernumbers=true]{biblatex}
\usepackage{babel}
%
\addbibresource{\jobname-bis.bib}
%
\begin{document}
%
D'après \autocite{another1}, il est clair que $E=mc^2$ et, d'après
\autocite{another3}, il est clair que $mc^2=E$.
%
\printbibliography
%
\begin{refsection}
  \DeclareFieldFormat{labelnumberwidth}{#1}
  \DeclareFieldFormat{labelnumber}{\textbullet} % ou n'importe quoi d'autre
  \nocite{*}
  \printbibliography[title={Mes publications},keyword=me]
\end{refsection}
%
\end{document}

On pourrait d'ailleurs créer une bibliographie ne contenant que les publications dont on n'est pas (un des) auteur(s) au moyen d'une occurrence supplémentaire de \printbibliography stipulée cette fois avec l'option (sans « s ») :

Ouvrir dans l'éditeur
notkeyword=me
Lien permanent

Publiée 21 Sep '15, 13:18

denis's gravatar image

denis ♦♦
7.3k1510
Taux d'acceptation : 53%

Modifiée 22 Sep '15, 08:52

Super ça marche bien, j'ai choisi la première solution afin d'avoir deux fichiers. Je joue avec le style et les options pour obtenir le format que je souhaite.

(21 Sep '15, 16:30) frank frank's gravatar image

@frank Attention : ta contribution était un commentaire plutôt qu'une réponse et je l'ai convertie comme tel.

(21 Sep '15, 19:05) denis ♦♦ denis's gravatar image

@frank Attention : ta contribution était un commentaire plutôt qu'une réponse et je l'ai convertie comme tel.

(21 Sep '15, 19:07) denis ♦♦ denis's gravatar image

Voici une solution (largement inspirée de cette solution) qui nécessite un seul fichier .bib sans ajout particulier (j'ai repris l'exemple de fichier .bib fourni par Denis).

Un test est effectué sur chacune des entrées citées pour savoir si on doit l'ajouter dans la categorie AuthorMe. Dans la version ci-dessous, le test compare le nom de l'auteur à Me. En cas d'homonymie sur le nom, il faudrait tester aussi le prénom. En cas d'homonymie parfaite (nom et prénom), il faut trouver un autre critère déterminant...

Ouvrir dans l'éditeur
\begin{refilecontents}{\jobname.bib}
@Book{            another1,
  author        = {Author 1, Another},
  title         = {Another's Book 1},
  date          = {1900-09-01}
}
@Book{            another2,
  author        = {Author 2, Another},
  title         = {Another's Book 2},
  date          = {1900-09-02}
}
@Book{            another3,
  author        = {Author 3, Another},
  title         = {Another's Book 3},
  date          = {1900-09-03}
}
% My work
@Book{            mybook1,
  author        = {Me, Myself},
  title         = {My Book 1},
  date          = {2015-09-01},
}
@Book{            mybook2,
  author        = {Me, Myself},
  title         = {My Book 2},
  date          = {2015-09-02},
}
\end{filecontents}

\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,defernumbers=true]{biblatex}
\usepackage{babel}
%
\addbibresource{\jobname.bib}
%

\newcommand{\MeAuthor}{Me}
\DeclareBibliographyCategory{AuthorMe}
\DeclareIndexNameFormat{AuthorMe}{
  \ifboolexpr{ test {\ifdefstring{\MeAuthor}{#1}}}
  {\addtocategory{AuthorMe}{\thefield{entrykey}}}
  {}}
\AtDataInput{\indexnames[AuthorMe]{author}}

\begin{document}
% La bibliographie complète
\nocite{*}
\printbibliography

\newpage
% La bibliographie d'un seul auteur (Me)
\printbibliography[category=AuthorMe,title=Biblio de Me]

\end{document}
Lien permanent

Publiée 22 Sep '15, 02:26

Paul%20Gaborit's gravatar image

Paul Gaborit
2.0k16
Taux d'acceptation : 32%

Modifiée 22 Sep '15, 09:51

@Paul Gaborit Intéressant ! Peux-tu expliquer un peu ? En particulier, le test se fait-il uniquement sur la présence de « Me » dans l'attribut « author » ? Le seul (léger) inconvénient que je vois à cette solution est que, sauf erreur de ma part, elle ne fonctionne pas en cas d'homonymie.

(22 Sep '15, 08:49) denis ♦♦ denis's gravatar image

OK j'ai mis deux fichier .bib une pour les references global du document et une deuxième pour mes propres references.

Je souhait :

  1. List item afficher les reference avec tous les nom des auteurs et sans le mention "In:" dans le citation.
  2. List item que le liste de mes publications est une section d'une chapitre dans (class=yathesis) et il soit numéroter

pour 1 j'ai essayé le suivante

Ouvrir dans l'éditeur
\usepackage[backend=biber,style=numeric,sorting=none,url=false,doi=false,uniquename=full]{biblatex}

resultat une auteur par article et je n'ai pas trouvé comment supprimer le mention "In:"

j'ai essayé d'utiliser le style IEEE

Ouvrir dans l'éditeur
\usepackage[backend=biber,style=ieee,url=false,doi=false]{biblatex}

resultat est conform a mes attentes mais j'ai des erreurs de compilation que je n'arrive pas a resoudre mais le \printbibliography dans le refsection est indiqué comme origin de l'erreur

Ouvrir dans l'éditeur
\begin{refsection}[biblio/myarticlesWOS.bib]
  \nocite{*}
  \printbibliography[title={Published Articles}]
\end{refsection}

Pour 2 j'ai remplacé refsection par refsegement=section J'ai eu beaucoup erreurs, j'ai certainement pas compris comment utiliser ce variable

Je suis desolé pour les explications vagues

merci

Lien permanent

Publiée 22 Sep '15, 13:34

frank's gravatar image

frank
137258
Taux d'acceptation : 0%

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.