verbatim

remover o espaçamento duplo no interior {verbatim}

Estou usando a classe uwthesis que geralmente formata com muito espaço entre as linhas. Isso geralmente é bom, no entanto, quero substituir o espaçamento em certos exemplos que aparecem no ambiente verbatim .

Um MWE tem um aspecto semelhante a este:

\documentclass{uwthesis}
\begin{document}

Double \\
Spaced \\
Lines

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

Idealmente,gostaria de definir um literaltim personalizado para uso em exemplos que apresentem texto sem o espaço extra entre as linhas,mas não tenho a certeza do que preciso para escrever.

Você pode atualizar a fonte verbatim para usar um \linespread diferente . Mais especificamente, inclua \linespread{1} como parte de \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}

A classe uwthesis depende do ambiente verbatim do kernel LaTeX padrão , daí a facilidade de não ter que adicionar pacotes extras para obter uma saída desejada. Para obter uma referência a \linespread , consulte Por que o \linespread não funciona? no FAQ do TeX.

Poderia conter a redefinição numa macro que funcionaria como um interruptor:

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

que poderia utilizar no formulário

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

Para criar seu próprio ambiente verbatim é um pouco mais complicado. O mais fácil seria incluir o pacote verbatim e usar a sugestão de David de envolver o ambiente verbatim em forma de comando:

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

O ambiente myverbatim recebe um argumento de opção para especificar um \linespread modificado . O padrão é 1.5 , conforme especificado por uwthesis ("não é muito espaço duplo", de acordo com uwthesis.cls , linha 158).




Veja como usar fancyvrb . Tem muitos truques legais. Mas, em particular, você pode definir o baselineskip dentro do ambiente literal:

\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 pode ser um pouco apertado para você.