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 uwthesis 添加额外的包即可轻松获得所需的输出。有关 \linespread 的参考,请参阅为什么 \linespread 不起作用?在 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并使用David 的建议,即以命令形式包装 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环境 myverbatim 选项参数来指定修改后的 \linespread 。默认值为 1.5 ,由 uwthesis 指定(根据 uwthesis.cls 的第 158 行,“不是完全双倍行距”)。




看看使用 fancyvrb 。它有很多不错的技巧。但特别是,您可以在逐字环境中设置基线跳过:

\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 对您来说可能有点紧。