Largura da linha do quadro dentro de DefineVerbatimEnvironment

Largura da linha do quadro dentro de DefineVerbatimEnvironment

Estou tentando definir um ambiente que requer uma linha de quadro tão larga quanto \textwidth

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

Não tenho certeza de como poderia restringir a largura da linha.

Responder1

Pode-se modificaresta soluçãopara uma questão relacionada da seguinte forma:

\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}

Exemplo de saída

\hrulepor si só, produzirá uma linha de comprimento \textwidth, no entanto, adicionará apenas uma quantidade mínima de espaço vertical. Esta é a razão para colocar o \vskip's. Você pode querer ajustar o tamanho desses espaços (ou usar \smallbreak, etc.) e também pode querer adicionar algum \vskipvalor negativo logo após a primeira regra e um pouco antes da última. Por exemplo, o seguinte fornece um espaçamento mais próximo daquele obtido em \begin{Verbatim}[frame=lines]:

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

Se você precisar que as regras tenham espessuras diferentes, você pode escrever algo parecido \hrule height 2pt.

informação relacionada