Pandoc输出中的表格或图像太宽,如DOCX或PDF / LaTeX

时间:2015-04-23 10:08:33

标签: pdf latex markdown pandoc

我正在使用pandoc和markdown撰写快速而肮脏的报告。

我需要以最小的麻烦生成PDF或DOCX,我不关心哪些(当然最好是两者)。此外,我对数字和表格有一定的限制 - 它们已经与另一个程序先验地生成,我宁愿能够插入它们,因为它们将它们转换为适合pandoc的需要。

但是,主要的限制是我不想手动编辑生成的文档,无论是LaTeX还是DOCX。我想在降价时进行所有编辑。

问题在于:

  • 在DOCX中,表格显示正常:它们具有文档的宽度。但是,这些数字太宽了。我可以将图像转换为较低的分辨率(看起来不太好),或者手动调整Word中的图像大小(这是不可能的)。
  • 在PDF中,生成的数字很好(或多或少),但会出现另外两个问题:
    • 表格太宽,因为没有换行符,
    • LaTeX是LaTeX,数字和表格的顺序是“重组”的,也就是说,它们不是连续的。

因此,所生成的文件都不能用于我的目的。

我想要做的就是将一些结果拼凑在一起并生成一个我可以发送给另一位科学家的文件。

问题:在pandoc中生成快速而脏的报告的最佳解决方案是什么,只需最少的工作量,至少可以看到所有结果?

更新:将pandoc升级到1.4或更高版本可以解决问题 - 这些数据现在在docx文档中的大小正确。

1 个答案:

答案 0 :(得分:4)

控制图像尺寸

目前,您无法直接从Markdown控制该功能。对于LaTeX / PDF输出,这由LaTeX / pdflatex自动处理。

最近几个月,Pandoc开发人员和用户社区一直在讨论如何最好地实现它并创建易于使用的语法,例如

![Image Caption](./path/to/image.jpg "Image Comment"){width="60%", height="150px"}

警告:仅限示例,当场制作+我自己从空气中提取 - 无法记住讨论的最新状态......)这是为了转移而设计的 所有 支持的输出格式,可以包含图像,而不仅仅是LaTeX / PDF。

因此,计划成为Pandoc下一个主要版本的主要新功能,并且将开始在ODT / DOCX输出中更好地工作。

控制表格/单元格宽度和单元格内的换行符

您如何使用Markdown语法指定表格?

您是否知道Pandoc支持多种变体,例如gid_tablespipe_tablessimple_tablesmultiline_tables

您应该考虑使用pandoc --from=markdown+multiline_tables ...作为命令,并在Markdown中将关键表格写为multiline_tables

通过man pandoc_markdown ...

了解详情

多行表可以对输出中各列的宽度进行有限控制,只需通过加宽或缩小降价源本身的列宽即可。

输出LaTeX / PDF时的图表顺序

Pandoc支持将raw_tex行和环境插入Markdown源文件。当遇到这样的行时,它会将它们未更改地传输到其LaTeX输出中。 (但是对于所有其他输出,它将被忽略。)

所以你可以插入像

这样的行
\newpage{}

进入Markdown以强制执行分页符。这已经为您提供了一些有限的控制,可以保持错误的数字或表格的顺序。 (毕竟,你说你寻找一个“快速而肮脏”的方法,而不是复杂的排版文档...)

当然,如果你更了解LaTeX,你也可以使用像 Markdown中的/FloatBarrier

走这条路(将LaTeX代码混合到Markdown)会给你带来一些缺点:

  1. Markdown不再那么漂亮了。
  2. Markdown无法与其他输出格式完全兼容(如果需要)。
  3. 但优势仍然是:

    1. 您将在Markdown中更快地编写和修改文档文本,而不是在LaTeX中创作文档文本。
    2. 您可以对PDF的最终外观进行一些额外的控制:
      • 表格+数字的顺序
      • 看表+表的宽度+数字(因为,你当然可以插入一个完整的LaTeX'数字'或'表'环境)。