使用此解决方案仅选择没有行号的代码我允许从 PDF 中复制列表,但不包含行号和许多额外空格。
但这也会删除用于缩进的前导空格!
\documentclass[11pt,letterpaper]{memoir}
\usepackage{listings}
\lstloadlanguages{SQL}
\usepackage{accsupp}
\lstset{
frameround=fttt
,language=SQL
,numbers=left
,breaklines=true
,showstringspaces=false
,basicstyle=\small
,numberstyle=\noncopynumber
,columns=flexible
}
\newcommand{\noncopynumber}[1]{
\BeginAccSupp{method=escape,ActualText={}}
#1
\EndAccSupp{}
}
\begin{document}
\begin{lstlisting}
declare @a int
if @a = null
select 'null' as outcome
else
select 'not null' as outcome
\end{lstlisting}
\end{document}
这是我从 PDF 粘贴代码时得到的结果:
declare @a int
if @a = null
select ' null ' as outcome
else
select 'not null ' as outcome
if null = null
select 'equal' as outcome
else
select 'not equal' as outcome
null
第 3 行和第 5 行周围有多余的空格,但是所有前导空格都消失了。