与 Pandoc 一起使用的表格布局

问题描述 投票:0回答:2

我正在尝试创建文档生成工作流程(专业文档)。目标是尽可能多地用 Markdown 编写。生成的文档应该是 PDF,同时仍然能够在必要时导出为 .docx。

我选择了 Pandoc,我将为其创建一个 Latex 模板并使用 YAML 文档来保存文档元数据。到目前为止,一切都很好。然而,我有时需要使用表格,从非常简单的表格到更复杂的布局,例如列跨越。

除了最简单的表格外,Markdown 几乎无法用于任何其他内容。我尝试使用 HTML 来定义更复杂的表格布局,但 Pandoc 似乎不知道如何处理列或行跨越。

除了在 Latex 中完全定义表格之外,是否有任何其他替代方案可以使用易于维护的方法来定义表格,同时仍然能够使用 Pandoc 将其转换为 Latex/PDF?

更复杂的表格示例(取自此处):

<body>
<table border="1">

<!-- First row -->

<tr>
<td>1</td>
<td colspan="2">2 and 3</td>
<td>4</td>
</tr>

<!-- Second row -->

<tr>
<td rowspan="3">5, 9 and 13</td>
<td>6</td>
<td>7</td>
<td>8</td>
</tr>

<!-- Third row -->

<tr>
<td>10</td>
<td>11</td>
<td>12</td>
</tr>

<!-- Fourth row -->

<tr>
<td colspan="3">14, 15 and 16</td>
</tr>

</table>
</body>

这是 PDF 格式的结果:

PDF result

latex markdown pandoc
2个回答
5
投票

pandoc 2.10版本开始,其内部文档AST可以表示表的col-和rowspans。

在后续版本中添加了对各种输入和输出格式的支持(html 和 Latex 应该已经可以使用),更多功能正在开发中

使用 Markdown 时,请查看

网格表格...

旧答案

如果您绝对需要多种输出格式的单元格跨度,那么最好的选择是以您想要的任何格式(例如 HTML 甚至

reStructuredText

)编写表格(在 pandoc markdown 的代码块或 
<div class="table"> 内)。然后,您可以编写一个 pandoc 过滤器,将 pandoc AST 的这一部分转换为 HTML,以及另一个将其转换为 LaTeX 的过滤器。


3
投票
来自

https://github.com/jgm/pandoc/wiki/Pandoc-vs-Multimarkdown “Pandoc 的管道表 [...] 不具备 MMD 管道表的所有功能(节、列跨度、行跨度、分组)。”

因此,也许一种解决方法是在单独的文件中处理

reStructuredText 中的(复杂)表,然后将它们包含在内。这只是我的 2 美分,因为几周后我可能就要面对这项任务。如果您找到解决方案,请发布!我很好奇,你好!

© www.soinside.com 2019 - 2024. All rights reserved.