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}

リスト内の文字列内のスペースはこの記号に置き換えられます

答え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必要に応じて、を設定することで、文字列の外側にある「通常の」スペースに対してこれを有効にすることもできます。

関連情報