我有一個多列列表,垂直空間有點有限,因此我使用leftmargin=*
的屬性itemize
來消除自訂標籤和實際文字之間的一些空白。但由於某些原因,換行後縮排是錯誤的(請參閱第一列)。如果我省略leftmargin
,那麼縮排是正確的,但標籤和文字之間的空間太大。我嘗試按照文件中的描述手動設定所有內容,但它永遠不適用於第二行。
我盡量避免強制換行和使用空項目item[]
。如何解決這個問題呢?空間較小但縮排正確?
我的最小例子:
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\noindent texttexttexttext...
\hfill \\
\noindent\begin{minipage}[t]{0.45\textwidth}
{\centering \subsection*{Header 1}}
\begin{itemize}[align=left,leftmargin=*,labelsep=1ex]
\raggedright
\item[\textbf{foo}] thisisaverylongtext, which doesn't fit on one line
\item[\textbf{foo}] two
\item[\textbf{foo}] three
\item[\textbf{foo}] four
\end{itemize}
\end{minipage}
\kern.1\textwidth
\begin{minipage}[t]{0.45\textwidth}
{\centering \subsection*{Header 2}}
\begin{itemize}[align=left,labelsep=1ex]
\raggedright
\item[\textbf{foo}] thisisaverylongtext, which doesn't fit on one line
\item[\textbf{foo}] two.one \\ two.two
\item[\textbf{foo}] three
\item[\textbf{foo}] four
\end{itemize}
\end{minipage}
\end{document}
答案1
我想這就是你想要的:
\documentclass{article}
\usepackage{enumitem}
\usepackage{showframe} % just for the example
\begin{document}
\noindent\begin{minipage}[t]{0.45\textwidth}
\subsection*{Header 1}
\begin{itemize}[
align=left,
leftmargin=2em,
itemindent=0pt,
labelsep=0pt,
labelwidth=2em
]
\raggedright
\item[\textbf{foo}] thisisaverylongtext, which doesn't fit on one line
\item[\textbf{foo}] two.one \\ two.two
\item[\textbf{foo}] three
\item[\textbf{foo}] four
\end{itemize}
\end{minipage}\hfill
\begin{minipage}[t]{0.45\textwidth}
\subsection*{Header 2}
\begin{itemize}[align=left,labelsep=1ex]
\raggedright
\item[\textbf{foo}] thisisaverylongtext, which doesn't fit on one line
\item[\textbf{foo}] two.one \\ two.two
\item[\textbf{foo}] three
\item[\textbf{foo}] four
\end{itemize}
\end{minipage}
\end{document}
使用您認為合適的任何長度代替2em
。