Cómo escapar de las comillas dobles en \input

Cómo escapar de las comillas dobles en \input

Estoy intentando llamar a comandos de shell que contienen varias comillas (anidadas). Esto es, por ejemplo, lo que escribiría en el shell:

$ python -c "print \"Hello World\""

que produce Hello World. encontréaquí que \inputpuede leer desde la salida estándar cuando se inicia con un archivo |. Sin embargo, no es sorprendente que lo siguiente no produzca lo que quiero:

\input{|"python -c "print \"Hello World\"""} 

Similar aesta pregunta, lo siguiente funciona bien:

\immediate\write18{python -c "print \string\"Hello World\string\"" > \jobname.pyout}
\input{\jobname.pyout}

pero requiere un archivo temporal. Además, el uso \detokenizeparece funcionar con \write18:

\immediate\write18{\detokenize{python -c "print \"Hello World\""} > \jobname.pyout}
\input{\jobname.pyout}

¿Existe alguna solución que no necesite escribir un archivo?

información relacionada