Подтвердить что ты не робот

Установите размер поля при конвертации из Markdown в PDF с помощью pandoc

Я создал файл RMarkdown в RStudio и смог связать его с knitr в файл HTML и .md. Затем я использовал pandoc для преобразования файла .md в файл PDF (я получаю сообщение об ошибке, если пытаюсь преобразовать из файла .html). Однако полученный PDF файл имеет значительные границы (например, http://johnmacfarlane.net/pandoc/demo/example13.pdf). Как я могу получить pandoc для создания чего-то с меньшими полями? Я просмотрел руководство пользователя pandoc, но не нашел ничего полезного.

4b9b3361

Ответ 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, он должен иметь правильные поля.