如何使用 yaml 将自定义 beamer 模板集成到 rmarkdown/问题中

如何使用 yaml 将自定义 beamer 模板集成到 rmarkdown/问题中

我正在拖延使用 IBM 出色的新 PLEX 字体制作现代 beamer 模板(一旦完成或至少完成一半,我将在 git 上分享它)。由于我计划完全切换到 Rmarkdown,因此我很想将此模板集成到管道中。但是,由于我是 RMD 的新手,因此我遇到了麻烦。

现在,我只能通过以下代码来实现这一点:

权限管理:

output:
  beamer_presentation:
    includes:
      in_header: template.tex
    keep_tex: yes
    latex_engine: pdflatex
---

# {.plain}
\titlepage

# test

This is a test.

Tex 文件:

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{fontawesome}

\usetheme{stylefile}

\title{A theme}
\subtitle{A modern beamer and Rmarkdown template}
\date{\today}
\author{XY}
\supervisor{XY}
\institute{Institution or Company of High Esteem}
\symbols{\twitter{}{}\git{}{}}

编织后,这给了我想要的输出。但是,我想在 rmd yaml 标头中包含标题/日期/作者/主管(自定义命令)。我该如何实现?

此外,是否有人知道将 costum tex 模板与 rmd 集成的良好示例/演练 - 谷歌到目前为止没有帮助?

提前致谢!

答案1

我想在 rmd yaml 标头中包含标题/日期/作者/主管(自定义命令)。我该如何实现?

很简单:

---
title: A theme
subtitle: A modern beamer and Rmarkdown template
date: \today
author: XY
supervisor: YZ
institute: Institution or Company of High Esteem
output: beamer_presentation
---
# test

This is a test.

如果您编译它,这将产生一个标题框,并且 YALM 标头唯一被忽略的是YZ

原因是默认模板中没有任何$supervisor$变量。此​​链接是第二个问题:$if(supervisor)$ <whatever> $else$ <whatever> $endif$

是否有人知道集成 custom tex 模板的良好示例/演练?

cd  /usr/share/pandoc/data/templates # In Linux Mint
nano default.beamer                  # change "nano" to your favorite editor

好的,好的,开始更简单一些simplest.template::

\documentclass{beamer}
\begin{document}
\begin{frame}
$body$
\end{frame}
\end{document}

测试.Rmd:

---
output:
  pdf_document:
    template: simplest.template
--- 

This is the body.

太简单了?好吧,我知道,... 还有一些不那么简单的supervisor.template

\documentclass{beamer}
\begin{document}
\begin{frame}
$if(supervisor)$ Supervisor: $supervisor$ 
$else$ I have not a supervisor $endif$ 
\end{frame}
\end{document}

测试2.Rmd:

---
supervisor: YZ
output:
  pdf_document:
    keep_tex: yes
    template: supervisor.template
---
  
This is ignored text.

... 等等。

相关内容