我需要写下由编号声明组成的论据,其中结论用结论符号标记。我可以毫无问题地修改枚举标签的显示方式以获得该结果。
不幸的是,这些标签很快就会变得太宽,以至于它们会延伸到左边距。我想在左侧缩进枚举环境,以便标签和文本更靠右。查看列表环境中的长度列表(例如,在这个答案中),我认为\leftmargin
这个长度对我来说是合适的。不幸的是,它没有达到预期的效果,即缩进与项目相关的文本。我可以使用\itemindent
缩进标签,但这只会缩进第一行,而不是主体。
对答案有几个限制。
- 我知道这个
enumerate
包,但由于各种原因不想使用它。 - 我只想以这种方式缩进部分枚举环境,而不是全部。因此,通过包含等方式进行全局更改
\AtBeginDocument{\addtolength{\leftmargini}{3em}}
对我来说不起作用。
这是我正在使用的 MWE 以及结果的屏幕截图。我使用lipsum
它来生成多行文本,并调用它amssymb
来获取三个点组成的“结论”符号。
\documentclass{article}
\usepackage{lipsum}
\usepackage{amssymb}
\begin{document}
\lipsum[1]
\begin{enumerate}
\renewcommand{\theenumi}{\roman{enumi}}%
\renewcommand{\labelenumi}{(\theenumi)}%
\addtolength{\leftmargin}{5em}
\addtolength{\itemindent}{3em}
\item \lipsum[4]
\item \lipsum[4]%
\renewcommand{\labelenumi}{$\therefore$(\theenumi)}%
\item \lipsum[4]
\end{enumerate}
\end{document}
答案1
您无需\addtolength{\leftmargini}{3em}
在序言中设置,这是一个本地声明,因此可以在特殊列表之前的任何位置设置。您可以使用 tex 组重置列表后的值,或者在列表完成后简单地减去该值。
它需要在之前\begin{enumerate}
而不是之后,因为该值在开始代码中用于设置列表参数。
答案2
很enumitem
简单:
\documentclass{article}
\usepackage{lipsum}
\usepackage{amssymb}
\usepackage{enumitem}
\setlist[enumerate]{label=(\roman*),
itemindent=3em,
leftmargin=2em, % leftmargin=* if you like to have left margin as in main text
}
\begin{document}
\lipsum[11]
\begin{enumerate}
\item \lipsum[4]
\item \lipsum[4]%
\stepcounter{enumi} % <---
\item[$\therefore$\theenumi] % <---
\lipsum[4]
\end{enumerate}
\end{document}
答案3
这是你想要的吗?我用 设置标签宽度enumitem
,并要求按照以下方式计算左边距:
\documentclass{article}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.4pt}
\usepackage{enumitem}
\usepackage{lipsum}
\usepackage{amssymb}
\begin{document}
\lipsum[1]
\begin{enumerate}[labelwidth=2.5em, leftmargin=!]
\item \lipsum[4]
\item \lipsum[4]%
\item[$\therefore$ \stepcounter{enumi}(\theenumi)] \lipsum[4]
\end{enumerate}
\end{document}