在R Markdown中创建记事

时间:2019-02-18 18:04:59

标签: latex r-markdown memo cls

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

---
csl: texMemo.csl

\memoto{someone} 
output: pdf_document
---

我不确定将文本放在哪里,无论是在YAML标头中还是在R Markdown的正文中。乳胶代码也无法在标头中使用。我以为有一个简单的解决方案,但我找不到答案。谢谢。

1 个答案:

答案 0 :(得分:3)

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

1。使TeX知道新的文档类

按照您的链接,我们将获得一个类定义文件。通常,您可以将文件放置在本地texmf目录树中(如果需要的话,可以安装它),然后可以使用\documentclass{texMemo}创建tex文档。在安装类定义时检查this线程。

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

enter image description here


边注:

此类过程的产品可能是提供您自己的输出格式的软件包。我有一些空闲时间,并创建了这样的程序包。您可以使用

进行安装
devtools::install_github("martinschmelzer/rmemo")

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

我从Rob Oak(文档类texMemo的创建者)那里获取了代码,并将其直接添加到默认的乳胶模板中。如果要进行更改/改进,请随时打开请求请求。