我想创建一个环境,其中所有内容都会缩进。类似于\begin{enumberate}- \end{enumerate}
但不需要编写\item
我尝试这样做
\newenvironment{indented}
{\par\leftskip1cm\relax}
{\par\leftskip0cm\relax}
这在一定程度上解决了两个问题 -
- 嵌套不起作用。
- 代码列表的使用
lstlisting
不符合这一点。
请建议如何实现这个功能。
答案1
adjustwidth
从changepage
是一个允许您调整左右边距的环境。下面是一个简单的实现(使用来自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}