verbatim

убрать двойной интервал внутри {вербатим}

Я использую класс uwthesis , который обычно печатает с большим интервалом между строками. Обычно это нормально, однако я хочу переопределить интервалы в некоторых примерах, которые появляются в verbatim среде.

MWE выглядит примерно так:

\documentclass{uwthesis}
\begin{document}

Double \\
Spaced \\
Lines

\begin{verbatim}
These
lines
are
also
doublespaced
\end{verbatim}
\end{document}

В идеале,я хотел бы определить пользовательский вербатим для использования в примерах,который представляет текст без дополнительного пространства между строками,но я не уверен,что мне нужно написать.

Вы можете обновить verbatim шрифт, чтобы использовать другой \linespread . В частности, \linespread{1} как часть \verbatim :

\documentclass{uwthesis}% http://ctan.org/pkg/uwthesis
\makeatletter
\def\verbatim{\linespread{1}\normalfont\ttfamily}
\makeatother
\begin{document}

Double \\
Spaced \\
Lines

\begin{verbatim}
These
lines
are
not
doublespaced
\end{verbatim}

Double \\
Spaced \\
Lines
\end{document}

Класс uwthesis опирается на дословную среду ядра LaTeX по умолчанию verbatim поэтому для получения желаемого результата не требуется добавлять дополнительные пакеты. Ссылку на \linespread см. в разделе Почему \linespread не работает? в FAQ по TeX.

Переопределение можно заключить в макрос,который будет действовать как переключатель:

\makeatletter
\newcommand{\nextverbatimspread}[1]{%
  \def\verbatim{%
    \linespread{#1}\normalfont\ttfamily% Updated definition
    \gdef\verbatim{\normalfont\ttfamily}}% Revert to old definition
}
\makeatother

который вы можете использовать в форме

\nextverbatimspread{1}
\begin{verbatim}
% ...single-spaced verbatim
\end{verbatim}
% ...some other content
\begin{verbatim}
% ...double-spaced verbatim
\end{verbatim}

Для создания собственной verbatim -подобной среды немного сложнее. Проще всего было бы включить пакет verbatim и использовать предложение Дэвида о переносе среды verbatim в командную форму:

\documentclass{uwthesis}% http://ctan.org/pkg/uwthesis
\usepackage{verbatim}% http://ctan.org/pkg/verbatim
\makeatletter
\newcommand{\nextverbatimspread}[1]{%
  \def\verbatim{%
    \linespread{#1}\normalfont\ttfamily% Updated definition
    \gdef\verbatim{\normalfont\ttfamily}}% Revert to old definition
}
\newenvironment{myverbatim}[1][1.5]
  {\def\verbatim{%
     \linespread{#1}\normalfont\ttfamily% Updated definition
     \gdef\verbatim{\normalfont\ttfamily}}% Revert to old definition
   \verbatim}
  {\endverbatim}
\makeatother
\begin{document}

Double \\
Spaced \\
Lines

\nextverbatimspread{1}
\begin{verbatim}
These
lines
are
not
doublespaced
\end{verbatim}

Double \\
Spaced \\
Lines

\begin{myverbatim}
These
lines
are
doublespaced
\end{myverbatim}

Double \\
Spaced \\
Lines

\begin{myverbatim}[1]
These
lines
are
not
doublespaced
\end{myverbatim}
\end{document}

Среда myverbatim принимает аргумент option для указания модифицированного \linespread . Значение по умолчанию — 1.5 , как указано в uwthesis («не совсем двойной интервал», согласно uwthesis.cls , строка 158).




Посмотрите на использование fancyvrb . В нем много хороших трюков. Но, в частности, вы можете установить baselineskip в среде verbatim:

\documentclass{uwthesis}
\usepackage{fancyvrb}
\begin{document}

Double \\
Spaced \\
Lines

\begin{Verbatim}[baselinestretch=0.75]
These
lines
are
also
doublespaced
\end{Verbatim}
\end{document}

0.75 может быть немного тесно для вас.