在 PDF 中生成易于复制粘贴的代码块

在 PDF 中生成易于复制粘贴的代码块

我曾使用过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}

PDF

当我复制生成的输出时lslisting,我得到的是以下纯文本:

test$(ls -la) =$(ls -l)

问题在于由于某种原因,“$”字符之前的空格会丢失,而且很难复制,因为“三次单击突出显示”来选择块/行不起作用。

当我复制生成的输出时verbatim,我正确地获得了纯文本块,如下所示,并且“三击”似乎也有效。

test $(ls -la) = $(ls -l)

但问题是我无法用它gobble=8来纠正相对缩进,而且格式化的可能性也有限。

我还想提一下,我知道 PDF 查看器在这里也发挥了作用,但我需要的是支持大多数 PDF 查看器的东西,verbatim但具有格式化功能。我认为这应该是可能的,因为如果verbatim可以做到这一点,为什么我们不能添加它?有没有更好的替代方案lslisting

类似下面的内容(GitHub Markdown)是理想的,尽管“复制”按钮可能无法实现,但至少文本可以实现,

医学博士

相关内容