Rahmenlinienbreite innerhalb von DefineVerbatimEnvironment

Rahmenlinienbreite innerhalb von DefineVerbatimEnvironment

Ich versuche eine Umgebung zu definieren, die eine Rahmenlinie mit der Breite von \textwidth erfordert

\DefineVerbatimEnvironment%
 {code}{Verbatim}{...,frame=lines,%
               xleftmargin=7pt,fontsize=...}

Ich bin nicht sicher, wie ich die Breite der Linie beschränken kann.

Antwort1

Man kann änderndiese Lösungauf eine verwandte Frage wie folgt:

\documentclass{article}

\usepackage{fancyvrb}

\newenvironment{code}
  {
    \VerbatimEnvironment
    \vskip\baselineskip\hrule
    \begin{Verbatim}[xleftmargin=7pt]%
  }
  {\end{Verbatim}\hrule\vskip\baselineskip}

\usepackage{lipsum}
\begin{document}

\lipsum[2]

\begin{code}
  Test the verbatim.  
  Here is some more.
\end{code}

\lipsum[4]

\end{document}

Beispielausgabe

\hruleallein erzeugt eine Zeile der Länge \textwidth, fügt jedoch nur eine minimale Menge vertikalen Abstand hinzu. Dies ist der Grund für die Einfügung der \vskip's. Sie können die Größe dieser Abstände anpassen (oder verwenden usw.) und Sie können auch einen negativen Wert direkt nach der ersten Regel und direkt vor der letzten \smallbreakhinzufügen . Beispielsweise ergibt das Folgende einen Abstand, der näher an dem von liegt :\vskip\begin{Verbatim}[frame=lines]

\newenvironment{code}
  {
    \VerbatimEnvironment
    \vskip18pt\hrule\vskip-10pt\hskip0pt
    \begin{Verbatim}[xleftmargin=7pt]%
  }
  {\end{Verbatim}\vskip-3pt\hrule\vskip18pt}

Wenn die Linien unterschiedliche Stärken haben müssen, können Sie \hrule height 2ptstattdessen etwas wie Folgendes schreiben.

verwandte Informationen