我正在嘗試編寫一個包含段落列表的文檔,這些段落的介紹標題顯示在每個段落第一行的左側,以便標題顯示為左列,段落顯示為右列。所有這些都出現在標準的單欄文章中。
我想出的是使用一張桌子。我有:
\begin{tabularx}{\linewidth}{l X}
First row caption & \lipsum[1]\\
Second row caption & \lipsum[2]\\
Third row caption & \lipsum[3]\\
Fourth row caption & \lipsum[4]
\end{tabularx}
如果lipsum
該範例中的 被替換為真實的段落文本,那麼它會變得非常笨拙,因為它全部嵌入在一起並且需要續行,所以它都相當混亂。我想要的是這樣的:
\begin{captioned-text}{First row caption}
\lipsum[1]}
\end{captioned-text}
\begin{captioned-text}{Second row caption}
\lipsum[2]}
\end{captioned-text}
\begin{captioned-text}{Third row caption}
\lipsum[3]}
\end{captioned-text}
\begin{captioned-text}{Fourth row caption}
\lipsum[4]}
\end{captioned-text}
有了真實的文本(可能是真實文本的多個段落),這將更具可讀性。
我希望已經有一些包可以做這種事情,但我只是沒有找到它。有沒有比使用表格更好的方法來實現這個目標?
答案1
好吧,多虧了 Piotr Wydrych,我偶然發現了它mdwlist
,它正是我想要的:
\usepackage{mdwlist}
\begin{basedescript}{\desclabelwidth{4cm}}
\item[First caption] \lipsum[1]
\lipsum[2]
\item[Second caption] \lipsum[3]
\item[Third caption] \lipsum[4]
\end{basedescript}
答案2
一般來說,表格應該用來比較許多事實,而不是排版段落清單。你觀察過description
環境嗎?它適用於每個標題多個段落的情況。
\begin{description}
\item[First caption] \lipsum[1]
\lipsum[2]
\item[Second caption] \lipsum[3]
\item[Third caption] \lipsum[4]
\end{description}
答案3
以下內容並不完美(captioned-text
區塊之間的間距、固定寬度的左列/標題寬度和區塊內的分頁),但提供了您想要的介面:
\documentclass{article}
\usepackage{environ,lipsum}% http://ctan.org/pkg/{environ,lipsum}
\NewEnviron{captioned-text}[2][0.3\linewidth]{%
\noindent%
\begin{tabular}{@{}p{#1}p{\dimexpr\linewidth-#1-2\tabcolsep}@{}}
#2 & \BODY
\end{tabular}
}
\begin{document}
\begin{captioned-text}{First row caption}
\lipsum[1]
\end{captioned-text}
\begin{captioned-text}{Second row caption}
\lipsum[2]
\end{captioned-text}
\begin{captioned-text}{Third row caption}
\lipsum[3]
\end{captioned-text}
\begin{captioned-text}{Fourth row caption}
\lipsum[4]
\end{captioned-text}
\end{document}
這environ
包裹提供接口,捕獲 的全部內容captioned-text
,並將其放入固定寬度的列 中tabular
。左側列的預設寬度為0.3\linewidth
,而右側列則佔據剩餘空間。
分頁之內段落文本需要完全不同的方法(見下文)。但是,可以調整區塊之間的空間以滿足您的需求。
parcolumns
也可以用來規避以前方法的警告和缺乏分頁功能:
\usepackage{environ,lipsum,parcolumns}% http://ctan.org/pkg/{environ,lipsum,parcolumns}
\NewEnviron{captioned-text}[2][0.3\linewidth]{%
\begin{parcolumns}[colwidths={1=#1,2=\dimexpr\linewidth-#1-2em},nofirstindent]{2}
\colchunk[1]{#2}%
\colchunk[2]{\BODY}%
\end{parcolumns}
}