技术背景

在写一些学术演示文档时,经常有可能用到Beamer——一种Latex的学术风PPT模板,比如下图所示的这种:

这种风格的演示文档有几个明显的优点:简约、严肃、可以用Latex敲公式和推导、可微调、定制化程度高,而且一般都是免费的。当然也有一些明显的缺点:写Latex麻烦,部署Latex环境更麻烦。因此,更多的人都是硬着头皮在Overleaf上写Latex,这也是被逼无奈。但是我们看到在各大平台用Markdown写博客,或者在开源代码仓库中用Markdown写说明文档,都是非常的美观,那有没有可能用Markdown替代Latex,至少在演示文档上用Markdown替代Latex呢?对于这个问题,R Markdown给出了肯定的回答。

安装R Studio

配置R Markdown的环境,相比于Latex而言容易了很多,大致就分为如下所示的两个步骤:先安装R语言环境,再安装R Studio:

当然,这里少了一个关于pdflatex环境的安装,本文的最后会解释这个问题。首先我们现在访问R语言的官网,下载一个exe安装文件,在本地环境中进行安装,本文用于测试的环境是Win11操作系统。下载完成后按照提示一步一步安装就可以了:

安装好R语言的环境之后,再开始安装R Studio,同样的访问R Studio的官方网站,下载最新的安装文件进行安装。安装过程大概长这个样子:

时间上可能比R语言的安装要更久一些,要耐心等待,按照提示一步一步往下走,就可以很容易完成安装。安装成功后,打开R Studio的界面是这样的:

新建Rmd文件

R Markdown的Beamer PPT格式都是Rmd的后缀,用于写R Markdown,然后按顺序编译成Latex和对应的Pdf格式,而R Studio就提供了一个把Rmd文件编译成Latex文件的编译环境。首先我们选择新建一个文件:

然后在配置时选择Presentation,也就是构建演示文档,并在弹窗中完成一系列的参数配置:

注意我们最终想用的是Beamer风格的演示文档,因此在这里一定要选择Beamer模式,至于具体的Beamer模板的选择,在后续的设置中会介绍。创建好Rmd文件之后,会有一个默认的Rmd文档,这也是基于Beamer模板生成的markdown格式的文档:

我们可以将这个默认的案例修改为我们自己的案例(注意,这个markdown内容不能直接用,为了避免这个文件中的代码块模块所包含的点号跟本博客内容所带的点号引起错误配对,下面的代码中的每个点号之间都加了空格,使用时需删去):

