Share via


Créer des styles de bibliographie personnalisés

Créer un style de bibliographie personnalisée en apprenant les étapes (et le code XML) qui vous seront nécessaires à créer un style personnalisé simple. Apprenez également à créer un fichier de style plus complexe. Avant de commencer, voici ce que vous devez savoir :

Les sources de bibliographie que vous créez sont toutes répertoriées dans le fichier local suivant : %AppData%\Microsoft\Bibliography\Sources.xml.

Remarque

Le fichier Sources.xml n’existera pas tant que vous n’aurez pas créé votre première source de bibliographie dans Word. Tous les styles de bibliographie sont stockés dans le profil de l’utilisateur ici : %AppData%\Microsoft\Bibliography\Style.

Création d’un style de bibliographie base

Commencez par créer un style de bibliographie de base que le style personnalisé pourra suivre.

Configuration du style de bibliographie

Pour créer un style de bibliographie, nous allons créer une feuille de style XML, c'est-à-dire un fichier .xsl appelé MyBookStyle.xsl, à l'aide de votre éditeur XML favori. Le bloc-notes conviendra très bien. Comme son nom l'indique, notre exemple sera un style pour un type de source « Book » (Ouvrage).

En haut du fichier, ajoutez le code suivant :

<?xml version="1.0" ?> 

<!--List of the external resources that we are referencing-->
 
<xsl:stylesheet version="1.0" xmlns:xsl="https://www.w3.org/1999/XSL/Transform" xmlns:b="https://schemas.openxmlformats.org/officeDocument/2006/bibliography">
 
<!--When the bibliography or citation is in your document, it's just HTML-->
 
<xsl:output method="html" encoding="us-ascii"/>
   
<!--Match the root element, and dispatch to its children-->
   
<xsl:template match="/">

<xsl:apply-templates select="*" />

</xsl:template>

Comme l'indiquent les commentaires, Word utilise du code HTML pour représenter une bibliographie ou une citation dans un document. La plus grande partie du code XML précédent est juste une préparation pour les parties du style plus intéressantes. Par exemple, vous pouvez donner à votre style un numéro de version pour suivre les modifications apportées, comme illustré dans l'exemple suivant.

<!--Set an optional version number for this style--> 

<xsl:template match="b:version"> 

   <xsl:text>2006.5.07</xsl:text>

</xsl:template>

Plus important encore, vous pouvez donner un nom à votre style. Ajoutez cette balise : <xsl :when test="b :StyleNameLocalized »> ; puis donnez un nom à votre style, dans la langue de votre choix, en utilisant le code suivant.

<xsl:when test="b:StyleNameLocalized/b:Lcid='1033'">

   <xsl:text>[Your Style Name]</xsl:text>
 
</xsl:when>

Cette section contient le nom de paramètres régionaux de votre style. Cette section contient le nom des paramètres régionaux de votre style. Dans le cas de notre exemple de fichier, nous souhaitons que le nom de notre style de bibliographie personnalisé, « Simple Book Style », apparaisse dans la liste déroulanteStyle sur l'onglet Références. Pour ce faire, ajoutez le code XML suivant pour spécifier que le nom du style est en anglais (Lcid détermine la langue).

<!--Defines the name of the style in the References dropdown list-->
<xsl:when test="b:StyleNameLocalized"> 
   <xsl:choose> 
      <xsl:when test="b:StyleNameLocalized/b:Lcid='1033'"> 
         <xsl:text>Simple Book Style</xsl:text> 
      </xsl:when> 
</xsl:when>

Votre style apparaît désormais sous son propre nom dans la zone de liste déroulanteStyle de bibliographiedans la liste déroulante de l'application.

À présent, examinez les détails du style. Chaque type de source dans Word (par exemple, Ouvrage, Film, Article dans un périodique, etc.) présente une liste de champs intégrée que vous pouvez utiliser pour la bibliographie. Pour voir tous les champs disponibles pour un type de source donné, sur l'ongletRéférences, cliquez surGérer les sources, puis, dans la boîte de dialogueGestionnaire de source, choisissez Nouveau pour ouvrir la boîte de dialogue Créer une source. Ensuite, sélectionnez Afficher tous les champs bibliographiques.

