我已经在RStudio中创建了一个RMarkdown文件,并设法用knitr将其编织成HTML和HTML格式.md文件.接下来,我使用pandoc转换.将md文件转换为PDF文件(如果try 从.html文件转换,则会出现错误).然而,制作的PDF有巨大的利润(比如这http://johnmacfarlane.net/pandoc/demo/example13.pdf).我怎样才能让潘多克生产利润更小的产品?我查阅了pandoc用户指南,但没有发现任何有用的内容.
我已经在RStudio中创建了一个RMarkdown文件,并设法用knitr将其编织成HTML和HTML格式.md文件.接下来,我使用pandoc转换.将md文件转换为PDF文件(如果try 从.html文件转换,则会出现错误).然而,制作的PDF有巨大的利润(比如这http://johnmacfarlane.net/pandoc/demo/example13.pdf).我怎样才能让潘多克生产利润更小的产品?我查阅了pandoc用户指南,但没有发现任何有用的内容.
在rmarkdown的较新版本中,可以通过顶层元素geometry
在YAML标题中进行边距设置.您在geometry
标签中指定的内容将通过以下LaTeX片段导入Pandoc附带的LaTeX模板
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
例如,要指定2厘米宽的边距,可以包括
---
title: "Habits"
author: John Doe
date: March 22, 2005
geometry: margin=2cm
output: pdf_document
---
要将更复杂的规范传递给geometry LaTeX软件包,请将选项串在一起,就像使用LaTeX一样:
---
title: "Habits"
author: John Doe
date: March 22, 2005
geometry: "left=3cm,right=3cm,top=2cm,bottom=2cm"
output: pdf_document
---
这是一个LaTeX问题,因为Pandoc正在通过LaTeX将其呈现为PDF格式——您链接到的内容代表LaTeX文档上的默认页边距.
例如,geometrylatex 包装可以用来改变页面的边距.但是,您需要一种方法,通过将其包含在应用于转换的md文件的LaTeX头中,来告诉Pandoc使用它.
你是如何做到这一点的记录在Pandoc User Guide页中.具体请参见--template=FILE
命令行参数和Templates section.基本上,要么找到并修改默认模板以包含您想要使用的LaTeX说明,要么从头开始创建自己的模板并将其放置在适当的位置;请参阅--data-dir
命令行参数.
如果您使用的是最新版本的Pandoc,另一种 Select 是使用变量参数(设置为-V KEY[=VAL]
或--variable=KEY[:VAL]
).geometry
包装于2012年5月添加到默认latex 模板中(见this discussion).因此,如果要更改页边距,可以使用:
pandoc -V geometry:margin=1in -o output.pdf input.md
也可以指定多个变量值.例如,如果您想创建一个4×6英寸、边距为半英寸的pdf,可以使用:
pandoc -V geometry:paperwidth=4in -V geometry:paperheight=6in -V geometry:margin=.5in -o output.pdf input.md