【问题标题】:Tables or images too wide in Pandoc output as DOCX or PDF/LaTeXPandoc 输出中的表格或图像太宽,如 DOCX 或 PDF/LaTeX
【发布时间】:2015-04-23 10:08:33
【问题描述】:

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

我需要以最少的麻烦生成 PDF 或 DOCX,我不太在意哪个(当然最好两者兼而有之)。此外,我对数字和表格有些限制——它们是由另一个程序先验生成的,我宁愿能够按原样插入它们,然后将它们转换为适合 pandoc 的需求。

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

问题来了:

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

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

我想做的只是将一些结果汇总并生成一个文件,我可以将其发送给另一位科学家。

问题:在 pandoc 中以最少的努力和至少所有结果可见的快速而肮脏的报告的最佳解决方案是什么?

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

【问题讨论】:

    标签: pdf latex markdown pandoc


    【解决方案1】:

    控制图像大小

    目前您无法直接从 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 支持在 Markdown 源文件中插入 raw_tex 行和环境。当它遇到这样的行时,它会将它们原封不动地传输到它的 LaTeX 输出中。 (但对于所有其他输出,它将被忽略。)

    所以你可以插入类似的行

    \newpage{}
    

    进入 Markdown 以强制分页。这已经使您对保持行为不端的图形或表格的顺序进行了一些有限的控制。 (毕竟,你说你寻找的是一种“又快又脏”的方法,而不是复杂的排版文档……)

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

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

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

    但优势仍然是:

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

    【讨论】:

    • 感谢您的评论。我放弃了降价,只是将内容复制到单词中——这似乎是最简单的解决方案。不过还是谢谢。是的,我非常了解 LaTeX(用 LaTeX 发表了几篇论文),这是我讨厌使用它的主要原因之一。
    • P.S.似乎使用 ImageMagick 转换数字并使用适当的 -density 设置选项 -units PixelPerInch 对图像输出起到了作用。没关系——只是日常工作太麻烦了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多