如何使用像 enumitem 这样的包定义列表环境,以便它重现与以下代码相同的输出,但使用枚举列表的语法:
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\begin{document}
\subsubsection*{Item 1}
\lipsum[1]
\subsubsection*{Item 2}
\lipsum[2]
\subsubsection*{Item 3}
\lipsum[3]
%% The following syntax should produce the same as above.
% \begin{mylist}
% \item
% \lipsum[1]
% \item
% \lipsum[2]
% \item
% \lipsum[3]
% \end{mylist}
\end{document}
期望输出:
答案1
这是一种可能性
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\usepackage{calc}
\usepackage[inline]{enumitem}
\newlist{mylist}{enumerate}{1}
\setlist[mylist]{
label=\bfseries Item \arabic*,
labelwidth=\widthof{last-item},
leftmargin=!,
align=left,
itemindent=1.8cm,
itemsep=10pt
}
\newcommand{\myitem}{\item~\\[6pt]}
\begin{document}
\subsubsection*{Item 1}
\lipsum[1]
\subsubsection*{Item 2}
\lipsum[2]
\subsubsection*{Item 3}
\lipsum[3]
%% The following syntax should produce the same as above.
\begin{mylist}
\myitem
\lipsum[1]
\myitem
\lipsum[2]
\myitem
\lipsum[3]
\end{mylist}
\end{document}
我必须重新定义\item
,以便将项目文本发送到新行。
labelwidth=\widthof{last-item},
leftmargin=!,
align=left,
用于设置标签的边距。要自动计算最大标签宽度,calc
需要包装。
itemindent=1.8cm,
用于删除项目文本的缩进(这是我无法自动计算的唯一值,但应该修复,所以没什么大不了的)
itemsep=10pt
设置项目之间的垂直空间
\newcommand{\myitem}{\item~\\[6pt]}
将项目文本发送到与标签垂直间距为 6pt 的新行。
答案2
一个非常简单的代码,可以让您使用常用的\item
命令:
\documentclass[a4paper,12pt]{article}
\usepackage{lipsum}
\usepackage{enumitem}
\newlist{mylist}{enumerate}{1}
\setlist[mylist]{label=\raisebox{0pt}[4ex][3ex]{\makebox[\textwidth][l]{\bfseries Item \arabic*}}, wide = 0pt}
\begin{document}
\begin{mylist}
\item
\lipsum[1]
\item
\lipsum[2]
\item
\lipsum[3]
\end{mylist}
\end{document}