[LinuxFocus-icon]
Sommaire  |  Carte  |  Index  |  Recherche

Nouvelles | Archives | Liens | A propos
Ce document est disponible en: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
par Egon Willighagen
<egonw(at)linuxfocus.org>

L´auteur:

Egon a obtenu sa Maîtrise de chimie à l'Université de Nimègue, et son sujet de thèse porte sur la représentation moléculaire. Il joue au basket et programme des applications en Java.



Traduit en Français par:
Georges Tarbouriech <georges.t(at)linuxfocus.org>

Sommaire:

 

Utiliser BibTeXML dans DocBook XML pour écrire des articles scientifiques

[Illustration]

Résumé:

Dans cet article je montrerai comment utiliser BibTex en tant que système de référence avec DocBook XML. J'ai développé des outils pour faciliter ce processus qui sont disponibles sous forme de paquetages dans la distribution JReferences.



 

Introduction

Les utilisateurs de Latex savent à quel point BibTex est utile. C'est un outil très pratique pour ajouter des références à toute littérature scientifique sans se préoccuper de l'aspect, qui sera correct de toute manière - par exemple, définir la bonne mise en page, mais sans "réglage" manuel. Comme Latex. Encore mieux, dans la littérature scientifique, il est courant de numéroter les références avec des nombres en superscript ("élévation à une puissance"), comme ceci1. De plus, ces nombres doivent être consécutifs. BibTex prend aussi cet aspect en charge.

