来自fancyvrb 文档,看来我只能设置左右边距(第 4.1.13 段)。如何设置适合我环境的上边距?
更具体地说,假设我的环境中有一个框架和一个顶部标题,我希望在顶部框架和第一行文本之间有一些额外的填充。
\newcommand{\shellheader}{This is a Shell}
\DefineVerbatimEnvironment{shell}{Verbatim}
{label=\shellheader,frame=single}
答案1
我提出了一个可怕的黑客攻击,它应该考虑到你的所有需求:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb}
\DefineVerbatimEnvironment{shell}{Verbatim}{
commandchars=\%\{\},
label=\shelltitle,
frame=single,
formatcom=\setcounter{prompt}{0}\start
}
\newcommand{\shelltitle}{This is a shell}
\makeatletter
\def\start{\let\FV@FV@ProcessLine\FV@ProcessLine
\def\FV@ProcessLine{\noindent\vrule height3ex depth2ex
\hbox to\hsize{\kern\FV@FrameSep This is the shell prompt\hfil}%
\kern-.8pt\vrule\par
\let\FV@ProcessLine\FV@FV@ProcessLine
\FV@ProcessLine}%
}
\makeatother
\newcounter{prompt}
\newcommand{\prompt}{\stepcounter{prompt}\theprompt>}
\begin{document}
\begin{shell}
%prompt echo foo{}
foo
%prompt echo bar
bar
\end{shell}
\end{document}
作用于3ex
并2ex
修改固定的“这是 shell 提示符”前后的间距。