我使用的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.5
uwthesis.cls
1
\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}