环境中的 Pythontex 和 mdframed

环境中的 Pythontex 和 mdframed

我尝试定义一个名为“codeaux”的环境,在 mdframed 环境中打印一段 python 代码。之后,我的目标是在 pyconsole 版本中重新定义“codeaux”(pyblock/verbatim 用于学生笔记,pyconsole 用于教师笔记)。

我尝试了以下解决方案,但它不起作用,而且我不知道原因。

\documentclass[a4paper,8pt,table]{book}
\usepackage{color}
\usepackage{tikz,tikzpagenodes,tkz-tab}
\usepackage{tikzsymbols}
    \usetikzlibrary{shadows,matrix,arrows,decorations.pathmorphing,snakes,arrows,shapes,plotmarks,shapes.geometric,decorations.markings,positioning,calc}
\usepackage{pythontex}

\usepackage[usetwoside=false]{mdframed}

\newenvironment{code}{%
\begin{mdframed}[linecolor=green,innerrightmargin=30pt,innerleftmargin=30pt,backgroundcolor=white,skipabove=10pt,skipbelow=10pt,roundcorner=5pt,splitbottomskip=6pt,splittopskip=12pt]
}{%
\end{mdframed}
}
\newenvironment{codeaux}{\begin{code}
\begin{pyblock}[][numbers=left]
}
{\end{pyblock}
\end{code}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

\begin{code}
\begin{pyverbatim}[][numbers=left]
type(42)
type(2.5)
type('Bonjour')
\end{pyverbatim}
\end{code}


\begin{pyblock}
type(42)
type(2.5)
type('Bonjour')
\end{pyblock}

\begin{codeaux}
type(42)
type(2.5)
type('Bonjour') 
\end{codeaux}


\end{document}

答案1

您需要\VerbatimEnvironment在任何基于的逐字内容环境的开头fancyvrb,其中包括所有排版代码的 PythonTeX 环境。

\newenvironment{codeaux}{\VerbatimEnvironment\begin{code}
\begin{pyblock}[][numbers=left]
}
{\end{pyblock}
\end{code}
}

相关内容