Я создал файл RMarkdown в RStudio и смог связать его с knitr в файл HTML и .md. Затем я использовал pandoc для преобразования файла .md в файл PDF (я получаю сообщение об ошибке, если пытаюсь преобразовать из файла .html). Однако полученный PDF файл имеет значительные границы (например, http://johnmacfarlane.net/pandoc/demo/example13.pdf). Как я могу получить pandoc для создания чего-то с меньшими полями? Я просмотрел руководство пользователя pandoc, но не нашел ничего полезного.
Установите размер поля при конвертации из Markdown в PDF с помощью pandoc
Ответ 1
Последние версии rmarkdown и pandoc
В более поздних версиях rmarkdown настройки полей могут быть сделаны в заголовке YAML через элемент верхнего уровня geometry
. То, что вы указываете в теге 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
---
Чтобы более сложные спецификации были переданы в пакет геометрии 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 выполняет рендеринг в PDF через LaTeX - то, что вы связали, представляет поля по умолчанию в документе LaTeX.
Например, пакет геометрии LaTeX может использоваться для изменения полей страницы. Однако вам понадобится способ сообщить Pandoc об этом, включив в него заголовок LaTeX, примененный к преобразованному md файлу.
Как вы это сделаете, описано в Pandoc User Guide. См., В частности, аргумент командной строки --template=FILE
и раздел Шаблоны. По сути, либо найдите и измените шаблон по умолчанию, чтобы включить инструкции LaTeX, которые вы хотите использовать, либо запустите свой собственный шаблон с нуля и поместите его в нужное место; см. аргумент командной строки --data-dir
.
Другой альтернативой, если вы используете последнюю версию Pandoc, является использование аргумента переменной (устанавливается либо с помощью -V KEY[=VAL]
, либо --variable=KEY[:VAL]
). Пакет geometry
был добавлен к шаблону LaTeX по умолчанию в мае 2012 года (см. это обсуждение). Таким образом, если вы хотите изменить поля страницы, вы можете использовать:
pandoc -V geometry:margin=1in -o output.pdf input.md
Вы также можете указать несколько значений переменных. Например, если вы хотите создать PDF файл размером 4 на 6 дюймов с полдюймовыми полями, вы можете использовать:
pandoc -V geometry:paperwidth=4in -V geometry:paperheight=6in -V geometry:margin=.5in -o output.pdf input.md
Ответ 2
В более поздних версиях pandoc вы можете установить ряд параметров в заголовок YAML. Здесь вы можете установить геометрию, например:
---
title: Pandoc nice margins example
author: naught101
geometry: margin=3cm
---
body text of document
Когда pandoc преобразует его в pdf, он должен иметь правильные поля.