![tex4ht + biblatex + nicht-ASCII-Zeichen = gemischte Kodierung in HTML-Datei](https://rvso.com/image/461886/tex4ht%20%2B%20biblatex%20%2B%20nicht-ASCII-Zeichen%20%3D%20gemischte%20Kodierung%20in%20HTML-Datei.png)
Ich habe diese Situation
- eine LaTeX-Datei mit einem Makro, das normalerweise von tex4ht in ein Unicode-Zeichen übersetzt wird (
\ldots
das wurde zB zu…
) - ein Zitat mit Nicht-ASCII-Zeichen im Namen des Autors (z. B. das
í
inAlbarracín
) - Ich möchte eine XHTML-Datei mit htlatex generieren
Das Verfahren funktioniert, aber die resultierende Datei enthält ein in UTF-8 kodiertes Zeichen (das Latex-Makro) und das nicht-ASCII-Zeichen im Namen des Autors ist in Latin-1 kodiert. Soweit ich weiß, schließt htlatex die BBL-Datei ein und liest sie, als wäre sie in Latin-1.
Kann ich irgendetwas tun, um dieses Verhalten zu beheben? :)
(Ich arbeite daran pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux)
)
Hier ist ein MWE und unten die Befehle, die ich ausführe:
%% File mwe.tex
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@Article{Albarracin2000,
year = {2000},
volume = {1},
issue = {2},
pages = {3},
author = {Anyone Albarracín},
title = {A beautiful paper.},
journaltitle = {Some Journal}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
I Am a Scientist\ldots\ Ask Me Anything
\parencite{Albarracin2000}
\printbibliography
\end{document}
htlatex mwe.tex "xhtml" "-cunihtf -utf8" "" ""
biber mwe
htlatex mwe.tex "xhtml" "-cunihtf -utf8" "" ""
und das Ergebnis
$ file mwe.html
mwe.html: XML 1.0 document, Non-ISO extended-ASCII text
$ grep -a -e 'Anyone Albarra' -e Scientist --color mwe.html
<!--l. 22--><p class="noindent" >I Am a Scientist… Ask Me Anything [<a
<!--l. 26--><p class="noindent" >Anyone Albarrac�n. “A beautiful paper.” In: <span
Antwort1
Die utf8
Unterstützung ist eines der Probleme, die durch gelöst werden make4ht
. Wenn Sie Ihre Datei kompilieren mit:
$ make4ht mwe.tex
utf8
Standardmäßig wird eine Datei erstellt .
Wenn Sie verwenden möchten htlatex
, können Sie Folgendes verwenden:
$ htlatex mwe.tex "xhtml,charset=utf-8" " -cunihtf -utf8"
Es wurden zwei wesentliche Änderungen vorgenommen. Erstens charset=utf-8
wurde durch die Aufnahme in die Optionsliste die Kodierung der HTML-Datei geändert, sodass Browser Akzentbuchstaben korrekt anzeigen können. Zweitens ist es wichtig, das öffnende Anführungszeichen und -cunihtf
durch ein Leerzeichen zu trennen. Andernfalls wird die Option ignoriert, was zu einer falsch kodierten Datei führt.
Ich empfehle dennoch die Verwendung von make4ht
, da es einfacher zu verwenden ist und auch andere Probleme behebt. Sie können beispielsweise eine Build-Datei erstellen, build.lua
die die Bibliographie auf Anfrage kompiliert:
if mode == "draft" then
Make:htlatex {}
else
Make:htlatex {}
Make:biber {}
Make:htlatex {}
Make:htlatex {}
end
Jetzt können Sie es folgendermaßen verwenden:
$ make4ht -e build.lua mwe.tex
Es wird automatisch aufgerufen biber
und dann LaTeX zweimal ausgeführt, um alle Querverweise zu korrigieren. Wenn Sie die Kompilierung beschleunigen möchten, können Sie die draft
Option verwenden, die LaTeX nur einmal ausführt, was zu einer viel schnelleren Kompilierung führt:
$ make4ht -e build.lua -m draft mwe.tex
Dies ist das Ergebnis: