這是運行良好的程式碼:
\documentclass{article}
\usepackage{shellesc}
\begin{document}
\begin{tabular}{lr}
hello!
&
\ShellEscape{/bin/echo 'hello!' > a.tex}
\input{a}
\\
\end{tabular}
\end{document}
但是,如果我使用tabularx
而不是tabular
,編譯將停止在\input
:
\documentclass{article}
\usepackage{tabularx}
\usepackage{shellesc}
\begin{document}
\begin{tabularx}{\textwidth}{lr}
hello!
&
\ShellEscape{/bin/echo 'hello!' > a.tex}
\input{a}
\\
\end{tabularx}
\end{document}
出了什麼問題以及如何修復?
答案1
下列的大衛卡萊爾的評論您可以測試該檔案是否存在,並且僅在這種情況下輸入它。然後表格單元格將在最後一次運行中被填入。
\documentclass{article}
\usepackage{tabularx}
\usepackage{shellesc}
\begin{document}
\begin{tabularx}{\textwidth}{lr}
hello!
&
\ShellEscape{/bin/echo 'hello!' > a.tex}
\IfFileExists{./a.tex}{\input{a}}{}
\\
\end{tabularx}
\end{document}