使用该listings
包时,对于某些列表,我希望使用行号,numbers=left
如下例所示:
\begin{lstlisting}[
numbers=left,framexleftmargin=5mm,frame=single]
foo(); // arbitrary code lines
\end{lstlisting}
但是,我还希望列表(包括框架和行号)与周围文本保持对齐。但是,行号向左延伸会发生什么情况。(事实上,当没有行号时,框架本身已经发生了这种情况,但有了行号,情况会变得更糟。)
通过以下稍微扩展的示例,您可以轻松看到效果:
\documentclass{article}
\usepackage{listings,lstautogobble}
\begin{document}
\begin{quote}
Surrounding text
\begin{lstlisting}[
autogobble,
numbers=left,framexleftmargin=5mm,
frame=single]
foo(); // arbitrary code lines
\end{lstlisting}
Surrounding text
\end{quote}
\end{document}
周围的文本与代码对齐,但与行号和框架均不对齐。理想情况下,我希望周围的文本与框架对齐,但如果周围的文本与行号对齐,我也可以接受。
在listings
文档中我无法弄清楚如何实现这一点。
答案1
通过查看文档,我找到了设置左边距的选项 xleftmargin。通过将其设置为 18 pt,框架将与周围的文本对齐
\documentclass{article}
\usepackage{listings,lstautogobble}
\begin{document}
\begin{quote}
Surrounding text
\begin{lstlisting}[
autogobble,
numbers=left,framexleftmargin=5mm,
frame=single,
xleftmargin=18pt]
foo(); // arbitrary code lines
\end{lstlisting}
Surrounding text
\end{quote}
\end{document}
我希望它有所帮助