Warum steht „shellesc“ im Konflikt mit „tabularx“ und wie kann das Problem behoben werden?

Warum steht „shellesc“ im Konflikt mit „tabularx“ und wie kann das Problem behoben werden?

Dies ist der Code, der einwandfrei funktioniert:

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

Wenn ich jedoch tabularxanstelle von verwende tabular, wird die Kompilierung bei folgendem beendet \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}

Was ist falsch und wie kann ich das Problem beheben?

Antwort1

GefolgtKommentar von David Carlisleman kann testen ob die Datei existiert und sie nur dann eingeben. Die Tabellenzelle wird dann beim letzten Durchlauf ausgefüllt.

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

verwandte Informationen