将自定义标签与项目一起左对齐,并留有空格

将自定义标签与项目一起左对齐,并留有空格

我正在尝试定义一个自定义列表,该列表左对齐标签,然后左对齐项目(在页面中距离最长标签 x 的同一位置),因此每个项目的起点与其标签之间的距离不同。

期望结果

我还希望标签采用粗体字体,并附加“:”(无需每次都将其写出来)。当我使用时parleft,如果标签中有空格,它似乎会变得混乱。我该如何修复这个重叠的文本?

文本重叠

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\usepackage{enumitem}
\begin{document}

\newlist{detail}{enumerate}{1}
\setlist[detail]{
    label=\textbf{}:
    leftmargin=*
}
\section*{My List}
\begin{detail}[align=parleft,labelsep=6em]
\item[A Label with five words] Thing 1
\item[Other] Thing 2
\end{detail}
\end{document}

答案1

在此处输入图片描述

以下两个建议目前不允许在两个表格列中换行。如果您恰好需要它们,您可能需要查看该tabularx包。

\documentclass{article} 
\usepackage{array} 
\begin{document}  
\section*{My List}  
\begin{tabular}{@{}>{\bfseries}l<{:}@{\hspace{2em}}l@{}} % fixes space between left and right column
A Label with five words & Thing 1\\ 
Other& Thing 2\\ 
\end{tabular}  

\noindent 
\begin{tabular}{@{}>{\bfseries}wl{4.5cm}<{:}l@{}}  % fixed with first column
A Label with five words & Thing 1\\ 
Other& Thing 2\\ 
\end{tabular} 
\end{document}

对于第一列中较长的条目,您可以使用p{5cm}而不是wl{5cm}。如果您还想确保文本左对齐而不是两端对齐,请添加\raggedright\arraybackslash

\documentclass{article} 
\usepackage{array} 
\begin{document}  
 
\begin{tabular}{@{}>{\bfseries\raggedright\arraybackslash}p{5cm}<{:}l@{}}  % fixed with first column
A Label with five words A Label with five words & Thing 1\\ 
Other& Thing 2\\ 
\end{tabular} 
\end{document}

相关内容