我正在尝试复制具有类似以下结构的 Word 文档:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{p{0.2\textwidth}|p{0.76\textwidth}}
\hline
\multirow[t]{3}*{Text} &
Text\\
\cline{2-2}&Text\\
\cline{2-2}&Text\\
%%%%%%%%%%%%
\hline \multirow[t]{2}*{Text} &
Text\\
\cline{2-2}&Text\\
\hline
\end{tabular}
\end{document}
当表格适合单页时,这种方法效果很好(尽管必须手动指定多行的跨度很烦人)。但是,我的内容跨越多页。即使是单个右侧“单元格”也可能跨越几页。目前,我必须使用longtable
并将内容手动分成多个单元格,但随后我必须手动跟踪右侧分割的位置以及每个左侧单元格有多少个右侧单元格。
我也想过用 来description
实现这个结构,但是又不知道怎么画线。
有没有更好的方法来做到这一点?
答案1
更新在后续问题之后。
这种方法依赖于paracol
包来同步写入两列。
更重要的是,它可以处理分页符。
在这个例子中,该\switchcolumn
命令将导致文本转到右列。
\Rrule
将在右列放置一行。
\Lrule
做两件事:它绘制一条两列的线并执行\switchcolumn*
切换到左列以开始同步列。
\Frule
在 paracol 外面使用,将绘制全宽线。
\documentclass{article}
\usepackage{paracol}% added <<<<<<<<<
\usepackage{kantlipsum} % only for dummy text
\newcommand{\Frule}{\vspace{-\topskip}\noindent\mbox{\rule{\linewidth}{0.5pt}}} % full width column rule
\newcommand{\Lrule}{\switchcolumn*\noindent\mbox{\rule{\dimexpr\columnwidth+0.5\columnsep}{0.5pt}}\par} %one column left rule
\newcommand{\Rrule}{\hspace{\dimexpr-0.5\columnsep-\parindent}\mbox{\rule{\dimexpr\columnwidth+0.5\columnsep}{0.5pt}}\par} % one column right rule
\begin{document}
\setlength{\columnseprule}{0.5pt} % width of the vertical rule
\columnratio{0.3} % column ratio
\setlength{\columnsep}{20pt} % column separation
\setlength{\parindent}{0pt}
\Frule % full textwidth rule when outside paracol
\begin{paracol}{2}\sloppy
A. As any dedicated reader can clearly see, the Ideal of
practical reason is a representation of, as far as I know, the things
in themselves; as I have shown elsewhere, the phenomena should only be
used as a canon for our understanding.
\switchcolumn
2. \kant[2]
\Rrule %column wide rule
3. \kant[3]
\Lrule
B. Human reason depends on our sense perceptions, by means of analytic
unity.
\switchcolumn% continue in the right column
\Rrule %column wide rule
4. \kant[11]
\Rrule
9. \kant[9]
\Rrule
11. \kant[1]
\vspace*{\baselineskip}% add a blank line
\end{paracol}
\Frule % full textwidth rule when outside paracol
\end{document}