Por que “shellesc” entra em conflito com “tabularx” e como consertar?

Por que “shellesc” entra em conflito com “tabularx” e como consertar?

Este é o código que funciona perfeitamente:

\documentclass{article}
\usepackage{shellesc}
\begin{document}
\begin{tabular}{lr}
    hello!
    &
    \ShellEscape{/bin/echo 'hello!' > a.tex}
    \input{a}
    \\
\end{tabular}
\end{document}

No entanto, se eu usar tabularxem vez de tabular, a compilação parará em \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}

O que há de errado e como consertar?

Responder1

SeguindoComentário de David Carlislevocê pode testar se o arquivo existe e inseri-lo somente nesse caso. Então a célula da tabela será preenchida na última execução.

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

informação relacionada