LaTeX 不允许我在列表的字符串中添加空格

LaTeX 不允许我在列表的字符串中添加空格

我正在尝试向我的文档添加一些代码,但只要代码中的字符串中有空格,它就会显示一个 bucket(?) 东西。我提供了以下代码和输出:

\documentclass[a4paper]{article}

\usepackage{listings}
\begin{document}

\section*{Code}
\begin{lstlisting}[language=python]
# comment
a = 24
print (a)
string = "some string"
\end{lstlisting}

\end{document}

列表内的字符串内的空格被该符号替换

答案1

这不是一个错误,而是一个功能!使用您当前的设置,字符串中的空格将使用此“存储桶”(您称之为)进行可视化。如果您有多个空格,这会特别有用。

如果您不想要它们,您可以通过设置来禁用它们showstringspaces=false,仅针对当前列表(选项 1)或针对整个文档(选项 2)。

\documentclass[a4paper]{article}

\usepackage{listings}
%\lstset{showstringspaces=false} % option 1

\begin{document}
\section*{Code}
\begin{lstlisting}[
    language=python,
    showstringspaces=false, % option 2
]
# comment
a = 24
print (a)
string = "some string"
\end{lstlisting}
\end{document}

结果

showspaces=true如果您愿意,您甚至可以通过设置来为“正常”空间(即字符串之外的空间)启用此功能。

相关内容