技术背景Markdown大家都比较熟悉了,特别是在写程序文档和写数学公式时,拥有着无与伦比的便利性 。同时在前面的一篇博客中我们介绍了使用RMarkdown去写Latex Beamer演示文档的方法,RMarkdown是由谢益辉等大神对Markdown、Latex和R语言等常用高级编程语言的结合,使得我们可以同时用这几种语言去构造一个Beamer风格的演示文档 。本文主要介绍一些比较偏门的、但是经常可能用到的RMarkdown进阶操作 。
导入Latex宏包在RMarkdown标题处,我们可以自己写一个普通的Latex文档mysty.tex
如下:
\usepackage{graphicx}\usepackage{animate}\usepackage{subfigure}\lstset{breaklines=true,basicstyle=\ttfamily}
然后在RMarkdown的标题处引入该tex文件:
---title: "Your Title"author: "Dechin"date: "`2022.10.15`"output:beamer_presentation:pandoc_args: --listingsincludes:in_header: mysty.textoc: truenumber_sections: yesslide_level: 2theme: Dresdencolortheme: seagull---
注意这里我们导入了latex的动图animate模块和子图subfigure模块,都是后面要用到的功能 。
修改图片尺寸# Test1## Test2\begin{figure}\centerline{\includegraphics[width=1.0\textwidth]{./1.png}}\end{figure}
这里我们使用的是Latex的图片导入方法,默认居中,可以通过调整上述代码中的width
参数来控制图片打印的大小 。
文章插图
RMarkdown加注释从来没想过在Markdown里面还可以加注释,但事实上确实可以操作的,可以在需要注释的行前加上
[comment]:
即可:[comment]:# Test1[comment]:## Test2[comment]:\begin{figure}[comment]:\centerline{\includegraphics[width=1.0\textwidth]{./1.png}}[comment]:\end{figure}
虽然编译过程中会出现一系列的告警 , 但是我们可以不管 。长公式显示有时候我们的数学公式可能会比较长,这样在演示文档中可能会被自动截断:
# Test1## Test2$$[q_1, q_2]=q_1q_2-q_2q_1=(s_1s_2-x_1x_2-y_1y_2-z_1z_2)+i(s_1x_2+s_2x_1+y_1z_2-y_2z_1)+j(s_1y_2+s_2y_1+x_2z_1-x_1z_2)+k(s_1z_2+s_2z_1+x_1y_2-x_2y_1)-(s_2s_1-x_2x_1-y_2y_1-z_2z_1)-i(s_2x_1+s_1x_2+y_2z_1-y_1z_2)-j(s_2y_1+s_1y_2+x_1z_2-x_2z_1)-k(s_2z_1+s_1z_2+x_2y_1-x_1y_2)=2i(y_1z_2-y_2z_1)+2j(x_2z_1-x_1z_2)+2k(x_1y_2-x_2y_1)\neq0$$
此时编译出来的演示文档显示效果非常不佳:文章插图
这个时候可以选择使用行内公式 , 这样可以自动换行,很大概率是可以完整显示出来的:
# Test1## Test2$[q_1, q_2]=q_1q_2-q_2q_1=(s_1s_2-x_1x_2-y_1y_2-z_1z_2)+i(s_1x_2+s_2x_1+y_1z_2-y_2z_1)+j(s_1y_2+s_2y_1+x_2z_1-x_1z_2)+k(s_1z_2+s_2z_1+x_1y_2-x_2y_1)-(s_2s_1-x_2x_1-y_2y_1-z_2z_1)-i(s_2x_1+s_1x_2+y_2z_1-y_1z_2)-j(s_2y_1+s_1y_2+x_1z_2-x_2z_1)-k(s_2z_1+s_1z_2+x_2y_1-x_1y_2)=2i(y_1z_2-y_2z_1)+2j(x_2z_1-x_1z_2)+2k(x_1y_2-x_2y_1)\neq0$
行内公式的显示效果如下所示:文章插图
这样一来,我们就可以在演示文档上面看到完整的公式 。
公式居中和缩放续上一个章节内容,在公式使用行内显示之后,我们发现公式此时是居左显示的,而我们如果想要居中,在前面加一个
\center
标签即可:# Test1## Test2\center $[q_1, q_2]=q_1q_2-q_2q_1=(s_1s_2-x_1x_2-y_1y_2-z_1z_2)+i(s_1x_2+s_2x_1+y_1z_2-y_2z_1)+j(s_1y_2+s_2y_1+x_2z_1-x_1z_2)+k(s_1z_2+s_2z_1+x_1y_2-x_2y_1)-(s_2s_1-x_2x_1-y_2y_1-z_2z_1)-i(s_2x_1+s_1x_2+y_2z_1-y_1z_2)-j(s_2y_1+s_1y_2+x_1z_2-x_2z_1)-k(s_2z_1+s_1z_2+x_2y_1-x_1y_2)=2i(y_1z_2-y_2z_1)+2j(x_2z_1-x_1z_2)+2k(x_1y_2-x_2y_1)\neq0$
居中显示效果如下:文章插图
在行内公式显示下,依然存在公式过长的问题,此时我们可以借鉴参考链接1中的方法,在公式前面再加一个
\tiny
的标签:# Test1## Test2\tiny \center $[q_1, q_2]=q_1q_2-q_2q_1=(s_1s_2-x_1x_2-y_1y_2-z_1z_2)+i(s_1x_2+s_2x_1+y_1z_2-y_2z_1)+j(s_1y_2+s_2y_1+x_2z_1-x_1z_2)+k(s_1z_2+s_2z_1+x_1y_2-x_2y_1)-(s_2s_1-x_2x_1-y_2y_1-z_2z_1)-i(s_2x_1+s_1x_2+y_2z_1-y_1z_2)-j(s_2y_1+s_1y_2+x_1z_2-x_2z_1)-k(s_2z_1+s_1z_2+x_2y_1-x_1y_2)=2i(y_1z_2-y_2z_1)+2j(x_2z_1-x_1z_2)+2k(x_1y_2-x_2y_1)\neq0$
缩小后的公式显示效果如下:文章插图
【RMarkdown进阶操作】还有众多的大小范围可调(图片来自于参考链接1):
文章插图
推荐阅读
- Linux 下搭建 Kafka 环境
- mysql安装教程-window操作系统
- selenium4-定位单个页面元素
- ubuntu-22.04 树莓派Zero 2 W通过.NET6和libusb操作USB读写
- 小米手环怎么使用(小米手环操作方法)
- 《王者荣耀》的李白怎么玩有什么操作技巧(李白剑气积攒技巧)
- Pytest进阶使用
- redis bitmap数据结构之java对等操作
- 数据科学学习手札144 使用管道操作符高效书写Python代码
- git中 gitignore 忽略文件操作