Создать заметку в R Markdown

Я пытаюсь создать следующий формат памятки в R Mardown: https://texblog.org/2012/03/07/writing-a-memo-in-latex/

---
csl: texMemo.csl

\memoto{someone} 
output: pdf_document
---

Я не уверен, где разместить текст, будь то заголовок YAML или тело R Markdown. Также латексный код не работает в шапке. Думаю, есть простое решение, но я не могу найти ответов. Спасибо.


person Vincent Risington    schedule 18.02.2019    source источник
comment
Пользовательский шаблон был бы подходящим вариантом. См. stackoverflow.com/questions/52876814/ для некоторых примеров.   -  person Ralf Stubner    schedule 19.02.2019


Ответы (1)


Есть разница между csl и cls. Файл .cls - это файл определения класса документа, тогда как файлы .csl определяют стили цитирования.

1. Сделайте новый класс документа известным TeX

Следуя вашей ссылке, мы получаем файл определения класса. Обычно вы помещаете файл в свое локальное дерево каталогов texmf (если хотите, устанавливаете его), а затем можете создавать документы tex с помощью \documentclass{texMemo}. Просмотрите эту ветку об установке определений классов.

В качестве альтернативы вы можете просто поместить файл .cls в тот же каталог, что и ваш документ RMarkdown.

2. Создайте новый шаблон

Впоследствии вы можете установить параметр YAML dcoumentclass: texMemo, но вы столкнетесь с конфликтом с шаблоном pdf по умолчанию. Итак, что вам нужно сделать, это также создать шаблон pandoc (назовем его template.tex) и включить его с помощью параметра YAML template: template.tex. Базовый шаблон может быть

\documentclass{texMemo}

\usepackage{graphicx} % needed for the logo

\memoto{$to$}
\memofrom{$from$}
\memosubject{$title$}
\memodate{$date$}
\logo{$logo$}

\begin{document}
\maketitle

$body$ % will be replaced by the content of your rmd document

\end{document}

Поместите его в тот же каталог.

3. Создайте RMD

Наконец, вы можете создать свой документ rmarkdown. Вот пример:

---
title: "Dinner"
to: Ralf
from: Martin
date: "`r Sys.time()`"
output: 
  pdf_document:
    template: template.tex
logo: "\\includegraphics[width=.25\\textwidth]{unnamed.png}"
---

Let us have dinner next week.

введите описание изображения здесь


Примечание:

Продуктом такого процесса может быть пакет, предоставляющий ваш собственный выходной формат. У меня было свободное время, и я создал такой пакет. Вы можете установить его, используя

devtools::install_github("martinschmelzer/rmemo")

Затем вы можете выбрать шаблон «Меморандум» из File -> New -> RMarkdown. Логотип добавляется с помощью параметра YAML logo: mylogo.png. Почти все другие параметры YAML, задокументированные для латексного шаблона по умолчанию, также работают. То же самое и geometry, если вы хотите изменить поля документа.

Я взял код от Роба Оука (создателя класса документов texMemo) и встроил его непосредственно в латексный шаблон по умолчанию. Если вы хотите внести изменения / улучшения, не стесняйтесь открывать запросы на включение.

person Martin Schmelzer    schedule 20.02.2019
comment
Замечательно! Очень хорошая памятка. - person Vincent Risington; 24.02.2019