如何将描述项标签右侧对齐?

如何将描述项标签右侧对齐?

我见过标签右对齐的描述列表这解释了如何将描述标签对齐到右侧。但是,所提出的解决方案全局设置了长度,而我寻找的是局部解决方案,即分别指定每个环境的宽度。有没有办法告诉每个描述环境最宽的项目是什么:

\documentclass{article}
\usepackage{enumitem}
\SetLabelAlign{parright}{\parbox[t]{\labelwidth}{\raggedleft#1}}

\setlist[description]{style=multiline,topsep=10pt,leftmargin=5cm,font=\textbf,align=parright}

\begin{document}

\begin{description}
\item[aaa] some text
\item[bbbbbb] some more text
\item[ccccccccc] and some text
\end{description}


\begin{description}
\item[aaaaaaa] some text
\item[bbbbbbbbbbbbbbb] some more text
\item[ccccccccccccccccccccccc] and some text
\end{description}

\end{document}

答案1

您可以使用\widthof{}您可以calclabelwidth计算每个列表的正确宽度description以获得:

在此处输入图片描述

传递给的参数\widthof{}应该是列表中最宽的元素description,同时注意,由于标签设置为粗体字体,我们需要确保测量已应用\bfseries

\documentclass{article}
\usepackage{calc}
\usepackage{enumitem}
\SetLabelAlign{parright}{\parbox[t]{\labelwidth}{\raggedleft#1}}

\begin{document}
\begin{description}[labelwidth=\widthof{\bfseries ccccccccc},align=parright]
    \item[aaa]       some text
    \item[bbbbbb]    some more text
    \item[ccccccccc] and some text
\end{description}

\begin{description}[labelwidth=\widthof{\bfseries ccccccccccccccccccccccc},align=parright]
    \item[aaaaaaa]                 some text
    \item[bbbbbbbbbbbbbbb]         some more text
    \item[ccccccccccccccccccccccc] and some text
\end{description}
\end{document}

相关内容