使用用户定义的列表时,部分前的空格缺失

使用用户定义的列表时,部分前的空格缺失

我定义了一个用户环境,但由于某种原因,第 3 节之前的空格丢失了。请参见以下示例。为什么会发生这种情况?我如何才能使第 2 节和第 3 节之前的空格相同?

\documentclass[a4paper]{scrreprt}
\usepackage{listings} 
\lstset{% 
    basicstyle=\ttfamily, 
    breaklines=true,
    columns=fullflexible,
    escapeinside = ||,
    breakindent=0pt} 
\lstnewenvironment{Code}{}{}


\begin{document}

\section{Section 1}
test the space
\section{Section 2}
\begin{Code}
    abc
\end{Code}
test the space
\section{Section 3}
\end{document}

在此处输入图片描述

答案1

如果在节标题和代码之间有一些段落内容,问题就会消失。一种解决方案是\leavevmode在代码前添加。这可以通过将命令添加到新列表环境的开始代码中来自动完成:

\lstnewenvironment{Code}{\leavevmode}{}

示例输出

\documentclass[a4paper]{scrreprt}

\usepackage{listings}

\lstset{%
    basicstyle=\ttfamily,
    breaklines=true,
    columns=fullflexible,
    escapeinside = ||,
    breakindent=0pt}
\lstnewenvironment{Code}{\leavevmode}{}

\begin{document}

\section{Section 1}
test the space
\section{Section 2}
\begin{Code}
    abc
\end{Code}
test the space

\section{Section 3}
test

\end{document}

相关内容