
Я пытаюсь определить среду, которая требует линию кадра шириной \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
этого.