LaTeX 不允許我在 lstlistings 的字串中加入空格

LaTeX 不允許我在 lstlistings 的字串中加入空格

我正在嘗試為我的文件添加一些程式碼,但是只要程式碼中的字串內有空格,它就會顯示一個桶(?)的東西。我提供了以下程式碼和輸出:

\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}

lstlisting 內字串內的空格被此符號替換

答案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如果您願意,甚至可以透過設定為「正常」空間(即字串之外)啟用此功能。

相關內容