我正在尝试在 R Mardown 中创建以下备忘录格式: https ://texblog.org/2012/03/07/writing-a-memo-in-latex/
---
csl: texMemo.csl
\memoto{someone}
output: pdf_document
---
我不确定将文本放在哪里,无论是在 YAML 标头还是 R Markdown 的正文中。Latex 代码在标题中也不起作用。我想有一个简单的解决方案,但我找不到答案。谢谢。
我正在尝试在 R Mardown 中创建以下备忘录格式: https ://texblog.org/2012/03/07/writing-a-memo-in-latex/
---
csl: texMemo.csl
\memoto{someone}
output: pdf_document
---
我不确定将文本放在哪里,无论是在 YAML 标头还是 R Markdown 的正文中。Latex 代码在标题中也不起作用。我想有一个简单的解决方案,但我找不到答案。谢谢。
csl
和之间有区别cls
。文件.cls
是文档类定义文件,而.csl
文件定义引用样式。
1. 让 TeX 知道新的文档类
按照您的链接,我们得到了一个类定义文件。通常,您会将文件放在本地 texmf 目录树中(如果愿意,可以安装它),然后可以使用\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")
然后您可以从文件 -> 新建 -> RMarkdown 中选择“备忘录”模板。使用 YAML 选项添加徽标logo: mylogo.png
。几乎所有为默认 Latex 模板记录的其他 YAML 选项也可以正常工作。如果geometry
您想更改文档边距,也是如此。
我从 Rob Oak(文档类 texMemo 的创建者)那里获取代码,并将其直接嵌入到默认的 Latex 模板中。如果您想进行更改/改进,请随时打开拉取请求。