在 R Markdown 中创建备忘录

Create Memo in R Markdown

我正在尝试在 R Mardown 中创建以下备忘录格式: https://texblog.org/2012/03/07/writing-a-memo-in-latex/

---
csl: texMemo.csl

\memoto{someone} 
output: pdf_document
---

我不确定将文本放在哪里,是在 YAML header 中还是在 R Markdown 的 body 中。此外,Latex 代码在 header 中不起作用。我想有一个简单的解决方案,但我找不到答案。谢谢

cslcls有区别。 .cls 文件是文档 class 定义文件,而 .csl 文件定义引用样式。

1.使新文档 class 为 TeX

所知

根据您的 link,我们得到了一个 class 定义文件。通常,您会将文件放在本地 texmf 目录树中(如果您愿意,可以安装它)然后可以使用 \documentclass{texMemo} 创建 tex 文档。检查 this 安装 class 定义的线程。

或者您可以简单地将 .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")

然后您可以从文件 -> 新建 -> RMarkdown 中选择 "Memorandum" 模板。使用 YAML 选项 logo: mylogo.png 添加徽标。为默认乳胶模板记录的几乎所有其他 YAML 选项也适用。 geometry 如果您想更改文档边距也是如此。

我从 Rob Oak(文档 class texMemo 的创建者)那里获取了代码,并将其直接嵌入到默认的乳胶模板中。如果你想制作 changes/imrpovements,请随时打开拉取请求。