如何逐步显示代码片段?

如何逐步显示代码片段?

我想使用 BEAMER 和 PythonTEX 准备一个包含大量代码的幻灯片。在控制台模式下显示代码片段时,我想一次显示一行。我努力实现类似但\begin{pyconsole}[<+->}无济于事的目标。这是我的 MWE:

\documentclass{beamer}

\usepackage{pythontex}

\begin{document}

\begin{frame}[fragile]
\frametitle{Demo}
The following code should appear progressively instead of the entire snippet at once
\begin{pyconsole}
from math import sin, pi
theta = pi/2
x = sin(theta)
print(f'sin(theta) = {x}')
\end{pyconsole}
\end{frame}

\end{document}

输出

我已经尝试了此主题\pause在环境中的每一行末尾插入一个pyconsole,但是我收到以下错误:

! LaTeX Error: Command \c@pytx@pycon@default@default already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.34 \newcounter{pytx@pycon@default@default}
                                            
? 

有任何想法吗?

答案1

我终于能够@G. Poore 的回答非常好工作。我发布这篇文章只是为了希望它能对其他人有所帮助。以下调整起了作用:

  • 只需删除该行,错误就会消失\newcounter{pytx@pycon@default@default}
  • 更改\renewcommand{\FancyVerbFormatLine}[1]{#1\pause}}\renewcommand{\FancyVerbFormatLine}[1]{\pause#1}},以便\pause插入每个控制台命令,而不是每个控制台命令。

输出:

动画结果

相关内容