verbatim包环境verbatim

verbatim包环境verbatim

我有以下代码:

\documentclass{minimal}

\newenvironment{abc}
{\begin{verbatim}}
{\end{verbatim}}

\begin{document}

% This works.
\begin{verbatim}
abc
\end{verbatim}

% This does not work.
\begin{abc}
abc
\end{abc}

\end{document}

我正在尝试创建一个使用 的自定义环境verbatim。但上述代码不起作用。我该怎么做?

答案1

这取决于所讨论的逐字环境。

verbatim包环境verbatim

如果您加载包verbatim,则只要它不隐藏在其他组中,其环境verbatim就可以在其他环境定义中使用。此外,它不能用作\begin{verbatim},因为verbatim需要知道父环境的名称才能找到结束标记\end{<parent>}。父环境名称将被 的 LaTeX 代码覆盖\begin

例子:

\documentclass{minimal}

\usepackage{verbatim}

\newenvironment{abc}
{\verbatim}
{\endverbatim}

\begin{document}

% This works.
\begin{verbatim}
abc
\end{verbatim}

% This does now work.
\begin{abc}
abc
\end{abc}

\end{document}

结果

包裹fancyvrb

可以通过以下方式创建自定义逐字环境 \DefineVerbatimEnvironment,例如文档,稍微修改一下:

\documentclass{article}

\usepackage{fancyvrb}
\DefineVerbatimEnvironment{abc}{Verbatim}{%
  gobble=2,
  numbers=left,
  numbersep=2mm,
  frame=lines,
  framerule=0.8mm,
}

\begin{document}
\begin{abc}
  First verbatim line.
  Second verbatim line.
\end{abc}
\end{document}

结果 fancyvrb

包裹listings

可以使用 来定义环境\lstnewenvironment。示例来自文档

\documentclass{article}

\usepackage{listings}
\lstnewenvironment{pascal}{%
  \lstset{language=pascal}%
}{}

\begin{document}
\begin{pascal}
for i:=maxint to 0 do
begin
     { do nothing }
end;
\end{pascal}
\end{document}

结果列表

相关内容