Problem mit \, in biblatex Eintrag

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


kurztipp

Problem mit \, in biblatex Eintrag

Beitrag von kurztipp »

Hallo,

in einem Bibliographieeintrag habe ich den Herausgebernamen
editor = {Robson, J.\,M.}
eingetragen. Wegen des abgekürzten Namens habe ich
\,
zwischen die Initialien eingefügt. Dies habe ich bereits in mehreren Einträgen – bspw auch:
publisher={J.\,C.\,B. Mohr}
Und noch nie Probleme gehabt. Mit diesem editor Eintrag allerdings schon.
Das Minimalbeispiel produziert bei mir folgenden Fehler:
(./Bibliographie-Fehler.aux) (./Bibliographie-Fehler.bbl
Runaway argument?
{{{hash=17742572ed2371587cec17888694ba80}{Robson}{R\bibinitperiod }{M\ETC.
! Paragraph ended before \name was complete.
<to be read again>
\par
l.56

?
)

LaTeX Warning: Empty bibliography on input line 66.
Nehme ich das
\,
heraus, läuft alles. Wieso erzeugt genau dieser Eintrag diesen Fehler, wenn er bei anderen Einträgen mit
\,
nicht kommt? Wie kann ich den Fehler beheben, ohne
\,
aus dem Eintrag herauszunehmen?


\documentclass[fontsize=12pt,paper=a4,titlepage,twoside=false,headings=normal,numbers=noendperiod]{scrartcl}

%%%%% BEGINN: Spracheinrichtung %%%%%
 % Deutsche Sprachunterstützung (Worttrennung, etc.)
\usepackage[ngerman]{babel}
 % Unicode Eingabe
\usepackage[utf8]{inputenc}
 % Sonderzeichen verfügbar machen
\usepackage[T1]{fontenc}
%%%%% ENDE: Spracheinrichtung %%%%%

%%%%% BEGINN: Bibliographieeinrichtung %%%%%
 % Bibliographiedatei
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOKINBOOK{Mill1859,
  author = {Mill, John Stuart},
  title = {On Liberty},
  booktitle = {Essays on Politics and Society},
  year = {1977},
  editor = {Robson, J.\,M.},
  introduction = {Brady, Alexander},
  maintitle = {Collected Works of John Stuart Mill},
  volume = {18},
  publisher = {University of Toronto Press},
  location = {Toronto and Buffalo},
  origyear = {1859}
}
\end{filecontents}
%% Biblatex zur Literaturverwaltung
\usepackage[style=authortitle, %Fußnoten
%			style=authoryear, %Inline
%  			citestyle=authoryear,
%  			bibstyle=authoryear,
 			language=ngerman,
 			maxnames=2,
 			sorting=nyt,
 			date=short,
 			% natbib Unterstützung
 			natbib=true,
 			% Im Literaturverzeichnis Seiten der Quellenangaben anzeigen 
 			backref=false,
 			hyperref=false,
 			% Vor- und Mittelname abkürzen
 			firstinits=false,
  			backend=biber]{biblatex}
\bibliography{\jobname.bib}
\DeclareLanguageMapping{ngerman}{ngerman-apa}



%%%%% BEGINN: Zitationseinrichtung %%%%%
%% csquotes zur Verwaltung der Anführungszeichen
 % Guillements statt Anführungszeichen
 % Absatzkontrolle aktiviert
 % Automatisch Punkte setzen
\usepackage[style=german,
			german=guillemets,
			parthreshold=true,
			autopunct=true]{csquotes}
%%%%% ENDE: Zitationseinrichtung %%%%%

\begin{document}
\blockcquote[S.][223]{Mill1859}[.]{the only purpose for which power can be rightfuly exercised over any member of a civilized community, against his will, is to prevent harm to others}

\printbibliography[heading=bibintoc]
\end{document}

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

Beitrag von Johannes_B »

Danke, danke, danke. Endlich mal ein Beispiel was auf Anhieb läuft und den Fehler zeigt.

Biber interpretiert \, nicht als Einheit, sondern getrennt und verschluckt das Komma. Übrig bleibt der Backslash, welcher aber in der bbl gefolgt wird von einer schließenden geschweiften Klammer. Diese würde somit gedruckt werden, allerdings bemängelt LaTeX bevor dies geschehen könnte, dass eine schließende Klammer fehlt.

Trage es so in deiner Datenbank ein: {Robson, J.{\,}M.}

Bild
\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
	@BOOKINBOOK{Mill1859,
		author = {Mill, John Stuart},
		editor = {Robson, J.{\,}M.},
	}
\end{filecontents}
\usepackage[style=authortitle, %Fußnoten
backend=biber]{biblatex}
\bibliography{\jobname.bib}
\DeclareLanguageMapping{ngerman}{ngerman-apa}

\begin{document}
\pagestyle{empty}
\nocite{*}
\printbibliography
J.\,M. Robson\par
J. M. Robson
\end{document}

Dateianhänge
kurztippBiblatexSpace.png
kurztippBiblatexSpace.png (14.55 KiB) 1840 mal betrachtet
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 »

Es sei angemerkt, dass es keine gute Idee, ist in Namensfeldern wie editor und author manuelle Spacingbefehle wie \, zu verwenden.
Wenn Du das Leerzeichen zwischen den Initialen selbst ändern möchtest, dann helfen Dir \bibinitdelim und \bibnamedelimi weiter (siehe [d]biblatex[/d], S. 119-121), standardmäßig sind sie als
\renewrobustcmd*{\bibinitdelim}{\addnbspace}
\newrobustcmd*{\bibnamedelimi}{\addnbspace}
gegeben, Du könntest das zu
\renewrobustcmd*{\bibinitdelim}{\addnbthinspace}
\renewrobustcmd*{\bibnamedelimi}{\addnbthinspace}
ändern.
Dann bekommst du nach Initialen immer ein dünnes Leerzeichen.

Dein MWE
\documentclass[fontsize=12pt,paper=a4,titlepage,twoside=false,headings=normal,numbers=noendperiod]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@BOOKINBOOK{Mill1859,
  author = {Mill, John Stuart},
  title = {On Liberty},
  booktitle = {Essays on Politics and Society},
  year = {1977},
  editor = {Robson, J. M.},
  introduction = {Brady, Alexander},
  maintitle = {Collected Works of John Stuart Mill},
  volume = {18},
  publisher = {University of Toronto Press},
  location = {Toronto and Buffalo},
  origyear = {1859}
}
\end{filecontents*}
\usepackage[style=authortitle, %Fußnoten
%         style=authoryear, %Inline
%           citestyle=authoryear,
%           bibstyle=authoryear,
          language=ngerman,
          maxnames=2,
          sorting=nyt,
          date=short,
          % natbib Unterstützung
          natbib=true,
          % Im Literaturverzeichnis Seiten der Quellenangaben anzeigen
          backref=false,
          hyperref=false,
          % Vor- und Mittelname abkürzen
          firstinits=false,
           backend=biber]{biblatex}
\bibliography{\jobname.bib}
\DeclareLanguageMapping{ngerman}{ngerman-apa}

\usepackage[style=german,
         german=guillemets,
         parthreshold=true,
         autopunct=true]{csquotes}

\renewrobustcmd*{\bibinitdelim}{\addnbthinspace}
\renewrobustcmd*{\bibnamedelimi}{\addnbthinspace}

\begin{document}
\blockcquote[S.][223]{Mill1859}[.]{the only purpose for which power can be rightfuly exercised over any member of a civilized community, against his will, is to prevent harm to others}

\printbibliography[heading=bibintoc]
\end{document}

Es sei noch kurz angemerkt, dass die Lösung von oben nur für Namensfelder funktioniert (editor und author sind solche, publisher nicht).

Allerdings tritt Dein Problem auch nur in Namensfeldern auf, deshalb hattest Du mit dem publisher Feld bisher auch keine Probleme.

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

Beitrag von Johannes_B »

Sehr gut, auf jeden Fall empfehlenswerter als mein Workaround.


Eine nähere Erläuterung zu den verschiedenen Typen findet man in der Biblatex-Doku, Abschnitt 2.2 (Version 2.9a).
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.

kurztipp

Beitrag von kurztipp »

Johannes_B hat geschrieben:Danke, danke, danke. Endlich mal ein Beispiel was auf Anhieb läuft und den Fehler zeigt.
Gerne, ist ja auch keine Raketentechnik ;)
Johannes_B hat geschrieben:Biber interpretiert \, nicht als Einheit, sondern getrennt und verschluckt das Komma. Übrig bleibt der Backslash, welcher aber in der bbl gefolgt wird von einer schließenden geschweiften Klammer. Diese würde somit gedruckt werden, allerdings bemängelt LaTeX bevor dies geschehen könnte, dass eine schließende Klammer fehlt.
Danke für den Hinweis.
Anonymous hat geschrieben:Es sei angemerkt, dass es keine gute Idee, ist in Namensfeldern wie editor und author manuelle Spacingbefehle wie \, zu verwenden.
Wenn Du das Leerzeichen zwischen den Initialen selbst ändern möchtest, dann helfen Dir \bibinitdelim und \bibnamedelimi weiter (siehe [d]biblatex[/d], S. 119-121)
Vielen Dank dafür, die beiden Befehle kannte ich noch nicht. Prinzipiell muss ich die Leerzeichen zwischen den Initialen nicht selbst ändern, aber kann ich mich darauf verlassen, dass biblatex korrekterweise immer ein dünnes Leerzeichen setzt? Habe dergleichen (noch) nicht in der Dokumentation gelesen, aber auch nicht jede einzelne Seite gelesen.

Anonymous hat geschrieben:Es sei noch kurz angemerkt, dass die Lösung von oben nur für Namensfelder funktioniert (editor und author sind solche, publisher nicht).

Allerdings tritt Dein Problem auch nur in Namensfeldern auf, deshalb hattest Du mit dem publisher Feld bisher auch keine Probleme.
Auch gut zu wissen, liegt wohl daran, dass Namensfelder (name lists) noch einmal ausgewertet werden oder?

Antworten