我正在将 enumerate 与 enumitem 包一起使用。我已按照下面的 MWE 设置了我的代码。这会将标签和数字放在文本的左侧。我想知道是否有办法调整它,以便标签和数字出现在文本上方(带有换行符)而不是左侧。
例如我希望它看起来像这样;
Article 1
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus
elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dic-
tum gravida mauris. Nam arcu libero, ...
这是我的 MWE;
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum} % just for dummy text
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[label=Article \arabic*:]
\item \lipsum[1].
\item \lipsum[1]
\item \lipsum[1]
\end{enumerate}
\end{document}
答案1
这是一个简单的方法,使用stackengine
包。你可以使用以下命令设置标签和主体之间的距离before=\setstackgap[S]{…}
:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum} % just for dummy text
\usepackage{enumitem}
\usepackage{stackengine}
\begin{document}
\begin{enumerate}[label=\hfill\stackon{}{Article \arabic*}\hfill, wide=0pt, labelwidth=\textwidth, itemsep=1.25\baselineskip, before=\setstackgap{S}{2.5ex}]
\item \lipsum[1]
\item \lipsum[1]
\item \lipsum[1]
\end{enumerate}
\end{document}
答案2
定义一个新的列表和一个新的对齐:
\documentclass{article}
\usepackage{lipsum,showframe} %% showframe for demo
\usepackage{enumitem}
\SetLabelAlign{mycenter}{\strut\smash{\parbox[t]{\textwidth}
{\centering#1}}%
}
\newlist{mylist}{enumerate}{1}
\setlist[mylist]{label=\bfseries Article~\arabic*,align=mycenter,
leftmargin=0cm,itemindent=\labelwidth}
\begin{document}
\begin{mylist}
\item \lipsum[1]
\item \lipsum[1]
\end{mylist}
\end{document}
答案3
这样怎么样(你显然可以在定义中调整垂直空间):
\documentclass{article}
\usepackage{lipsum}
\usepackage[inline]{enumitem}
\newenvironment{mylist}{%
\begin{enumerate*}[%
before={\\[12pt]},%
label=\centerline{Article \arabic*:},%
afterlabel={\\[12pt]},%
itemjoin={\\[12pt]},%
itemjoin*={\\[12pt]},%
]%
}{\end{enumerate*}}
\begin{document}
\begin{mylist}
\item \lipsum[1]
\item \lipsum[1]
\end{mylist}
\end{document}
答案4
我没有看到一种简单的方法可以enumitem
实现enumerate
这种方式(但卢卡斯更聪明!),所以我认为你只有两个选择:
\section
使用现有的格式。例如,使用或命令来做你想做的事情并不难\subsection
,要么选择一个以这些为中心的类,要么使用标题安全以获得您想要的格式。构建您自己的自定义环境。
您可以通过以下方式构建自己的环境以便可以生成以下内容:
代码如下:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{lipsum} % just for dummy text
\usepackage{enumitem}
\begin{document}
\newcounter{centereditem}% a counter for the article numbers
\renewcommand\thecentereditem{Article~\arabic{centereditem}}
\newcommand\centereditem{% this will become the \item command in the environment
\refstepcounter{centereditem}
\centerline{\thecentereditem}
}
% Usage:
% - \begin{centeredlist}...\end{centeredlist}
% - \begin{centeredlist}[num]...\end{centeredlist}, to make numbering start a num+1
\newenvironment{centeredlist}[1][0]
{\let\item=\centereditem%
\setcounter{centereditem}{#1}
}{}
\begin{centeredlist}
\item \lipsum[1].
\item \lipsum[1]
\item \lipsum[1]
\end{centeredlist}
\end{document}