web-dev-qa-db-fra.com

Comment ajouter un nouveau style de citation et de bibliographie à Microsoft Word?

Dans Microsoft Word, il existe 12 styles de citation et de bibliographie disponibles comme indiqué dans la capture d'écran suivante:

The 12 Citation & Bibliography Styles available in Microsoft Word.

Cependant, il semble que ce ne semble pas être un moyen facile d'ajouter un style personnalisé ou neuf de citation et de bibliographie. Et malheureusement, mon université utilise son propre style unique de citation et de bibliographie, qui est un style de chicago légèrement modifié. Fondamentalement, ils utilisent une ampères, et, au lieu de "et" pour faire référence à deux auteurs, par exemple. Et ils ont mis l'année après l'auteur (s) sans une période intermédiaire dans la bibliographie.

Donc, j'ai essentiellement besoin d'ajouter un nouveau style de citation et de bibliographie à Microsoft Word, une copie du style de Chicago, mais avec ces deux légères différences.

Mes recherches suggèrent que cela est possible via des fichiers XML. J'ai déjà modifié des fichiers XML, mais où est le fichier XML du style de Chicago, par exemple? [EDIT: Le chemin semble être% Appdata%\Microsoft\Bibliographie)

et quelles parties dois-je modifier dans le style de Chicago afin de transformer le "et" entre auteurs dans une ampères "&" et pour supprimer la période entre l'auteur (s) et l'année de la bibliographie (Il n'existe pas dans des citations en ligne)?

Le style APA utilise l'ampersand mais, malheureusement, le reste de sa mise en forme est significativement différent de Chicago et que le chicago global est plus proche de mon style ciblé. J'ai essayé de comparer les fichiers apasixtheditionOfficeOnline.xsl et chicago.xsl pour voir si je peux repérer les différences qui me donnent une idée de ce que je dois changer, étant donné que l'APA utilise l'ampersand et le Chicago utilise "et", mais Malheureusement, mon niveau de connaissances XML, associé à la taille de ces fichiers, m'a empêché de repérer la ou les pièces qui doivent être modifiées. De plus, les deux styles mettent une période après l'auteur (s) de la bibliographie.

Merci pour toute aide ou astuces avec ceci.

2
Rok

Il est difficile de travailler avec les feuilles de style de style intégrées .xsl, de sorte que celles-ci ne sont donc que quelques suggestions. La principale difficulté consiste à identifier le point approprié pour le changement - en fonction de ce que c'est, vous pourrait être capable de faire un seul changement, ou vous devrez peut-être apporter beaucoup de changements assez similaires. Ceci est principalement parce que ces feuilles de style essaient de mettre en œuvre un ensemble assez important de règles "petites" règles. Cependant, un agent de mise en œuvre fait cela, il sera toujours difficile d'identifier le point où la modification d'un modèle XSL à l'intérieur de la feuille de style va avoir l'impact approprié. Utiliser une langue qui n'est pas particulièrement familière et ne fournissant aucune documentation interne ne vous aide pas.

Un autre problème malheureux est que vous devrez peut-être fournir votre fichier .xsl modifié à quiconque a besoin de travailler sur votre document.

Mais par exemple, je vous suggère de commencer par enregistrer une copie de chicago.xsl dans le dossier que vous avez identifié (celui de votre zone utilisateur, pas celui des fichiers de programme ou des fichiers de programme (86). Appelez-le xhicago.xsl , peut-être.

Ensuite, lorsque vous redémarrez Word, vous devriez voir deux styles identiques énumérés dans la liste déroulante correspondante. Ouvrez maintenant le fichier .xsl dans un éditeur approprié (j'utilise actuellement le code Visual Studio ici, avec des plugins appropriés pour .xml et d'autres types de fichiers).

Tout ce qui a dit, vous pouvez au moins essayer ce qui suit car il peut vous aider à déterminer s'il suffit de répondre à vos besoins actuels.

Je vous suggère de commencer par enregistrer une copie de chicago.xsl dans le dossier que vous avez identifié (celui de votre zone utilisateur, pas celui des fichiers de programme ou des fichiers de programme (86). Appelez-le xhicago.xsl, peut-être.

Ensuite, lorsque vous redémarrez Word, vous devriez voir deux styles identiques énumérés dans la liste déroulante correspondante. Ouvrez maintenant un document de test qui contient déjà des citations et une bibliographie et basculez entre les deux styles de style Chicago en utilisant la liste déroulante du mot. Vous ne devriez voir aucun changement dans la sortie, mais le mot peut scintiller un peu.

Ouvrez le xhicago.xsl dans un éditeur approprié (j'utilise actuellement le code Visual Studio ici, avec des plugins appropriés pour .xml et d'autres types de fichiers).

IMO La première chose à changer est la xmlversion afin que vous puissiez voir la différence entre l'original Chicago et votre nouveau. Rechercher

b:XmlVersion

et vous devriez voir le code comme celui-ci (si vous utilisez une version significativement différente de Chicago.xsl, vous pouvez voir une différence par rapport à ce que je vois).

<xsl:when test="b:XslVersion">

  <xsl:text>16</xsl:text>

</xsl:when>

Changez le 16 à (disons) 18 (je pense que Microsoft aurait peut-être déjà déménagé depuis ma version), puis enregistrez le fichier .xsl. Ici, je n'ai généralement pas besoin de le fermer tout en testant les changements. Personnellement, j'écrirais également un commentaire XML - en dehors de tout autre chose, cela vous aide vraiment à trouver les choses que vous avez changées. par exemple.

<xsl:when test="b:XslVersion">

  <!-- 20200402 changed 16 to 18 -->

  <xsl:text>18</xsl:text>

</xsl:when>

Personnellement, je préfère également conclure l'ancien code à l'intérieur au cas où j'en ai besoin à nouveau.

Maintenant, redémarrez Mot de nouveau et rouvrez votre document de test. Vous devriez être capable de voir deux différents styles "Chicago" dans la liste déroulante, avec deux numéros de version différents.

Ensuite, dans le .xsl, cherchez

  <xsl:template name="templ_str_AndUnCap" >

et vous devriez voir un morceau de code comme celui-ci:

  <xsl:template name="templ_str_AndUnCap" >
    <xsl:param name="LCID" />
    <xsl:variable name="_LCID">
      <xsl:call-template name="localLCID">
        <xsl:with-param name="LCID" select="$LCID"/>
      </xsl:call-template>
    </xsl:variable>
    <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:Strings/b:AndUnCap"/>
  </xsl:template>

Ce que cela compte est de configurer une variable locale contenant le mot que le fichier .xsl utilisera lorsqu'il nécessite un "et", au moins lorsque vous utilisez une pièce d'identité en anglais.

Chaque fois que le mot veut générer le texte d'une citation ou de toute la bibliographie, il passe un fichier XML au fichier .xsl. Ce fichier contient toutes les citations pertinentes, ainsi qu'un tas d'autres paramètres. Certains d'entre eux sont des paramètres généraux, tels que "s'il y en avoir un" et "avant l'auteur final dans une liste d'auteurs", et certains sont des paramètres associés à différentes feuilles de style intégrées. En outre, il peut y avoir des paramètres pour de nombreux codes de langue différents. Ainsi, par exemple, le XML peut contenir "et" pour l'anglais mais "et" pour le français. Pour autant que je sache, il n'y a nulle part où vous permettant de configurer ces paramètres - ils sont codés en dur quelque part.

Donc, avant de changer ce code, vous devez déterminer quel est l'impact.

Tout d'abord, autant que je puisse dire, le mot "et" n'est défini que dans un élément du XML entrant. Donc, si vous voulez "et" pour une liste d'auteurs, mais pas pour "Traducteurs", vous ne pouvez pas compter sur le XML entrant pour vous le fournir. Le changement que je vais suggérer changera "et" à "&" dans tout lie où le fichier .xsl référente cette valeur entrante. En outre, cela ne prendra aucun compte de l'ID de langue. Mais voici mon code suggéré:

<xsl:template name="templ_str_AndUnCap" >
    <xsl:param name="LCID" />
    <xsl:variable name="_LCID">
      <xsl:call-template name="localLCID">
        <xsl:with-param name="LCID" select="$LCID"/>
      </xsl:call-template>
    </xsl:variable>
    <!--20200402 use &amp; instead of <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:Strings/b:AndUnCap"/>-->
    <xsl:text>&amp;</xsl:text>
  </xsl:template>

Maintenant, enregistrez-la à nouveau .xsl. Lorsque vous passez au style de Chicago et revenez au style Xhicago, vous devez voir les modifications réfléchies dans la bibliographie (bien que vous puissiez devoir mettre à jour la bibliographie). Si vous avez fabriqué TOUT Erreurs de codage, les chances que vous ne verrez aucune modification et que vous redémarrez la prochaine fois que vous redémarrez Word, vous ne verrez probablement pas le style xhicago dans la liste non plus. Ne chargez pas la feuille à moins que ce soit un fichier .xsl valide et contient des modèles spéciaux que le mot attend.

Cependant, si tout fonctionne et que vous avez un livre avec des auteurs

Ionawr, Chwefror, Mawrth and Ebrill

à Chicago dans la citation, vous devriez voir

Ionawr, Chwefror, Mawrth and Ebrill

et dans la bibliographie, vous devriez voir

Ionawr, Chwefror, Mawrth, and Ebrill

À Xhicago, vous devriez voir

Ionawr, Chwefror, Mawrth & Ebrill

et

Ionawr, Chwefror, Mawrth, & Ebrill

respectivement.

Maintenant, je ne voudrais pas vraiment beaucoup aimer cette virgule après Luke, et vous pouvez probablement vous en débarrasser (encore une fois, peut-être un impact plus large que vous pourriez espérer) en cherchant

  <xsl:template name="templ_prop_NoCommaBeforeAnd" >

et changer le texte là-bas à

  <xsl:template name="templ_prop_NoCommaBeforeAnd" >
    <xsl:param name="LCID" />
    <xsl:variable name="_LCID">
      <xsl:call-template name="localLCID">
        <xsl:with-param name="LCID" select="$LCID"/>
      </xsl:call-template>
    </xsl:variable>
    <!-- 20200402 hard code this one
    <xsl:value-of select="/*/b:Locals/b:Local[@LCID=$_LCID]/b:General/b:NoCommaBeforeAnd"/>
    -->
    <xsl:text>yes</xsl:text>
  </xsl:template>

Économisez cela et testez-le.

Enfin, se débarrasser du point entre les auteurs et l'année est problématique pour encore plus de raisons que nous en avons discutées ci-dessus. par exemple. Ce n'est pas nécessairement un "point avant l'année". E.G., Et s'il n'y a pas d'an? (et nous n'avons même pas discuté de la situation où vous avez "et. al." au lieu d'autres noms d'auteur).

Ce qui peut résoudre ce problème pour une liste d'auteurs de livres est de rechercher

<xsl:variable name="theAuthorSufixDot">

et changer le code en

<xsl:variable name="theAuthorSufixDot">
  <!--this may be enough to suppress the dot between the authors and the year
  <xsl:call-template name="appendField_Dot">
    <xsl:with-param name="field" select="$theAuthorSufix"/>
  </xsl:call-template>
  -->
  <xsl:value-of select="$theAuthorSufix" />
</xsl:variable>

BTW, il vaut probablement la peine d'être vérifié pour voir si quelqu'un de votre Uni. a déjà fait ce travail. J'ai certainement effectué des modifications mineures pour les personnes de temps en temps, mais je ne pense pas à l'obtenir tout Droite pour toutes situations pour tous " Les cultures "est vraiment une proposition pratique sans dépenser beaucoup de temps sur le problème. Bien que je pense que la structure interne du XML que le mot passe au XSL peut être décrite dans la norme ISO 29500 pour le .docx, j'ai trouvé toute cette zone très confuse et a décidé que la seule chose qui aiderait aurait une feuille de style que itéré à travers tout le XML que le mot fournit. Je suis sûr que cela pourrait être amélioré de différentes manières, mais voici mon "exploration.xsl". Évidemment, vous ne pouvez pas l'utiliser comme une feuille régulière, mais vous le mettez dans le même dossier que les autres fichiers .xsl et vous allumez-le de la manière habituelle dans Word.

Incidemment, la documentation de Microsoft sur ce que vous devez mettre dans une .xsl est assez vieux maintenant. Je ne pense pas que cela explique tout ce que certaines des "options" mises en œuvre par code dans le "choix" principal, par exemple.

<xsl:when test="b:XslVersion">

étaient nécessaires dans les versions antérieures de Word, mais ne sont pas nécessaires dans les plus tard et inversement. De plus, à une époque, la version MAC de Word a pris en charge une disposition différente de la note de bas de page de la disposition normale de citation. Cependant, cela a disparu dans Mac Word 2016 et je ne pense pas que cela soit revenu.

Enfin, vous trouverez d'autres fichiers .xsl utilisés par le système de bibliographie dans les dossiers Microsoft Office dans les fichiers de programme (ou la version (86)). Autant que je sache, ceux-ci ne sont pas utilisés dans la production des textes de citation et de berge, il suffit d'utiliser pour tout ou partie des boîtes de dialogue associées à la bibliographie utilisées par Word.

Mais voici cet exploration.xsl:

urn:schemas-Microsoft-com:xslt" 
   xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography" 
   xmlns:t="http://www.Microsoft.com/temp">
   <xsl:output method="html" encoding="utf-8"/>

   <!--Match the root element, and dispatch to its children-->

   <xsl:template match="/">
      <!--<xsl:apply-templates select="*" />-->
      <xsl:choose>
         <xsl:when test="b:Version">
            <xsl:text>2019.10.16</xsl:text>
         </xsl:when>

         <xsl:when test="b:XslVersion">
            <xsl:text>2</xsl:text>
         </xsl:when>



         <xsl:when test="b:StyleNameLocalized">
            <xsl:text>explore</xsl:text>
         </xsl:when>

      <!--<xsl:variable name="book_Title">
         <xsl:value-of select="(b:Title)" />
      </xsl:variable>-->

         <xsl:when test="b:Citation">
            <xsl:call-template name="output-data"/>
         </xsl:when>

         <xsl:when test="b:Bibliography">
            <xsl:call-template name="output-data"/>
         </xsl:when>

      </xsl:choose>

   </xsl:template>

   <xsl:template name="output-data" >
      <html xmlns="http://www.w3.org/TR/REC-html40">
         <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
         </head>
         <body>
            <table>
               <tr>
                  <td>Name</td><td>Value</td>
               </tr>
               <xsl:apply-templates select="node()" />
            </table>
         </body>
      </html>
   </xsl:template>

    <xsl:template match="node()"> 
      <xsl:if test="text()"> 
      <tr>
         <td>
         <!--From the Answer by Daniel Haley in 
            https://stackoverflow.com/questions/953197/how-do-you-output-the-current-element-path-in-xslt -->
            <xsl:for-each select="ancestor-or-self::*">
               <xsl:value-of select="concat('/',local-name())"/>
               <!--Predicate is only output when needed.-->
               <xsl:if test="(preceding-sibling::*|following-sibling::*)[local-name()=local-name(current())]">
                  <xsl:value-of select="concat('[',count(preceding-sibling::*[local-name()=local-name(current())])+1,']')"/>
               </xsl:if>
            </xsl:for-each>
         </td>
         <td>
            <xsl:value-of select="text()"/>
         </td>
      </tr>
      </xsl:if>
      <xsl:apply-templates select="@*"/>
      <xsl:apply-templates select="node()"/>

    </xsl:template>

   <xsl:template match="@*">
      <tr>
         <td>
            <xsl:text>@</xsl:text>
            <xsl:value-of select="name(.)"/>
         </td>
         <td>
            <xsl:value-of select="text()"/>
         </td>
      </tr>
   </xsl:template>

</xsl:stylesheet>
2
user1079414

J'ai essentiellement besoin d'ajouter un nouveau style de citation et de bibliographie

Vous pouvez installer des styles supplémentaires. L'un d'entre eux pourrait être plus approprié pour vous:

  • Associação Brasileira de Normas Técnicas (ABNT)
  • Association pour les machines informatiques (ACM)
  • Société médicale américaine (ACS)
  • American Medical Association (AMA)
  • Association sociologique américaine (ASA)
  • Conseil des éditeurs de sciences (CST)
  • Harvard - AGPS
  • Harvard - Anglia
  • Harvard - Exeter
  • Harvard - Leeds
  • Humana Press
  • Ieee
  • Notes de cours en informatique (LNC)
  • Association de recherche humanitaire moderne (MHRA)
  • La nature
  • Vancouver

Source Installez des styles de référence de mots supplémentaires (Mac + Windows)

Vous pouvez également utiliser un style personnalisé pour obtenir le format exact que vous souhaitez. Voir les liens suivants pour plus de détails:

1
DavidPostill

Mes recherches suggèrent que cela est possible via des fichiers XML. J'ai déjà modifié des fichiers XML, mais où est le fichier XML du style de Chicago, par exemple?

Il est situé dans Bibliography/Style Dans C:\Program Files (x86)\Microsoft Office\Office16\Bibliography\Style pour Office 2016. Le chemin exact varie en fonction de la version du bureau que vous avez installé.

Créez des styles de bibliographie personnalisés indique tout ce qui est requis pour un nouveau style de citation. Étant donné que le processus nécessite plusieurs fichiers XML, il serait difficile de citer le lien, mais comment vous créez votre propre style n'était pas la question de toute façon.

1
Ramhound