LaTeX no me permite agregar espacios en cadenas en lstlistings

LaTeX no me permite agregar espacios en cadenas en lstlistings

Estoy intentando agregar algo de código a mi documento, pero cada vez que hay un espacio dentro de una cadena en el código, aparece con un elemento de depósito (?). He proporcionado el código y el resultado a continuación:

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

espacio dentro de la cadena dentro de lstlisting reemplazado por este símbolo

Respuesta1

¡Esto no es un error, es una característica! Con su configuración actual, los espacios dentro de una cadena se visualizarán usando este "depósito", como usted lo llama. Esto puede resultar especialmente útil si tiene más de un espacio.

Si no los desea, puede desactivarlos configurando showstringspaces=false, ya sea solo para su listado actual (opción 1) o para todo el documento (opción 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}

Resultado

Incluso podrías habilitar esto para espacios "normales", es decir, fuera de cadenas, configurando showspaces=true, si así lo deseas.

información relacionada