-interaction=batchmode를 사용하는 방법과 동시에 오류가 나타나면 중지하고 터미널에 표시하는 방법은 무엇입니까?

-interaction=batchmode를 사용하는 방법과 동시에 오류가 나타나면 중지하고 터미널에 표시하는 방법은 무엇입니까?

나는 실험을 했고 -interaction=batchmodelualatex를 사용하면 내가 가지고 있는 하나의 큰 라텍스 파일에서 컴파일 시간이 가장 많이 단축된다는 것을 발견했습니다. 77분에서 45분으로 단축되었습니다. 모두 Linux WSL-2 Ubuntu 20.04에 있습니다. lualatex foo.tex >/dev/null 출력이 소스에서 바로 제거되고 출력을 소스로 리디렉션할 필요도 없었기 때문에 이는 사용(55분)보다 훨씬 빨랐습니다./dev/null

http://latexref.xyz/Command-line-options.html

그러므로 이것을 사용하기 위해 Makefile을 변경하고 싶습니다. 가장 큰 문제는 오류가 발생할 때 더 이상 화면에 오류가 표시되지 않는다는 것입니다. 모든 것이 로그 파일로 이동됩니다.

-interaction=batchmode사용 을 중지할 수 있는 방법이 있나요?그리고화면에 오류가 표시됩니까? 그렇지 않으면 이제 매번 로그 파일을 열어 파일이 오류 없이 컴파일되었는지 확인해야 합니다.

컴파일해야 할 라텍스 파일이 수만 개에 달하고 나중에 오류가 발생하면 오류 메시지를 멈추고 확인해야 하기 때문에 이는 실용적이지 않습니다.

다음은 오류가 있는 MWE입니다.

\documentclass{report}%   
\begin{document}

This is a test

\sin x
\end{document}

지금

>lualatex -interaction=batchmode foo.tex
This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)
 restricted system commands enabled.
>

화면에 아무것도 표시되지 않습니다. 오류는 로그 파일에 표시됩니다. 나도 시도했다

>lualatex -halt-on-error -interaction=batchmode foo.tex
This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)
 restricted system commands enabled.
>

배치 모드에서 컴파일 오류를 화면에 표시하고 중지하는 방법이 있습니까?

저는 루라텍스만 사용합니다.

업데이트

Lualatex의 존재 상태를 확인하는 힌트 덕분에 Lualatex가 성공적으로 완료되었는지 여부를 찾는 데 필요한 모든 것이 가능합니다. 로그 파일을 볼 필요가 없습니다.

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

답변1

오류가 발생했는지 여부만 확인하려면 lualatex명령의 종료 상태를 보면 됩니다. 오류가 발생하지 않으면 0이 되고, 그렇지 않으면 1이 됩니다. 오류가 발생한 경우 다음을 조사할 수 있습니다. 로그 파일.

오류를 직접 보고 싶다면 Lua 콜백을 사용할 수도 있습니다.

mybatchmode.lua다음을 포함하는 파일을 만듭니다.

texconfig.interaction = 0           -- Activate batchmode
texconfig.halt_on_error = true -- Stop at first error

callback.register('show_error_message', function(...)
  texio.write_nl('term and log', status.lasterrorstring)
  texio.write('term', '.\n')
end)
callback.register('show_lua_error_hook', function(...)
  texio.write_nl('term and log', status.lastluaerrorstring)
  texio.write('term', '.\n')
end)

그런 다음 실행

lualatex -lua=mybatchmode.lua file

귀하의 질문에 있는 예제 파일의 경우 결과는 다음과 같습니다.

This is LuaHBTeX, Version 1.15.0 (TeX Live 2022)
 restricted system commands enabled.
! Missing $ inserted.

답변2

당신이 사용할 수있는

lualatex --interaction=batchmode file || cat file.log

그래서 로그온 오류만 표시합니다.

관련 정보