Unterschiedliche Satzzeichen in Fußnoten und Lit.verz.

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


hansgeorg
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 25. Aug 2015, 15:02
Wohnort: Wien

Unterschiedliche Satzzeichen in Fußnoten und Lit.verz.

Beitrag von hansgeorg »

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

Gast

Beitrag von Gast »

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

hansgeorg
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 25. Aug 2015, 15:02
Wohnort: Wien

Beitrag von hansgeorg »

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 :oops: , 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…
Dateianhänge
Minimalbeispiel BibLaTeX hansgeorg.zip
(21.44 KiB) 267-mal heruntergeladen

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

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

Gast

Beitrag von Gast »

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.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

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.

Gast

Beitrag von Gast »

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
\renewcommand*{\labelnamepunct}{\addcolon\space}
tut das auch, und Du musst nicht jeden Treiber einzeln anzupassen.

Dann hast Du noch
\renewbibmacro*{publisher+location+date}{%
  \printlist{location}%
  \iflistundef{publisher}
    {\setunit*{\space}}
    {\setunit*{\addcolon\space}}%
  \printlist{publisher}%
  \setunit*{\space}%
  \usebibmacro{date}%
  \newunit}
Und
\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}}
oder
\AtBeginBibliography{\renewcommand*{\labelnamepunct}{\addcolon\space}}
\AtEveryCite{\renewcommand*{\newunitpunct}{\addcomma\space}}
\AtEveryCitekey{\clearlist{publisher}\clearfield{note}}
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
\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}

Antworten