如何使用列表包从 PDF 文档复制时删除缩进字符

如何使用列表包从 PDF 文档复制时删除缩进字符

我确信我之前读过一些关于此内容的内容,但我找不到它。如果是,请将其标记为重复。

我在lstlisting环境中编码时使用空格键分隔单词,使用 TAB 键缩进代码。检查这个 MWE:

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage[spanish]{babel}

\newcommand\opstyle{\bfseries\color{red}}
\makeatletter
\usepackage{xcolor,textcomp}
\usepackage{enumitem}

\usepackage{textcomp}
\usepackage{listings}
\usepackage{accsupp}
\usepackage{lmodern}

\definecolor{backcolour}{rgb}{0.95,0.95,0.92}

\lstset { %
    language=C++,
    alsoletter=0123456789,
    upquote=true,
    columns=fullflexible,
    keepspaces=true,
    backgroundcolor=\color{backcolour},
  breakatwhitespace=false,         
  breaklines=true,                 
  captionpos=b,                    
  keepspaces=true,            
  showspaces=false,                
  showstringspaces=false,
  showtabs=false,                  
  tabsize=2
}

\lst@AddToHook{OutputOther}{\ProcessOther@silmeth}

\newcommand\ProcessOther@silmeth
{%
  \ifnum\lst@mode=\lst@Pmode%     % If we're in `Processing' mode...
    \def\lst@thestyle{\opstyle}%  % ... redefine the style locally
  \fi%
}

\makeatother

%========================== Taken from https://tex.stackexchange.com/a/442600/152550
\newcommand{\noncopynumber}[1]{%
    \BeginAccSupp{method=escape,ActualText={}}%
    #1%
    \EndAccSupp{}%
}

\makeatletter   %================= Taken from https://tex.stackexchange.com/a/19978/152550
\def\lst@outputspace{{\ifx\lst@bkgcolor\empty\color{white}\else\lst@bkgcolor\fi\lst@visiblespace}}
\makeatother


\begin{document}

\begin{lstlisting}
Example with no tabulation

    With one tabulation

 With one space
\end{lstlisting}

\end{document}

选定文本的输出:

例子

当我将其粘贴到任何地方时,它都会变成空格:

空间

这样,编译器就永远无法正确编译。

有没有简单的方法保持间距,但不要使用此符号:

谢谢!

局部放电:我也看看手动的,第 2.5 节特殊字符-可见的制表符和空格但它没有提到这个问题。我还看了第 7 节,如何-如何吞噬角色

相关内容