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

Jan*_*ary 5 pdf markdown latex pandoc

我正在使用pandoc和markdown写一个快速而肮脏的报告.

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

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

这是问题所在:

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

因此,生成的文档都不能用于我的目的.

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

问题:在pandoc中以最小的努力生成快速而脏的报告的最佳解决方案是什么,并且至少所有结果都可见?

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

Kur*_*fle 5

控制图像大小

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

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

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

警告:仅示例,现场制作+我自己从空气中提取 - 不记得讨论的最新状态......)这旨在然后传输到所有支持的可以包含图像的输出格式,不仅仅是 LaTeX/PDF。

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

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

您如何在 Markdown 语法中准确指定您的表格?

您是否知道Pandoc支持多种变化一样gid_tablespipe_tablessimple_tablesmultiline_tables

您应该研究 usingpandoc --from=markdown+multiline_tables ...作为您的命令并像multiline_tables在 Markdown 中一样编写关键表。

通过man pandoc_markdown...阅读所有详细信息

多行表可以让您对输出中各个列的宽度进行有限的控制,只需在 Markdown 源本身中加宽或缩小列宽即可。

输出 LaTeX/PDF 时的图表顺序

Pandoc 支持在raw_texMarkdown 源文件中插入行和环境。当它遇到这样的行时,它会将它们原封不动地传输到它的 LaTeX 输出中。(但对于所有其他输出,它将被忽略。)

所以你可以插入像

\newpage{}
Run Code Online (Sandbox Code Playgroud)

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

当然,如果你对 LaTeX 了解得越来越多,你也可以/FloatBarrier在 Markdown 中使用类似的东西 。

沿着这条路走下去(将 LaTeX 代码混合到 Markdown 中)会给您带来一些缺点:

  1. Markdown 看起来不再那么漂亮了。
  2. Markdown 无法与其他输出格式完全兼容(如果您需要它们)。

但优点仍然是:

  1. 与在 LaTeX 中创作相比,您在 Markdown 中编写和修改文档文本的速度要快得多。
  2. 您对 PDF 的最终外观有一些额外的控制:
    • 表格+数字的顺序
    • 外观 + 表格宽度 + 数字(因为,您当然可以插入完整的 LaTeX 'figure' 或 'table' 环境)。