我只使用 lualatex,但我相信这是一个普遍的 *.tex 问题:
从命令行(Linux,可能是任何系统)进行编译,终端响应以如下内容结束:
507 words of node memory still in use:
...
...
Output written on xxx.pdf (7 pages, 63101 bytes).
Transcript written on xxx.log.
我想在终端返回命令提示符的位置上方放置一条消息。这可能吗?
使用包没有帮助atveryend
。如果我写\AtVeryVeryEnd{\typeout{DONE!}}
它,它将出现在上面显示的结论消息上方。
我为什么要这样做:我有一个自定义文档类,可以分析用户设置和字体指标并提供重要信息。我知道如何做到这一点。但信息总是显示在 TeX 结束消息的上方,用户可能会忽略它。用户不是程序员,因此他们不需要有关内存等的 TeX 信息。
我无法使用 shell escape。
答案1
您无法在经典 tex 中做到这一点,但 luatex 允许您访问 Lua。
终端输出以“hello world”结尾
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
restricted system commands enabled.
(./ee276.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-10-23>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-luatex.def)
(./ee276.aux) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd)
[1{/usr/local/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./ee276.aux))</usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmro
man10-regular.otf>
hello world
从
\documentclass{article}
\directlua{
luatexbase.add_to_callback('stop_run',
function ()
texio.write("\string\n\string\n hello world\string\n")
end,
"final message"
)
}
\begin{document}
aaa
\end{document}
如上所示,stop_run
回调取代通常的统计数据打印。如果你用 替换它,stop_run
那么wrapup_run
它就会后打印常规统计数据
此回调的完整文档如下
此回调在 pdf 和日志文件关闭后调用。使用它需要您自担风险。
但我认为这里足够安全
$ lualatex ee276
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
restricted system commands enabled.
(./ee276.tex
LaTeX2e <2023-06-01> patch level 1
L3 programming layer <2023-10-23>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-luatex.def)
(./ee276.aux) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd)
[1{/usr/local/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./ee276.aux))
406 words of node memory still in use:
3 hlist, 1 vlist, 1 rule, 2 glue, 3 kern, 1 glyph, 4 attribute, 48 glue_spec
, 4 attribute_list, 1 write nodes
avail lists: 2:22,3:4,4:1,5:22,6:2,7:34,9:18
</usr/local/texlive/2023/texmf-dist/fonts/opentype/public/lm/lmroman10-regular.
otf>
Output written on ee276.pdf (1 page, 2613 bytes).
Transcript written on ee276.log.
hello world