tex4ht + biblatex + caracteres não-ascii = codificação mista em arquivo html

tex4ht + biblatex + caracteres não-ascii = codificação mista em arquivo html

eu tenho essa situação

  • um arquivo LaTeX com uma macro que geralmente é traduzida em um caractere unicode por tex4ht (por exemplo, \ldotsque se tornou )
  • uma citação com caractere não-ascii no nome do autor (por exemplo, o íin Albarracín)
  • Gostaria de gerar um arquivo xhtml com htlatex

O procedimento funciona, mas o arquivo resultante possui um caractere codificado em utf-8 (a macro latex) e o caractere não-ascii no nome do autor codificado em latin-1. AFAICT, htlatex inclui o arquivo bbl lendo-o como se estivesse em latin-1.

Há algo que eu possa fazer para corrigir esse comportamento? :)
(Eu estou trabalhando em pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux))

Aqui está um mwe e abaixo os comandos que executo:

%% 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" "" ""

e o resultado

$ 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. &#8220;A beautiful paper.&#8221; In: <span 

Responder1

O utf8suporte é um dos problemas resolvidos pelo make4ht. Se você compilar seu arquivo usando:

$ make4ht mwe.tex

Ele produzirá utf8o arquivo por padrão.

Se você quiser usar htlatex, você pode usar isto:

$ htlatex mwe.tex "xhtml,charset=utf-8" " -cunihtf -utf8"

Duas modificações significativas foram feitas. Primeiramente, ao incluir charset=utf-8na lista de opções, a codificação do arquivo HTML foi alterada, permitindo que os navegadores exibam corretamente os caracteres acentuados. Em segundo lugar, é fundamental separar a citação de abertura e -cunihtfcom espaço; caso contrário, a opção será ignorada, resultando em um arquivo codificado incorretamente.

Ainda recomendo usar o make4ht, pois é mais fácil de usar e também corrige outros problemas. Por exemplo, você pode criar um arquivo build, build.luaque compilará a bibliografia mediante solicitação:

if mode == "draft" then
  Make:htlatex {}
else
  Make:htlatex {}
  Make:biber {}
  Make:htlatex {}
  Make:htlatex {}
end

Agora você pode usá-lo assim:

$ make4ht -e build.lua mwe.tex

Ele irá chamar automaticamente bibere então executará o LaTeX duas vezes, para corrigir todas as referências cruzadas. Se quiser acelerar a compilação, você pode usar a draftopção, que executará o LaTeX apenas uma vez, resultando em uma compilação muito mais rápida:

$ make4ht -e build.lua -m draft  mwe.tex

Este é o resultado:

insira a descrição da imagem aqui

informação relacionada