Установить размер поля при конвертации из Markdown в PDF с pandoc
Я создал файл RMarkdown в RStudio и сумел связать его с knitr в файл HTML и .md. Затем я использовал pandoc для преобразования файла. md в файл PDF (я получаю сообщение об ошибке, если я пытаюсь преобразовать из .HTML-файл.) Тем не менее, PDF, который производится имеют огромные поля (как это http://johnmacfarlane.net/pandoc/demo/example13.pdf). Как я могу заставить pandoc производить что-то с меньшими полями? Я просмотрел руководство пользователя pandoc, но не нашел что-нибудь полезное.
2 ответов:
последние версии 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.
The геометрия пакет LaTeX, например, может быть использован для изменения полей страницы. Однако вам понадобится способ сказать Pandoc, чтобы использовать это, включив его в заголовок LaTeX, примененный к преобразованному файлу md.
как вы это делаете, задокументировано в Руководство Пользователя Pandoc. См., в частности
--template=FILEаргумент командной строки и раздел Шаблоны. По существу, либо найдите и измените шаблон по умолчанию, чтобы включить инструкции LaTeX, которые вы хотите использовать, либо Запустите свой собственный шаблон с нуля и поместите его в соответствующее место; см. аргумент строки.
Другой альтернативой, если вы используете последнюю версию 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
в более поздних версиях pandoc, вы можете установить ряд параметров в заголовок и YAML. Вы можете установить геометрию здесь, например:
--- title: Pandoc nice margins example author: naught101 geometry: margin=3cm --- body text of documentкогда pandoc преобразует его в pdf, он должен иметь правильные поля.
Comments