这可能看起来像重复的问题这个等等,但我确实很难找到所需的解决方案。
该方法
breaklines=true
不起作用,因为它会破坏长命令。因此 simple 也copy and paste
不起作用,因为当代码粘贴到终端时,它会被前面的尖括号 > 分成多行。
答案1
使用accsupp
包。这样,无论是否有可见的换行符,您都可以进行复制。
\documentclass{article}
\usepackage{accsupp}
\usepackage{listings}
\begin{document}
\BeginAccSupp{method=plain,ActualText=long long long command long long long command long long long command long long long command}
\begin{lstlisting}[breaklines=true]
long long long command long long long command long long long command long long long command
\end{lstlisting}
\EndAccSupp{}
\end{document}
如果代码中包含特殊字符,则需要一些更花哨的东西(method=pdfstringdef
和hyperref
):
\documentclass{article}
\usepackage[pdfencoding=auto]{hyperref}
\usepackage{accsupp}
\usepackage{listings}
\begin{document}
\BeginAccSupp{method=pdfstringdef,ActualText=
grep -rw --include \unichar{"005C}*.h --include \unichar{"005C}*e.c* "Write()" . |sed -e 's/Write/Read/g'}
\begin{lstlisting}[breaklines=true]
grep -rw --include \*.h --include \*e.c* "Write()" . |sed -e 's/Write/Read/g'
\end{lstlisting}
\EndAccSupp{}
\end{document}