Seite 1 von 1

BibLaTeX: Verändern der Kurzzitation

Verfasst: Mo 10. Aug 2015, 22:55
von lukasman
Hallo liebes Forum,

ich doktor immer noch an meinem eigenen BibLaTeX-Stil herum und bin praktisch fertig. Ich habe den verbose-ibid-Stil angepasst, da er das vernünftige Zitieren in Fußnoten erlaubt. Hier habe ich eine einzige kleine Änderung, die ich noch nicht hinbekomme.
Wird ein Quelle an einer anderen Stelle erneut zitiert, erscheint eine Kurzzitation der Form: Nachname Jahr. Seiten.
Für meine Arbeit benötige ich lieber: Nachname Jahr: Seiten.
Das zugrhörige bibmacro aus der *cbx-Datei, das ich meiner Meinung nach bearbeiten muss, hat die folgende Form:
\renewbibmacro*{cite:short}{% 
  \printnames{labelname}% 
  \setunit*{\nameyeardelim}% 
  \iffieldundef{labelyear} 
    {} 
    {\printtext[bibhyperlink]{% 
       \printfield{labelyear}% 
       \printfield{extrayear}}}}
Meine Idee, war, vor der letzten Klammer einfach ein
\setunit{\addcolon\addspace}
zu setzen, was allerdings nicht zum gewünschten Ergebnis geführt hat. Ich hoffe, dass für dieses Problem kein Minimalbeispiel nötig ist, wenn doch, kann ich eins nachliefern.

Verfasst: Di 11. Aug 2015, 07:20
von Gast
Eigentlich sollte
\renewcommand*{\postnotedelim}{\addcolon\space}
ausreichen.

Dass Deine Idee nicht funktionierte, liegt daran, dass biblatexs Zeichensetzungsalgorithmus, wenn eine Zeichensetzung notwendig ist, immer das Zeichen aus dem letzten \setunit druckt. Das letzte \setunit vor der Seitenzahl im Zitat (der postnote) ist aber \setunit{\postnotedelim} aus dem Bibmacro postnote. Egal, was Du im Macro cite tust, alles wird von postnote überschrieben.
Das könnte man ändern, wenn man statt \setunit den Befehl \printunit verwendet, denn letzterer lässt sein Zeichen nicht überschreiben. Diesen Weg halte ich allerdings für weniger elegant.

Verfasst: Di 11. Aug 2015, 12:19
von lukasman
Diesen Code hab ich auch schon mal ausprobiert und dabei leider das Problem, dass dann auch bei den Vollzitaten hinter jeder Jahreszahl ein Doppelpunkt erscheint. Diesen Doppelpunkt benötige ich aber nur bei der Kurzzitation.

Verfasst: Di 11. Aug 2015, 12:37
von Gast
Dürfen wir dann ein Beispiel zum Rumspielen haben, bitte?

Verfasst: Di 11. Aug 2015, 14:21
von lukasman
\documentclass{article} 
\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[backend=biber, bibencoding=ascii, bibstyle=literaturwissenschaft, citestyle=literaturwissenschaft, labeldate, citepages=omit, dashed=false, ibidpage=true]{biblatex}

\addbibresource{Literatur.bib}

\begin{document}

\footcite{test1}
\footcite[1]{test2}
\footcite[12]{test1}

\end{document}
Mit den folgenden bib-Einträgen:
@article{test1,
Author = {Nachname, Vorname},
Journal = {Zeitschrift},
Number = {H. 2},
Pages = {12-34},
Title = {Titel},
Volume = {1},
Year = {1999}}

@book{test2,
Address = {Ort},
Author = {Nachname, Vorname},
Publisher = {Verlag},
Title = {Titel},
Year = {2000}}
Wie gesagt, der Stil literaturwissenschaft basiert auf dem Stil [d]verbose-ibid[/d]. Die dritte Fußnote liefert: Nachname 1999. S. 12. Gewünscht wäre: Nachname 1999: S. 12. Interessant ist, dass mit dem code
\renewcommand*{\postnotedelim}{\addcolon\space}
in den Langzitationen der ersten beiden Fußnoten nur dann ein Doppelpunkt hinter der Jahreszahl erscheint, wenn ich tatsächlich in der postnote eine Seitenzahl angebe. Das heißt die erste Fußnote hat nach der Jahreszahl und vor der Nennung der Seitenzahlen, die der Artikel umfasst, keinen Doppelpunkt mit dem obigen code.

