autocite[][]{} - kein Zeilenumbruch

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


jschle
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: So 21. Sep 2014, 17:37

autocite[][]{} - kein Zeilenumbruch

Beitrag von jschle »

Hallo,

ich nutze zum Zitieren den Befehl \autocite[][]{}. Die Literatur wird dann z.B. wie folgt dargestellt [vgl. 9, S.19]. Leider macht Latex einen Zeilenumbruch innerhalb der eckigen Klammern.

Kann man dies irgendwie verhindern?

Viele Grüße,
Jan

Gast

Beitrag von Gast »

Verrätst Du uns, welche Pakete Du für die Zitate verwendest? Am besten in einem Minimalbeispiel, das auch das Problem direkt zeigt.

In einer solchen langen Klammer würde ich es für etwas unpassend halten, jeden Umbruch zu verhindern, das reißt doch eine deutliche Lücke in den Satz. Mit biblatex sollte es wohl grundsätzlich möglich sein, den Umbruch zu verhindern, aber die Ergebnisse könnten dich unter Umständen enttäuschen.

jschle
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: So 21. Sep 2014, 17:37

Beitrag von jschle »

danke für die schnelle Antwort.
Ich nutze folgende Pakete:
\usepackage[babel,german=quotes]{csquotes}
\usepackage[style=numeric-comp,backend=bibtex8]{biblatex}
Ich verweise dann im Text z.B. so
 Text ... \autocite[vgl.][28]{Quelle}.

Gast

Beitrag von Gast »

Anonymous hat geschrieben:Am besten in einem Minimalbeispiel, das auch das Problem direkt zeigt.
Bitte beachte den Link!

Gast

Beitrag von Gast »

Das ist zwar nicht ganz ein Minimalbeispiel, reicht aber ausnahmsweise schon aus, um die Frage zu beantworten.

Probier es mal mit
\renewcommand*{\prenotedelim}{\addnbspace}
\renewcommand*{\postnotedelim}{\addcomma\addnbspace}
\renewcommand*{\multicitedelim}{\addcomma\addnbspace}
\renewcommand*{\extpostnotedelim}{\addnbspace}
\renewcommand*{\volcitedelim}{\addcomma\addnbspace}
Richtig wichtig sind dabei vor allem die ersten drei Zeilen.

Im Ganzen
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric-comp, backend=biber]{biblatex}

\addbibresource{biblatex-examples.bib}

\renewcommand*{\prenotedelim}{\addnbspace}
\renewcommand*{\postnotedelim}{\addcomma\addnbspace}
\renewcommand*{\multicitedelim}{\addcomma\addnbspace}
\renewcommand*{\extpostnotedelim}{\addnbspace}
\renewcommand*{\volcitedelim}{\addcomma\addnbspace}

\begin{document}
Lorem ipsum dolor site amet consecetur. Helaas is dit zin nog niet lang \cite[vgl.][19]{sigfridsson}
\end{document}

Beachte, dass BibTeX(8) veraltet ist, und man heute eigentlich biber als Backend benutzen sollte. Dazu bedarf es der Anpassung backend=biber im Dokument. Dann musst Du natürlich Biber statt BibTeX über die Dateien laufen lassen, wenn das Dein Editor für Dich tut, findest Du Hilfe in Biblatex with Biber: Configuring my editor to avoid undefined citations oder auf Deutsch als Link in den wichtigen Hinweisen.

Die Option babel heißt bei csquotes inzwischen autostyle und german=quotes ist die Voreinstellung, muss also nicht mit angegeben werden.

jschle
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: So 21. Sep 2014, 17:37

Beitrag von jschle »

Super, vielen Dank. Genau so sieht es jetzt super aus :)

Ich verstehe jedoch nicht, was hier genau gemacht wird:
\renewcommand*{\prenotedelim}{\addnbspace}
\renewcommand*{\postnotedelim}{\addcomma\addnbspace}
\renewcommand*{\multicitedelim}{\addcomma\addnbspace}
\renewcommand*{\extpostnotedelim}{\addnbspace}
\renewcommand*{\volcitedelim}{\addcomma\addnbspace}

Gast

Beitrag von Gast »

Schau in der [d]biblatex[/d]-Anleitung nach den Anweisungen.

Gast

Beitrag von Gast »

Zunächst ist es so, dass in den Definitionen standardmäßig statt \addnbspace entweder \space oder \addspace stand. (Die Regel nach der \space oder \addspace ausgewählt wird ist in etwa: Wenn in derselben Definition direkt ein anderer \add...-Befehl vorausgeht, dann kann man statt \addspace auch \space schreiben; ansonsten ist \addspace vorzuziehen.)

In der [d]biblatex[/d]-Doku werden die Befehle noch viel detaillierter erklärt, aber wenn Du \cite[pre][post]{fooa,foob} schreibst, bekommst Du eine Ausgabe wie "[pre 1, 2, post]" dabei sind die Trennzeichen wie folgt verteilt
[pre\prenotedelim 1\multicitedelim 2\postnotedelim post]
\prenotedelim trennt also die Prenote vom Rest ab, \postnotedelim entsprechend die Postnote. \multicitedelim ist der Trenner zwischen mehreren Werken ("1" und "2"). \extpostnotedelim ist für spezielle Postnotes, genauso wie \volcitedelim.

Wir haben also dafür gesorgt, dass an den Stellen innerhalb der Zitatklammer, wo normalerweise Leerzeichen eingefügt würden nun geschützte Leerzeichen stehen, die werden nicht umgebrochen. Dadurch wird die Klammer zumindest an Leerzeichen nicht umgebrochen - an langen Wörtern kann das aber immer noch passieren.

(PS: Ich habe mich mal erdreistet den Status auf "beantwortet" zu setzen. Du kannst das natürlich wieder umstellen, wenn Du das anders siehst.)

Antworten