¿Por qué "shellesc" entra en conflicto con "tabularx" y cómo solucionarlo?

¿Por qué "shellesc" entra en conflicto con "tabularx" y cómo solucionarlo?

Este es el código que funciona bien:

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

Sin embargo, si uso tabularxen lugar de tabular, la compilación se detiene en \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}

¿Qué pasa y cómo solucionarlo?

Respuesta1

SiguienteEl comentario de David Carlislepuede probar si el archivo existe y solo ingresarlo en ese caso. Luego, la celda de la tabla se completará en la última ejecución.

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

información relacionada