Ширина линии кадра в DefineVerbatimEnvironment

Ширина линии кадра в DefineVerbatimEnvironment

Я пытаюсь определить среду, которая требует линию кадра шириной \textwidth

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

Я не уверен, как можно ограничить ширину линии?

решение1

Можно изменитьэто решениена связанный вопрос следующим образом:

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

Пример вывода

\hruleсама по себе создаст линию длиной \textwidth, однако, она добавляет только минимальное количество вертикального пространства. Вот почему мы вставляем \vskip's. Вы можете захотеть изменить размер этих пробелов (или использовать \smallbreakи т. д.), а также можете захотеть добавить некоторое отрицательное \vskipзначение сразу после первого правила и прямо перед последним. Например, следующее дает интервал, более близкий к полученному из \begin{Verbatim}[frame=lines]:

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

Если вам нужны линейки разной толщины, вы можете написать что-то вроде \hrule height 2ptэтого.

Связанный контент