我正在尝试定义一个自定义列表,该列表左对齐标签,然后左对齐项目(在页面中距离最长标签 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}