我目前正在使用Beamer和列表包将漂亮的代码打印到Beamer块中.所以我在做什么看起来像:
\begin{block}{}
\begin{lstlisting}
int foobar(void) { return 0; }
\end{lstlisting}
\end{block}
Run Code Online (Sandbox Code Playgroud)
现在,我发现每次启动block和lstlisting环境都很麻烦.我想拥有一个简单的codeblock环境:
\begin{codeblock}
int foobar(void) { return 0; }
\end{codeblock}
Run Code Online (Sandbox Code Playgroud)
所以,我尝试过类似的东西:
\lstnewenvironment{codeblock}
{\begin{block}{}}
{\end{block}}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,Beamer文档不再编译,出现以下错误:
! Missing } inserted.
<inserted text>
}
l.178 \end{frame}
?
Run Code Online (Sandbox Code Playgroud)
有办法做到这一点吗?
在LaTeX中创建新环境的问题中,Andreas Grech遇到了同样的问题,但它可以解决它,因为还有另一种进入/退出封闭环境的方法.但就blockBeamer环境而言,似乎除此之外别无他法\begin{block}...\end{block}.
我遇到了同样的问题,但找不到解决方案。我的解决方法是使用 \lstinputlisting 命令并将代码放在单独的文件中。如果您有想要包含的真实代码,那就太好了。对于小例子则不然。
另一种解决方法是在启动 {frame} 环境之前将代码片段放入变量中,然后引用它。Latex-beamer 文档中解释了如何执行此操作。它还允许您使用自定义环境/命令。
| 归档时间: |
|
| 查看次数: |
1288 次 |
| 最近记录: |