背景
使用 Pandoc 生成来自 R Markdown 文档的表格。
问题
Pandoc 没有办法覆盖为 Markdown 表生成的代码。因此,似乎没有办法指示 Pandoc 包含here
或split
。也就是说,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}]
,但这是一个脆弱的解决方案。
使用\setupxtable
的split=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}]