在新的环境定义中使用 bclogo 中的 Verbatim

在新的环境定义中使用 bclogo 中的 Verbatim

我想创建一个新环境来提供一些 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}

在此处输入图片描述

相关内容