【问题标题】:How to make horizontal layout of pandoc markdown tables?如何使pandoc降价表的水平布局?
【发布时间】:2015-12-08 09:54:13
【问题描述】:

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的内容是以下数据。

数据.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. 

通过对数据运行上述代码给予

评论

  • 我想要一个水平布局,这样表格就可以适应它。我不知道我应该影响到哪个阶段才能拥有它。 我认为在最后一个 pandoc 进程中应该是可能的。

稀疏表周围空间过多

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

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


怎样才能有水平的pandocing布局?

【问题讨论】:

  • 您的输入数据是什么样的?它似乎托管在文件 data.tex 中。文件名后缀表明它是 (La)TeX。命令行开关 -f markdown 告诉 pandoc 将该输入作为 Markdown 来处理...什么给出?
  • @KurtPfeifle 示例数据位于问题正文的示例数据部分,您可以将其另存为 data.tex
  • 那么请通过将数据标记为 data.tex 的内容” 或类似名称来明确这一事实,而不仅仅是“数据”。
  • 再次,您在插图中添加了另一个 PDF 输出表,但没有提供生成它所需的输入数据。请放弃对这些不完整问题的任何有用答案的希望。请开始应用基本逻辑。请不要假设你的读者知道你知道什么。

标签: html latex markdown pandoc


【解决方案1】:

每当您使用 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 屏幕截图,以便在此处显示):

【讨论】:

  • 我将您的答案扩展到具有完整表和稀疏表的条件,请参阅问题的正文。 Pandoc 如何动态处理此类表?我想缩小稀疏表。
  • 对不起,我不喜欢你“扩展”并过多地改变我的答案。我建议您执行以下操作:(1) 重新处理您的原始问题以明确您想要什么。因为即使对我来说也不清楚——即使你做出了我的回答,对我来说这是一个“射入黑暗”,被接受的答案。 (2) 在您的扩展程序中添加您自己的答案。我什至会赞成它,如果它确实值得这样做。 :-)
  • 这个案例到这里就完成了。我添加了一个关于已接受答案的扩展,其中显示了一个限制。因此,一个新的线程。没有必要在此处添加扩展作为答案,这太过分了。建议答案的输出是我对答案的期望最少的,因此我添加了命令的输出,以便于预览。在这里和新线程中的改进总是受欢迎的!我认为答案的反馈会很有成效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 2019-04-13
相关资源
最近更新 更多