verbatim

doppelte Abstände innerhalb von {verbatim}entfernen

Ich verwende die Klasse uwthesis , die im Allgemeinen mit viel Abstand zwischen den Zeilen setzt. Dies ist im Allgemeinen in Ordnung, aber ich möchte den Abstand in bestimmten Beispielen außer Kraft setzen, die in der verbatim Umgebung erscheinen.

Ein MWE sieht in etwa so aus:

\documentclass{uwthesis}
\begin{document}

Double \\
Spaced \\
Lines

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

Idealerweise würde ich gerne einen benutzerdefinierten Wortlaut für die Verwendung in Beispielen definieren,der den Text ohne den zusätzlichen Leerraum zwischen den Zeilen darstellt,aber ich bin nicht sicher,was ich schreiben muss.

Sie können die verbatim Schriftart aktualisieren, um eine andere \linespread zu verwenden . Fügen Sie insbesondere \ linespread \linespread{1} als Teil von \verbatim hinzu :

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

Die Klasse uwthesis verbatim Umgebung des LaTeX-Kernels , daher die Leichtigkeit, keine zusätzlichen Pakete hinzufügen zu müssen, um eine gewünschte Ausgabe zu erhalten. Eine Referenz zu \linespread finden Sie unter Warum funktioniert \linespread nicht ? in den TeX-FAQ.

Sie könnten die Neudefinition in ein Makro aufnehmen,das als Schalter fungiert:

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

die Sie in folgender Form verwenden können

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

Das Erstellen Ihrer eigenen verbatim Umgebung ist etwas kniffliger. Am einfachsten wäre es, das verbatim -Paket einzuschließen und Davids Vorschlag zu verwenden, die verbatim -Umgebung in Befehlsform zu verpacken :

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

Die myverbatim - Umgebung akzeptiert ein Optionsargument, um ein modifiziertes \linespread anzugeben . Der Standardwert ist 1.5 , wie von uwthesis angegeben ("nicht ganz doppelter Abstand", laut uwthesis.cls , Zeile 158).




Schauen Sie sich die Verwendung von fancyvrb an . Es hat viele nette Tricks. Aber insbesondere können Sie den baselineskip innerhalb der wörtlichen Umgebung festlegen:

\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 könnte für Sie etwas eng sein.