4

我正在尝试在 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 代码在标题中也不起作用。我想有一个简单的解决方案,但我找不到答案。谢谢。

4

1 回答 1

5

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 模板中。如果您想进行更改/改进,请随时打开拉取请求。

于 2019-02-20T15:02:13.537 回答