科研人必学神器:Rmarkdown+Latex+Tikz+GeoGebra
前言
大家有没有想过,教科书上的公式是怎么写出来并排版的如此美观的呢?如何能在文档中绘制出美观而精确的科研绘图?想必绝大多数同学都只知道MS Office,但是这太Low了,而且排版格式经手多人会变得千奇百怪。科研人就要有科研人的个性,不仅要严谨,还要有科研人的专属工具,展现出科研人高大上的一面!
R + Markdown = RMarkdown
Markdown
大家都知道,但凡入门了计算机的玩家都靠这个来写博客,记录知识和见闻,但知道Rmarkdown
的玩家就不多了,毕竟R语言受众相对C,Java,Python而言还是太少。但身为科研工作者不能不知道它,因为R是开源的,主要用于统计分析、绘图以及数据挖掘的强大编程语言。你可能会说“我都有Python了,用个Jupyter不一样的吗? ”,但Jupyter这种人尽皆知的工具无法体现出您的与众不同,尽管Jupyter现在也能在Python3.10+的环境中结合Jupyter-Tikz来实现相同的效果,但科研人还是要多学学新工具。
Rmarkdown
的使用需要基于R+Rstudio,R和Rstudio直接去官网下载就行了,独立安装即可。需要注意的是,如果你想在conda环境里安装Rstudio,抱歉,目前4.0的还不支持。
Latex + Tikz + GeoGebra
Latex
对于经常使用Python的玩家而言,应该都知道,目前使用最多的两个版本分别是MikTex和Texlive。个人推荐MikTex,因为精简一些安装会快一点,如果想安装新的包直接在MikTex Console里打就行,至于Texlive,没一两个小时别想安装好,当然你也可以取消勾选很多不安装。
Latex
的基本语法可以直接在网上搜,一搜一大把,我这里就不赘述了,这里主要讲讲如何在Latex
里用Tikz
绘图。
Tikz
官方的Manual在这里,里面从最基础的tutorial到进阶版绘图指令全都有。此外,这里是一些Tikz
的模板,用的好甚至能画一只Totoro在你的PDF里。
重点来了,Tikz
似乎需要一定的学习成本,我本来也只想画一些简单的示意图,如何能快速得到所见即所得的结果呢?
这就必须要引进另一个神器——GeoGebra了。
-
首先,去官网下载
GeoGebra v5
,切记是v5
(往下拉,找到Classic 5
),因为这个版本才支持PGF/Tikz代码导出。 -
先随便画一个图形,就用好了,画出来如图:
-
右键弹出选项框,取消显示坐标轴、网格、标签,并右键框选需要导出的绘图区域:
-
文件导出PGF/Tikz代码,生成PGF/Tikz代码,复制:
可以根据需要修改图片的大小,修改X和Y的单位,可以控制图片在PDF中的显示大小,同样也可以在Rmarkdown的代码块选项中,设置out.width/out.height来控制图片大小。
-
将代码复制进Rmarkdown的Chunk中,根据需要设置:
1
2
3```{tikz, echo=FALSE, out.width="40", fig.align="center"}
# 你的tikz代码
```如果需要调包,需要将包的声明
\usepackage{xxx}
丢到前面的header-includes
里。此外,Rmarkdown的Chunk里要删除\documentclass{xx}
,\begin{document}
和其对应的结束标签。 -
Knit生成的PDF文件如下: