我需要一个具有以下行为的 verbatim 环境:
- 它位于中央(到页面边缘的左右距离应该相等)。
- 它可以比常规文本宽得多,几乎占据整个页面的宽度。
我知道如何定义自己的环境,但不知道如何实现这些目标。我还有一个(子)问题:
2a. 页面边缘必须留出的最小边距是多少?
答案1
使用fancybox
包,您可以使用工具来定义自定义verbatim
环境,例如您请求的环境。在这种情况下,诀窍是将整体保存verbatim
到一个框中,该框的宽度是其最长行的宽度(BVerbatim
环境会这样做),然后将该框作为命令的参数\centerline
,该命令基本上将内容置于边距之间,即使内容大于\textwidth
(允许这些内容突出两个边距相同的量)。
以下 MWE 定义了一个wideverb
可以完成所有这些操作的新环境:
\documentclass{article}
\usepackage[margin=4cm]{geometry}
\usepackage{fancybox}
\newenvironment{wideverbatim}%
{\vskip\baselineskip\VerbatimEnvironment
\begin{Sbox}\begin{BVerbatim}}
{\end{BVerbatim}%
\end{Sbox}\noindent\centerline{\TheSbox}\vskip\baselineskip}
\begin{document}
\noindent Normal text\hrulefill X\par
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam placerat, neque
a gravida semper, ipsum neque tincidunt ipsum, a tincidunt mauris erat id enim.
\begin{wideverbatim}
A verbatim environment which contains
only
short lines
\end{wideverbatim}
\noindent Normal text again\hrulefill X\par
\begin{wideverbatim}
Another verbatim with longer lines
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam placerat, neque
a gravida semper, ipsum neque tincidunt ipsum, a tincidunt mauris erat id enim.
\end{wideverbatim}
\noindent Normal text again\hrulefill X\par
\begin{wideverbatim}
Another verbatim with EVEN LONGER lines
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam placerat, neque a gravida semper, ipsum neque
tincidunt ipsum, a tincidunt mauris erat id enim.
\end{wideverbatim}
\end{document}
请注意,内容的wideverbatim
长度不受限制。您可以让一行的长度超过页面宽度,在这种情况下,其部分内容将不可见(但该行无论如何都会居中)。