通过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找不到的问题, ...
随机推荐
- 暑假撸系统5- Thymeleaf 常用标签的
上次博客已经是三天前了,后期修补和细化的东西多了,进度没有前几天那么明显了.因为原来工作大多是后端居多,如果非要前台也会选择一些相对对ui依赖比较小的框架,比如extjs,所以这次的基础排版就费劲了, ...
- C# 给Word每一页设置不同图片水印
Word中设置水印时,可加载图片设置为水印效果,但通常添加水印效果时,会对所有页面都设置成统一效果,如果需要对每一页或者某个页面设置不同的水印效果,则可以参考本文中的方法.下面,将以C#代码为例,对W ...
- JwtAccessTokenConverter问题整理
Cannot convert access token to JSON 授权服务颁发token(未进行公私钥加密)后,携带此token请求资源服务,提示此错误. 使用token可以在线解析,跟踪代码后 ...
- jdk、jre、jvm分别是什么?有什么联系?
JDK:是Java Development Kit的缩写,是Java的开发工具包,JDK是整个JAVA的核心.它提供了编译.运行Java程序所需的各种工具和资源.有了它,Java开发者就可以编译和运行 ...
- 微信小程序wifi控制开发
小程序wifi控制开发方案 ----- 由小程序通过公众号给wifi控制板进行配网,后台服务器自动生成设备名并注册在数据库中,wifi控制板自动保存生成的设备名,小程序可读取WIFI控制板的数据,控制 ...
- Mac欺骗实验
实验目的 1.掌握MAC欺骗的原理 2.学会利用MacMakeUp软件工具进行伪造源MAC地址的MAC欺骗. 实验内容 使用MacMakeUp伪造主机mac地址,进行mac欺骗实验. 实验环境描述 1 ...
- 主流的商业智能BI工具推荐,学会数据分析没难度
伴随着大数据概念的深入企业越来越重视大数据,商业智能BI工具已经成为许多企业数据分析的首选.也许有些小伙伴对商业智能BI工具还是有些陌生,在了解商业智能BI工具之前,先来了解一下什么是商业智能. 百度 ...
- 【C# 基础概念】抽象类、密封类及类成员
使用 abstract 关键字可以创建不完整且必须在派生类中实现的类和 class 成员. 使用 sealed 关键字可以防止继承以前标记为 virtual 的类或某些类成员. abstract修饰符 ...
- 解决 “Project ERROR: Unknown module(s) in QT: webengine”以及“Your MaintenanceTool appears to be older than 3.0.2. .” 的办法
1.环境 Windows10,Qt5.8.0 2.问题描述 需要使用到WebEngineView组件,在工程.pro中增加webengine后,Qt Creator应用程序输出中打印了 Project ...
- 国产化之Arm64 CPU+银河麒麟系统安装.NetCore
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,银河麒麟就是一个Linux发行版,数据库使用达梦V8,这个数据库很多概念和Oracle相似,CPU平台的范围:龙芯.飞腾.鲲鹏等. ...