tex4ht + biblatex + 非 ASCII 文字 = HTML ファイル内の混合エンコーディング

tex4ht + biblatex + 非 ASCII 文字 = HTML ファイル内の混合エンコーディング

私はこのような状況にあります

  • tex4ht によって Unicode 文字に変換されるマクロを含む LaTeX ファイル (例\ldots: )
  • 著者名に非ASCII文字が含まれる引用(例íAlbarracín
  • htlatexでxhtmlファイルを生成したい

この手順は機能しますが、結果のファイルには、utf-8 でエンコードされた文字が 1 つ (latex マクロ) あり、著者名の非 ASCII 文字は latin-1 でエンコードされています。私の知る限り、htlatex には bbl ファイルが含まれ、latin-1 であるかのように読み取られます。

この動作を修正するために何かできることはありますか? :)
(現在取り組んでいますpdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux))

ここに mwe があります。以下は私が実行するコマンドです。

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

そしてその結果

$ 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 

答え1

サポートutf8は、によって解決される問題の 1 つですmake4ht。次を使用してファイルをコンパイルすると、

$ make4ht mwe.tex

utf8デフォルトでファイルが生成されます。

を使用したい場合はhtlatex、次のようにします。

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

2 つの重要な変更が行われました。まず、charset=utf-8オプション リストに を含めることで、HTML ファイルのエンコードが変更され、ブラウザーでアクセント付き文字を正しく表示できるようになりました。次に、開始引用符と-cunihtfスペースを区切ることが重要です。そうしないと、オプションが無視され、ファイルが誤ってエンコードされます。

より簡単に使用でき、他の問題も修正されるため、 を使用することをお勧めしますmake4ht。たとえば、build.luaリクエストに応じて参考文献をコンパイルするビルド ファイルを作成できます。

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

今では、次のように使用できます。

$ make4ht -e build.lua mwe.tex

自動的に が呼び出されbiber、その後 LaTeX が 2 回実行され、すべての相互参照が修正されます。コンパイルを高速化したい場合は、オプションを使用するとdraftLaTeX が 1 回だけ実行され、コンパイルがはるかに高速になります。

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

結果は次のとおりです。

ここに画像の説明を入力してください

関連情報