根据工作区模板,我在 ConTeXt 中有一个这样的表格,每个单元格周围都有边框。
\startsetups table:all
\setupTABLE[align={hyphenated, normal}]
\setupTABLE[frame=on]
\stopsetups
\startsetups table:three
\setupTABLE[column][1][width=0.333\textwidth, align=right, distance=0.05\textwidth]
\setupTABLE[column][2][width=0.333\textwidth, align=right]
\setupTABLE[column][2][width=0.333\textwidth, align=right]
\stopsetups
\starttext
\startTABLE[setups={table:all, table:three}]
\NC column 1 \NC column 2 \NC \input knuth \input knuth \input knuth \input knuth \input knuth \input knuth \input knuth \input knuth \NC\NR
\stopTABLE
\stoptext
每列中的数据都非常长,因此不幸的是,数据从页面底部消失了。
我试过了split=yes
,但这样会分割表格,而不是单元格中间。大单元格仍然超出页面底部。
如何将表格单元格一分为二,以便数据继续显示到下一页?
答案1
您可以使用leftframe, rightframe, topframe, bottomframe
选项来伪造更大的单元格。
如果您对输入有完全控制权,您可以按段落或任何其他自然划分来拆分较长的条目。这看起来像:
\usemodule[visual]
\startsetups table:all
\setupTABLE[align={hyphenated, normal}]
\setupTABLE[frame=off]
\setupTABLE[split=yes]
\stopsetups
\startsetups table:three
\setupTABLE[column][1][width=0.333\textwidth, align=right, distance=0.05\textwidth]
\setupTABLE[column][2][width=0.333\textwidth, align=right]
\setupTABLE[column][2][width=0.333\textwidth, align=right]
\stopsetups
\define\filler{\fakenwords{30}{5}}
\starttext
\setupTABLE[r][1,4][leftframe=on, topframe=on, rightframe=on]
\setupTABLE[r][2,5][leftframe=on, rightframe=on]
\setupTABLE[r][3,6][leftframe=on, bottomframe=on, rightframe=on]
\startTABLE[setups={table:all, table:three}]
\NC column 1 \NC column 2 \NC \filler \NC\NR
\NC \NC \NC \filler \NC\NR
\NC \NC \NC \filler \NC\NR
\NC column 1 \NC column 2 \NC \filler \NC\NR
\NC \NC \NC \filler \NC\NR
\NC \NC \NC \filler \NC\NR
\stopTABLE
\stoptext
如果您正在使用csv
输入,那么可能可以解析 lua 中的输入,以根据指定的模式拆分较长的条目,然后生成要输入的“顶部”、“中间”和“底部”单元格编号列表setupTABLE[r][...]
。但这取决于您的具体需求。