我曾使用过lslisting
插入代码块。要求是使代码块在编译后的 PDF 中正确显示,并使其尽可能容易复制为纯文本。请看以下内容以演示问题,
\documentclass{article}
\usepackage{listings}
\lstset{
breaklines=true,
frame=single,
gobble=8,
tabsize=4,
language=bash,
basicstyle=\ttfamily,
columns=fullflexible
}
\begin{document}
\begin{lstlisting}
test $(ls -la) = $(ls -l)
\end{lstlisting}
\begin{verbatim}
test $(ls -la) = $(ls -l)
\end{verbatim}
\end{document}
当我复制生成的输出时lslisting
,我得到的是以下纯文本:
test$(ls -la) =$(ls -l)
问题在于由于某种原因,“$”字符之前的空格会丢失,而且很难复制,因为“三次单击突出显示”来选择块/行不起作用。
当我复制生成的输出时verbatim
,我正确地获得了纯文本块,如下所示,并且“三击”似乎也有效。
test $(ls -la) = $(ls -l)
但问题是我无法用它gobble=8
来纠正相对缩进,而且格式化的可能性也有限。
我还想提一下,我知道 PDF 查看器在这里也发挥了作用,但我需要的是支持大多数 PDF 查看器的东西,verbatim
但具有格式化功能。我认为这应该是可能的,因为如果verbatim
可以做到这一点,为什么我们不能添加它?有没有更好的替代方案lslisting
类似下面的内容(GitHub Markdown)是理想的,尽管“复制”按钮可能无法实现,但至少文本可以实现,