von MoeWe » Do 4. Jun 2020, 21:26
'I's mit Akzenten sorgen immer mal wieder für große Freude in Verbindung mit Biber. Allerdings sind mir bis jetzt nur Fälle bekannt, in denen die Dinge falsch liefen, wenn dabei das 'dotless i' \i zum Einsatz kam, weil Biber dann bei der Umwandlung zu Unicode etwas störrisch ist. Siehe z.B. https://tex.stackexchange.com/q/469555/35864 mit einigen Links und etwas Hintergrund.
Grob gesagt, gibt es theoretisch zumindest zwei Möglichkeiten, ein 'i' mit Akzent zu bauen: Man nimmt ein 'dotted i', packt den Akzent drauf und muss dann extra arbeiten um zu verhindern, dass der Punkt vom 'i' und der Akzent zusammen komisch aussehen, oder man vertritt gleich den Standpunkt, dass es sich eigentlich um ein 'dotless ı' mit Akzent handelt. Soweit ich weiß, war es früher in (La)TeX so, dass man den zweiten Weg mit dem 'dotless ı' gegangen ist: Ein i mit Akzent wurde mit \i gebaut, z.B. \"{\i} oder \'{\i}. Schon seit längerer Zeit ist es aber auch in LaTeX möglich, viele 'i'-basierte Buchstaben mit 'i' zu bauen: \"i und \'i gehen auch. Siehe z.B. https://tex.stackexchange.com/q/385242/35864.
Biber kann mit Unicode umgehen und muss zum richtigen Sortieren LaTeX-Makro-Gebilde wie \"i in das passende Unicode-Zeichen übersetzten. In Unicode sind die meisten 'i'-basierten Buchstaben mit eigenem Slot auf 'i' und nicht 'ı' aufgebaut. (Ich hatte dazu mal eine Referenz https://web.archive.org/web/20190112020 ... rk.html#22, aber die ist in der aktuellen Version weg. Eventuell sieht man das also inzwischen anders, aber soweit ich sehen kann ist die Situation noch immer wie beschrieben.) So wird z.B. \'i von Biber zu í (í, U+0069 + U+0301, also i + ´-Akzent) übersetzt, was wiederum äquivalent zu í (í, U+00ED) ist (äquivalent im Sinne einer Normalisierung, Stichwort NFC/NFD). Aber \'\i wird zu ı́ (ı́, U+0131 + U+0301, also ı + ´-Akzent), das nicht äquivalent zu í (í, U+00ED) ist.
Jetzt kommt hinzu, dass pdfLaTeX nur mit einem Teil von Unicode umgehen kann, insbesondere werden combining accents nicht unterstützt (das liegt daran, dass sie bei Unicode hinter dem Basis-Zeichen kommen, für TeX müssten sie aber vor dem Basis-Zeichen kommen, damit man damit gut umgehen kann). Die Folge ist, dass Biber \'{\i} zu U+0131 + U+0301 macht, womit pdfLaTeX nicht umgehen kann, aber \'i wird zu U+00ED und das geht. Für vollständige Unicode-Unterstützung in LaTeX braucht man eine der Unicode-Engines (LuaLaTeX oder XeLaTeX). Mit pdfLaTeX bekommt man nur einen Teil (den man unter Umständen mit \DeclareUnicodeCharacter oder \newunicodechar erweitern kann).
In meinen Tests gehen sowohl ï als auch {\"i} in der .bib-Datei. Im normalen LaTeX-Text gehen ï, \"{i} und \"{\i}
% !TeX program = pdfLaTeX
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{appleby,
author = {Humphrey Applebï and Humphrey Appleb{\" i}},
title = {On the Importance of the Civil Service},
date = {1980},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem ïpsum \"{i}psum \"{\i}psum
\cite{appleby}
\printbibliography
\end{document}
Wie zu erwarten geht \"{\i} in der .bib-Datei nicht. Ist daher im Beispiel nicht gezeigt, man bekäme einen Fehler
! Package inputenc Error: Unicode character ̈ (U+0308)
(inputenc) not set up for use with LaTeX.
der Akzent ̈ vom ı würde ignoriert, und in der Ausgäbe wäre nur das 'ı' zu sehen.
BibTeX kann mit nicht-US-ASCII-Buchstaben nicht richtig umgehen (es gibt zwar BibTeX8 für 8-Bit-Codierungen, aber das ignorieren wir jetzt mal, heutzutage sollte man eh besser Unicode wollen). Oft ist das nicht schlimm, da BibTeX diese Buchstaben einfach ignoriert, aber in einigen Fällen ist es unvorteilhaft wenn das passiert. Daher sollten nicht-US-ASCII-Buchstaben bei der Verwendung von BibTeX mit Makros geschrieben werden. Damit BibTeX mit diesen LaTeX-Escapes richtig umgehen kann, müssen die Buchstaben immer noch in ein zusätzliches Paar geschweifte Klammern gesetzt werden ( (https://tex.stackexchange.com/q/546794/35864)). Aus ï wird das LaTeX-Escape \"i und daraus in BibTeX {\"i}. Im normalen LaTeX-Text sind die äußeren Klammern nicht nötig. Da diese Klammern zumindest theoretisch sogar Probleme beim Kerning verursachen können, werden sie von Biber in der nächsten Version entfernt, nachdem die Umwandlung zu Unicode stattgefunden hat (https://github.com/plk/biber/issues/316, ich meine, Biber hast das schon früher probiert, aber die Sache mit geschweiften Klammern in .bib-Dateien scheint eine unendliche Geschichte zu sein).
Bei biblatex+Biber ist es am schönsten, die Unicode-Version der gewünschten Buchstaben direkt zu verwenden. Hier also ï (U+00EF). Wenn das in BibDesk nicht geht und zu den von Dir beschriebenen Symptomen (Fehler und im Dokument nur ein 'ı') führt, dann ist meine Vermutung, dass BibDesk hinter Deinem Rücken das ï in ein BibTeX-konformes {\"\i} escaped, dass dann von Biber wie oben beschrieben in eine für LaTeX nicht nutzbaren Unicode-Sequenz umgewandelt wird. Ich kenne BibDesk nicht, unterstelle jetzt aber mal, dass diese Software eine Option hat, einen biblatex-Modus einzustellen, in dem die Umwandlung von nicht-US-ASCII-Zeichen zu Makros unterbunden wird, oder dass man das auf anderem Weg abstellen kann.
'I's mit Akzenten sorgen immer mal wieder für große Freude in Verbindung mit Biber. Allerdings sind mir bis jetzt nur Fälle bekannt, in denen die Dinge falsch liefen, wenn dabei das 'dotless i' `\i` zum Einsatz kam, weil Biber dann bei der Umwandlung zu Unicode etwas störrisch ist. Siehe z.B. https://tex.stackexchange.com/q/469555/35864 mit einigen Links und etwas Hintergrund.
Grob gesagt, gibt es theoretisch zumindest zwei Möglichkeiten, ein 'i' mit Akzent zu bauen: Man nimmt ein 'dotted i', packt den Akzent drauf und muss dann extra arbeiten um zu verhindern, dass der Punkt vom 'i' und der Akzent zusammen komisch aussehen, oder man vertritt gleich den Standpunkt, dass es sich eigentlich um ein 'dotless ı' mit Akzent handelt. Soweit ich weiß, war es früher in (La)TeX so, dass man den zweiten Weg mit dem 'dotless ı' gegangen ist: Ein i mit Akzent wurde mit `\i` gebaut, z.B. `\"{\i}` oder `\'{\i}`. Schon seit längerer Zeit ist es aber auch in LaTeX möglich, viele 'i'-basierte Buchstaben mit 'i' zu bauen: `\"i` und `\'i` gehen auch. Siehe z.B. https://tex.stackexchange.com/q/385242/35864.
Biber kann mit Unicode umgehen und muss zum richtigen Sortieren LaTeX-Makro-Gebilde wie `\"i` in das passende Unicode-Zeichen übersetzten. In Unicode sind die meisten 'i'-basierten Buchstaben mit eigenem Slot auf 'i' und nicht 'ı' aufgebaut. (Ich hatte dazu mal eine Referenz https://web.archive.org/web/20190112020351/http://unicode.org/faq/char_combmark.html#22, aber die ist in der aktuellen Version weg. Eventuell sieht man das also inzwischen anders, aber soweit ich sehen kann ist die Situation noch immer wie beschrieben.) So wird z.B. `\'i` von Biber zu í (`í`, U+0069 + U+0301, also `i` + `´`-Akzent) übersetzt, was wiederum äquivalent zu í (`í`, U+00ED) ist (äquivalent im Sinne einer [Normalisierung, Stichwort NFC/NFD](https://de.wikipedia.org/wiki/Normalisierung_(Unicode))). Aber `\'\i` wird zu ı́ (ı́, U+0131 + U+0301, also `ı` + `´`-Akzent), das nicht äquivalent zu í (`í`, U+00ED) ist.
Jetzt kommt hinzu, dass pdfLaTeX nur mit einem Teil von Unicode umgehen kann, insbesondere werden *combining accents* nicht unterstützt (das liegt daran, dass sie bei Unicode hinter dem Basis-Zeichen kommen, für TeX müssten sie aber vor dem Basis-Zeichen kommen, damit man damit gut umgehen kann). Die Folge ist, dass Biber `\'{\i}` zu U+0131 + U+0301 macht, womit pdfLaTeX nicht umgehen kann, aber `\'i` wird zu U+00ED und das geht. Für vollständige Unicode-Unterstützung in LaTeX braucht man eine der Unicode-Engines (LuaLaTeX oder XeLaTeX). Mit pdfLaTeX bekommt man nur einen Teil (den man unter Umständen mit `\DeclareUnicodeCharacter` oder `\newunicodechar` erweitern kann).
In meinen Tests gehen sowohl `ï` als auch `{\"i}` in der `.bib`-Datei. Im normalen LaTeX-Text gehen `ï`, `\"{i}` und `\"{\i}`
```
% !TeX program = pdfLaTeX
\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{appleby,
author = {Humphrey Applebï and Humphrey Appleb{\" i}},
title = {On the Importance of the Civil Service},
date = {1980},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem ïpsum \"{i}psum \"{\i}psum
\cite{appleby}
\printbibliography
\end{document}
```
Wie zu erwarten geht `\"{\i}` in der `.bib`-Datei nicht. Ist daher im Beispiel nicht gezeigt, man bekäme einen Fehler
```
! Package inputenc Error: Unicode character ̈ (U+0308)
(inputenc) not set up for use with LaTeX.
```
der Akzent ` ̈` vom `ı` würde ignoriert, und in der Ausgäbe wäre nur das 'ı' zu sehen.
BibTeX kann mit nicht-US-ASCII-Buchstaben nicht richtig umgehen (es gibt zwar BibTeX8 für 8-Bit-Codierungen, aber das ignorieren wir jetzt mal, heutzutage sollte man eh besser Unicode wollen). Oft ist das nicht schlimm, da BibTeX diese Buchstaben einfach ignoriert, aber in einigen Fällen ist es unvorteilhaft wenn das passiert. Daher sollten nicht-US-ASCII-Buchstaben bei der Verwendung von BibTeX mit Makros geschrieben werden. Damit BibTeX mit diesen LaTeX-Escapes richtig umgehen kann, müssen die Buchstaben immer noch in ein zusätzliches Paar geschweifte Klammern gesetzt werden ( (https://tex.stackexchange.com/q/546794/35864)). Aus `ï` wird das LaTeX-Escape `\"i` und daraus in BibTeX `{\"i}`. [size=85]Im normalen LaTeX-Text sind die äußeren Klammern nicht nötig. Da diese Klammern zumindest theoretisch sogar Probleme beim Kerning verursachen können, werden sie von Biber in der nächsten Version entfernt, nachdem die Umwandlung zu Unicode stattgefunden hat (https://github.com/plk/biber/issues/316, ich meine, Biber hast das schon früher probiert, aber die Sache mit geschweiften Klammern in `.bib`-Dateien scheint eine unendliche Geschichte zu sein).[/size]
Bei `biblatex`+Biber ist es am schönsten, die Unicode-Version der gewünschten Buchstaben direkt zu verwenden. Hier also `ï` (U+00EF). Wenn das in BibDesk nicht geht und zu den von Dir beschriebenen Symptomen (Fehler und im Dokument nur ein 'ı') führt, dann ist meine Vermutung, dass BibDesk hinter Deinem Rücken das `ï` in ein BibTeX-konformes `{\"\i}` escaped, dass dann von Biber wie oben beschrieben in eine für LaTeX nicht nutzbaren Unicode-Sequenz umgewandelt wird. Ich kenne BibDesk nicht, unterstelle jetzt aber mal, dass diese Software eine Option hat, einen `biblatex`-Modus einzustellen, in dem die Umwandlung von nicht-US-ASCII-Zeichen zu Makros unterbunden wird, oder dass man das auf anderem Weg abstellen kann.