使用 shell 脚本和 write18 进行后期构建过程

使用 shell 脚本和 write18 进行后期构建过程

我想从 LaTeX 启动一个 shell 脚本。在 shell 脚本中,我需要等到 .pdf 文件生成,然后我想用这个文件做一些事情。

Test.tex因此我创建了一个这样的MWE :

\documentclass{article}
\immediate\write18{/myPath/script.sh}
\begin{document}
  Test
\end{document}

shell 脚本script.sh如下所示:

#!/bin/bash
until [ -f Test.pdf ]
do
     sleep 5
done
echo "File found"
# Do SOMETHING

不幸的是,这似乎不适用于 TeXMaker。它似乎陷入了无限循环,而且 cmdsleep 5似乎也让 TeXMaker 进入休眠状态。

顺便提一句 --shell-escape已启用并chmod 755 script.sh已设置。

编辑 现在我可以arara在我的 MWE 中这样使用:

\documentclass{article}
% arara: pdflatex: {shell: yes,synctex: yes,interaction: nonstopmode}
\begin{document}
Test
\end{document}

但是如何告诉现在在生成 pdf 后arara运行该脚本 ?\immediate\write18{/myPath/script.sh}

答案1

感谢您的评论,最后的解决方案比预期的要简单得多。

Preferences我不得不将我的 IDE 从 TexMaker 更改为 TexStudio。在 TexStudio 中,您只需在=> Generate=>中的 Meta 命令中添加一个表达式Build and View

元命令

对我来说sh -c "/MyPath/script.sh argument1"

就是这样!

相关内容