控制逐字环境之前和之后的垂直空间?

控制逐字环境之前和之后的垂直空间?

如何控制环境前后出现多少垂直空间verbatim

使用以下来源(运行通过pdflatex):

\documentclass[varwidth]{standalone}
\begin{document}
text before verbatim
\begin{verbatim}
some verbatim text
\end{verbatim}
text after verbatim
\end{document}

我得到以下信息:

不良行为

我希望能够进行一些调整以获得以下行为:

好的行为

编辑:

我还希望该解决方案适用verbatim于列表项中的环境:

\documentclass[varwidth]{standalone}
\begin{document}
\begin{itemize}
\item text before verbatim
\begin{verbatim}
some verbatim text
\end{verbatim}
text after verbatim
\end{itemize}
\end{document}

列表中的不良行为

答案1

verbatim使用在其上方和下方添加和trivlist的当前值(如果在段落开头,则添加后者);由于在已经由 打开一个组时启动了,因此可以安全地在本地设置值:修补的命令是,以 开头,因此我们可以在该命令之前设置参数:\topsep\partopseptrivlistverbatim\@verbatim\trivlist

\usepackage{etoolbox}
\makeatletter
\preto{\@verbatim}{\topsep=0pt \partopsep=0pt }
\makeatother

下面是一个示例,我将两个minipage环境放在一起只是为了显示行距:

\documentclass{standalone}
\usepackage{etoolbox}
\makeatletter
\preto{\@verbatim}{\topsep=0pt \partopsep=0pt }
\makeatother
\begin{document}
\begin{minipage}{5cm}
text before verbatim
\begin{verbatim}
some verbatim text
\end{verbatim}
text after verbatim
\end{minipage}%
\begin{minipage}{5cm}
abc\\
def\\
ghi
\end{minipage}
\end{document}

在此处输入图片描述

相关内容