背景
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
本地设置head
、body
和foot
已在 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