MS Word: Eigenes Format für Zitate und das Literaturverzeichnis
Der-Dennis
- xsl
Hallo zusammen,
ich muss die Zitats- und Literaturverzeichnis-Funktion von Microsoft Word (in diesem Fall für Word 2007) an die vom Institut vorgegebenen Regeln anpassen.
Dazu habe ich mich insbesondere an den folgenden Tutorials orientiert:
http://blogs.office.com/b/microsoft-word/archive/2007/12/14/bibliography-citations-1011.aspx
http://blogs.office.com/b/microsoft-word/archive/2009/04/29/bibliography-citations-102-building-custom-styles.aspx,
mich aber auch mit bereits bestehenden, selbstdefinierten Formaten und anderweitigen Erläuterungen zu diesem Thema beschäftigt.
Es scheint so, dass viele den Wunsch nach eigenen Formaten haben, aber kaum Lösungsansätze zu dem Thema zu finden sind.
Ich habe mich vorher noch nie mit XSL beschäftigt, daher würde ich Euch bitten, mir bei den Anfängen zu helfen. Wenn ich fertig bin und Interesse besteht, würde ich die fertige Lösung gerne mit Erläuterungen ins Self-Wiki stellen.
Nun aber zu meinem aktuellen Problem:
Ich habe eine möglichst kleine XSL-Datei erstellt, die anschließend ein Zitat als "[Tag]" kennzeichnen soll, wobei "Tag" der in Word verwendete Tag-Name zur Identifizierung ist.
Später soll dadurch eine (hoffentlich automatische) Kennzeichnung eines Zitats in der Form "[BECK09, S. 10-20]" werden.
Dass der Tagname angezeigt wird, funktioniert bereits.
Im Literaturverzeichnis wird der Eintrag für einen Buch-Abschnitt momentan so ausgegeben: Autor1Autor2Autor3[...]:TitelDesBuchabschnitts
Auch das funktioniert derzeit, wie es soll (über die weiteren Fortschritte werde ich berichten).
Allerdings finde ich im Moment keine Lösung dafür (bzw. ich kann mir das nicht erklären), dass am Anfang des Literaturverzeichnisses folgendes ausgegeben wird:
1031no.!?yes , ..; : =:„“()-<>, no‐-¬ ‒–—―%F%M%L%D.%M%Y—%L%F%L%L%f %m %L%f %m%m %L%f %L%L, %F %M%F %M%L, %M%L, %F%F %M %L%F %M%M %L%F %L%F %M %L%F %M%M %L%F %L%D. %M %Y%D. %M%M %Y%D. %Y%L%F%L%L%L %f %m%f %m%L %m%L %f %m%L, %f %m%f %m%L, %m%L, %f%f %m %L%f %m%m %L%f %L&()[]%D. %M %Y%D. %M%M %Y%D. %Y%D. %M %Y%D. %M%M %Y%D. %Y%D. %M %Y%D. %M%M %Y%D. %Y—%L%F%L%L%f %m %L%f %m%m %L%f %L%L, %F %M%F %M%L, %M%L, %F%F %M %L%F %M%M %L%F %L%F %M %L%F %M%M %L%F %L%D. %M %Y%D. %M%M %Y%D. %Y%L%F%L%L%f %m %L%f %m%m %L%f %L%L, %F %M%F %M%L, %M%L, %F%F %M %L%F %M%M %L%F %L—[]%D. %M %Y%D. %M%M %Y%D. %Y%D. %M %Y%D. %M%M %Y%D. %Y%L%F%L%L%f %m %L%f %m%m %L%f %L%L %F %M%F %M%L %M%L %F%D. %M %Y%D. %M%M %Y%D. %Y[]///%L, %F %M%F %ML, %FL, %M%F %M %L%F %M%M %L%F %L—[]%D %M %Y%D %M%M %Y%D %Y%D %M %Y%D %M%M %Y%D %YAuf %1Kapitel %1 von %2Kapitel %1Interview geführt von %1von %1in %1sZugriff am %1Zugriff am %1%1 Bde.Kapitel %1 von %2Kapitel %1OnlineOnlineAnmeldedatum: %1Patent %1 angemeldet am %2InIn %1%1 mit %2Vers.InterviewInterview mit %1Interview: %1Von %1undet al.KinofilmPatent %1%1 Ausg.%1 AusgabeAbgerufen am %1 von %2Abgerufen am %1Von %1 abgerufenvon %1 abgerufenkein DatumNr. %1Nr. %1Patentnr. %1S.S.s.n.s.l.s.l. : s.n.Bd. %1Bd. %1Bde. %1Bde. %1Bd. %1 von %2Bde. %1 von %2Band %1Verf.Buchverf.InterpretAutorAutorenAut.Dirigiert von: %1dirigiert von: %1DirigentDirigentenDirig.Dirig.Dirig.Dirig.BeratungBeratungRegie: %1Regie: %1RegisseurRegisseureReg.Reg.Reg.Reg.Herausgeber: %1Herausgeber: %1HerausgeberHerausgeberHrsg.Hrsg.Hrsg.Hrsg.Befragte PersonBefragte PersonInterviewerInterviewerErfinderInterpret: %1Interpret: %1InterpretInterpretenInterpr.Interpr.Interpr.Interpr.Produzent: %1Produzent: %1ProduzentProduzentenProd.Prod.Prod.Prod.Übersetzung: %1Übersetzung: %1ÜbersetzerÜbersetzerÜbers.Übers.Übers.Übers.KomponistKomponistenKomp.Komp.Komp.Redaktion: %1Redaktion: %1RedakteurRedakteureRedakt.Redakt.Redakt.Redakt.Redakt.Zitat vom: %1BuchBuchabschnittJournalArtikelKonferenzBerichtTonaufnahmeAufführungKunstWebsitedokumentWebsiteFilmInterviewPatentElektronische QuelleFallUnbekannt
Dabei handelt es sich vermutlich um die Platzhalter für die verschiedenen Literaturverzeichnisfelder. Aber wo kommen die her? Und wie bekomme ich die wieder weg? :-)
Meine aktuelle, im Ordner [Installation]\Program Files\Microsoft Office\Office12\Bibliography\Style gespeicherte XSL-Datei:
<?xml version="1.0" encoding="UTF-8" ?>
<!-- #### GLOBAL #### -->
<!-- List of the external resources that we are referencing -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"
xmlns:mt="http://www.tiews.info/office/2008/bibliography">
<!-- When the bibliography or citation is in your document, it's just HTML -->
<xsl:output method="html" encoding="UTF-8" />
<!-- 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>2011.06.12</xsl:text>
</xsl:template>
<!-- Defines the name of the style in the References dropdown -->
<xsl:template match="b:StyleName">
<xsl:text>TEST</xsl:text>
</xsl:template>
<!-- #### GLOBAL HELPER #### -->
<!-- Helper for printing errors -->
<xsl:template name="PrintError">
<xsl:param name="ErrorMessage"/>
<b>
<xsl:text>## FEHLER: </xsl:text>
<xsl:value-of select="$ErrorMessage"/>
<xsl:text> ##</xsl:text>
</b>
</xsl:template>
<!-- #### IMPORTANT FIELDS #### -->
<!-- BookSection -->
<xsl:template match="b:GetImportantFields[b:SourceType = 'BookSection']">
<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:Author/b:BookAuthor/b:NameList</xsl:text></b:ImportantField>
<b:ImportantField><xsl:text>b:BookTitle</xsl:text></b:ImportantField>
<b:ImportantField><xsl:text>b:Edition</xsl:text></b:ImportantField>
<b:ImportantField><xsl:text>b:Volume</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:ImportantField><xsl:text>b:Year</xsl:text></b:ImportantField>
<b:ImportantField><xsl:text>b:Pages</xsl:text></b:ImportantField>-->
</b:ImportantFields>
</xsl:template>
<!-- #### FIELD HELPER #### -->
<!-- Tag -->
<xsl:template name="Tag">
<xsl:value-of select="b:Tag" />
</xsl:template>
<!-- Author-List -->
<xsl:template name="AuthorList">
<xsl:for-each select="b:Author/b:Author/b:NameList/b:Person">
<xsl:value-of select="b:Last" />
</xsl:for-each>
</xsl:template>
<!-- Title -->
<xsl:template name="Title">
<xsl:value-of select="b:Title" />
</xsl:template>
<!-- #### OUTPUT TYPES #### -->
<!-- BookSection -->
<xsl:template match="b:Source[b:SourceType = 'BookSection']">
<p class="MsoBibliography">
<xsl:call-template name="AuthorList" />
<xsl:text>:</xsl:text>
<xsl:call-template name="Title" />
</p>
</xsl:template>
<!-- #### BIBLIOGRAPHY OUTPUT #### -->
<!-- Complete bibliography -->
<xsl:template match="b:Bibliography">
<html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
<!-- <style>p.MsoBibliography, li.MsoBibliography, div.MsoBibliography</style> -->
</head>
<body>
<xsl:call-template name="Bibliography_Internal" />
</body>
</html>
</xsl:template>
<!-- Bibliography entries -->
<xsl:template name="Bibliography_Internal">
<xsl:apply-templates select ="*">
<xsl:sort select="b:Author/*/b:NameList/b:Person" />
</xsl:apply-templates>
</xsl:template>
<!-- Sort the bibliography -->
<b:SortingString>
<xsl:value-of select="b:Author/*/b:NameList/b:Person" />
</b:SortingString>
<!-- #### CITATION OUTPUT #### -->
<!-- Complete Citation -->
<xsl:template match="b:Citation/b:Source">
<html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<head>
</head>
<body>
<xsl:call-template name="Citation_Internal" />
</body>
</html>
</xsl:template>
<!-- Citation entries -->
<xsl:template name="Citation_Internal">
<xsl:text>[</xsl:text>
<xsl:call-template name="Tag" />
<xsl:text>]</xsl:text>
</xsl:template>
</xsl:stylesheet>
Ich bedanke mich wie immer im Voraus für Eure Hilfe!
Gruß, Dennis
Hallo zusammen,
mein Problem habe ich gelöst: Ich habe zwar keine Ahnung, woher der vorherige Fehler kam, aber nachdem ich alles neu geschrieben habe, ist er weg. :-)
Ich habe aber eine neue Frage: Kann mir jemand erklären, wie ich eigene Literaturverzeichnisfelder erstellen kann? Oder kennt jemand eine Seite, auf der das beschrieben wird?
Mit Literaturverzeichnisfelder meine ich, dass ich neben Autor, Titel, Seite, Jahr, Auflage, etc. noch eigene Felder, wie beispielsweise ein Feld "Reihe" (also wenn das Buch in einer Reihe erschienen sein sollte), benötige.
Gruß, Dennis
Ps: Meinen aktuellen Stand der Test-Version kann ich leider nicht posten, da ich die Fehlermeldung "Sie sind wohl etwas geschwätzig?" bekomme.
Aufgrund meines gescheiterten Versuchs, die aktuelle Datei zu posten:
Wie viele Zeichen / Zeilen darf man eigentlich bei einem Beitrag hier im Forum senden?
Gruß, Dennis
Moin!
Aufgrund meines gescheiterten Versuchs, die aktuelle Datei zu posten:
Wie viele Zeichen / Zeilen darf man eigentlich bei einem Beitrag hier im Forum senden?
Wenn ich mich recht erinnere, so an die 10K.
Und das ist für ein Codebeispiel deutlich zuviel. Man gut, dass du daran gehindert wurdest. :)
- Sven Rautenberg
Hey Sven,
Und das ist für ein Codebeispiel deutlich zuviel. Man gut, dass du daran gehindert wurdest. :)
dann auf jeden Fall. Mich hatte nur gewundert, dass ich das Skript in meinem Ausgangspost anhängen konnte und jetzt nicht mehr, obwohl es nur 24 Zeilen mehr sind. Da werd ich wohl vorher schon knapp an der Grenze gewesen sein.
Besteht denn Interesse, dass ich das Skript, wenn es fertig ist, ins Wiki stelle? Oder passt das nicht zu den Themen, die dort behandelt werden sollen (oder gibt's da auch eine Längenbegrenzung? :-) )?
Gruß, Dennis
Om nah hoo pez nyeetz, Der-Dennis!
Besteht denn Interesse, dass ich das Skript, wenn es fertig ist, ins Wiki stelle? Oder passt das nicht zu den Themen, die dort behandelt werden sollen (oder gibt's da auch eine Längenbegrenzung? :-) )?
Das Script allein nicht, in Verbindung mit einem passenden Artikel ist es sicher dort gut aufgehoben.
Matthias