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