I would like to introduce some python using pythontex in some of my chapters. I'm using the package subfiles to have a master documents and some childs and it's very convenient for me, I would like to keep that.
Here is my minimal (not) working example, with 2 files. MWE-1.tex is:
\documentclass[a4paper,10pt]{article}
\usepackage{subfiles}
\usepackage{fontspec}% Pour lua, gestion de l'encodage et des fontes
\usepackage{pythontex}
\begin{document}
This is a code:
\begin{pyverbatim}
print('spam and eggs')
\end{pyverbatim}
just printing \pyc{print('spam and eggs')}
\end{document}
This files compiles and gives the expected result after lualatex/pythontex/lualatex execution: the verbatim code appears colorfull, and \pyc{print('spam and eggs')} is executed.
The second files is the child files, and should gives the same results:
\documentclass[./MWE-1.tex]{subfiles}
\begin{document}
This is a code:
\begin{pyverbatim}
print('spam and eggs')
\end{pyverbatim}
just printing \pyc{print('spam and eggs')}
\end{document}
This files returns a warning : Package PythonTeX Warning: Non-existent Pygments content on input line 8.
\pyc{} is well executed, as well as more complex code, but the verbatim code is replaced by a huge and bold "?? PythonTeX ??"
If I manually replace the preambule by the one of MWE-1.tex, the verbatim part is well displayed after just one lualatex compilation: the Pygments content is there but not found when using the \documentclass{subfiles} preambule.
As far as I know, the subfiles documentclass just takes all the preambule of the master file (here MWE-1.tex), so that both files should render the same...
EDIT and reply: It works better with the standalone package. A bit more complicated in my case to setup, but it's working.
My main file, adding an import of the child file:
\documentclass[10pt,a4paper]{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{fontspec}% Pour lua, gestion de l'encodage et des fontes
\usepackage{pythontex}
\begin{document}
This is a code:
\begin{pyverbatim}
print('spam and eggs')
\end{pyverbatim}
just printing \pyc{print('spam and eggs')}
And with import:
\input{MWE-2.tex}
\end{document}
and the child file, containing pythontex code either:
\documentclass[class=article, crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{fontspec}% Pour lua, gestion de l'encodage et des fontes
\usepackage{pythontex}
\begin{document}
This is a code:
\begin{pyverbatim}
print('spam and eggs')
\end{pyverbatim}
just printing \pyc{print('spam and eggs')}
\end{document}