我确信我之前读过一些关于此内容的内容,但我找不到它。如果是,请将其标记为重复。
我在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 节,如何-如何吞噬角色。