xelatex — 在 verbatim 环境中删除行距

xelatex — 在 verbatim 环境中删除行距

我经常使用 verbatim 环境。今天我注意到 verbatim 环境中的行与行之间有一个非常令人不安的(并且太大的)空格: 在此处输入图片描述

我怎样才能除去它们?

编辑(xelatex):最小示例(您需要一个支持 u2592 字符的等宽字体)

\documentclass{article}
\usepackage{xltxtra,%
            lmodern,%
            fancyvrb}
\DefineVerbatimEnvironment{VRB}{Verbatim}{baselinestretch=.5}
\begin{document}
\begin{verbatim}
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
\end{verbatim}
\begin{VRB}
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
\end{VRB}
\end{document}
\begin{

答案1

如果您想要完全删除行距,则需要将其设置\baselineskip为非常大的负尺寸,这样在每对线之间\lineskip都会插入胶水;将其设置为零就完成了。

\documentclass{article}
\usepackage{fontspec,fancyvrb}
\setmonofont{DejaVu Sans Mono}
\DefineVerbatimEnvironment{VRB}{Verbatim}{%
  formatcom={\baselineskip=-\maxdimen\lineskip=0pt}
}
\begin{document}
\begin{verbatim}
▒▒▒
▒▒▒
▒▒▒
\end{verbatim}
\begin{VRB}
▒▒▒
▒▒▒
▒▒▒
\end{VRB}
\end{document}

lmodern之后加载fontspec完全没用;也xltxtra应该避免,除非你真的需要它的唯一功能。fontspec单独加载。

在此处输入图片描述

答案2

修改

u2592 行间不应需要更改间距,除非您之前已更改行距,例如setspace我在此 MWE 中显示的那样。那么,我原来的答案的方法应该仍然适用,但可能需要对移位进行调整。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{verbatimbox}
\usepackage{fontspec}
\setmainfont{Times New Roman}
\usepackage{setspace}
\doublespacing
\begin{document}
Start
versus
\begin{verbnobox}[\rmfamily\ifnum\value{VerbboxLineNo}>1\relax\vspace{-8pt}\fi]
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
\end{verbnobox}
the end
\end{document}

在此处输入图片描述

原来的

也许这就足够了:

\documentclass{article}
\usepackage{verbatimbox}
\begin{document}
Start
\begin{verbatim}
((((((((((((((((((((((
((((((((((((((((((((((
((((((((((((((((((((((
((((((((((((((((((((((
((((((((((((((((((((((
\end{verbatim}
versus
\begin{verbnobox}[\ifnum\value{VerbboxLineNo}>1\relax\vspace{-3pt}\fi]
((((((((((((((((((((((
((((((((((((((((((((((
((((((((((((((((((((((
((((((((((((((((((((((
((((((((((((((((((((((
\end{verbnobox}
the end
\end{document}

在此处输入图片描述

相关内容