我需要一个定制的逐字环境

我需要一个定制的逐字环境

我需要一个具有以下行为的 verbatim 环境:

  1. 它位于中央(到页面边缘的左右距离应该相等)。
  2. 它可以比常规文本宽得多,几乎占据整个页面的宽度。

我知道如何定义自己的环境,但不知道如何实现这些目标。我还有一个(子)问题:

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长度不受限制。您可以让一行的长度超过页面宽度,在这种情况下,其部分内容将不可见(但该行无论如何都会居中)。

相关内容