在逐字环境中在另一个环境中传递选项

在逐字环境中在另一个环境中传递选项

我想定义一个新环境(此处testenv),它将以逐字模式包含文本。因此,我有以下代码:

\documentclass{article}

\usepackage[english,greek]{babel}
\usepackage[utf8]{inputenc}
\usepackage{fancyvrb}

\newenvironment{testenv}
{
\selectlanguage{english}
\fontsize{8}{10}\selectfont
\Verbatim
}
{
\endVerbatim
\normalsize
\selectlanguage{greek}
}

\begin{document}

\begin{testenv}
This is a test. 
\end{testenv}

\end{document}

但是,我需要 verbatim 环境中的一些可选参数。我应该如何传递这些选项commandchars,例如commentchar

附言我利用了这个fancyvrb包。

答案1

Verbatim您可以使用重新定义工作方式\RecustomVerbatimEnvironment,在环境开始时添加formatcom执行format命令的键。由于环境范围限制了 内容所发生情况的范围,因此无需在结束时重置它:comVerbatimformatcom

在此处输入图片描述

\documentclass{article}

\usepackage[english,greek]{babel}
\usepackage[utf8]{inputenc}
\usepackage{fancyvrb}
\usepackage{xcolor}

\RecustomVerbatimEnvironment{Verbatim}{Verbatim}
  {commandchars = \\\{\},
   commentchar = !,
   formatcom = {\selectlanguage{english}
                \fontsize{8}{10}\selectfont}}

\begin{document}

\selectlanguage{greek}

\begin{Verbatim}
This is \textcolor{red}{red}. 
!This is a comment.
\end{Verbatim}

Some text.

\end{document}

这提供了一个干净的界面。

相关内容