删除 {verbatim} 内的双倍间距

删除 {verbatim} 内的双倍间距

我使用的uwthesis类通常会在行间留出大量空格。这通常没问题,但是我想覆盖环境中出现的某些示例中的间距verbatim

MWE 看起来像这样:

\documentclass{uwthesis}
\begin{document}

Double \\
Spaced \\
Lines

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

理想情况下,我想定义一个自定义的逐字记录以用于示例,它显示的文本在行间没有多余的空格,但我不确定我需要写什么。

答案1

您可以更新verbatim字体以使用不同的字体\linespread。更具体地说,包括\linespread{1}以下内容\verbatim@font

在此处输入图片描述

\documentclass{uwthesis}% http://ctan.org/pkg/uwthesis
\makeatletter
\def\verbatim@font{\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关于 TeX FAQ。

您可以将重新定义包含在充当开关的宏中:

\makeatletter
\newcommand{\nextverbatimspread}[1]{%
  \def\verbatim@font{%
    \linespread{#1}\normalfont\ttfamily% Updated definition
    \gdef\verbatim@font{\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@font{%
    \linespread{#1}\normalfont\ttfamily% Updated definition
    \gdef\verbatim@font{\normalfont\ttfamily}}% Revert to old definition
}
\newenvironment{myverbatim}[1][1.5]
  {\def\verbatim@font{%
     \linespread{#1}\normalfont\ttfamily% Updated definition
     \gdef\verbatim@font{\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。默认值为1.5,如指定的uwthesis(“不是完全双倍行距”,根据uwthesis.cls,第 158 行)。

答案2

看看使用fancyvrb。它有很多不错的技巧。但具体来说,你可以在 verbatim 环境中设置 baselineskip:

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

在此处输入图片描述

答案3

您可以使用包将(中的默认值)etoolbox更改\baselinestretch为:1.5uwthesis.cls1

\documentclass{uwthesis}
\usepackage{etoolbox}

\BeforeBeginEnvironment{verbatim}{\def\baselinestretch{1}}

\begin{document}

Double \\
Spaced \\
Lines

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

Double \\
Spaced \\
Lines

\end{document}

在此处输入图片描述

相关内容