Verfasst: Di 11. Aug 2015, 14:42
von Gast
Nun mit dem Beispiel können wir gar nicht mal so viel anfangen, denn die wichtige Information, was Du an verbose-ibid geändert hast sind ja in literaturwissenschaft.cbx und literaturwissenschaft.bbx versteckt. (Du kannst übrigens statt bibstyle=literaturwissenschaft, citestyle=literaturwissenschaft, kürzer einfach style=literaturwissenschaft schreiben). Wir können das Beispiel ja nicht einmal kompilieren, da uns die Dateien fehlen.

Nun ja, ich habe einen alten Post von Dir gefunden und werde auf dessen Basis arbeiten.

Ich sehe zwei Lösungen mit ganz kleinen Unterschieden im Ergebnis.

Zunächst können wir Deiner Idee folgen, aber \printunit statt \setunit verwenden:
\renewbibmacro*{cite:short}{%
  \printnames{labelname}%
  \setunit*{\nameyeardelim}%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperlink]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}%
  \printunit{\addcolon\space}}
Oder wir benutzen einfach nur
\renewcommand*{\postnotedelim}{\ifciteseen{\addcolon\space}{\addcomma\space}}
MWE für 1.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}  
\usepackage{lmodern}  
\usepackage{csquotes}
\usepackage[backend=biber, style=verbose-ibid]{biblatex} 
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{cite:short}{%
  \printnames{labelname}%
  \setunit*{\nameyeardelim}%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperlink]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}%
  \printunit{\addcolon\space}%
}

\renewcommand*{\nameyeardelim}{\addspace}

\begin{document}

Lorem\footcite[1]{geer}
ipsum\footcite[2]{worman}
dolor\footcite[3]{geer}
sit\footcite[4]{worman}
amet\footcite[5]{worman}.

\printbibliography
\end{document}

MWE für 2.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}  
\usepackage{lmodern}  
\usepackage{csquotes}
\usepackage[backend=biber, style=verbose-ibid]{biblatex} 
\addbibresource{biblatex-examples.bib}

\renewbibmacro*{cite:short}{%
  \printnames{labelname}%
  \setunit*{\nameyeardelim}%
  \iffieldundef{labelyear}
    {}
    {\printtext[bibhyperlink]{%
       \printfield{labelyear}%
       \printfield{extrayear}}}}

\renewcommand*{\nameyeardelim}{\addspace}
\renewcommand*{\postnotedelim}{\ifciteseen{\addcolon\space}{\addcomma\space}}

\begin{document}

Lorem\footcite[1]{geer}
ipsum\footcite[2]{worman}
dolor\footcite[3]{geer}
sit\footcite[4]{worman}
amet\footcite[5]{worman}.

\printbibliography
\end{document}

Den Unterschied wirst Du bei dem letzten Zitat, dem "Ebd", feststellen. Mit deiner Idee (1. also) bekommst Du dort einen Doppelpunkt, mit der zweiten Methode aber nicht.

Dass im Vollzitat die Seitenangabe eines Artikels nicht von dem \postnotedlim beeinflusst wird, liegt daran, dass die Seitenzahlen im pages-Feld anders behandelt werden als die Seitenzahlen in einer etwaigen postnote. Für letztere ist \postnotedlim zuständig, für erstere \bibpagespunct. Bei den verbose-Stilen hat dann auch noch die citepages-Option ihre Finger im Spiel, denn dann kann eine Seitenzahl in der Postnote die Ausgabe des pages-Felds verhindern.

Verfasst: Di 11. Aug 2015, 14:48
von Gast
Herrje, es verhält sich mit dem Doppelpunkt bei "Ebd." natürlich genau andersherum.

Mit Methode 1 gibt es keinen Doppelpunkt sondern ein Komma, wie bei der vollen Zitation Bei Zitaten mit shorthand gibt es übrigens auch nur ein Komma und keinen Doppelpunkt.

Mit Methode 2 gibt es nur beim Erstzitat ein Komma, sonst immer einen Doppelpunkt. Auch bei einem "Ebd.".

Man könnte Methode 2 auch ein wenig anpassen, um das zu verhindern.