在命令行上将源传递给 latex

在命令行上将源传递给 latex

在 shell 脚本中,我做了类似的事情

pdflatex <<- EOT
\def\something{a}
\documentclass{article}
\begin{document}
\something
\end{document}
EOT

其工作方式与预期一致。但是,当指定 时-interaction=nonstopmode,latex 会退出并显示

This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=latex)
**entering extended mode
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-06-16>
! Emergency stop.
<*> \def\something{a}

No pages of output.
Transcript written on texput.log.

日志文件也没有太多的启发:

This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=latex 2023.6.21)  4 JUL 2023 10:59
entering extended mode
 %&-line parsing enabled.
**\def\something{a}
! Emergency stop.
<*> \def\something{a}
                     
*** (job aborted, no legal \end found)

我究竟做错了什么?

答案1

nonstopmode表示不接受来自 stdin 的用户输入,并且<<- EOT是 stdin 上的用户输入,因此它会按照指定的错误停止。

scrollmode或许就是您正在寻找的。

相关内容