![tex4ht + biblatex + 비ASCII 문자 = html 파일의 혼합 인코딩](https://rvso.com/image/461886/tex4ht%20%2B%20biblatex%20%2B%20%EB%B9%84ASCII%20%EB%AC%B8%EC%9E%90%20%3D%20html%20%ED%8C%8C%EC%9D%BC%EC%9D%98%20%ED%98%BC%ED%95%A9%20%EC%9D%B8%EC%BD%94%EB%94%A9.png)
이런 상황이 있어요
- 일반적으로 tex4ht에 의해 유니코드 문자로 변환되는 매크로가 포함된 LaTeX 파일(예
\ldots
:…
) - 저자 이름에 ASCII가 아닌 문자가 포함된 인용(예:
í
inAlbarracín
) - htlatex를 사용하여 xhtml 파일을 생성하고 싶습니다.
절차는 작동하지만 결과 파일에는 utf-8(라텍스 매크로)로 인코딩된 문자 하나와 latin-1로 인코딩된 작성자 이름의 ASCII가 아닌 문자가 있습니다. AFAICT, htlatex에는 마치 latin-1에 있는 것처럼 읽는 bbl 파일이 포함되어 있습니다.
이 문제를 해결하기 위해 제가 할 수 있는 일이 있나요? :)
(작업 중입니다 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
은 에서 해결하는 문제 중 하나입니다 make4ht
. 다음을 사용하여 파일을 컴파일하는 경우:
$ make4ht mwe.tex
utf8
기본적으로 파일을 생성합니다 .
을 사용하려면 htlatex
다음을 사용할 수 있습니다.
$ htlatex mwe.tex "xhtml,charset=utf-8" " -cunihtf -utf8"
두 가지 중요한 수정이 이루어졌습니다. 첫째, 옵션 목록에 포함시킴으로써 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를 두 번 실행하여 모든 상호 참조를 수정합니다. 컴파일 속도를 높이려면 draft
LaTeX를 한 번만 실행하는 옵션을 사용하면 컴파일 속도가 훨씬 빨라집니다.
$ make4ht -e build.lua -m draft mwe.tex
결과는 다음과 같습니다.