Hallo liebes Forum!
Vorweg ein großes "Danke" für die zahlreichen Passiv-Hilfen während der letzten Jahre!
Nun muss ich aber doch aktiv werden.
Es geht um die unterschiedliche Bearbeitung von Satzzeichen in Fußnoten und Literaturverzeichnis. Zur Erklärung die Vorgaben meiner Fakultät:
Fußnoten
Vorname Nachname, Titel, Ort Jahr, Seite.
Vorname Nachname, "Artikel", in: Titel, Ort Jahr, Seite.
Literaturverzeichnis
Nachname, Vorname: Titel. Info. Ort: Verlag Jahr.
Nachname, Vorname: "Artikel." In: Titel. Info. Ort: Verlag Jahr.
Nun habe ich mich schon fast bis ganz zur Perfektion herangetastet, aber eine Kleinigkeit macht mir noch Probleme. Bevor ich meinen wüsten Code hier zerpflücke, eine generelle Frage:
In welchen Dateien lassen sich an welchen Stellen die zur Diskussion stehenden Satzzeichen bearbeiten? Die Struktur der Dateien "biblatex.def", "<stildatei>.cbx" habe ich noch nicht ganz durchschaut…
Konkret interessiert mich die Code-Stelle, in der ich das Satzzeichen zwischen "in" und dem Sammelband für die Fußnoten bearbeiten kann.
Könnt ihr mir mit diesen Infos weiterhelfen?
Herzlichen Dank und ewige Anerkennung im Voraus,
Hans-Georg
Unterschiedliche Satzzeichen in Fußnoten und Lit.verz.
Kannst Du uns ein Minimalbeispiel liefern, das auch zeigt, welchen Stil Du verwendest (siehe Wichtige Hinweise: Erstellung von Literaturverzeichnissen) und wie Du das ganze modifizierst? Ich würde auf eine verbose-Version tippen, aber mich ungern an die Arbeit machen und dann feststellen, dass es ein ganz anderer Stil war.
Generell findest Du in biblatex.def generelle Definitionen (Feld-Formate, generische Makros für Ausgaben von Autor, Herausgeber etc.) in standard.bbx das Grundgerüst für die Bibliographie-Ausgabe aller Standardstile (hier werden die Treiber definiert) und in der <stil>.bbx[] relevante Redefinitionen für die Bibliographie (in den Standardstilen ist das häufig nicht so viel Code im Vergleich, die authoryear-Versionen bilden vielleicht eine Ausnahme), die <stil>.cbx enthält den Code für die Zitierbefehle, die ist dann je nach Stil auch recht lang und kompliziert.
Es ist nicht immer ganz leicht, herauszufinden, wo die relevanten Definitionen sitzen, auch da die Grenze zwischen den einzelnen Dateien fließend sind. Da braucht man manchmal ein wenig Glück.
Für andere (nicht Standard-) Stile gilt die generelle Aufteilung in .bbx=Bibliographie und .cbx=Zitate auch, aber die standard.bbx fällt weg oder wird durch eigene Dateien ersetzt.
Die Zeichen zwischen Blöcken (units) werden mit \newunitpunct (Standard in biblatex.def: \newcommand*{\newunitpunct}{\addperiod\space}) kontrolliert. Aber nicht alle Zeichen sind auch \newunitpunct, viele sind in den Makros, die sie drucken, auch hard-coded.
Suchst Du nach [code]\newbibmacro*{in:}{%
\printtext{%
\bibstring{in}\intitlepunct}}[/code]
also \intitlepunct (\newcommand*{\intitlepunct}{\addcolon\space})?
Generell findest Du in biblatex.def generelle Definitionen (Feld-Formate, generische Makros für Ausgaben von Autor, Herausgeber etc.) in standard.bbx das Grundgerüst für die Bibliographie-Ausgabe aller Standardstile (hier werden die Treiber definiert) und in der <stil>.bbx[] relevante Redefinitionen für die Bibliographie (in den Standardstilen ist das häufig nicht so viel Code im Vergleich, die authoryear-Versionen bilden vielleicht eine Ausnahme), die <stil>.cbx enthält den Code für die Zitierbefehle, die ist dann je nach Stil auch recht lang und kompliziert.
Es ist nicht immer ganz leicht, herauszufinden, wo die relevanten Definitionen sitzen, auch da die Grenze zwischen den einzelnen Dateien fließend sind. Da braucht man manchmal ein wenig Glück.
Für andere (nicht Standard-) Stile gilt die generelle Aufteilung in .bbx=Bibliographie und .cbx=Zitate auch, aber die standard.bbx fällt weg oder wird durch eigene Dateien ersetzt.
Die Zeichen zwischen Blöcken (units) werden mit \newunitpunct (Standard in biblatex.def: \newcommand*{\newunitpunct}{\addperiod\space}) kontrolliert. Aber nicht alle Zeichen sind auch \newunitpunct, viele sind in den Makros, die sie drucken, auch hard-coded.
Suchst Du nach [code]\newbibmacro*{in:}{%
\printtext{%
\bibstring{in}\intitlepunct}}[/code]
also \intitlepunct (\newcommand*{\intitlepunct}{\addcolon\space})?
Hallo,
danke für die flotte Rückmeldung!
Ein Minimalbeispiel mit den von mir verwendeten Stildateien ist im Anhang. Da ich nicht mehr genau weiß, wie viel ich in welchen Standard-Dateien verändert habe
, wäre es glaub ich sinnvoll, sie auch mitzuladen.
intitlepunct kommt der Sache schon ganz nahe; in meiner Datei habe ich aber stümperhaft befohlen, alle Punkte und Doppelpunkte, die im Literaturverzeichnis gedruckt werden, in den Fußnoten als Beistriche darzustellen. Das wird hier zum Problem und ich suche nach einem Workaround…
danke für die flotte Rückmeldung!
Ein Minimalbeispiel mit den von mir verwendeten Stildateien ist im Anhang. Da ich nicht mehr genau weiß, wie viel ich in welchen Standard-Dateien verändert habe