DocBook devient tous les jours un peu plus mon outil de prédilection pour la création de texte, en raison de sa syntaxe basée sur XML, de ses capacités à créer des sites web (par exemple, le site CDK http://cdk.sf.net/, est entièrement réalisé en DocBook) et des pages de manuel. L'étape suivante, pour moi, consistait à utiliser DocBook pour écrire des articles scientifiques. J'avais donc besoin de BibTex pour DocBook. C'est pour cela que j'ai créé JReferences.

JReferences en fait un peu plus que BibTex. Comme lui, il possède des outils de numérotation automatique de références à partir d'une base de données texte, mais il peut faire mieux. Il supporte plus de formats (en entrée comme en sortie), il peut être interfacé avec MySQL, auquel on peut accéder par une interface PHP. Il peut aussi devenir une base de références, comme EndNote. Toutefois, même s'il s'agit d'un projet libre (licence GPL), il n'a pas attiré beaucoup d'autres développeurs que moi, et le développement est donc lent. Cela ne signifie pas qu'il est inutile et je vais essayer de vous le prouver dans cet article.

A la publication de cet article, JReferences est à la version 0.7.2. C'est donc cette dernière qui est traitée ici.

 

Un article DocBook

Cet exemple se trouve dans le paquetage JReferences.

<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//JReferences//DTD DocBook JReferences Module //EN"
                         "../dtd/jreferences.dtd" []>
<article>

  <jref:mode>Number</jref:mode>

  <articleinfo>
    <title>Article Test</title>
    <author><firstname>Egon</firstname><surname>Willighagen</surname></author>
    <date> 3 May 2000</date>
  </articleinfo>

  <section>
    <title>Un paragraphe</title>
    <para>Voici un texte avec une référence <jref:cite id="Steinbeck99"/>.</para>
    <para>Et pour compliquer le test, nous ajoutons une seconde référence
      <jref:cite id="Bachrach99"/>. Et de nouveau, la première référence
      <jref:cite id="Steinbeck99"/>.
    </para>
  </section>

  <jref:reflist/>

</article>

Je vais commenter cet exemple ligne par ligne. La première ligne est la ligne habituelle (optionnelle) définissant la syntaxe du fichier; ici, il s'agit de XML. La seconde et la troisième ligne stipulent que le langage XML utilisé est DocBook, mais qu'au lieu de DTD, nous employons le module JReferences. DocBook XML ne connaît pas JReferences, et se servir de cette DTD produirait des documents incorrects. Par contre, le module JReferences, reconnaît à la fois DocBook et JReferences (pour les habitués de DocBook, pas encore SVG ou MathML). Par conséquent, ce module vous permet de valider votre document. L'exemple ci-dessus est un document DocBook valide.

La quatrième ligne contient la balise de départ de l'élément de l'article. Jusque là, ça va. A la sixième ligne, ça commence à devenir intéressant : le premier élément jref apparaît. L'élément <jref:mode> permet d'indiquer à JReferences le type de numéro de référence qu'il doit utiliser. Dans l'introduction j'ai déjà signalé que normalement on utilise les nombres en superscript (élévation à une puissance). Il y a pourtant beaucoup d'autres possibilités. JReferences accepte [1], 1, et [Steinbeck99]. Ce dernier fournit le code utilisé dans la référence. L'exemple utilise la première option.

Les quelques lignes suivantes sont du contenu DocBook de base et la prochaine ligne intéressante est la 16. Dans cette ligne, la première référence est citée. Les utilisateurs de Latex auraient écrit \cite{}; la syntaxe de JReferences est <jref:cite id="SomeID"/>. L'ID correspond à une référence dans la base de données, qui sera expliquée ultérieurement. Le paragraphe suivant contient deux autres citations, l'une étant, encore une fois, la première référence.

Pour inclure les références, on utilise <jref:reflist/> à la ligne 23. Cette commande JReferences sert à les convertir en une liste de références au format DocBook, dans l'ordre de leur citation.

 

La base de données BibTeXML

Le système JReferences réclame une base de données ressemblant aux fichiers *.bib de Latex/BibTex. JReferences est capable de s'interfacer avec BibTeXML mais aussi avec d'autres (comme MySQL). BibTeXML a été développé par Vidar Gundersen et Zeger Hendrikse. L'exemple de la distriburion JReferences (0.7.2) n'utilise pas encore BibTeXML, mais l'exemple de l'article possède un équivalent BibTeXML :

<?xml version="1.0" encoding="UTF-8"?>
<bibtex:file xmlns:bibtex="http://www.bitjungle.com/~bibtex/">

<bibtex:entry bibtex:id="Steinbeck99">
  <bibtex:article>
    <bibtex:title>JChemPaint - Using the Collaborative Forces of the Internet to
                  Develop a Free Editor for 2D Chemical Structures</bibtex:title>
    <bibtex:author>Steinbeck, C. and
                      Krause, S. and
                      Willighagen, E.</bibtex:author>
    <bibtex:year>2000</bibtex:year>
    <bibtex:volume>5</bibtex:volume>
    <bibtex:pages>93-98</bibtex:pages>
  </bibtex:article>
</bibtex:entry>

<bibtex:entry bibtex:id="Bachrach99">
  <bibtex:article>
    <bibtex:title>End-User Customized Chemistry Journal Articles</bibtex:title>
    <bibtex:author>Bachrach, S. and
                      Krassavine, A. and
                      Burleigh, D.</bibtex:author>
    <bibtex:journal>J.Chem.Inf.Comput.Sci.</bibtex:journal>
    <bibtex:year>1999</bibtex:year>
    <bibtex:volume>39</bibtex:volume>
    <bibtex:pages>81-85</bibtex:pages>
  </bibtex:article>
</bibtex:entry>

</bibtex:file>

La seconde ligne contient la balise de départ de l'élément racine <bibtex:file>. Un tel fichier contient un ou plusieurs éléments <bibtex:entry>. Et chaque entrée consiste en un type de références BibTeXML : article, livre, collection, non publié, divers, etc. Chaque référence contient des éléments spécifiques à ce type, mais plusieurs sont communs, tels <bibtex:title> et <bibtex:year>. La distribution JReferences contient la DTD BibTeXML de manière à ce que tous les éditeurs XML gérant les DTD puissent manipuler des documents BibTeXML. De plus, JReferences contient des DTD Meta pour Kate dans KDE 3.x (voir Editer des documents XML avec DocBook ) qui sont automatiquement installés dans $HOME/.kde/share/apps/katexmlplugin.

[kate]
Editer des fichiers BibTeXML avec Kate, son plugin XML et la DTD Meta BibTeXML de JReferences.
 

Générer une bibliographie

Considérons les deux fichiers exemples ci-dessus. Le document DocBook est enregistré en tant qu'article.docbookxml. JReferences ne propose pas encore d'outil semblable au programme bibtex, mais le même résultat peut être obtenu par quelques commandes. La commande ci-dessous implique que JReferences est installé sur un système de type Unix, comme Linux (voir plus loin) :

jref-clear --filedb
jref-set --filedb --bibtexml references.bibtexml
jref-number --filedb article.docbookxml > article-numbered.docbookxml

Le fichier obtenu, nommé article-numbered.docbookxml est un document DocBook XML 4.1.2 valide, sans élément <jref:*> et peut être manipulé par d'autres outils destinés à convertir des documents XML DocBook en PDF, par exemple. (Voir Créer des documents PDF avec DocBook).

[result]
Le fichier PDF obtenu comportant les références numérotées et une bibliographie.

C'est tout ce que vous devez savoir. Enfin, presque...

 

Styles de formatage

Il reste encore un point intéressant. BibTex gère les styles, parce que de nombreux journaux réclament un formatage particulier pour les bibliographies. Pour l'instant JReferences ne propose que deux styles. Le premier est un format par défaut de XML DocBook, ce qui n'est pas vraiment un style. Mais un style exigé par l'American Chemical Society (ACS) est disponible dans JReferences.

L'élément <jref:reflist> possède un attribut @style avec lequel vous pouvez définir le style à utiliser en remplacement de celui par défaut. Pour appliquer le style ACS, vous devez remplacer la ligne 23 par :

<jref:reflist style="ACS"/>
 

Installer JReferences

JReferences nécessite l'installation de Java 1.3 (ou mieux), Xerces, Log4J et DocBook XML DTD 4.1.2. Certains outils réclament des programmes additionnels, comme python (pour la conversion BibTex en BibTeXML), et Perl (pour "nettoyer" ce que produit le BibTex de EndNote).

Si votre disque contient tout ceci, JReferences peut être installé en tapant :

./configure --prefix=$HOME
make
make install

Si certains outils ne sont pas trouvés, essayez les options suivantes : --with-xercesdir, --with-log4javadir et --with-sgmldir. Pour plus ample information sur ces options, tapez "./configure --help".

 

Le projet

JReferences a maintenant deux ans, et bien qu'il ait été téléchargé souvent, je n'ai pas beaucoup de retour. C'est-à-dire, en dehors de ma propre expérience. Dans les derniers mois, JReferences a été utilisé avec succès pour écrire un véritable article scientifique. Toutefois, comme pour n'importe quel projet libre, commentaires, rapports de bogues, correctifs, idées et histoires de réussites sont les bienvenus sur le site du projet JReferences.

 

Références

 

Discussion sur cet article

Chaque article possède sa page de discussion. Vous pouvez y soumettre un commentaire ou lire ceux d´autres lecteurs:
 page de discussion 

Site Web maintenu par l´équipe d´édition LinuxFocus
© Egon Willighagen, FDL
LinuxFocus.org

Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus
Translation information:
en --> -- : Egon Willighagen <egonw(at)linuxfocus.org>
en --> fr: Georges Tarbouriech <georges.t(at)linuxfocus.org>

2002-09-07, generated by lfparser version 2.27