Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Umgang mit Encodings im Rahmen des BibTeX-Imports #41

Open
j3nsch opened this issue Aug 22, 2022 · 4 comments
Open

Umgang mit Encodings im Rahmen des BibTeX-Imports #41

j3nsch opened this issue Aug 22, 2022 · 4 comments

Comments

@j3nsch
Copy link
Member

j3nsch commented Aug 22, 2022

Laut BibTeX-Standard können BibTeX-Files eigentlich kein UTF-8 als Encoding verwenden. Der Standard 0.99c stammt aus 1998. UTF-8 ist deutlich jünger. Beim Schreiben des Standards wurden nur 8-Bit-Encodings betrachtet: https://wiki.lyx.org/BibTeX/Tips#encoding

Es gab wohl Bestrebungen (mit der 2010 in Aussicht gestellten BibTeX-Version 0.99d) auch UTF-8 (Multi-Byte-Encoding) zu unterstützen, aber diese Version wurde nie verabschiedet.

Die von Euch bereitgestellten BibTeX-Files nutzen unterschiedliche Encodings:

Bei den verwendeten Beispieltdateien liegt eines im ASCII-Encoding vor (ist damit standardgemäß). Das andere ist UTF-8 codiert und erfüllt damit streng genommen nicht den Standard. Ursache ist die Verwendung folgender Zeichen:

  • ß (Zeile 1885)
  • ü (Zeile 2218)
  • – (1,5 facher Bindestrich, Zeile 1500)
  • ˆ (Zeile 1635; hier als U+02C6 und nicht das typographisch "hässlichere" Zeichen ^)
  • \́ (sieht aus wie ein komponiertes Zeichen; Zeile 1885)

Wenn ich diese 5 Zeichen in entsprechende ASCII-Umschreibungen umwandle, dann entsteht eine ASCII-codierte Datei.

Es ist wichtig zu klären, wie wir beim Import mit dem Encoding umgehen wollen, damit wir am Ende nicht "Zeichengulasch" in der OPUS4-Datenbank haben.

Daher folgende Fragen:

  1. soll das Encoding vor dem Import geprüft werden?
  2. wenn 1: welche Encodings erlauben wir?
  3. wenn 2: was soll passieren, wenn ein nicht erlaubtes Encoding präsentiert wird?

Für das Erkennen des Encodings kann vermutlich https://www.php.net/manual/de/function.mb-detect-encoding.php verwendet werden. Über mögliche Drawbacks (Performance der Erkennung bei "großen" Dateien und Genauigkeit der Erkennung) kann ich aktuell noch nichts sagen.

Ich sehe das Ticket erstmal als Diskussionsgrundlage. Aber wir sollten bereits jetzt diesen Punkt besprechen.

Intern: https://tickets.zib.de/jira/browse/OPUSVIER-4502

@j3nsch
Copy link
Member Author

j3nsch commented Aug 22, 2022

falls du dir selber ein Bild machen willst, die Nicht-ASCII-Zeichen in dem UTF-8 BibTeX-File kann man mit dem Kommando

pcregrep --color='auto' -n '[^\x00-\x7F]' exampleutf8.bib

ermitteln

(findet aktuell 4 Zeilen; in einer (1885) sind allerdings zwei Nicht-ASCII-Zeichen)

@j3nsch
Copy link
Member Author

j3nsch commented Aug 22, 2022

bis auf das komponierte Zeichen (Akzent) in Zeile 1885 können alle Nicht-ASCII-Zeichen durch entsprechende Umformungen ersetzt werden, wenn man den Befehl

recode -d u8..ltex exampleutf8.bib

aufruft

Das Akzent-Zeichen in Zeile 1885 müsste vermutlich durch

\'e

ersetzt werden.

@j3nsch
Copy link
Member Author

j3nsch commented Aug 22, 2022

Auch der BibTeX-Export in OPUS4 erzeugt nicht standardkonforme (weil UTF8-codierte) BibTeX-Files.

@j3nsch
Copy link
Member Author

j3nsch commented Aug 22, 2022

Problematisch ist, dass der Begriff BibTeX überladen ist: er kann sich sowohl auf das Programm beziehen, aber auch auf das Format der Datenbankdatei mit der Endung .bib.

BibTeX (das Programm) unterstützt kein Unicode. Damit sind UTF-8 codierte .bib Dateien nicht oder nur bedingt nutzbar, wenn BibTeX verwendet wird.

Eine neuere Entwicklung ist BibLaTeX (ein LaTeX-Macro), das BibTeX (das Programm) als Backend nutzen kann. Im Gegensatz zum alten (aus den 80ern) BibTeX erlaubt es auch das Arbeiten mit Unicode. Demnach können die Datenbankdateien (*.bib) als UTF-8 codiert sein.

Ein sehr guter SO-Artikel, der die Begriffe voneinander abgrenzt, ist https://tex.stackexchange.com/a/25702

Auch die Abbildung in https://tex.stackexchange.com/a/299286 ist zum Verständnis sehr hilfreich.

Ein großer Vorteil von BibTeX (und das ist vermutlicher auch der einzige Grund, warum es noch in Nutzung ist) ist die Verbreitung und die Tool-Unterstützung (und auch die Unterstützung durch Verlage usw.)

Wir sollten also im Bezug auf das Encoding klären, was wir hier genau unterstützen wollen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant