Erstellen benutzerdefinierter Literaturverzeichnisformate

Erstellen Sie ein benutzerdefiniertes Literaturverzeichnisformat in Word, indem Sie die Schritte (und den XML-Code) kennen lernen, die Sie benötigen, um ein einfaches benutzerdefiniertes Format zu erstellen. Erfahrend Sie außerdem, wie Sie eine komplexere Formatvorlagendatei erstellen. Bevor Sie beginnen, gibt es jedoch einige Informationen, die Sie kennen müssen:

Die von Ihnen erstellten Literaturverzeichnisquellen sind alle in der folgenden lokalen Datei aufgeführt: %AppData%\Microsoft\Bibliography\Sources.xml.

Hinweis

Die Sources.xml-Datei ist erst vorhanden, wenn Sie Ihre erste Literaturverzeichnisquelle in Word erstellen. Alle Literaturverzeichnisformatvorlagen werden hier im Profil des Benutzers gespeichert: %AppData%\Microsoft\Bibliography\Style.

Erstellen eines einfachen Literaturverzeichnisformats

Erstellen Sie zunächst ein einfaches Literaturverzeichnisformat, dem die benutzerdefinierte Formatvorlage folgen soll.

Einrichten des Literaturverzeichnisformats

Um ein Literaturverzeichnisformat zu erstellen, muss eine XML-Formatvorlage (d. h. eine XSL-Datei mit dem Namen "MyBookStyle.xsl") mithilfe Ihres bevorzugten XML-Editors erstellt werden. Editor eignet sich einwandfrei. Wie der Name bereits erahnen lässt, handelt es sich im Beispiel um eine Formatvorlage vom Typ "Buch".

Fügen Sie oben in der Datei den folgenden Code hinzu:

<?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>

Wie die Kommentare bereits angeben, wird von Word HTML verwendet, um ein Literaturverzeichnis oder Zitat in einem Dokument darzustellen. Der meiste vorhergehende XML-Code ist nur Vorbereitung für die interessanteren Teile der Formatvorlage. Beispielsweise können Sie Ihrer Formatvorlage eine Versionsnummer zum Nachverfolgen Ihrer Änderungen geben, wie im folgenden Beispiel dargestellt ist.

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

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

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

</xsl:template>

Wichtiger ist jedoch, dass Sie Ihrer Formatvorlage einen Namen geben können. Fügen Sie dieses Tag hinzu: <xsl:when test="b:StyleNameLocalized">; und geben Sie ihrem Format mithilfe des folgenden Codes einen Namen in der Sprache Ihrer Wahl.

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

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

Dieser Abschnitt enthält den Gebietsschemanamen Ihrer Formatvorlage. Im Fall unserer Beispieldatei soll der Name unseres benutzerdefinierten Literaturverzeichnisformats, "Simple Book Style", auf der Registerkarte Verweise in der Dropdownliste Formatvorlage angezeigt werden. Fügen Sie dazu den folgenden XML-Code hinzu, um anzugeben, dass das Gebietsschema für den Formatvorlagennamen Englisch ist ("Lcid" gibt die Sprache an).

<!--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>

Ihre Formatvorlage wird nun im Dropdownlistenfeld Literaturverzeichnisformat in der Anwendung unter ihrem eigenen Namen angezeigt.

Überprüfen Sie nun die Formatvorlagendetails. Jeder Quelltyp in Word (z. B. Buch, Film, Artikel in einer Zeitschrift usw.) verfügt über eine integrierte Liste von Feldern, die Sie für das Literaturverzeichnis verwenden können. Zum Anzeigen aller für einen bestimmten Quelltyp verfügbaren Felder wählen Sie auf der Registerkarte Verweise die Option Quellen verwalten und dann im Dialogfeld Quellen-Manager die Option Neu aus, um das Dialogfeld Quelle erstellen zu öffnen. Aktivieren Sie dann Alle Literaturverzeichnisfelder anzeigen.