Pour le type de source Ouvrage, les champs suivants sont disponibles :

  • Auteur

  • Titre

  • Year

  • Ville

  • État/Province

  • Pays/Région

  • Publisher

  • Éditeur

  • Volume

  • Nombre de volumes

  • Traducteur

  • Titre abrégé

  • Numéro d'identification

  • Pages

  • Édition

  • Comments

Dans le code, vous pouvez spécifier les champs qui sont importants pour votre style de bibliographie. Même si l’option Afficher tous les champs bibliographiques est désactivée, ces champs apparaîtront et présenteront un astérisque rouge. Dans notre exemple d'ouvrage, je veux être sûr que l'auteur (Author), le titre (Title), l'année (Year), la ville (City) et la maison d'édition (Publisher) sont renseignés, donc je souhaite qu'un astérisque rouge apparaisse en regard de ces champs pour avertir l'utilisateur que ceux-ci sont des champs recommandés qui doivent être renseignés.

<!--Specifies which fields should appear in the Create Source dialog box when in a collapsed state (The Show All Bibliography Fields check box is cleared)-->

<xsl:template match="b:GetImportantFields[b:SourceType = 'Book']"> 
   <b:ImportantFields> 
      <b:ImportantField> 
         <xsl:text>b:Author/b:Author/b:NameList</xsl:text> 
      </b:ImportantField> 
      <b:ImportantField> 
         <xsl:text>b:Title</xsl:text> 
      </b:ImportantField> 
     <b:ImportantField> 
         <xsl:text>b:Year</xsl:text> 
      </b:ImportantField> 
      <b:ImportantField> 
         <xsl:text>b:City</xsl:text>
      </b:ImportantField> 
      <b:ImportantField> 
         <xsl:text>b:Publisher</xsl:text> 
      </b:ImportantField> 
   </b:ImportantFields> 
</xsl:template>

Le texte des <balises xsl :text> est une référence au fichier Sources.xml. Ces références extraient les données qui rempliront chacun des champs. Examinez Sources.xml (%APPDATA%\Microsoft\Bibliography\Sources.xml) pour savoir à quoi correspondent ces références dans le fichier XML.

Conception de la mise en page

La sortie pour les bibliographies et les citations est représentée dans un document Word au format HTML. Par conséquent, pour définir l'apparence de nos styles personnalisés de bibliographie et de citation dans Word, nous devons ajouter du code HTML à notre feuille de style.

Supposons que vous souhaitez mettre en forme chaque entrée de votre bibliographie de cette manière :

Nom, Prénom. (Année). Titre. Ville : Éditeur

Le code HTML requis pour effectuer cette action doit être incorporé dans votre feuille de style comme suit.

<!--Defines the output format for a simple Book (in the Bibliography) with important fields defined-->

<xsl:template match="b:Source[b:SourceType = 'Book']"> 

<!--Label the paragraph as an Office Bibliography paragraph-->

   <p> 
      <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/> 
      <xsl:text>, </xsl:text> 
      <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:First"/> 
      <xsl:text>. (</xsl:text> 
      <xsl:value-of select="b:Year"/> 
      <xsl:text>). </xsl:text> 
      <i> 
         <xsl:value-of select="b:Title"/> 
         <xsl:text>. </xsl:text> 
      </i> 
      <xsl:value-of select="b:City"/> 
      <xsl:text>: </xsl:text> 
      <xsl:value-of select="b:Publisher"/> 
      <xsl:text>.</xsl:text> 
   </p> 
</xsl:template>

Lorsque vous faites référence à une source Ouvrage (Book) dans votre document Word, Word doit accéder à ce code HTML afin qu'il puisse utiliser le style personnalisé pour afficher la source. Vous devez donc ajouter du code à votre feuille de style personnalisée pour permettre à Word de le faire.

<!--Defines the output of the entire Bibliography-->
 
<xsl:template match="b:Bibliography"> 

   <html xmlns="https://www.w3.org/TR/REC-html40"> 
   
      <body> 

         <xsl:apply-templates select ="b:Source[b:SourceType = 'Book']"> 

         </xsl:apply-templates> 

      </body> 
   
   </html> 
