我正在尝试编写一个包含段落列表的文档,其中每个段落的第一行左侧显示一个介绍性标题,这样标题将显示在左列中,而段落将显示在右列中。所有这些都显示在标准的单列文章中。
我想到的是使用表格。我有:
\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}
}