使用pandoc将markdown转换为pdf时如何强制图像到文本

bni*_*uhr 5 pdf figures pandoc

我制作了一个GitHub wiki - 一个软件包的手册 - 我想把它变成一本漂亮的pdf手册.但是,我在使用数字方面遇到了一些麻烦 - 其中很多都放在下面的一个页面中,大部分都放在文本中应该是的位置之后,是什么让文档很难阅读.

为此,我基本上遵循了这里建议的内容.基本上这个想法是:

  1. 克隆GitHub wiki;

  2. 使用pandoc将markdown文件转换为单个pdf:

    pandoc -s FirstSection.md FirstSection.md FirstSection.md -o manual.pdf

会发生什么事情,我有一系列短句,每个句子后跟一个数字(例如,看看这里).当我打开生成的pdf时,每个数字都不在wiki之前的句子之后,而是我有一系列的句子和连续的序列图,但它使文档很难遵循.

有没有办法强制图像在放置它们的文本后面,并避免在图像之前有文字?

我找到了一些Rmarkdown的解决方案,但它们对我不起作用.

提前致谢!

mb2*_*b21 11

Pandoc 默认使用LaTeX进行PDF创建.

使用外部文件

以下内容放入header.tex:

\makeatletter
\def\fps@figure{h}
\makeatother
Run Code Online (Sandbox Code Playgroud)

或者,以下内容:

\usepackage{float}
\let\origfigure\figure
\let\endorigfigure\endfigure
\renewenvironment{figure}[1][2] {
    \expandafter\origfigure\expandafter[H]
} {
    \endorigfigure
}
Run Code Online (Sandbox Code Playgroud)

然后使用:

pandoc input.md --include-in-header header.tex -o output.pdf
Run Code Online (Sandbox Code Playgroud)

仅使用markdown文件

或者header.tex,您也可以将其嵌入到markdown文件的YAML元数据块中,而不是使用a :

---
header-includes: |
  \makeatletter
  \def\fps@figure{h}
  \makeatother
---

# my markdown header
Run Code Online (Sandbox Code Playgroud)