通过R Studio用Markdown写Beamer
技术背景
在写一些学术演示文档时,经常有可能用到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
参考链接
通过R Studio用Markdown写Beamer的更多相关文章
- 全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客文章
全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客 1.背景 我挺喜欢写博客,但每一次将博客转移到公众号或者知乎,总是需要调整格式,不 ...
- 用Markdown写Html和.md也就图一乐,真骚操作还得用来做PPT
前言 和这篇文章一样,我就是用Markdown写的.相信各位平时也就用Markdown写写文档,做做笔记,转成XHtml.Html等,今天教大伙一招骚操作:用Markdown写PPT. 绝大多数朋友做 ...
- 新功能发布!Markdown写博客!
有一种神奇的语言,它比html还简单,它巧妙地将内容与格式整合在一起--它就是Markdown. 现在我们实现了博客对Markdown的内置支持,可以让您轻松地在园子里用这个神奇的语言写博客! &qu ...
- 为什么要用Markdown写东西
为什么要用Markdown 不用费心去调格式了,比方说题目加粗什么的,删除线什么的,代码也只要四个空格就好了~ 学起来很简单,几乎没什么学习成本,而收益却很大 这几乎快让我我想从cnblog转到简书了 ...
- github上建站和使用markdown写文章
积累了那么久,终于成功搭建了github上的个人网站.虽然方法有点巧妙.不是还是建成了 同时学会用markdown写基本的文章.感觉还可以.附带我的github上的静态页面网站的网址:http://z ...
- 用markdown写博客
目录 用markdown写博客 前言 标题 段落 引用区块 代码块 列表 分隔线 链接 强调.加粗.下划线.删除线 图片 智能链接 表格 转义序列 用markdown写博客 前言 博客园支持用mark ...
- android studio 编辑markdown文件
作为开发人员,对markdown应该比较熟悉,我们在Android开始中,可以使用studio引入Markdown Navigator插件,进行编辑. 搜索 Markdown Navigator 安装 ...
- 尝试 Markdown 写测试用例
我的原帖https://testerhome.com/topics/9412 大家都知道我们社区的帖子提倡用Markdown格式编写,正好项目进入稳定期,尝试用Markdown写下测试用例.有几个目的 ...
- findViewById(R.id.btn_first) 给写成 R.layout.
窗体内放了个按钮, findViewById(R.id.btn_first) 给写成 R.layout. 在java 里边引用结果就是找不到那个id 找了半天找不到原因, 奔着网上常见R找不到的问题, ...
随机推荐
- Mapper代理方式
MyBatis入门初体验时,使用mapper的方式: 很奇怪,为什么只有interface二没有实现,怎么就可以从数据库中查出准确的数据.其实Mybatis利用了JDK动态代理实现了相应功能,下面详细 ...
- NPM保资源管理工具
一.简介 什么是NPM NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的:也是Node.js的包管理工具,相当于前 ...
- docker安装、基本使用、实战(测试必备)
Docker概念.作用.术语 一张超级形象的图 看到这张图,大家会想到什么? 可以这么理解:大海是操作系统,鲸鱼是Docker,集装箱是在Docker 运行的容器! 概念 百度百科:Docker 是一 ...
- RFC2544吞吐量测试详细步骤-信而泰Renix软件操作演示
关键词:RFC1242:RFC2544:吞吐量:吞吐率. 吞吐量概述:吞吐量即吞吐率,这个词首先在RFC1242中被提出,是评估网络设备性能的首要指标,其定义是在设备没有丢帧的情况下的最大的转发速率, ...
- 完爆Excel!一个令人惊艳的数据展示工具,让你做图更轻松高效
数据展示应该是最常见的需求,我们经常利用数据做总结.用数据做分享.但是我们该如何更好地展示给我们需要展示的人,如何才能让我们的数据表达更加动人,这个值得让人思索. 说到数据表达,常用的数据展示方式无非 ...
- 【C# 线程】IOCP IO完成端口-Windows系统下常见的7种I/O模型
一.IOCP(I/O Completion Ports)简介 要实现异步通信,必须要用到一个很风骚的I/O数据结构 ,叫重叠结构"Overlapped",Window ...
- vs2022 如何让.net库文件参与程序调试【可以.net库文件的源代码中设置断点,单步跟踪】
由于.net core 是开源的.所以可以让.net库文件参与程序调试.具体vs2022配置如下 1.设置VS2022 加载程序数据文件(.pdb俗称符号文件) 1)选择工具>选项>调试& ...
- Python:GUI库tkinter(一)
学习自: Python GUI 编程(Tkinter) | 菜鸟教程 TkDocs_官方文档 1.几个常用的Python GUI库 tkinter:Python的标准Tk GUI工具包的接口. wxP ...
- petite-vue源码剖析-v-if和v-for的工作原理
深入v-if的工作原理 <div v-scope="App"></div> <script type="module"> i ...
- LeetCode-092-反转链表 II
反转链表 II 题目描述:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 left 到位置 right 的链表节点,返回 ...