我正在尝试动态为 LaTeX 文档中的每个页面创建 PNG 图像。由于 LaTeX 的启动时间是速度的限制因素,我尝试使用名称管道采用以下方法:
Bash 1(聆听):
mknod test.dvi p # create named pipe 'test.dvi'
dvipng test.dvi # let dvipng wait for input on that named pipe
Bash 2(发送):
echo "\\documentclass{article}\\pagestyle{empty}\\begin{document}text\\end{document}" \
| latex -jobname=test # typeset small LaTeX document into test.dvi
LaTeX 运行成功完成。但 dvipng 退出并出现以下错误:
dvipng: Fatal error, POST occurs within page
test.dvi
令人惊讶的是,当我使用以下方法重定向到常规文件时,dvipng 可以按预期工作
cat test.dvi > test2.dvi
dvipng test2.dvi # results in test21.png
在 Bash 1 上。
希望我可以将连续的数据发送到 LaTeX,这样 dvipng.png
每次都会latex
输出一个页面到test.dvi
。如果您有比上述方法更好的方法,请告诉我!请注意,我还预编译了 LaTeX 文档的序言。但这仍然不够快。
答案1
你可能想调查TeX 守护进程:它附带一个特殊程序 dvichop,可以从传输到其中的 TeX dvi 输出中提取新页面。