![在新的环境定义中使用 bclogo 中的 Verbatim](https://linux22.com/image/339422/%E5%9C%A8%E6%96%B0%E7%9A%84%E7%8E%AF%E5%A2%83%E5%AE%9A%E4%B9%89%E4%B8%AD%E4%BD%BF%E7%94%A8%20bclogo%20%E4%B8%AD%E7%9A%84%20Verbatim.png)
我想创建一个新环境来提供一些 LaTeX 代码(或其他语言的代码)
到目前为止,我尝试了以下代码
\usepackage{bclogo}
\newenvironment{code}
{ \begin{bclogo}
[couleur = black!10, couleurBord = black!50,
arrondi = 0.1, logo = \bccrayon]
{Code \LaTeX :}
\bigskip
\begin{verbatim}
}
{ \end{verbatim}
\end{bclogo}
}
但是,这会在编译过程中产生错误......
! 扫描使用 \next 时文件结束。\par <*> essai3.tex
我怀疑你忘记了“}”,导致我读到了你希望我停止的地方。我会尝试恢复;但如果错误很严重,你最好
E' or
现在就输入“X”并修复你的文件。! 紧急停止。<*> essai3.tex
***(作业中止,未找到合法的 \end)
以下是您使用的 TeX 内存量:
...
!==> 发生致命错误,未生成输出 PDF 文件!
如果有人有办法解决这个错误,我会真诚地说“非常感谢,师父”
答案1
您可以使用fancyvrb
:
\documentclass{article}
\usepackage{fancyvrb}
\usepackage[tikz]{bclogo}
\newenvironment{code}
{\VerbatimEnvironment
\begin{bclogo}[couleur = black!10, couleurBord = black!50,
arrondi = 0.1, logo = \bccrayon]
{Code \LaTeX :}\par\nobreak\bigskip
\begin{Verbatim}}
{\end{Verbatim}\end{bclogo}}
\begin{document}
\begin{code}
\documentclass{article}
\begin{document}
Hello
\end{document}
\end{code}
\end{document}
答案2
宏内部嵌套verbatim
是不可能的,但可以在内部environments
使用环境的启动器和“结束”命令verbatim
,即\verbatim
和\endverbatim
。
在我的代码答案的最后,我还提供了一种tcolorbox
显示 LaTeX 代码及其编译的方法:
\documentclass{article}
\usepackage{verbatim}
\usepackage[most]{tcolorbox}
\usepackage[tikz]{bclogo}
\newenvironment{code}
{%
\bclogo[couleur = black!10, couleurBord = black!50,
arrondi = 0.1, logo = \bccrayon]
{Code \LaTeX :}
\bigskip
\verbatim
}
{
\endverbatim
\endbclogo
}
\begin{document}
\begin{code}
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\begin{tcblisting}{listing only}
\end{tcblisting}
\end{document}
\end{code}
And a \verb!tcolorbox! version:
\begin{tcblisting}{colback={white!40!yellow}}
\LaTeXe\ is nice!
\end{tcblisting}
\end{document}
\end{document}