我正在使用enumitem
一個列表:
\usepackage{enumitem}
\begin{enumerate}[1.]
\item ...
\item ...
\end{enumerate}
我希望每個“項目”本身在頁面上都不會被破壞。我看過這個答案,但很難使其適應enumitem
包的工作。你能幫我嗎?
答案1
也許將項目內容放在 a 中\parbox
就足夠了。
也必須將其\itemsep
合併到\parskip
盒子中。
\documentclass{article}
\usepackage{enumitem,lipsum}
\newcommand\itemnobreak[1]{\item \parbox[t]{\dimexpr\textwidth-\leftmargin}{%
\parskip=\itemsep\relax#1}}
\begin{document}
\begin{enumerate}
\item \lipsum[1-4]
\itemnobreak{\lipsum[2-3]}
\end{enumerate}
\end{document}
補充
OP 在評論中提出了一個有用的替代方案,但需要進行調整以捕獲 的正確行為\item
並允許\parsep
.
\documentclass{article}
\usepackage{enumitem,lipsum}
\newcommand\itemnobreak[1]{\item \parbox[t]{\dimexpr\textwidth-\leftmargin}{%
\parskip=\itemsep\relax#1}}
\newenvironment{block-itemize}{%
\itemize \let\olditem\item \let\closepage\relax \renewcommand\item[1][\relax]{%
\closepage%
\ifx\relax##1\olditem\else\olditem[##1]\fi%
\minipage[t]{\linewidth}\parskip=\parsep\relax%
\let\closepage\endminipage }%
}{%
\closepage \enditemize }
\begin{document}
\noindent\hrulefill
\begin{block-itemize}
\item \lipsum[1-4]
\item \lipsum[2-3]
\end{block-itemize}
\end{document}