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

时间:2015-07-04 11:20:29

标签: latex markdown pandoc

thread是关于如何使用多行表执行此操作。 但是,我需要在原始数据中使用更严格的语法,以便在绘图注释中使用AWK和Gnuplot进行更好的二次数据计算。

Pandoc管道表

原始数据

-------------------------------------------------
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>

可以通过下表使用相同的命令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管道表

我有一条建议使用丑陋的表here

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

但是运行pandoc /tmp/1.tex -f markdown -t html会产生与管道表相同的不成功输出。

<2> Kurt评论后的两张桌子

测试数据,我遗漏了“:” - 标记

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

Resistanssi R = 5 T\Omega

Table: Asetukset elektromateriaaliselle virralle.



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

muuttuva virta

kuormitus

Table: Elektrokarakteristiset ominaisuudet.

错误地产生

enter image description here

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

操作系统:Debian 8.5,OS X El Capitan
硬件:华硕Zenbook UX303UA,Macbook Air 2013-mid

1 个答案:

答案 0 :(得分:3)

一般规则

您的表有三个不同的问题。其中两个与格式错误有关:破折号(仅包含三个或更多-的标志)和空行。最后一个是关于单列表。

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

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

  3. 如果表格标题不是前面的,那么pandoc似乎无法识别单列表格。这可能是因为没有其他方法可以区分单列表和2级表头。

  4. 为什么当前表不能按预期工作

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

    你添加的“Kurt评论后的两张桌子”也是不正确的。它们有空行,但没有多行表的其他属性(即开始和结束虚线)。

    什么会起作用

    与表类型保持一致:不要对管道表使用任何虚线或任何空行。如果表格标题只有一列,请小心在表格前添加表格标题。

    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
    

    enter image description here