Für den Quelltyp "Buch" sind folgende Felder verfügbar:

  • Ursprung

  • Position

  • Jahr

  • Stadt

  • Bundesland/Kanton

  • Land/Region

  • Publisher

  • Editor

  • Laufwerk

  • Anzahl der Bände

  • Übersetzer

  • Kurztitel

  • Standardnummer

  • Seiten

  • Edition (Version)

  • Kommentare

Im Code können Sie die Felder angeben, die für Ihr Literaturverzeichnisformat wichtig sind. Selbst wenn Alle Literaturverzeichnisfelder anzeigen deaktiviert ist, werden diese Felder mit einem roten Sternchen daneben angezeigt. Für unser Buchbeispiel soll sichergestellt werden, dass die Felder "Autor", "Titel", "Jahr", "Ort" und "Verleger" eingegeben werden. Daher soll neben diesen Feldern ein rotes Sternchen angezeigt werden, um die Benutzer darauf hinzuweisen, dass es sich dabei um empfohlene Felder handelt, die ausgefüllt werden sollten.

<!--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>

Der Text in den <xsl:text-Tags> sind Verweise auf die Sources.xml Datei. Diese Verweise ziehen die Daten heraus, mit denen die einzelnen Felder ausgefüllt werden. Überprüfen Sie die Datei "Sources.xml" in "\Microsoft\Bibliography\Sources.xml", um einen besseren Einblick zu erhalten, wie diese Verweise den Informationen in der XML-Datei entsprechen.

Entwerfen des Layouts

Die Ausgabe für Literaturverzeichnisse und Zitate wird in einem Word-Dokument als HTML dargestellt. Um zu definieren, wie benutzerdefinierte Literaturverzeichnis- und Zitatformate in Word aussehen sollen, muss der Formatvorlage HTML-Code hinzugefügt werden.

Angenommen, Sie möchten jeden Eintrag in Ihrem Literaturverzeichnis auf folgende Weise formatieren:

Nachname, Vorname. (Jahr). Titel. Ort: Verleger

Der dafür erforderliche HTML-Code würde wie folgt in Ihre Formatvorlage eingebettet werden.

<!--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>

Wenn Sie in Ihrem Word-Dokument auf eine Buchquelle verweisen, muss Word auf diesen HTML-Code zugreifen, damit es die benutzerdefinierte Formatvorlage zum Anzeigen der Quelle verwenden kann. Daher müssen Sie Ihrer benutzerdefinierten Formatvorlage Code hinzufügen, um dies in Word zu ermöglichen.

<!--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>

In ähnlicher Weise müssen Sie dasselbe für die Zitatausgabe ausführen. Folgen Sie dem Muster (Autor, Jahr) für ein einzelnes Zitat im Dokument.

<!--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>

Schließen Sie die Datei mit den folgenden Zeilen ab.

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

Speichern Sie die Datei als "MyBookStyle.XSL", und legen Sie sie im Formatvorlagenverzeichnis ("\Microsoft\Bibliography\Style") ab. Starten Sie Word neu, und Ihre Formatvorlage wird nun in der Dropdownliste der Formatvorlagen angezeigt. Sie können die neue Formatvorlage nun verwenden.

Erstellen einer komplexen Formatvorlage

Eines der Probleme, die Literaturverzeichnisformate kompliziert machen, besteht darin, dass sie häufig eine Menge bedingter Logik enthalten müssen. Wenn beispielsweise das Datum angegeben ist, müssen Sie das Datum anzeigen. Wenn das Datum jedoch nicht angegeben ist, müssen Sie möglicherweise eine Abkürzung verwenden, um anzugeben, dass für diese Quelle kein Datum vorhanden ist.

In einem spezifischeren Beispiel wird im APA-Stil, wenn für eine Websitequelle kein Datum angegeben ist, die Abkürzung "n.d." verwendet, um kein Datum anzugeben, und die Formatvorlage sollte dies automatisch tun. Hier ein Beispiel:

