如何将 pandoc 管道表编译成 html?

How to compile pandoc pipe tables into html?

这个 thread 是关于如何使用多行 table 来做到这一点。 但是,我需要在原始数据中使用更严格的语法,以便在起草笔记中使用 AWK 和 Gnuplot 进行更好的二次数据计算。

Pandoc 烟斗 tables

原始数据

-------------------------------------------------
Size      | File  |  EventSize | W.Events | fafa  
----------|-------|------------|----------|------
L805067   | 009   | L805+4     | 1000     |  -      
L805067   | 001   |  L805+4    | 1000     |  - 
-------------------------------------------------

manual 表示可以将扩展名 +pipe_tables 添加到 markdown。 我 运行 未成功执行以下操作,但未获取由 HTML 语法分隔的字段:

pandoc data.tex -f markdown+pipe_tables -t html 

仅提供(我在没有扩展名的情况下也得到相同的输出)

<table>
<tbody>
<tr class="odd">
<td align="left">Size | File | EventSize | W.Events | fafa</td>
</tr>
<tr class="even">
<td align="left">----------|-------|------------|----------|------</td>
</tr>
<tr class="odd">
<td align="left">L805067 | 009 | L805+4 | 1000 | -</td>
</tr>
<tr class="even">
<td align="left">L805067 | 001 | L805+4 | 1000 | -</td>
</tr>
</tbody>
</table>

正确输出

<table>
<colgroup>
<col width="15%" />
<col width="12%" />
<col width="16%" />
<col width="13%" />
<col width="9%" />
</colgroup>
<thead>
<tr class="header">
<th align="left">Size</th>
<th align="center">File</th>
<th align="left">EventSize</th>
<th align="left">W.Events</th>
<th align="left">fafa</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td align="left">L805067</td>
<td align="center">009</td>
<td align="left">L805+4</td>
<td align="left">1000</td>
<td align="left">-</td>
</tr>
<tr class="even">
<td align="left">L805067</td>
<td align="center">001</td>
<td align="left">L805+4</td>
<td align="left">1000</td>
<td align="left">-</td>
</tr>
</tbody>
</table>

可以用下面的table用同样的命令生成pandoc /tmp/1.tex -f markdown -t html:

-------------------------------------------------
Size        File    EventSize   W.Events  fafa
---------- -------  ----------- --------  -------
L805067     009     L805+4      1000       -

L805067     001     L805+4      1000       -
-------------------------------------------------

Pandoc Ugly 管道 tables

我得到了使用丑陋 tables here:

的建议
-------------------------------------------------
Size      | File  |  EventSize | W.Events | fafa
----------|-------|------------|----------|----:
L805067   | 009   | L805+4     | 1000     |  -
L805067   | 001   |  L805+4    | 1000     |  -
-------------------------------------------------

but 运行ning pandoc /tmp/1.tex -f markdown -t html 给出与上面使用管道 tables 相同的不成功输出。

Kurt 发表评论后两 table 秒

我遗漏“:”标记的测试数据

Asetukset
--------------------------------------------------
Virta I = 1-100 nA

Resistanssi R = 5 T\Omega

Table: Asetukset elektromateriaaliselle virralle.



Tilanteet
---------------------------------------------
tasainen virta

muuttuva virta

kuormitus

Table: Elektrokarakteristiset ominaisuudet.

产生错误

通过当前答案中提供的代码。

OS:Debian 8.5,OS X El Capitan
硬件:华硕 Zenbook UX303UA、Macbook Air 2013 年中期

一般规则

您的 table 存在三个不同的问题。两个与格式不正确有关:虚线(仅包含三个或更多 - 的线)和空行。最后一个大概是one-columntables.

  1. 虚线在 pandoc 中可以解释为:

    • 一条横线(html中的<hr/>
    • 上一行文字为2级的标记Setext-styleheaders
    • 多行table的开始和结束标记(并且只有多行table:它们不适用于管道table s,简单 tables 或网格 tables)
  2. tables 中的空行 仅允许用于多行 tables(它们不适用于简单、管道和网格 tables)。在多行 table 中,它们用作行分隔符。

  3. 如果 one-column table 没有 table 在 之前,pandoc 似乎无法识别它们] 标题。这可能是因为没有其他方法可以区分 one-column table 和 level-2 header。

为什么当前的 table 没有按预期工作

您的第一个 table 是一个不正确的管道 table。它有两条虚线,一条在开头,一条在结尾。

您添加的"Two tables after Kurt's comment"也不正确。它们有空行,但没有多行的其他属性 table(即开始和结束虚线)。

什么会起作用

与 table 类型保持一致:不要对竖线 table 使用任何虚线或任何空行。如果只有一列,请注意在 table 之前添加 table 标题。

pandoc test.md -o test.pdf

Size      | File  |  EventSize | W.Events | fafa  
----------|-------|------------|----------|------
L805067   | 009   | L805+4     | 1000     |  -      
L805067   | 001   |  L805+4    | 1000     |  - 

Table: Title

Table: Asetukset elektromateriaaliselle virralle.

Asetukset
--------------------------------------------------
Virta I = 1-100 nA
Resistanssi R = 5 T$$\Omega$$


Table: Elektrokarakteristiset ominaisuudet.

Tilanteet
---------------------------------------------
tasainen virta
muuttuva virta
kuormitus