在写一个包含很多enumerate
环境的文档时,我想添加一个小子集,
1. So the item is here
— and the inset is here
我很容易就做到了。但是,当我想添加一些内容以使其正确对齐段落时,我遇到了问题。有人知道我在测量高度时做错了什么吗\lrbox
?
梅威瑟:
\documentclass{article}
\usepackage{lipsum}
\usepackage{calc}
\newsavebox\mytextbox
\def\linelength{\linewidth-2em-1ex}
\newcommand{\two}[1]{%
\vspace{3pt}\\\hspace*{1em}---\
\begin{lrbox}{\mytextbox}\parbox[t]{\linelength}{#1}\end{lrbox}
\parbox[t][\heightof{\usebox{\mytextbox}}][t]{\linelength}{\usebox{\mytextbox}}}
\begin{document}
\begin{enumerate}
\item Long Items
\item \lipsum*[1]
\two{Second Level Item}
\two{\lipsum*[2]}
\two{Another second level item}
\item A first level item
\end{enumerate}
\end{document}
输出:
它似乎根本没有测量盒子,而是仅分配某种默认高度或其他东西(\parbox
没有默认值,因此令人困惑)。
答案1
你确实把事情复杂化了:只需使用嵌套的itemize
:
\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum}
\begin{document}
\begin{enumerate}
\item Long Items
\item \lipsum*[1]
\begin{itemize}[label=---,topsep=0pt]
\item Second Level Item
\item \lipsum*[2]
\item Another second level item
\end{itemize}
\item A first level item
\end{enumerate}
\end{document}
答案2
嗯,我想我真的太复杂了……
\documentclass{letter}
\usepackage{lipsum}
\usepackage{calc}
\def\linelength{\linewidth-2em-1ex}
\newcommand{\two}[1]{%
\vspace{3pt}\\\hspace*{1em}---\
\begin{minipage}[t]{\linelength}#1\\\end{minipage}
\vspace*{-2\baselineskip}\\
}
\begin{document}
\begin{enumerate}
\item Long Items
\item \lipsum*[1]
\two{Second Level Item}
\two{\lipsum*[2]}
\two{Another second level item}
\item A first level item
\end{enumerate}
\end{document}
通过简单地使用minipage
,根本不存在任何测量问题。
输出: