Pandoc 生成的 PDF 包含大图像,如何让它们适合页面?

Pandoc 生成的 PDF 包含大图像,如何让它们适合页面?

我正在使用 pandoc 从我的 markdown 代码生成 pdf 输出。到目前为止,它运行良好,没有任何警告或错误,除了数字很大,因此一些数字被剪切并且不适合页面。我需要将所有数字重新缩放 40%。我该如何执行此操作?我在哪里指定此类信息?

答案1

您可以更改default.latex模板以允许水平垂直扩展。

  1. 获取模板:

    pandoc -D latex > mytemplate.latex
    
  2. 找到部分$if(graphics)$...$endif$并将其内容替换为:

    \usepackage{graphicx}
    % Redefine \includegraphics so that, unless explicit options are
    % given, the image width will not exceed the width or the height of the page.
    % Images get their normal width if they fit onto the page, but
    % are scaled down if they would overflow the margins.
    \makeatletter
    \def\ScaleWidthIfNeeded{%
     \ifdim\Gin@nat@width>\linewidth
        \linewidth
      \else
        \Gin@nat@width
      \fi
    }
    \def\ScaleHeightIfNeeded{%
      \ifdim\Gin@nat@height>0.9\textheight
        0.9\textheight
      \else
        \Gin@nat@width
      \fi
    }
    \makeatother
    
    \setkeys{Gin}{width=\ScaleWidthIfNeeded,height=\ScaleHeightIfNeeded,keepaspectratio}%
    
  3. 使用选项调用 pandoc--template=mytemplate.latex

答案2

Pandoc 提供了不同的后端。如果你使用 ConTeXt,只需添加

\setupexternalfigures[factor=fit]

您的序言和图形大于页面宽度将自动缩放到页面宽度。

如果要将所有图形缩放至原始大小的 40%,请添加

 \setupexternalfigures[scale=400] 

答案3

我的 pandoc 版本 (1.12.2.1) 已经在 LaTeX 模板中包含了确保图像宽度不超过页面宽度的代码。但是,当我在序言中加载 graphicx 包时,它仍然不起作用。然后调整 includegraphics 命令的代码未执行。我通过将执行调整的代码复制到我的序言中解决了这个问题。

相关内容