我想创建一个环境或命令来缩进文本并枚举第一行。以下是我想要的图形:
这是我尝试过的:
\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
设置宽度(请参阅leftmargen
labelsep
labelwidth
手动的)。要恢复编号,请添加[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}