如何禁用pandoc自动将图片拉伸为全宽的默认设置
Pandoc禁用图片默认拉伸全宽解决方案
以下方案覆盖PDF、DOCX、HTML三种常用输出格式:
通用跨格式方案(适配所有输出格式)
直接在Markdown的图片语法后添加尺寸属性,无需针对单个输出格式做配置:
- 若要保持图片原始尺寸,禁止拉伸,添加
{width=auto height=auto}属性,示例:{width=auto height=auto} - 若需要自定义特定图片的尺寸,可直接指定数值,单位支持
px、cm、%等,示例:{width=80px}
该方案优先级高于全局配置,可按需对单张图片单独设置。
单格式全局配置方案(无需每张图单独加属性)
HTML输出全局配置
执行渲染命令时添加自定义CSS规则即可,规则含义为:图片最大宽度不超过容器宽度,宽高保持原始比例不拉伸:
pandoc input.md -o output.html --css=<(echo "img { max-width: 100%; width: auto; height: auto; }")
如果你使用固定的CSS文件,直接把上述CSS规则写入你的自定义样式文件即可。
PDF输出全局配置
PDF默认通过LaTeX渲染,添加LaTeX全局配置即可实现「仅当图片原始宽度超过页面行宽时缩放,小图保持原始尺寸」的效果,渲染命令添加如下参数:
pandoc input.md -o output.pdf -V "header-includes=\usepackage{graphicx}\setkeys{Gin}{width=\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}"
DOCX输出全局配置
- 先导出pandoc默认的DOCX参考模板:
pandoc -o custom-reference.docx --print-default-data-file reference.docx - 打开生成的
custom-reference.docx文件,修改「图片」内置样式的默认规则,关闭自动拉伸全宽的设置后保存 - 后续渲染DOCX时添加参考模板参数即可:
pandoc input.md -o output.docx --reference-doc=custom-reference.docx
内容的提问来源于stack exchange,提问作者waterwave1353
相关产品推荐
相关产品推荐

