背景

背景

背景

wiki 生成 HTML 页面,然后通过 pandoc 转换为 ConTeXt。最终目标是使用 XWiki(一种基于 Java 的工具)将 wiki 页面生成 PDF。

问题

Pandoc 用途启动表,这是一个弃用的表语法并严重妨碍了表格的格式化。即使使用,表格也不会尊重文本边距,从而产生难以辨认的结果,例如:\setuptables[textwidth=\textwidth]

文本边距失败

代码

pandoc生成的代码:

\placetable[none]{}
\starttable[|l|l|]
\HL
\NC {\bf Term}
\NC {\bf Definition}
\NC\AR
\NC ERD
\NC Entity-Relationship Diagram
\NC\AR
\NC ETL
\NC Extract, Transform, and Load
\NC\AR
\HL
\stoptable

此代码无法更改 - 它是 pandoc 生成的代码,并且依赖于 wiki 页面中存储的信息。如果用户决定更新 wiki 页面,则 pandoc 生成的内容将有所不同。也就是说,没有手动编辑的 TeX 代码,只有机器处理的代码。

问题

缺少写pandoc 过滤器或者修复 pandoc,宏\starttable(包括其基本命令)被覆盖以使用表格或者自然桌

相关地,如何使用 pandoc 抑制生成的列宽?即:

  • 前:\starttable[|l(0.2\textwidth)|l(0.8\textwidth)|]
  • 后:\starttable[|l|l|]

如果提出重新定义 \starttable 宏(及其配套命令)的解决方案,那么抑制宽度可能会变得无关紧要。

环境

  • pandoc v2.0.6
  • ConTeXt MKIV v2018.01.04 17:37

有关的

相关问题包括:

答案1

我的请求请求

ConTeXt 编写器:使用 xtables 代替 Tables#4223

已合并到master分支,因此将成为 pandoc 下一个版本的一部分。

极限桌

Markdown 输入

| Field             | Entity              | Column                 | Notes            |
|-------------------|---------------------|------------------------|------------------|
| Level             | COGNITIVE_LEVEL     | LEVEL                  | Via ASSESSMENT   |
| **Count** / Total | ASSESSMENT_ANSWER   | ASSESSMENT_QUESTION_ID | Count the number |
| Count / **Total** | ASSESSMENT_QUESTION | ASSESSMENT_QUESTION_ID | Count the number |

然后可以使用

pandoc -f markdown -t context -o test.tex test.md

生成极限表

\startplacetable[location=none]
\startxtable
\startxtablehead[head]
\startxrow
\startxcell Field \stopxcell
\startxcell Entity \stopxcell
\startxcell Column \stopxcell
\startxcell Notes \stopxcell
\stopxrow
\stopxtablehead
\startxtablebody[body]
\startxrow
\startxcell Level \stopxcell
\startxcell COGNITIVE_LEVEL \stopxcell
\startxcell LEVEL \stopxcell
\startxcell Via ASSESSMENT \stopxcell
\stopxrow
\startxrow
\startxcell {\bf Count} / Total \stopxcell
\startxcell ASSESSMENT_ANSWER \stopxcell
\startxcell ASSESSMENT_QUESTION_ID \stopxcell
\startxcell Count the number \stopxcell
\stopxrow
\stopxtablebody
\startxtablefoot[foot]
\startxrow
\startxcell Count / {\bf Total} \stopxcell
\startxcell ASSESSMENT_QUESTION \stopxcell
\startxcell ASSESSMENT_QUESTION_ID \stopxcell
\startxcell Count the number \stopxcell
\stopxrow
\stopxtablefoot
\stopxtable
\stopplacetable

本地设置headbodyfoot已在 pandoc 独立模板中预定义。如果未使用独立版本,请将其添加\setupxtable[head,body,foot][]到您的文档中。下面显示的是独立模板的输出。

在此处输入图片描述

天然桌

+ntb为了实现最大的灵活性,我们提供了一个扩展来代替编写自然表。它可以通过添加到 ConTeXt 编写器来激活。

pandoc -f markdown -t context+ntb -o test.tex test.md

这会产生

\startplacetable[location=none]
\startTABLE
\startTABLEhead
\NC Field
\NC Entity
\NC Column
\NC Notes
\NC\NR
\stopTABLEhead
\startTABLEbody
\NC Level
\NC COGNITIVE_LEVEL
\NC LEVEL
\NC Via ASSESSMENT
\NC\NR
\NC {\bf Count} / Total
\NC ASSESSMENT_ANSWER
\NC ASSESSMENT_QUESTION_ID
\NC Count the number
\NC\NR
\stopTABLEbody
\startTABLEfoot
\NC Count / {\bf Total}
\NC ASSESSMENT_QUESTION
\NC ASSESSMENT_QUESTION_ID
\NC Count the number
\NC\NR
\stopTABLEfoot
\stopTABLE
\stopplacetable

在此处输入图片描述

相关内容