创建类似缩进嵌套的枚举环境

创建类似缩进嵌套的枚举环境

我想创建一个环境,其中所有内容都会缩进。类似于\begin{enumberate}- \end{enumerate}但不需要编写\item

我尝试这样做

\newenvironment{indented}
{\par\leftskip1cm\relax}
{\par\leftskip0cm\relax}

这在一定程度上解决了两个问题 -

  1. 嵌套不起作用。
  2. 代码列表的使用lstlisting不符合这一点。

请建议如何实现这个功能。

答案1

adjustwidthchangepage是一个允许您调整左右边距的环境。下面是一个简单的实现(使用来自Niranjan 的回答):

在此处输入图片描述

\documentclass{article}

\usepackage{changepage}
\usepackage{listings}
\lstset{basicstyle=\ttfamily}

\newenvironment{enumlike}[1][15pt]{%
  \begin{adjustwidth}{#1}{0pt}% Only indent on left side
}{%
  \end{adjustwidth}%
}

\begin{document}

\begin{enumlike}

  \begin{lstlisting}
#!/bin/usr
echo "hello world"
  \end{lstlisting}
  
  abcd efgh

  abcd efgh
  \begin{enumlike}[20pt]
    \begin{lstlisting}
#!/bin/usr
echo "hello world"
    \end{lstlisting}

    pqrs wxyz
    
    pqrs wxyz
  \end{enumlike}
\end{enumlike}

\end{document}

请注意15pt- 的默认可选参数enumlike是 default \parindent,这可能会使事情巧合地排列。当然,这是可以改变的。

答案2

为什么不使用环境quote呢?

\documentclass{article}
\usepackage{listings}
\newenvironment{enumlike}{%
  \begin{quote}%
  }{%
  \end{quote}%
}

\begin{document}
\begin{enumlike}
  \begin{lstlisting}
#!/bin/usr
echo "hello world"
  \end{lstlisting}
  
  abcd efgh

  abcd efgh
  \begin{enumlike}
    \begin{lstlisting}
#!/bin/usr
echo "hello world"
    \end{lstlisting}

    pqrs wxyz
    
    pqrs wxyz
  \end{enumlike}
\end{enumlike}
\end{document}

1

相关内容