使用 enumitem 在描述列表中留出间距

使用 enumitem 在描述列表中留出间距

我发现标签右对齐的描述列表我正在为自己的问题寻找解决方案。我尝试修改上述解决方案,但有一些不太好的地方我不知道该怎么做。

  1. 使用noitemsep删除项目之间的空格会导致标签框中的行之间以及标签框之间的间距不同。
  2. 如果标签框中的文本太长而需要换行,则属于标签的文本的第二行从标签框之后开始,而不是在第二行。

在此处输入图片描述

相应的代码如下:

\documentclass{article}  
\usepackage{enumitem}  
\SetLabelAlign{parright}{\parbox[t]{\labelwidth}{\raggedleft#1}}
\setlist[description]{style=multiline,leftmargin=3.5cm, align=parright,noitemsep}

\begin{document}

\begin{description}
  \item[here is a long long label] text
  \item[here is a long long label]  and here a long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text
\end{description}

\end{document}

我能/应该做什么?

答案1

这是:

\documentclass{article}  
\usepackage{enumitem}  
\SetLabelAlign{parright}{\strut\smash{\parbox[t]{\labelwidth}{\raggedleft#1}}}
\setlist[description]{style=multiline,leftmargin=3.5cm, align=parright,noitemsep}

\begin{document}

\begin{description}
  \item[here is a long long label] text\\\mbox{}
  \item[here is a long long label]  and here a long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text
\end{description}

\end{document}

注意(1)我在标签中添加了\smash,并且(2)我手动在第一个项目中添加了一个空行,以避免手册中显示的与多行标签相关的问题。

答案2

这是我现在正在使用的解决方案:

\setlist[description]{style=multiline,leftmargin=3.7cm,parsep=6px}

然后使用描述列表,如果标签太长,我只需用填充文本框\\ \hspace*{\fill},对我来说效果很好:-)

答案3

并可能带有分页符

\documentclass{article}  
\usepackage{ltablex}% available from http://www.ctan.org/tex-archive/macros/latex/contrib/ltablex
\renewcommand*{\arraystretch}{1.2}
\begin{document}

\noindent
\begin{tabularx}{\linewidth}{@{} >{\bfseries\raggedleft}p{0.25\linewidth} X @{}}
here is a long long label & text \\
here is a long long label & and here a long long long long long long long long long
long long long long long long long long long long long long long long long long long 
long long long long text\\
\pagebreak
here is a long long label & and here a long long long long long long long long long 
long long long long long long long long long long long long long long long long long 
long long long long text
\end{tabularx}

\end{document}

相关内容