我有一堆代码片段,它们看起来像这些:
\documentclass{beamer}
\usepackage{listings}
\begin{document}
\begin{frame}[fragile]
% snippet 1
\begin{lstlisting}
List list = new ArrayList();
\end{lstlisting}
% snippet 2
\begin{lstlisting}
List list = new ArrayList();
\end{lstlisting}
% snippet 3
\begin{lstlisting}
List list = new ArrayList() {
// ...
}
\end{lstlisting}
\end{frame}
\end{document}
片段 1 没有缩进。
代码片段 2 有一个制表符的缩进。
代码片段 3 的缩进为两个制表符,并且代码块内部额外缩进一个空格。
所以,现在,我正在寻找一个机会让它们在缩进方面看起来完全相同。
我尝试通过以下方式“关闭”标签
\lstset{
tabsize=0
}
但出现错误Package Listings Error: Strict positive integer expected. }
。
我的第二个顾虑是,如何将代码片段 3 中的缩进延长一个空格,例如延长四个空格。有没有类似的东西
\literate{<begin_of_line>\ }{\ \ \ \ }{4}
非常感谢你的帮助!
答案1
要自动吞噬文本listings
,你可能需要 Martin Scharrer 的lstautogobble
软件包
\documentclass{beamer}
\usepackage{listings}
\usepackage{lstautogobble}
\lstset{autogobble}
\begin{document}
\begin{frame}[fragile]
% snippet 1
\begin{lstlisting}
List list = new ArrayList();
\end{lstlisting}
% snippet 2
\begin{lstlisting}
List list = new ArrayList();
\end{lstlisting}
% snippet 3
\begin{lstlisting}
List list = new ArrayList() {
// ...
}
\end{lstlisting}
\end{frame}
\end{document}