我尝试定义一个名为“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}
}