intitlepunct kommt der Sache schon ganz nahe; in meiner Datei habe ich aber stümperhaft befohlen, alle Punkte und Doppelpunkte, die im Literaturverzeichnis gedruckt werden, in den Fußnoten als Beistriche darzustellen. Das wird hier zum Problem und ich suche nach einem Workaround…
- Dateianhänge
-
- Minimalbeispiel BibLaTeX hansgeorg.zip
- (21.44 KiB) 267-mal heruntergeladen
Man ändert doch nicht in den Standard-Dateien. Wenn du etwas ändern willst erstellst du ein eigenes Paket/eine eigene Klasse lädst die Pakete/die Klasse die du ändern willst und änderst dann. Sonst hast du ein Problem, wenn
1. andere dir helfen sollen, weil keiner deine "Standard"-Dateien mit den Original Standard-Dateien vergleichen wird oder keiner deine Probleme nachvollziehen kann.
2. du dein System aktualisierst, weil dann alle Änderungen weg sind.
Bitte durch durchsuche deine Dateien bzw. vergleiche mit original Standard-Dateien und zieh die Änderungen in extra-Dateien bzw. erstmal in die Präambel eines vernünftigen Minimalbeispiel!
1. andere dir helfen sollen, weil keiner deine "Standard"-Dateien mit den Original Standard-Dateien vergleichen wird oder keiner deine Probleme nachvollziehen kann.
2. du dein System aktualisierst, weil dann alle Änderungen weg sind.
Bitte durch durchsuche deine Dateien bzw. vergleiche mit original Standard-Dateien und zieh die Änderungen in extra-Dateien bzw. erstmal in die Präambel eines vernünftigen Minimalbeispiel!
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.
Bis zu einem gewissen Grade ist es keine sehr gute Idee, Standarddateien zu kopieren und die eigenen Änderungen dort durchzuführen (dass diese Änderungen unter einem eigenen Namen gespeichert werden müssen und ausgezeichnet werden müssen, sollte man ebenfalls nicht vergessen). Bei wenigen Änderungen ist es besser auf vorhandene Stile aufzubauen, indem man diese Intern lädt. (Ein Beispiel ist hier der Stil biblatex-iest mit iest.bbx, man beachte auch die Diskussion des Autors dieses Stils über Vollkopie vs. Aufbau mit Vererbung in Modifizieren eines biblatex-Stils).
Ab einer bestimmten Menge von Modifikationen, kann eine Übernahme und Abwandlung sinnvoll sein, wobei dann vielleicht eine komplette Neuimplementation in Eigenregie die bessere Wahl sein kann.
Bei deinem Code stehen leider die Ursprungsdateien nicht dabei, daher werde ich wohl heute nicht mehr dazu kommen, mir das anzusehen.
Generell gibt es aber die Möglichkeit mit \AtBeginBibliography bestimmte Formatierung auf die Bibliographie zu beschränken, oder die Schalter \ifbibliography und \ifcitation zu verwenden. (Welchen Weg man bevorzugt, ist vielleicht Geschmackssache, für Zeichensetzung würde ich sagen, sieht man \AtBeginBibliography etwas häufiger.)
Wenn Du die Doppelpunkte allerdings hard-gecoded hast (ist das ein Wort?), dann wird es wirklich elegant nicht gehen.
Ab einer bestimmten Menge von Modifikationen, kann eine Übernahme und Abwandlung sinnvoll sein, wobei dann vielleicht eine komplette Neuimplementation in Eigenregie die bessere Wahl sein kann.
Bei deinem Code stehen leider die Ursprungsdateien nicht dabei, daher werde ich wohl heute nicht mehr dazu kommen, mir das anzusehen.
Generell gibt es aber die Möglichkeit mit \AtBeginBibliography bestimmte Formatierung auf die Bibliographie zu beschränken, oder die Schalter \ifbibliography und \ifcitation zu verwenden. (Welchen Weg man bevorzugt, ist vielleicht Geschmackssache, für Zeichensetzung würde ich sagen, sieht man \AtBeginBibliography etwas häufiger.)
Wenn Du die Doppelpunkte allerdings hard-gecoded hast (ist das ein Wort?), dann wird es wirklich elegant nicht gehen.
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Eine etwas überarbeitete Fassung des Blog-Artikels findet sich übrigens in der Augustausgabe von Freies magazin.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Ich mag ja etwas übersehen haben, aber soweit ich das übersehen kann, ist dein Stil einfach verbose-inote mit ein paar Anpassungen.
Du hast \setunit{\labelnamepunct}\newblock immer durch \setunit{\addcolon\addspace}\newblock ausgetauscht. Das ist keine so gute Idee, denn
tut das auch, und Du musst nicht jeden Treiber einzeln anzupassen.
Dann hast Du noch
Und
Also kannst Du einfach ein echtes Minimalbeispiel mit style=verbose-inote und dem bisschen Code oben erstellen.
Ein Anfang für die Änderung der Zeichen für Zitate und Bibliographie ist das folgende
oder
damit wir auch mal alle Hooks benutzen.
Je nach dem was Du mit Info meinst und welche Felder noch in den Zitaten unterdrückt werden sollen, kannst Du dem \AtEveryCitekey noch weitere \clearlists oder \clearfields hinzufügen (dafür musst Du jeweils wissen, ob Du ein field oder eine list löschen möchtest in der Dokumentation von [d]biblatex[/d] stehen die Typen der Felder in §2.2.2 Data Fields). So ist der Verlag im publisher-Feld eine list und wird so mit \clearlist{publisher} unterdrückt, aber die note ist ein field und wird daher mit \clearfield{note} unterdrückt.
MWE
Du hast \setunit{\labelnamepunct}\newblock immer durch \setunit{\addcolon\addspace}\newblock ausgetauscht. Das ist keine so gute Idee, denn
\renewcommand*{\labelnamepunct}{\addcolon\space}
Dann hast Du noch
\renewbibmacro*{publisher+location+date}{% \printlist{location}% \iflistundef{publisher} {\setunit*{\space}} {\setunit*{\addcolon\space}}% \printlist{publisher}% \setunit*{\space}% \usebibmacro{date}% \newunit}
\renewbibmacro*{location+date}{% \printlist{location}% \setunit*{\space}% \usebibmacro{date}% \newunit}
Also kannst Du einfach ein echtes Minimalbeispiel mit style=verbose-inote und dem bisschen Code oben erstellen.
Ein Anfang für die Änderung der Zeichen für Zitate und Bibliographie ist das folgende
\renewcommand*{\newunitpunct}{\addcomma\space} \AtBeginBibliography{% \renewcommand*{\labelnamepunct}{\addcolon\space}% \renewcommand*{\newunitpunct}{\addperiod\space}% } \AtEveryCitekey{\clearlist{publisher}\clearfield{note}}
\AtBeginBibliography{\renewcommand*{\labelnamepunct}{\addcolon\space}} \AtEveryCite{\renewcommand*{\newunitpunct}{\addcomma\space}} \AtEveryCitekey{\clearlist{publisher}\clearfield{note}}
Je nach dem was Du mit Info meinst und welche Felder noch in den Zitaten unterdrückt werden sollen, kannst Du dem \AtEveryCitekey noch weitere \clearlists oder \clearfields hinzufügen (dafür musst Du jeweils wissen, ob Du ein field oder eine list löschen möchtest in der Dokumentation von [d]biblatex[/d] stehen die Typen der Felder in §2.2.2 Data Fields). So ist der Verlag im publisher-Feld eine list und wird so mit \clearlist{publisher} unterdrückt, aber die note ist ein field und wird daher mit \clearfield{note} unterdrückt.
MWE
\documentclass[ngerman]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{babel} \usepackage{csquotes} \usepackage[style=verbose-inote]{biblatex} %\renewcommand*{\newunitpunct}{\addcomma\space} %\AtBeginBibliography{% % \renewcommand*{\labelnamepunct}{\addcolon\space}% % \renewcommand*{\newunitpunct}{\addperiod\space}% %} %\AtEveryCitekey{\clearlist{publisher}} \AtBeginBibliography{\renewcommand*{\labelnamepunct}{\addcolon\space}} \AtEveryCite{\renewcommand*{\newunitpunct}{\addcomma\space}} \AtEveryCitekey{\clearlist{publisher}} \renewbibmacro*{publisher+location+date}{% \printlist{location}% \iflistundef{publisher} {\setunit*{\space}} {\setunit*{\addcolon\space}}% \printlist{publisher}% \setunit*{\space}% \usebibmacro{date}% \newunit} \renewbibmacro*{location+date}{% \printlist{location}% \setunit*{\space}% \usebibmacro{date}% \newunit} \addbibresource{biblatex-examples.bib} \begin{document} Lorem\footcite{sigfridsson} ipsum\footcite{geer} dolor\footcite{worman} sit\footcite{nussbaum} amet\footcite{wilde} consecetur\footcite{cicero} nomen\footcite{knuth:ct:b} sanct\footcite{cotton}. \printbibliography \end{document}