APA-Websitequelle ohne angegebenes Datum: Kwan, Y. (n.d.). Abgerufen von der https://www.microsoft.com-APA-Websitequelle mit angegebenem Datum: "Kwan, Y. (2006, Jan 18)". Abgerufen von https://www.microsoft.com

Wie Sie sehen können, ist das, was angezeigt wird, von den eingegebenen Daten abhängig.

Die Ausgabe praktisch jedes Stils muss sich ändern, je nachdem, ob Sie einen "Unternehmensautor" oder einen "Normalen Autor" haben. Sie erfahren, wie Sie eine der gängigsten Regeln für die Implementierung einer solchen Logik in Ihren Stil verwenden, sodass Sie einen Unternehmensautor anzeigen können, wenn der Unternehmensautor angegeben ist, und einen normalen Autor, wenn der Unternehmensautor nicht angegeben ist.

Die Lösung im Überblick

Wenn Sie nur bei Bedarf einen Unternehmensautor anzeigen möchten, gehen Sie folgendermaßen vor.

So zeigen Sie einen Unternehmensautor an

  1. Fügen Sie eine Variable hinzu, um die Anzahl der Unternehmensautoren im Zitatabschnitt des Codes zu zählen.

  2. Zeigen Sie den Unternehmensautor im Zitat an, wenn der Unternehmensautor angegeben ist. Zeigen Sie den normalen Autor im Zitat an, wenn der Unternehmensautor nicht angegeben ist.

  3. Fügen Sie eine Variable hinzu, um die Anzahl der Unternehmensautoren im Literaturverzeichnisabschnitt des Codes zu zählen.

  4. Zeigen Sie den Unternehmensautor im Literaturverzeichnis an, wenn der Unternehmensautor angegeben ist. Zeigen Sie den normalen Autor im Literaturverzeichnis an, wenn der Unternehmensautor nicht angegeben ist.

Erste Schritte

Beginnen wir mit dem Ändern des Zitats. Hier ist der Code für Zitate vom letzten Mal.

<!--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>

Schritt 1: Definieren einer neuen Variablen im Zitatabschnitt zum Zählen der Anzahl der Unternehmensautoren

Deklarieren Sie eine neue Variable, um zu bestimmen, ob ein Unternehmensautor verfügbar ist. Diese Variable ist eine Anzahl dafür, wie häufig das Feld für Unternehmensautoren in der Quelle vorhanden ist.

<!--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>

Schritt 2: Überprüfen, ob der Unternehmensautor angegeben ist

Überprüfen Sie, ob der Unternehmensautor angegeben ist. Dazu können Sie bestimmen, ob die Anzahl der Unternehmensautoren ungleich Null ist. Wenn ein Unternehmensautor vorhanden ist, zeigen Sie ihn an. Wenn keiner vorhanden ist, zeigen Sie den normalen Autor an.


<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>

Da Sie nun die Änderung für Zitate vorgenommen haben, können Sie die Änderung für das Literaturverzeichnis vornehmen. Hier ist der Literaturverzeichnisabschnitt von weiter oben in diesem Artikel.

<!--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>

Schritt 3: Definieren einer neuen Variablen im Literaturverzeichnisabschnitt

Beginnen wir erneut mit dem Hinzufügen einer Zählvariablen.

<!--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>

Schritt 4: Überprüfen, ob der Unternehmensautor angegeben ist

Überprüfen Sie, ob ein Unternehmensautor vorhanden ist.

…..
<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>

Hier ist der vollständige endgültige Code.

<?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>

Schlussbemerkung

In diesem Artikel wurde gezeigt, wie Sie ein benutzerdefiniertes Literaturverzeichnisformat in Word erstellen, indem Sie zuerst eine einfache Formatvorlage und dann mithilfe von bedingten Anweisungen eine komplexere Formatvorlage erstellen.

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.