背景

背景

背景

使用 Pandoc 生成来自 R Markdown 文档的表格。

问题

Pandoc 没有办法覆盖为 Markdown 表生成的代码。因此,似乎没有办法指示 Pandoc 包含heresplit。也就是说,Pandoc 无法生成以下代码:

\startplacetable[location={here, split}]

最小工作示例

下面的代码显示了这个问题:

\starttext
\startplacetable[title={Average Annual Temperatures}]
\startxtable
\startxtablehead[head]
\startxrow
\startxcell[align=middle,width={0.10\textwidth}] Year \stopxcell
\startxcell[align=middle,width={0.14\textwidth}] Value \stopxcell
\stopxrow
\stopxtablehead
\startxtablebody[body]
\dorecurse{100}{%
\startxrow
\startxcell[align=middle,width={0.10\textwidth}] 1880 \stopxcell
\startxcell[align=middle,width={0.14\textwidth}] 0.1146 \stopxcell
\stopxrow}
\stopxtablebody
\startxtablefoot[foot]
\startxrow
\startxcell[align=middle,width={0.10\textwidth}] 2018 \stopxcell
\startxcell[align=middle,width={0.14\textwidth}] 1.014 \stopxcell
\stopxrow
\stopxtablefoot
\stopxtable
\stopplacetable
\stoptext

得出的结果为:

无桌子分割

改变命令选项startplacetable产生了所需的结果,但需要修改从 pandoc 生成的输出:

\startplacetable[title={Average Annual Temperatures}, location={here,split}]

已启用跨页面拆分:

拆分表

想法

我的第一反应是改变表格的设置:

\setupfloat[table][location={here,split}]

这没有奏效,因为location 范围宏的与宏的选项\setupfloat不同。location\startplacetable

过去,我曾sed在 shell 脚本中使用\startplacetable来替换\startplacetable[location={split}],但这是一个脆弱的解决方案。

使用\setupxtablesplit=yes选项也不起作用,可能是因为极端表嵌入在带标题的浮点数中:

\setupxtable[frame=off,split=yes,header=repeat,footer=repeat]

另一个想法是重新定义\startplacetable。例如:

\def\oldstartplacetable\startplacetable

\define[1]\startplacetable{
  \oldstartplacetable[#1,location={split}]
}

但这不能编译。

问题

在不更改 pandoc 生成的代码的情况下,如何让\startplacetable环境内的所有极端表跨页面拆分?

答案1

浮点数的默认位置不称为location但是default

\setupfloat[table][default={here,split}]

相关内容