verbatim

verbatim}内のダブルスペースを削除する。

私は通常、行間に多くのスペースを入れてタイプセットする uwthesis クラスを使用しています。 verbatim 環境に表示される特定の例で間隔をオーバーライドしたいと考えています。

MWEは次のようなものです。

\documentclass{uwthesis}
\begin{document}

Double \\
Spaced \\
Lines

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

理想は、行間の余分なスペースを取らずにテキストを表示するサンプルで使用するためのカスタムバーバティムを定義することですが、何を書けばいいのかわかりません。


verbatim フォントを更新して、別の \linespread を使用できます。より具体的には、 \verbatim の一部として \linespread{1} を含めます。

\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 環境に依存して uwthesis ため、必要な出力を得るために余分なパッケージを追加する必要がありません。 \linespread の参照については、なぜ \linespread が機能しないのですか?を参照してください。TeX FAQ で。

スイッチとして機能するマクロに再定義を含めることができます。

\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 環境をラップするという David の提案を使用することです。

\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環境は、変更された \linespread を指定するためのオプション引数を取り myverbatim uwthesis で指定されているように、デフォルトは 1.5 です ( uwthesis.cls の 158 行目によると、「完全にダブルスペースではない」)。




fancyvrb の使用を見てください。素敵な裏技がいっぱいです。ただし、特に、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 は少しきついかもしれません。