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При желании вы можете включить это даже для «обычных» пробелов, т. е. вне строк, установив ,.

Связанный контент