[bibunits] Bibliographie globale

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[bibunits] Bibliographie globale

Messagepar rouroy » Mercredi 16 Juin 2010, 16:21

bonjour, je suis en train de rédiger ma thèse et je voudrais pouvoir insérer plusieurs bibliographies. dans ce but je compte utiliser bibunits.
je travaille avec miktex 2.8 et texniccenter sous windows en pdflatex.
j'ai plusieur chapitre, chacun avec un fichier bib, bibunits fait appel a ce fichier, jusque la pas de souci, j'ai bien les bib la ou je dois les avoir dans mon fichier final.

Par contre je voudrais faire une bib "globale" à la fin de ma thèse, reprenant tout les références que j'ai cité avant. j'ai donc un autre fichier bib qui reprend le contenu de tout les précédent et pour pas devoir citer toute les refs avant de charger ce dernier bib, j'ai mis la commande \nocite{*} et c'est la que ca bug +/-. En gros , mes refs apparaissent bien mais j'ai autant de warning qu'il y a de reference, ca me dit que la référence un tel a déja été utilisée (forcément vu que ce fichier bib reprend toute les refs !) et que le duplicate est ignoré. Si maintenant au lieu de mettre la \nocite{*}, je charge chacun des refs, (j'ai testé avec 2-3), ca marche, mais c'est très laborieux car j'ai bcp de ref.

Je pense que mon problème provient du package hyperref qui voulant faire des refs croisées, voit 2 sorties pour une entrée quand j'utilise nocite{*}.
Est-ce que qlq un connait une solution pour que j'utilise quand meme nocite{*} sans me faire appraitre autant de warning qu'il y a de ref ??

merci
rouroy
Utilisateur
 
Messages: 1
Inscription: Mercredi 16 Juin 2010, 08:23
Statut actuel: Post-bac | Doctorat

Publicité

Re: [bibunits] Bibliographie globale

Messagepar pg » Vendredi 18 Juin 2010, 23:09

On supprimer les warnings en redéfinissant les commandes utilisées par hyperref à l'intérieur de chaque environnement {bibunit} (astuce adaptée d'un ancien fil de comp.text.tex). J'ai tout mis dans une commande pour que cela soit plus pratique :

Code: Tout sélectionner
\makeatletter
\def\bibunitlinks#1{%
% principe d'apres
%http://groups.google.fr/group/comp.text.tex/browse_thread/thread/a1c2469634d6dffe
  \def\hyper@natlinkstart##1{%
    \Hy@backout{##1}%
    \hyper@linkstart{cite}{#1.cite.##1}%
    \def\hyper@nat@current{##1}%
  }
  \def\hyper@natlinkbreak##1##2{%
    \hyper@linkend##1\hyper@linkstart{cite}{#1.cite.##2}%
  }
  \def\hyper@natanchorstart##1{%
    \Hy@raisedlink{\hyper@anchorstart{#1.cite.##1}}%
  }
  \def\@lbibitem[##1]##2{%
     \@skiphyperreftrue
     \H@item[\hyper@anchorstart{#1.cite.##2}%
     \@BIBLABEL{##1}\hyper@anchorend\hfill]%
     \@skiphyperreffalse
     \if@filesw
       \begingroup
         \let\protect\noexpand
         \immediate\write\@auxout{%
           \string\bibcite{##2}{##1}%
         }%
       \endgroup
     \fi
     \ignorespaces
 
  }%
  \def\@bibitem##1{%
     \@skiphyperreftrue\H@item\@skiphyperreffalse
     \hyper@anchorstart{#1.cite.##1}\relax\hyper@anchorend
     \if@filesw
       \begingroup
         \let\protect\noexpand
         \immediate\write\@auxout{%
           \string\bibcite{#1.##1}{\the\value{\@listctr}}%
         }%
       \endgroup
     \fi
     \ignorespaces
 
  }%
}
\makeatother

L'utilisation est :

Code: Tout sélectionner
\begin{bibunit}[unsrt]
\bibunitlinks{bibunit.type1}% changer le numéro pour chaque environnement {bibunit}
\nocite{toto}
\nocite{titi}
\putbib[moi]
\end{bibunit}


Voici un fichier zip contenant un exemple complet compilable qui montre qu'il n'y a aucun warning ; pour compiler le tout, double cliquer sur le fichier "make_document.bat" :

bibunits_biblio_globale.zip
(1.5 Kio) Téléchargé 109 fois
pg
Modérateur
 
Messages: 2592
Inscription: Jeudi 14 Juin 2007, 23:31


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google Adsense [Bot], Proximic [Spider] et 21 invités