</xsl:template>

Vous devrez faire la même chose pour la sortie de la citation. Suivez le modèle (Auteur, Année) (en anglais : (Author, Year)) pour une seule citation dans le document.

<!--Defines the output of the Citation-->
<xsl:template match="b:Citation/b:Source[b:SourceType = 'Book']"> 
   <html xmlns="https://www.w3.org/TR/REC-html40"> 
      <body> 
         <!-- Defines the output format as (Author, Year)--> 
         <xsl:text>(</xsl:text> 
            <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/> 
         <xsl:text>, </xsl:text> 
         <xsl:value-of select="b:Year"/> 
         <xsl:text>)</xsl:text> 
      </body> 
   </html> 
</xsl:template>

Fermez le fichier avec les lignes suivantes.

<xsl:template match="text()" /> </xsl:stylesheet>

Enregistrez le fichier sous MyBookStyle.XSL et déposez-le dans le répertoire des styles (\Microsoft\Bibliography\Style). Redémarrez Word et votre style se trouve à présent dans la liste déroulante Style. Vous pouvez utiliser votre nouveau style.

Création d’un style complexe

Un des problèmes qui compliquent les styles de bibliographie réside dans la nécessité de disposer d'une grande quantité de logique conditionnelle. Par exemple, si la date est spécifiée, vous devez indiquer la date, tandis que si la date n'est pas spécifiée, vous devez utiliser une abréviation pour indiquer qu'il n'existe aucune date pour cette source.

Pour un exemple plus spécifique, dans le style APA, si aucune date n’est spécifiée pour une source de site web, l’abréviation « n.d. » est utilisée pour indiquer aucune date, et le style doit le faire automatiquement. Voici un exemple :

Source de site web APA sans aucune date renseignée : Kwan, Y. (n.d.). Extrait de la source de site web APA https://www.microsoft.com avec la date renseignée : Kwan, Y. (le 18 janvier 2006). Extrait de https://www.microsoft.com

Comme vous pouvez le voir, ce qui est affiché dépend des données renseignées.

La sortie de pratiquement tous les styles doit changer selon que vous avez un « auteur d’entreprise » ou un « auteur normal ». Vous verrez comment utiliser l’une des règles les plus courantes pour implémenter une telle logique dans votre style, ce qui vous permet d’afficher un auteur d’entreprise si l’auteur de l’entreprise est spécifié, et un auteur normal si l’auteur de l’entreprise n’est pas spécifié.

Présentation de la solution

Pour afficher un auteur d’entreprise uniquement si cela est approprié, utilisez la procédure suivante.

Pour afficher un auteur d’entreprise

  1. Ajoutez une variable pour compter le nombre d'auteurs d'entreprise dans la section du code pour la citation.

  2. Affichez l'auteur d'entreprise dans la citation si l'auteur d'entreprise est renseigné. Affichez l'auteur normal dans la citation si l'auteur d'entreprise n'est pas renseigné.

  3. Ajoutez une variable pour compter le nombre d'auteurs d'entreprise dans la section du code pour la bibliographie.

  4. Affichez l'auteur d'entreprise dans la bibliographie si l'auteur d'entreprise est renseigné. Affichez l’auteur normal dans la bibliographie si l’auteur d’entreprise n’est pas renseigné.

Prise en main

Nous allons commencer par modifier la citation. Voici le code pour les citations de la dernière fois.

<!--Defines the output of the Citation-->
<xsl:template match="b:Citation/b:Source[b:SourceType = 'Book']"> 
   <html xmlns="https://www.w3.org/TR/REC-html40"> 
      <body> 
         <!--Defines the output format as (Author, Year)-->
         <xsl:text>(</xsl:text> 
         <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/>
         <xsl:text>, </xsl:text> 
         <xsl:value-of select="b:Year"/> 
         <xsl:text>)</xsl:text> 
      </body>
   </html> 
</xsl:template>

Étape 1 : définition d’une nouvelle variable dans la section pour la citation qui compte le nombre d’auteurs d’entreprise

