如何制作pandoc降价表的水平布局?

时间:2015-09-11 18:44:56

标签: html latex markdown pandoc

Code

pandoc                              \
     data.tex                       \
    -f markdown                     \
    -t html                         \
                                    \
| grep -E '(^<|^$|^ *$)'            \
                                    \
| grep -v '^<p'                     \
                                    \
| perl -pe 's#(?<!\\)%.*</#</#'     \
                                    \
| pandoc                            \
    -f html                         \
    -o vertical_output.pdf          \
    --latex-engine=xelatex

给出垂直布局的表格作为输出,见下图。

需要水平表的示例情况

文件 data.tex 的内容是以下数据。

Data.tex:

--------------------------------------------------------------------------------------------------------------------------------------------
Name            Description     Location        Examples            Start            Peak            Duration        Appearance
--------------- --------------- --------------  ------------------- ---------------- --------------  ---------------  -------------------
Prandial        short-acting    belly,          Lispro (Humalog),   5-10 min before  30-60 minutes   2-4 hours       Transparent
                analogs         abdomen         Aspart (Novorapid), meal
                = chemically                    Glulisine (Apidra)
                sythesized;


Regular/short   human insulin   addomen         Humulin R           30 min before    60 minutes      6-8 hours,       Transparent
                not analog                                          meal                             hypoglycemia
                                                                    not flexible                     risk 
-------------------------------------------------------------------------------------------------------------------------------------------

Table: Diabetic drugs parndial and basal. Location, start, peak, duration and appearance. 

通过运行上述代码给出数据

enter image description here

评论

  • 我想要一个水平布局,以便将表调整到它。我不知道我应该影响到哪个阶段。 我认为应该可以在最后一个pandoc -process中使用它。

稀疏表周围的空间太多

一个文档有许多类型的表。 如果表格相当满,则当前接受的答案很有效,但对于稀疏表格则很糟糕。 使用接受的答案-V geometry:"paperwidth=22in, paperheight=210mm, margin=2cm"的参数,我们得到:

enter image description here

第二个表扩展得太多;我想让它更窄;但不确定这是否可以在Pandoc中动态实现。

你怎么能有pandocing的水平布局?

1 个答案:

答案 0 :(得分:2)

每当您使用Pandoc生成PDF输出时,您可以通过添加命令行来控制文件的页面大小。例如,生成宽度为22英寸,高度为210毫米的页面,同时将每个边距保持在2厘米,请使用此Pandoc参数:

-V geometry:"paperwidth=22in, paperheight=210mm, margin=2cm"

我希望这个例子能说明如何以不同的方式影响输出纸张尺寸。

但是,我不知道它是否回答了你的问题。我必须承认,你的问题对我来说不是很清楚。

我的答案可能会在搜索horizontal layout pandoc markdown时帮助其他人。

尝试完整命令

首先,12英寸宽度:

pandoc                              \
     data.tex                       \
    -f markdown                     \
    -t html                         \
                                    \
| grep -E '(^<|^$|^ *$)'            \
                                    \
| grep -v '^<p'                     \
                                    \
| perl -pe 's#(?<!\\)%.*</#</#'     \
                                    \
| pandoc                            \
    -f html                         \
    -o vertical_output1.pdf         \
    --latex-engine=xelatex          \
    -V geometry:"paperwidth=12in, paperheight=80mm, margin=0.5cm"

其次,14英寸宽度:

pandoc                              \
     data.tex                       \
    -f markdown                     \
    -t html                         \
                                    \
| grep -E '(^<|^$|^ *$)'            \
                                    \
| grep -v '^<p'                     \
                                    \
| perl -pe 's#(?<!\\)%.*</#</#'     \
                                    \
| pandoc                            \
    -f html                         \
    -o vertical_output1.pdf         \
    --latex-engine=xelatex          \
    -V geometry:"paperwidth=14in, paperheight=80mm, margin=0.5cm"

输出(来自PDF的PNG屏幕截图,使其在此处可见):