减少逐字环境中的行距​​?

减少逐字环境中的行距​​?

在此示例中,我希望连续显示方框字符,但目前还不是这样:

\documentclass{article}
\usepackage{fontspec}
\usepackage{dejavu}

\setmonofont{DejaVu Sans Mono}

\renewcommand{\baselinestretch}{0.1}
\begin{document}
\begin{verbatim}
    ┞─┬─┬─┬─┬─┬─┬─┬─┦
    │0│1│0│1│0│0│1│1│
    └─┴─┴─┴─┴─┴─┴─┴─┘
\end{verbatim}
\end{document}

使用当前代码我得到以下信息:

在此处输入图片描述

在我的文本编辑器中没有问题:

在此处输入图片描述

答案1

我认为行间距是插入\vboxes 之间的最小垂直间距。它由 控制\lineskip,并具有初始值1pt。在下面的示例中,我\lineskip在每个环境中都将其设置为零verbatim,它似乎有效。

\documentclass{article}
\usepackage{etoolbox}
\usepackage{fontspec}
\usepackage{dejavu}

\setmonofont{DejaVu Sans Mono}

\AtBeginEnvironment{verbatim}{\setlength{\lineskip}{0pt}}

\begin{document}
\begin{verbatim}
    ┞─┬─┬─┬─┬─┬─┬─┬─┦
    │0│1│0│1│0│0│1│1│
    └─┴─┴─┴─┴─┴─┴─┴─┘
\end{verbatim}
\end{document}

在此处输入图片描述

答案2

作为muzimuzhi Z 说,问题是\lineskip,其默认值为 1pt。由于线条会相互接触,因此 TeX 会插入\lineskip粘连。

但是,您的代码还存在其他问题:行首的空格被保留,因此您的verbatim环境会被缩进。

我认为,应该绝不缩进环境的内容verbatim。如果需要缩进,最好使用fancyvrb功能;其中可能包含初始空格,但我不推荐这样做。

您还可以\fvsetup{formatcom=\setlength{\lineskip}{0pt}}在序言中说明,您是否希望此设置在每个Verbatim环境中都成立(请注意大写首字母)。

\documentclass{article}
\usepackage{fontspec}
\usepackage{fancyvrb}

\setmonofont{DejaVu Sans Mono}

\begin{document}

\begin{Verbatim}[formatcom=\setlength{\lineskip}{0pt}]
┞─┬─┬─┬─┬─┬─┬─┬─┦
│0│1│0│1│0│0│1│1│
└─┴─┴─┴─┴─┴─┴─┴─┘
\end{Verbatim}

\begin{Verbatim}[formatcom=\setlength{\lineskip}{0pt}]
    ┞─┬─┬─┬─┬─┬─┬─┬─┦
    │0│1│0│1│0│0│1│1│
    └─┴─┴─┴─┴─┴─┴─┴─┘
\end{Verbatim}

\begin{Verbatim}[formatcom=\setlength{\lineskip}{0pt},gobble=4]
    ┞─┬─┬─┬─┬─┬─┬─┬─┦
    │0│1│0│1│0│0│1│1│
    └─┴─┴─┴─┴─┴─┴─┴─┘
\end{Verbatim}

\begin{Verbatim}[formatcom=\setlength{\lineskip}{0pt},gobble=4,xleftmargin=\parindent]
    ┞─┬─┬─┬─┬─┬─┬─┬─┦
    │0│1│0│1│0│0│1│1│
    └─┴─┴─┴─┴─┴─┴─┴─┘
\end{Verbatim}

\end{document}

在此处输入图片描述

相关内容