我想编写一些练习,让学生解释已编号的代码片段。我想在每段代码的左边添加一个字母(如 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}