![tex4ht + biblatex + 非 ASCII 文字 = HTML ファイル内の混合エンコーディング](https://rvso.com/image/461886/tex4ht%20%2B%20biblatex%20%2B%20%E9%9D%9E%20ASCII%20%E6%96%87%E5%AD%97%20%3D%20HTML%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%86%85%E3%81%AE%E6%B7%B7%E5%90%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0.png)
私はこのような状況にあります
- 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. “A beautiful paper.” 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 回実行され、すべての相互参照が修正されます。コンパイルを高速化したい場合は、オプションを使用するとdraft
LaTeX が 1 回だけ実行され、コンパイルがはるかに高速になります。
$ make4ht -e build.lua -m draft mwe.tex
結果は次のとおりです。