描述项目中的两行标签

描述项目中的两行标签

我希望在描述环境中有两行较长的描述名称。我能找到的唯一帮助是这里. 其中有以下代码。

\begin{description}
   % won't work
   \item[first line\\second line]
   % won't work
   \item[first line\newline second line]
   % will work
   \item[{\parbox[t]{3cm}{first line\\second line}}]
\end{description}

但这看起来不太好,我有一个关于该项目的长段落,并且该段落的第二行从项目标签的第二行下方开始。

答案1

对于单行项目数据,使用\stackunder{}{}。对于多行项目数据,使用\smash{\stackunder{}{}}

\smash{\Longunderstack{...\\...\\...}}还显示了当标签长度超过 2 行时如何使用。

\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{lipsum}
\begin{document}
\renewcommand\stackalignment{r}% RIGHT ALIGNED STACKS
\renewcommand\stacktype{L}% MAKE STACKS OBEY FIXED BASELINESKIP
\strutlongstacks{T}% TO GET PROPER SPACING FOR SINGLE-LINE ITEMS
\begin{itemize}
   \item[\stackunder{first line}{second line}] blah blah
   \item[\smash{\stackunder{first line}{second line}}] \lipsum[4]
   \item[\smash{\Longunderstack{first\\second\\third}}] \lipsum[3]
\end{itemize}
\end{document}

在此处输入图片描述

如果您希望以粗体显示,您可以\bfseries在堆栈前添加。

正如 Bernard 所指出的,标题溢出到了左边距,这是 的标准行为itemize。缓解这种情况的方法是选择leftmargin允许最宽标签:

\documentclass{article}
\usepackage[pass,showframe]{geometry}
\usepackage[usestackEOL]{stackengine}
\usepackage{lipsum,enumitem}
\begin{document}
\renewcommand\stackalignment{r}% RIGHT ALIGNED STACKS
\renewcommand\stacktype{L}% MAKE STACKS OBEY FIXED BASELINESKIP
\strutlongstacks{T}% TO GET PROPER SPACING FOR SINGLE-LINE ITEMS
\begin{itemize}[leftmargin=53pt]
   \item[\stackunder{first line}{second line}] blah blah
   \item[\smash{\stackunder{first line}{second line}}] \lipsum[4]
   \item[\smash{\Longunderstack{first\\second\\third}}] \lipsum[3]
\end{itemize}
\end{document}

在此处输入图片描述

相关内容