Lua를 사용하여 글꼴 경고 표시

Lua를 사용하여 글꼴 경고 표시

lualatex, TeXlive2024, Linux를 사용합니다.

이전 질문, Marcel Krüger는 Lua를 사용하여 오류를 추적하는 방법을 보여주었습니다. 본질적으로 해당 코드는 오류가 보고된 경우 플래그를 설정합니다. 마지막에는 다른 코드로 플래그를 감지하고 PDF에서 작업을 수행하고(메타데이터 수정) 터미널에 최종 메시지를 작성할 수 있습니다. 나는 이것을 항상 사용합니다. 매우 도움이 됩니다.

메시지가 GenericError 또는 GenericWarning 메커니즘을 통해 전달될 때 플래그를 설정하는 다른 방법(간단한 LaTeX 코드 핵)이 있습니다.

하지만 문제가 누락된 문자로 인해 플래그 방법을 사용할 수 없습니다. 나는 성공하지 Missing character못했기 Missing~character 때문에 texmf-dist(적어도 lualatex의 경우) 메시지가 바이너리에 의해 생성되었습니다. MWE:

\documentclass{article}
% Compile with lualatex, which uses fontspec and Latin Modern Roman.
\begin{document}
I could use a ⛾ right now.
\end{document}

로 컴파일하면 pdflatex다음 오류가 발생합니다. ! LaTeX Error: Unicode character ⛾ (U+26FE) not set up for use with LaTeX. 컴파일러가 중단됩니다. 사용자가 오류 메시지를 지나 계속하면 PDF가 생성됩니다. TeXworks를 사용하는 경우 "오류, 경고, 불량 상자" 중에서 오류가 감지되어 보고됩니다.

로 컴파일하면 lualatex오류가 아닌 메시지가 있고 컴파일러는 멈추지 않고 끝까지 계속됩니다. Missing character: There is no ⛾ (U+26FE) in font [lmroman10-regular]:+tlig;! TeXworks를 사용하면 "오류, 경고, 불량 상자" 중에서 감지되지 않습니다.

Lua 오류 추적은 누락된 문자 메시지를 감지하지 못합니다. (웃음을 위해 잠시 멈춤) error로 변경하여 코드 해킹을 시도했지만 warning작동하지 않았습니다.

제 질문은 문자가 누락되었을 때 어떻게 플래그를 설정할 수 있느냐는 것입니다. 문자나 글꼴, 페이지를 기록할 필요가 없습니다. AtEndDocument를 감지할 수 있는 간단한 참/거짓입니다. 의사 코드:

\documentclass{article}
\newif\iffoo
\directlua{
% This would be the code that sets the foo flag, if missing character.
}
\AtEndDocument{\iffoo\typeout{EEEEEEEK}\fi}
\begin{document}
I could use a ⛾ right now.
\end{document}

덧붙여서, 나는 대체 글꼴 메커니즘을 알고 있습니다. 대체를 사용하는 경우 누락된 문자 메시지는 대체에서도 누락된 경우에만 생성됩니다.

이 작업을 수행하려는 이유: 작업 과정에서 문제 PDF에는 준비되지 않음으로 표시하는 메타데이터가 포함되어 있어야 합니다. 나는 해당 메타데이터 AtEndDocument를 작성하는 방법을 알고 있습니다.

lua-typo나중에 생각: 선택적으로 PDF 문제가 아닌 가독성 문제를 감지하도록 패키지를 활성화했습니다 . 놀라운.

답변1

LuaTeX 레지스터는 \tracinglostchars3으로 설정되어야 합니다. 그러면 현재 글꼴에 누락된 문자가 일반 오류처럼 동작합니다.

관련 정보