#r #pdf #latex #yaml #r-markdown
#r #PDF #Латекс #yaml #r-markdown
Вопрос:
Я создаю отчеты с использованием rmarkdown. При вязании PDF
---
title: "Untitled"
output: pdf_document
---
Я хотел бы указать шрифт, который будет использоваться при создании PDF. В официальной документации (см. Раздел «Параметры LaTeX) говорится, что я могу это сделать.
Однако я никогда не использовал LaTeX и не понимаю, как такой выбор может быть сделан в параметрах YAML в верхней части документа .Rmd, используемого rmarkdown
пакетом.
Вопрос: Как мне изменить шрифт в PDF, созданном rmarkdown?
sessionInfo() R версия 3.1.0 (2014-04-10) Платформа: x86_64-w64-mingw32 / x64 (64-разрядная версия)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_1.0.0 RODBC_1.3-10 knitr_1.6 dplyr_0.2
Я никогда не использовал LaTeX и не хочу разбираться в этом сейчас
Комментарии:
1. Что конкретно вы хотите изменить, размер или семейство шрифтов? Документация, на которую вы ссылаетесь, содержит пример использования
geometry
в заголовке YAML (он устанавливает егоmargin=1in
равным ), поэтому может привести к тому, что вы попробуете другие аргументы таким же образом. Я предполагаю, что у вас установлен MiKTeX, который включаетxelatex
в себя, поэтому вы якобы можете установитьmainfont
аналогичным образом. На данный момент он недоступен, но попробуйте:output:n pdf_document:n mainfont: Times New Roman
(n подразумевает CR и отступ) и посмотрите, что это дает. Вам, вероятноlatex_engine: xelatex
, тоже нужно.2. Да, у меня есть MiKTeX и я использую xelatex. К сожалению, предложенный вами код не работает — он выдает ошибку, вероятно, из-за неправильного синтаксиса. Аналогичный способ не работает: yaml не принимает такие команды, как mainfont: phv, например, выдает ошибку «Неиспользуемые аргументы»
3. смотрите мой ответ, вы были правы, я просто не знал, как реализовать синтаксис. Спасибо!
4. приятно слышать. Поскольку я не мог протестировать код, я не хотел публиковать ответ; поэтому, поскольку я использовал комментарий, я не мог показать отступ. Я, вероятно, мог бы больше подчеркнуть необходимость правильного отступа, рад, что вы это поняли.
Ответ №1:
Отступ в параметрах YAML имеет смысл. Как указано в инструкциях, «обратите внимание, что эти параметры не отображаются под разделом вывода, а отображаются на верхнем уровне вместе с заголовком, автором и т. Д.)». Итак,
---
output:
pdf_document:
latex_engine: xelatex
sansfont: Calibri Light
---
приведет к ошибке неиспользуемого аргумента, в то время как
---
output:
pdf_document:
latex_engine: xelatex
sansfont: Calibri Light
---
выполнит свою работу. Кроме того, команды LaTeX, вставленные после YAML, похоже, переопределяют его: так
---
output:
pdf_document:
latex_engine: xelatex
sansfont: Calibri Light
---
fontsize{12}{22}
fontseries{b}
selectfont
создает PDF со шрифтом по умолчанию, а не Calibri, однако параметр шрифта передается нормально.
Комментарии:
1. Есть и
classoption: 12pt
сейчас.2. Средний вариант (2-й фрагмент здесь) не сработал для меня.
3. @hpesoj626 не могли бы вы привести пример использования classoption: 12pt? Я ввел его в свой YAML, и, похоже, это не имеет никакого эффекта.
4. Если вам нужно изменить размер шрифта в фрагменте кода, убедитесь, что для параметров фрагмента установлено значение
results = "asis"
и вы можете использоватьcat("\fontsize{15}{15} \ \selectfont \ ")
.
Ответ №2:
Просто краткий пример. добавьте эти строки в основную текстовую область RMD и посмотрите на эффекты.
fontfamily{cmr}
fontsize{12}{22}
fontseries{b}
selectfont
Надеюсь, это может помочь
Комментарии:
1. Это частично работает. Это зависит от размера шрифта и размера строки, но fontfamily , например fontfamily{phv}, не влияет на PDF. Безусловно, хорошее начало! Спасибо!
Ответ №3:
Я использую pdfLatex, поэтому почти ничего не работало, пока я не использую «заголовок-включает», например:
---
title: "TITLE"
author: "ANDRES"
output: pdf_document
fontsize: 11pt
header-includes:
% Allows me to use and print accented characters (document is in Spanish)
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
% Set up the document in Spanish
usepackage[spanish]{babel}
% It allows me to place the tables or images where I want, whether there is space or not
usepackage{float}
% It has several commands to have more control over the tables (at least I use it for this)
usepackage{array}
% For custom headers and footers
usepackage{fancyhdr}
% This line allows me to manipulate images within latex
usepackage{graphicx}
% This package has several uses, for this document I used it to manage hyperlinks and introduce metadata to the document
usepackage{hyperref}
% These lines define the font that I want to use in the document
usepackage{helvet}
renewcommand{familydefault}{sfdefault}
---
С этим изменением сгенерированный PDF-файл будет выглядеть следующим образом:
Другие решения достигли только этого:
Просто часть текста в нужном мне шрифте.
Комментарии:
1. Спасибо @andres. Это значительно улучшает формат вывода PDF по умолчанию. Не могли бы вы добавить комментарии, указывающие, что делает каждая из ваших
usepackage
строк?2. @Stan Я добавил комментарии в usepackage, надеюсь, они помогут вам, с уважением