使用Pandoc Markdown实现图像居中

23
我需要定期为使用Word的管理员创建文档。如何使用pandoc markdown居中一张图片?我看到提到了div块,但我不知道它们是什么。

我需要定期为使用Word的管理员创建文档。如何使用pandoc markdown居中一张图片?我看到提到了div块,但我不知道它们是什么。

![](myimage.png){.center}

有了像上面那样的图像代码,以及像这样的命令行:

pandoc -s test.md -o test.docx
或者
pandoc -s test.md -o test.pdf

我总是在文档中使用左对齐的图片。

4个回答

5
对于PDF输出,使用implicit_figure选项将自动将图像居中在页面上,并允许您为图像显示标题。
在.md文档中:
![This is an image](path/to/image.png)

运行以下命令从您的.md生成PDF:

pandoc ./README.md \
  -o ./README.pdf \
  -f markdown+implicit_figures

7
这里关键是标题 - 而不是 implicit_figures 扩展。另外,这只适用于创建 PDF 文档(而非 Docx)。 - user2023370
3
markdown输入格式默认启用了implicit_figures。虽然它只适用于有标题的情况,但实际上并没有回答这个问题,因为它不需要任何标题但仍要居中。 - phiresky
3
即使标题为空,类似于![\](image_file.jpg)的语句仍将起作用。 - Eponymous
1
标题即使为空也会起作用,就像![\ ](image_file.jpg)一样,但是“图1.”仍然会被打印。 - undefined

2

如果您正在使用类似于pandoc-template这样的工具,它在底层使用latex,那么您可以插入latex指令,它们将被解释。

\begin{center} 
\includegraphics[]{./images/my_image.png}
\end{center}

OP从未说过他们在使用latex。 - user32882
1
OP提到了编译为PDF,然而这个答案也说了“如果...使用...latex”,正是我的情况。这是唯一对我有用的答案。 - JDG

1
这个问题困扰了我很久了;但是如果你使用 markdown -> pandoc -> Latex -> PDF 的路线,应该可以解决这个问题。
```{=latex}
\begin{center}
```

![](folder/img.png){ height=30% } 

```{=latex}
\end{center}
```

请注意,如果没有使用{=latex}包装器(原始属性),上述Latex命令将被解释为最终PDF中的文本。参考资料: 允许在Beamer中居中显示没有标题的图像·问题#3995·jgm/pandoc Pandoc不旨在成为一个布局引擎,请参阅http://pandoc.org/CONTRIBUTING.html#out-of-scope 但是,您可以更改LaTeX模板,甚至编写原始的TeX(有关详细信息,请参阅MANUAL)。 在markdown文档中,原始的LaTeX被解释为文本·问题#4646·jgm/pandoc 对于这样复杂的原始TeX,您可能应该使用http://pandoc.org/MANUAL.html#extension-raw_attribute

1
如果您将图像呈现为图形,则可以添加样式使其居中。 有两种方法可以将图像呈现为图形:
  1. 给它一个标题:

    ![标题](文件夹/ img.png){style =“width:70%; margin:auto;”}

  2. 出于某种原因,如果您没有提供标题,Pandoc将不会创建图形。在这种情况下,您可以手动完成:

    <figure>![](文件夹/ img.png){style =“width:70%; margin:auto;”} </ figure>


2
我发现只有第一个有效,而且仅适用于PDF文档。 - user2023370

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接