---
title: "Test_R_Markdown"
author: "Dechin"
date: "`2022.03.29`"
output:
beamer_presentation:
theme: Dresden
colortheme: seagull
--- ## R Markdown This is an R Markdown presentation. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. ## Slide with Bullets - Bullet 1
- Bullet 2
- Bullet 3 ## Slide with R Output ` ` ` python
import numpy as np
print ('This is a python code block')
` ` ` ## Slide with Equation Test Equation input
$$
-i\hbar\frac{\partial}{\partial t}\left|\psi\right>=E\left|\psi\right>
$$

从这个语法中我们也可以看出,跟我们日常所使用的markdown并无太大的出入,只是在Markdown中额外支持了R语言的一些操作,甚至从官方文档中看到,还支持了bash和python的一些操作。写完了Rmd文件之后,如果本地环境已经安装好了pdflatex,可以直接点击Knit中的Beamer模式,直接生成Beamer文档的pdf文件,也可以在R Studio中预览:

但问题是,博主本机Win11的电脑中没有Latex的环境,根据以往对Latex环境的操作经验,遂不打算搭建一个本地的Latex环境。在上图的步骤中,我们已经同时构建了tex文件,只是在从tex文件编译到pdf文件的这个过程中报了错,因此,我们可以直接将这一个tex文件复制到Overleaf的latex环境中进行编译,如下图所示便是预览效果:

还有文档中的代码块以及公式部分的效果一览:

Beamer模板配置

在上面的结果中我们看到的还只是一个default模式的Beamer模板,其实我们可以在Beamer示例网站上找到众多的Beamer模板的名称,比如下面这样的模板风格:

我们先在这个网站上面找到一个自己想要的模板,然后把名称记录下来,因为R Studio中的模板名称和Beamer的模板是一一对应的关系。在R Studio中点击设置,找到Output Option:

在弹窗中可以选择主题和颜色主题,比如博主选择了Dresden-seagull这个主题:

然后就可以回到主界面上点击Knit进行构建,当然,前面也提到了,因为本地没有latex的环境,因此会提示构建失败:

但是没有关系,因为本地的tex文件是已经正常构建完成了,找一个文本编辑器打开这个tex文件,再将其内容复制到Overleaf上进行编译,就可以get到这样的结果:

接下来使用R Markdown去构建好自己的演示文档,在Overleaf上编译构建后下载下来,就完成了使用Markdown构建Beamer的流程。如果说确实有需求一定要在本地构建一个pdf文件,并且同时你使用的是Linux的某个发行版的话,可以看下我之前写过的这篇博客使用Docker去配置一个专属的Latex编译环境。

总结概要

虽说在科研和工程中,最重要的还应该聚焦于研究的内容本身,但是如何去更好更严肃的展示自己的研究成果,并且不耗费太多的时间成本,这也是一个长期被讨论的话题。本文中介绍了R Markdown这样的一个解决方案,可以用于构建Beamer演示文档,用更少的工作量去构建一个效果更好的演示文档,对科学研究而言也是一个值得称道的工作。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/rmarkdown.html

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

参考链接

  1. https://zhuanlan.zhihu.com/p/269175498

通过R Studio用Markdown写Beamer的更多相关文章

  1. 全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客文章

    全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客 1.背景 我挺喜欢写博客,但每一次将博客转移到公众号或者知乎,总是需要调整格式,不 ...

  2. 用Markdown写Html和.md也就图一乐,真骚操作还得用来做PPT

    前言 和这篇文章一样,我就是用Markdown写的.相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml.Html等,今天教大伙一招骚操作:用Markdown写PPT. 绝大多数朋友做 ...

  3. 新功能发布!Markdown写博客!

    有一种神奇的语言,它比html还简单,它巧妙地将内容与格式整合在一起--它就是Markdown. 现在我们实现了博客对Markdown的内置支持,可以让您轻松地在园子里用这个神奇的语言写博客! &qu ...

  4. 为什么要用Markdown写东西

    为什么要用Markdown 不用费心去调格式了,比方说题目加粗什么的,删除线什么的,代码也只要四个空格就好了~ 学起来很简单,几乎没什么学习成本,而收益却很大 这几乎快让我我想从cnblog转到简书了 ...

  5. github上建站和使用markdown写文章

    积累了那么久,终于成功搭建了github上的个人网站.虽然方法有点巧妙.不是还是建成了 同时学会用markdown写基本的文章.感觉还可以.附带我的github上的静态页面网站的网址:http://z ...

  6. 用markdown写博客

    目录 用markdown写博客 前言 标题 段落 引用区块 代码块 列表 分隔线 链接 强调.加粗.下划线.删除线 图片 智能链接 表格 转义序列 用markdown写博客 前言 博客园支持用mark ...

  7. android studio 编辑markdown文件

    作为开发人员,对markdown应该比较熟悉,我们在Android开始中,可以使用studio引入Markdown Navigator插件,进行编辑. 搜索 Markdown Navigator 安装 ...

  8. 尝试 Markdown 写测试用例

    我的原帖https://testerhome.com/topics/9412 大家都知道我们社区的帖子提倡用Markdown格式编写,正好项目进入稳定期,尝试用Markdown写下测试用例.有几个目的 ...

  9. findViewById(R.id.btn_first) 给写成 R.layout.

    窗体内放了个按钮, findViewById(R.id.btn_first) 给写成 R.layout. 在java 里边引用结果就是找不到那个id 找了半天找不到原因, 奔着网上常见R找不到的问题, ...

随机推荐

  1. Java基于ClassLoder/ InputStream 配合读取配置文件

    阅读java开源框架源码或者自己开发系统时配置文件是一个不能忽略的,在阅读开源代码的过程中尝尝困惑配置文件是如何被读取到内存中的.配置文件本身只是为系统运行提供参数的支持,个人阅读源码时重点不大可能放 ...

  2. JUC之认识ConcurrentHashMap

    ConcurrentHashMap为什么广泛使用?回答这个问题之前先要回忆下几个基本的概念涉及hash的几个数据结构及锁优化(关于锁优化参考JMM之Java中锁概念的分类总结 - 池塘里洗澡的鸭子 - ...

  3. 云原生 PostgreSQL 集群 - PGO:5分钟快速上手

    前提条件 请确保您的主机上安装了以下实用程序: kubectl git 安装 第 1 步:下载示例 首先,转到 GitHub 并 fork Postgres Operator 示例存储库: https ...

  4. 数据库项目部署(nginx)

    1.在虚拟机2008server下载nginx http://nginx.org/download/nginx-1.17.10.zip 注1:此版本为window版本 linux版本 2. 解压软件至 ...

  5. 【转】浅谈 Integer 类

    突然发现自己对Integer i = 10;这种语法不太明白,于是乎有了这篇文章,那么在讲解 Integer 之前,我们先看下面这段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  6. 商业智能bi行业现状,BI应用的3个层次

    ​商业智能bi行业现状.传统的报表系统技术上已经相当成熟,大家熟悉的Excel等都已经被广泛使用.但是,随着数据的增多,需求的提高,传统报表系统面临的挑战也越来越多. 1. 数据太多,信息太少 密密麻 ...

  7. nmtui解决network-scripts目录下无网卡对应配置文件问题

    1.问题出现的原因设备先安装了操作系统,后插上网卡到设备,就会出现/etc/sysconfig/network-scripts目录下无该网卡对应配置文件的问题,但是ifconfig命令能看见系统给该网 ...

  8. .net 技术大全

    我常说C#的入门技术是委托.事件.消息.只有当你可以纯熟运用这三个技能的时候,才刚刚入门,此时C#的大门才算正式为你打开.很多人在学了一些语法编写一些项目后就觉得C#精通了,其实你们还没入门呢(对日开 ...

  9. Java中读写锁的介绍

    读写锁的简单介绍 所谓的读写锁,就是将一个锁拆分为读锁和写锁两个锁,然后你加锁的时候,可以加读锁,也可以加写锁. ReentrantLock lock=new ReentrantLock(); loc ...

  10. 数仓建模—ID Mapping

    早晨起床的时候,发现自己尿分叉,我没有多想,简单洗洗就匆忙出门.路过早餐店,我看到师傅熟练的拉扯一小块面团,拉至细长条,然后放入油锅中,不一会功夫,一根屎黄色的油条便出锅了,卖相不错.我在想,小到炸屎 ...