Почему «shellesc» конфликтует с «tabularx» и как это исправить?

Почему «shellesc» конфликтует с «tabularx» и как это исправить?

Вот код, который работает отлично:

\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}

Связанный контент