tex4ht + biblatex + 비ASCII 문자 = html 파일의 혼합 인코딩

tex4ht + biblatex + 비ASCII 문자 = html 파일의 혼합 인코딩

이런 상황이 있어요

  • 일반적으로 tex4ht에 의해 유니코드 문자로 변환되는 매크로가 포함된 LaTeX 파일(예 \ldots: )
  • 저자 이름에 ASCII가 아닌 문자가 포함된 인용(예: íin Albarrací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. &#8220;A beautiful paper.&#8221; In: <span 

답변1

지원 utf8은 에서 해결하는 문제 중 하나입니다 make4ht. 다음을 사용하여 파일을 컴파일하는 경우:

$ make4ht mwe.tex

utf8기본적으로 파일을 생성합니다 .

을 사용하려면 htlatex다음을 사용할 수 있습니다.

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

두 가지 중요한 수정이 이루어졌습니다. 첫째, 옵션 목록에 포함시킴으로써 charset=utf-8HTML 파일의 인코딩이 변경되어 브라우저에서 악센트 부호가 있는 문자를 올바르게 표시할 수 있습니다. 둘째, 시작 인용문과 -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를 두 번 실행하여 모든 상호 참조를 수정합니다. 컴파일 속도를 높이려면 draftLaTeX를 한 번만 실행하는 옵션을 사용하면 컴파일 속도가 훨씬 빨라집니다.

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

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하세요

관련 정보