![如何逐步显示代码片段?](https://linux22.com/image/427984/%E5%A6%82%E4%BD%95%E9%80%90%E6%AD%A5%E6%98%BE%E7%A4%BA%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5%EF%BC%9F.png)
我想使用 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
插入前每个控制台命令,而不是后每个控制台命令。
输出: