如何创建具有与 itemize 环境相同缩进的环境?

如何创建具有与 itemize 环境相同缩进的环境?

我想创建一个环境或命令来缩进文本并枚举第一行。以下是我想要的图形:

在此处输入图片描述

这是我尝试过的:

\documentclass[23pt, oneside]{book}
\usepackage{lipsum}
\newcounter{quest}
\newenvironment{example}
{\refstepcounter{quest}
   \begin{itemize}
   \item[\thequest.]\textbf{}\hspace{10pt}}
    {\end{itemize}
}

\begin{document}
\begin{example}
\lipsum[1]
\end{example}

\begin{example}
\lipsum[2]
\end{example}
\end{document}

但那不起作用,我找不到如何避免它给出的问题。结果如下:

在此处输入图片描述

如您所见,它不像第一张图片。我该如何解决这个问题?

答案1

无需附加包。

\documentclass[oneside]{book}
\usepackage[pass,showframe]{geometry}
\usepackage{lipsum}
\newcounter{quest}
\newenvironment{example}
{\refstepcounter{quest}
  \par
  \leftskip 40pt\relax% PARAGRAPH INDENT
  \noindent
  \llap{\makebox[15pt][l]{\thequest.}}% DEFINES LEFT OFFSET OF LABEL
  \ignorespaces
}
{  \par\leftskip 0pt\relax}

\begin{document}
\begin{example}
\lipsum[1]
\end{example}

\begin{example}
\lipsum[2]
\end{example}

\lipsum[3]
\end{document}

在此处输入图片描述

答案2

您可以使用包定义一个列表,并使用键、和enumitem设置宽度(请参阅leftmargenlabelseplabelwidth手动的)。要恢复编号,请添加[resume*]到以下列表。

\documentclass[23pt, oneside]{book}
\usepackage{lipsum}
\usepackage{enumitem}

\newlist{myitemize}{enumerate}{3}
\setlist[myitemize]{
    label*=\arabic*.,
    leftmargin = 3em,
    labelsep = 1em,
    labelwidth = 2em
}

\begin{document}
\begin{myitemize}
    \item \lipsum[1]
\end{myitemize}
\lipsum[3]
\begin{myitemize}[resume*]
    \item \lipsum[2]
\end{myitemize}
\end{document}

在此处输入图片描述

相关内容