Déclarez une nouvelle variable pour aider à déterminer si un auteur d'entreprise est disponible. Cette variable représente le nombre de fois où le champ d’auteur d’entreprise existe dans la source.

<!--Defines the output of the Citation-->
<html xmlns="https://www.w3.org/TR/REC-html40">
   <!--Count the number of Corporate Authors (can only be 0 or 1)-->
      <xsl:variable name="cCorporateAuthors"> 
         <xsl:value-of select="count(b:Author/b:Author/b:Corporate)" /> 
      </xsl:variable>

Étape 2 : vérification que l’auteur d’entreprise a été renseigné

Vérifiez que l'auteur d'entreprise a été renseigné. Pour cela, déterminez si le nombre d'auteurs d'entreprise est différent de zéro. Si un auteur d'entreprise existe, affichez-le. Si aucun n'existe, affichez l'auteur normal.


<xsl:text>(</xsl:text> 
<xsl:choose>
<!--When the corporate author exists, display the corporate author-->
<xsl:when test ="$cCorporateAuthors!=0"> 
<xsl:value-of select="b:Author/b:Author/b:Corporate"/> 
</xsl:when>
<!-- When the corporate author does not exist, display the normal author--> 
<xsl:otherwise> 
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/> 
</xsl:otherwise> 
</xsl:choose> 
<xsl:text>, </xsl:text>

Maintenant que vous avez apporté la modification pour les citations, modifiez la bibliographie. Voici la section pour la bibliographie mentionnée précédemment dans cet article.

<!--Defines the output format for a simple Book (in the Bibliography) with important fields defined-->
<xsl: template match="b:Source[b:SourceType = 'Book']">
<!--Label the paragraph as an Office Bibliography paragraph--> 
<p> 
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/> 
<xsl:text>, </xsl:text> 
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:First"/> 
<xsl:text>. (</xsl:text> 
<xsl:value-of select="b:Year"/> 
<xsl:text>). </xsl:text> 
<i>

Étape 3 : définition d’une nouvelle variable dans la section pour la bibliographie

Une fois encore, nous allons commencer en ajoutant une variable de calcul.

<!--Defines the output format for a simple Book (in the Bibliography) with important fields defined-->
<xsl: template match="b:Source[b:SourceType = 'Book']"> 
<!--Count the number of Corporate Authors (can only be 0 or 1)-->
<xsl:variable name="cCorporateAuthors"> 
<xsl:value-of select="count(b:Author/b:Author/b:Corporate)" /> 
</xsl:variable>

Étape 4 : vérification que l'auteur d'entreprise a été renseigné

Vérifiez l’existence d’un auteur d’entreprise.

…..
<xsl:variable name="cCorporateAuthors"> 
<xsl:value-of select="count(b:Author/b:Author/b:Corporate)" /> 
</xsl:variable> 
<p> 
<xsl:choose>
<!--When the corporate author exists display the corporate author-->
<xsl:when test ="$cCorporateAuthors!=0"> 
<xsl:value-of select="b:Author/b:Author/b:Corporate"/> 
<xsl:text>. (</xsl:text> 
</xsl:when> 
<xsl:otherwise> 
<!--When the corporate author does not exist, display the normal author-->
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/> 
<xsl:text>, </xsl:text> 
<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:First"/> 
<xsl:text>. (</xsl:text>
</xsl:otherwise> 
</xsl:choose>

Voici le code final complet.

<?xml version="1.0" ?> 
<!--List of the external resources that we are referencing-->
<xsl:stylesheet version="1.0" xmlns:xsl="https://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:b="https://schemas.openxmlformats.org/officeDocument/2006/bibliography">
   <!--When the bibliography or citation is in your document, it's just HTML-->
   <xsl:output method="html" encoding="us-ascii"/> 
   <!--Match the root element, and dispatch to its children-->
   <xsl:template match="/"> 
      <xsl:apply-templates select="*" /> 
   </xsl:template>
   <!--Set an optional version number for this style-->
   <xsl:template match="b:version"> 
      <xsl:text>2006.5.07</xsl:text> 
   </xsl:template> 
   <!--Defines the name of the style in the References dropdown-->
   <xsl:template match="b:StyleName">     
      <xsl:text>Simple Book Style</xsl:text> 
   </xsl:template> 
   <!--Specifies which fields should appear in the Create Source dialog when in a collapsed state (The Show All Bibliography Fieldscheckbox is cleared)-->
   <xsl:template match="b:GetImportantFields[b:SourceType = 'Book']"> 
      <b:ImportantFields> 
         <b:ImportantField><xsl:text>b:Author/b:Author/b:NameList</xsl:text> </b:ImportantField> 
         <b:ImportantField> <xsl:text>b:Title</xsl:text> </b:ImportantField> 
         <b:ImportantField> <xsl:text>b:Year</xsl:text> </b:ImportantField> 
         <b:ImportantField> <xsl:text>b:City</xsl:text> </b:ImportantField> 
         <b:ImportantField> <xsl:text>b:Publisher</xsl:text> </b:ImportantField> 
      </b:ImportantFields> 
   </xsl:template>
   <!--Defines the output format for a simple Book (in the Bibliography) with important fields defined-->
   <xsl:template match="b:Source[b:SourceType = 'Book']">
   <!--Count the number of Corporate Authors (can only be 0 or 1-->
   <xsl:variable name="cCorporateAuthors">
      <xsl:value-of select="count(b:Author/b:Author/b:Corporate)" />
   </xsl:variable>
   <!--Label the paragraph as an Office Bibliography paragraph-->
   <p>
      <xsl:choose>
         <xsl:when test ="$cCorporateAuthors!=0">
         <!--When the corporate author exists display the corporate author-->
            <xsl:value-of select="b:Author/b:Author/b:Corporate"/>
            <xsl:text>. (</xsl:text>
         </xsl:when>
         <xsl:otherwise>
            <!--When the corporate author does not exist, display the normal author-->
            <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/>
            <xsl:text>, </xsl:text>
            <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:First"/>
            <xsl:text>. (</xsl:text>
         </xsl:otherwise>
      </xsl:choose>
      <xsl:value-of select="b:Year"/>
      <xsl:text>). </xsl:text>
      <i>
         <xsl:value-of select="b:Title"/>
         <xsl:text>. </xsl:text>
      </i> 
         <xsl:value-of select="b:City"/>
         <xsl:text>: </xsl:text>
         <xsl:value-of select="b:Publisher"/>
         <xsl:text>.</xsl:text>
      </p>
   </xsl:template>
   <!--Defines the output of the entire Bibliography-->
   <xsl:template match="b:Bibliography"> 
      <html xmlns="https://www.w3.org/TR/REC-html40"> 
         <body>
            <xsl:apply-templates select ="*">
            </xsl:apply-templates>
         </body>
      </html>
   </xsl:template>
   <!--Defines the output of the Citation-->
   <xsl:template match="b:Citation/b:Source[b:SourceType = 'Book']">
      <html xmlns="https://www.w3.org/TR/REC-html40"> 
         <xsl:variable name="cCorporateAuthors"> 
            <xsl:value-of select="count(b:Author/b:Author/b:Corporate)" /> 
         </xsl:variable> 
         <body> 
         <!--Defines the output format as (Author, Year--> 
            <xsl:text>(</xsl:text>
            <xsl:choose> 
            <!--When the corporate author exists display the corporate author-->
               <xsl:when test ="$cCorporateAuthors!=0">
                  <xsl:value-of select="b:Author/b:Author/b:Corporate"/>
               </xsl:when>
               <!--When the corporate author does not exist, display the normal author-->
               <xsl:otherwise> 
                  <xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/> 
               </xsl:otherwise>
               </xsl:choose>
               <xsl:text>, </xsl:text> 
               <xsl:value-of select="b:Year"/>
               <xsl:text>)</xsl:text> 
            </body> 
         </html>
   </xsl:template>
   <xsl:template match="text()" />
</xsl:stylesheet>

Conclusion

Cet article a expliqué comment créer un style de bibliographie personnalisé dans Word, tout d'abord en créant un style simple, puis à l'aide des instructions conditionnelles pour créer un style plus complexe.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.