自定义描述环境中 \item 后的短行间距

自定义描述环境中 \item 后的短行间距

我正在编写一份技术指南,我有一个可以运行的不同命令的描述列表。其中一些命令有别名或替代调用,我希望它们具有相同的描述主体。使用该enumitem包,我设法将其自定义为我想要的样子。我所拥有的内容如下所示:

\documentclass{book}

\usepackage{lipsum}
\usepackage{enumitem}

\SetLabelAlign{parleft}{\parbox[t]\textwidth{#1}}

\begin{document}

\begin{description}[style=nextline,labelindent=0em,align=parleft]
\item[There's just one phrase, notice hanging characters]
    Here Is The Definition Of The Phrase. \lipsum[11]
\item[This is the first phrase \newline Notice hanging characters in the second phrase]
    Here Is The Definition Of The Phrase. \lipsum[47]
\end{description}

\end{document}

对我来说,只有一行的项目看起来很好,但是当有多行时,最后一行\item和以下描述之间的间距比项目内部行之间的间距以及单行项目与其描述之间的间距短得多:

多行文本的行间距较短

我有两个问题:

  • 为了帮助我理解 TeX,为什么\parbox包含单行的 后面的空格是正确的,而包含两行的 后面的空格不正确?
  • \item我该如何修复这个问题,以便每个描述最后一行后面的空格都相等?

请注意,该文档是自动生成的,因此最好采用不需要对每个多行项目进行手动干预的解决方案,但我可以根据需要自定义生成。

提前致谢!

答案1

这可能是实现您想要的一种方法:

\documentclass{book}
\usepackage{lipsum}
\usepackage{enumitem}
\SetLabelAlign{parleft}{\parbox[t]\textwidth{#1\smallskip}}
\begin{document}
\begin{description}[style=nextline,labelindent=0em,align=parleft]
  \item[There's just one phrase, notice hanging characters]
  Here Is The Definition Of The Phrase. \lipsum[11]
  \item[This is the first phrase  \newline Notice hanging characters in the second phrase]
  Here Is The Definition Of The Phrase. \lipsum[47]
\end{description}
\end{document}

宽多行盒装标签

答案2

添加\vskip\partopsep似乎有效:

\documentclass{book}

\usepackage{lipsum}
\usepackage{enumitem}

\SetLabelAlign{parleft}{\parbox[t]\textwidth{#1\vskip\partopsep}}

\begin{document}

\begin{description}[style=unboxed,labelindent=0em,align=parleft]
\item[There's just one phrase, notice hanging characters]
    Here Is The Definition Of The Phrase. \lipsum[11]
\item[This is the first phrase \newline Notice hanging characters in the second phrase]
    Here Is The Definition Of The Phrase. \lipsum[47]
\end{description}

\end{document} 

在此处输入图片描述

相关内容