我希望在描述环境中有两行较长的描述名称。我能找到的唯一帮助是这里. 其中有以下代码。
\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}