创建使用 verbatim 环境的新环境

创建使用 verbatim 环境的新环境

考虑以下:

\documentclass{article}
\usepackage{environ}
\usepackage{verbatim}
\usepackage{color}
\NewEnviron{vred}{%
\color{red}
\begin{verbatim}
  \BODY
\end{verbatim}
}
\begin{document}
\begin{vred}
test
\end{vred}
\end{document}

编译时pdflatex出现错误:

Runaway argument?
\end {document} 
! Paragraph ended before \next was complete.
<to be read again> 
                   \par 
l.16 

答案1

在这个特定情况下,问题很典型:您无法将verbatim内容作为参数传递给另一个宏。使用environ,因为内容积累在宏中\BODY以供稍后处理。

从您的最小示例来看,您似乎想要verbatim使用特定颜色(例如红色)打印内容。为此,我建议定义一个具有此特定质量/属性的新逐字环境。因此,fancyvrb可以派上用场。下面是一个 MWE,它说明了这个概念(虚拟拍摄)逐字, 来自fancyvrb文档(部分4.1.3 格式自定义,第 5 页和4.2.4 个性化环境,第 18 页):

在此处输入图片描述

\documentclass{article}
\usepackage{fancyvrb,xcolor}% http://ctan.org/pkg/{fancyvrb,xcolor}
\DefineVerbatimEnvironment%
  {MyVerbatim}{Verbatim}
  {formatcom=\color{red}}
\begin{document}
\begin{MyVerbatim}
First verbatim line.
Second verbatim line.
\end{MyVerbatim}
\end{document}

答案2

关于我对Werner答案的最后一条评论,我发现以下方法有效:

\documentclass{article}
\usepackage{fancyvrb,xcolor}
\newenvironment{MyVerbatim}[1]{
  \subsection*{#1}\VerbatimEnvironment
  \begin{Verbatim}[formatcom=\color{red}]}{\end{Verbatim}}
\begin{document}
\begin{MyVerbatim}{A verbatim subsection}
 First verbatim line.
 Second verbatim line.
\end{MyVerbatim}
\end{document}

相关内容