列表 - 调整不同的缩进以达到相同的外观

列表 - 调整不同的缩进以达到相同的外观

我有一堆代码片段,它们看起来像这些:

\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}

在此处输入图片描述

相关内容