Вот код, который работает отлично:
\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}