如何在 \begin{lstlisting} 之前/左侧添加文本?

如何在 \begin{lstlisting} 之前/左侧添加文本?

我想编写一些练习,让学生解释已编号的代码片段。我想在每段代码的左边添加一个字母(如 a)或数字。

我更喜欢使用

\begin{lstlisting}[numbers=none]
some code
\end{lstlisting}

(具有我定义的所有样式)而不是\lstinline

能用简单的方法做到这一点吗?(我在 lstlisting 手册或使用谷歌时都找不到它。)

在所示的示例中,文本不在同一行,而是在前一行。我的 LaTeX 文档:

\documentclass[12pt]{article}

\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\lstset{
language=Python,
backgroundcolor=\color{lightgray},
numbers=left, 
numberstyle=\tiny, 
stepnumber=1,
numbersep=5pt, 
tabsize=4,
basicstyle=\ttfamily\small,
keywordstyle=\color{Orange},
commentstyle=\color{Red},   
stringstyle=\color{PineGreen},
frame=none,                    
columns=fullflexible,
keepspaces=true,
xleftmargin=\parindent,
showstringspaces=false,
}

\begin{document}

\noindent Exercise 1. Explain the output in each case:

\noindent a) \begin{lstlisting}[numbers=none]
print("Horse"[2])
\end{lstlisting}
\noindent b) \begin{lstlisting}[numbers=none]
print("Donkey"[1:-1])
\end{lstlisting}

\end{document}

输出:

在此处输入图片描述

答案1

您可以使用列表:

\documentclass[12pt]{article}

\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\lstset{
language=Python,
backgroundcolor=\color{lightgray},
numbers=left,
numberstyle=\tiny,
stepnumber=1,
numbersep=5pt,
tabsize=4,
basicstyle=\ttfamily\small,
keywordstyle=\color{Orange},
commentstyle=\color{Red},
stringstyle=\color{PineGreen},
frame=none,
columns=fullflexible,
keepspaces=true,
xleftmargin=\parindent,
showstringspaces=false,
}

\usepackage{enumitem}
\begin{document}

\noindent Exercise 1. Explain the output in each case:

\begin{enumerate}[label=\alph*),align=left]

\item 
\begin{lstlisting}[numbers=none]
print("Horse"[2])
\end{lstlisting}

\item  
\begin{lstlisting}[numbers=none]
print("Donkey"[1:-1])
\end{lstlisting}

\end{enumerate}
\end{document}

在此处输入图片描述

相关内容