作者caseypie (吟游诗人)
看板PhD
标题[心得] 完全使用免费软体的学术研究生活
时间Thu Mar 1 01:55:59 2018
原本在美国读书,学校很有钱,基本上什麽要付钱的软体都有
可是之後到了加拿大这一个很穷很穷的国家
国家级超级电脑上连Matlab都没有(理由是因为不好谈授权,说什麽呢....)
更不要说学校提供的免费软体有多稀少了
於是不断致力於把所有工作所需的软体都找到免费开源的替代品
现在已经几乎完全成功了
在此分享一下成果:
领域:理论/计算生物物理
应用程式:Mac,不过大部分Linux也通用,不通用的我会加上Linux替代方案
十年没用Windows所以不是很清楚通用情况
1.写文章:Latex (TexShop)
Latex打数学公式当然是最棒的,物理系和数学系都应该使用
当然,也没人禁止其他领域的人使用
反正现在投稿都可以只交PDF档,要出版时再交上格式不限的文字原始档
Nature, AAAS, Cell Press, Elsevier, Wiley, Oxford等出版社都收Latex
APS, AIP, ACS, RCS这些科学学会就更不用说了
理论上,任何文字编辑器加上终端机指令就可以编译Latex
(vi/emacs (不要起争议) + command line)
不过有个IDE介面还是稍微顺手点
我用的是MacTex package附带的
TexShop
Mac专用,只有编译快捷键,没有任何符号按钮
我在刚学Latex还不那麽熟悉各种符号格式编码时还用过一阵子的
Texmaker
这个就有Mac, Linux, Windows三种版本了
不过个人使用经验上Latex最强的还是模板套用能力
每次我打论文时都会用Phys Rev Lett双栏出版模式,就算不是要投稿RPL也一样
看着就很有工作的动力,印出来还可以骗骗生物系所许多没听过Latex的人
对Latex有兴趣的人可以从Texmaker开始:
http://www.xm1math.net/texmaker/
线上教学文件可以看Latex123,可能是最完整的中文线上文件
https://www.cs.pu.edu.tw/~wckuo/doc/latex123/latex123.html
2. 文献管理:BibDesk
BibDesk是个Mac限定的开源文献管理软体,
档案格式是Latex系统的.bib档,也可以输出ris档
一般人可能只用它来管理文献引用,但其实也可以一起汇入该笔文献的PDF档
做出不下於Papers和ReadCube等软体的漂亮介面:
https://bibdesk.sourceforge.io
不过我承认我用BibDesk最大的理由还是Mac+Latex粉
事实上有不少免费的跨平台文献管理软体都比要自己设定一堆东西的BibDesk好用
最有名的应该是被Elsevier买下的
Mendeley:
https://www.mendeley.com
还有和Nature和Wiley合作的
ReadCube:
https://www.readcube.com
这两个软体都需要注册帐号才能使用--出版社图的是使用资讯啊
因为出版社的关照,这两个软体的使用说明都相当完善,技术支援也随叫随到
除此之外的免费文献管理软体还有很多:Zotero, JabRef, ...
有时间的话完全可以每个都下载来玩玩(反正我觉得每一个都比EndNote好用)
3. 数值工作:Python(Anaconda package)
数值计算:NumPy+Scipy
数值绘图:Matplotlib
资料管理:Pandas
自从来到了加拿大我才知道原来Matlab并不是一个免费软体QQ(夸饰)
那麽该怎麽办呢?几乎无所不能的Python可以解救穷困的研究生於水深火热之中
Python的社群非常庞大,在各种应用方向上都有人在开发函式库
使用者多->找得到人问问题,开发者多->函式库和使用说明较完整
绝大多数时候只要google然後复制贴上程式码就行了,非常方便
要注意的是Python2正在逐步淘汰,所以要学Python就从Python3开始!
不过要用这些package当然得先对Python有些基本理解
我觉得只要有用过Matlab应该都会觉得很简单啦,语法看起来非常像
因为我很懒,所以直接用内含上百个Python package的Anaconda一次安装:
https://www.anaconda.com (事业做得很大,有付费企业版了)
不想载那麽大包软体的人也可以直接下载Scipy package:
https://scipy.org ,内含我提到的四个软体
IDE我是用IPython/Jupyter,上面两个package都有附,Spyder也是个选择
绘图:Matplotlib (Python)+Inkscape
所谓的研究其实就是出paper,所谓的出paper其实就是画图
画图是整个学术研究里(在有研究结果後)最重要的一件事情
前面提到我用Matplotlib做数值绘图的,基本上它什麽图都能画
Matplotlib官网的范例大全:
https://matplotlib.org/1.2.1/examples/index.html#examples-index
长条图:
https://matplotlib.org/1.2.1/examples/api/barchart_demo.html
直方图:
https://matplotlib.org/1.2.1/examples/api/histogram_demo.html
圆饼图:
https://matplotlib.org/1.2.1/examples/pylab_examples/pie_demo.html
散射图:
https://matplotlib.org/1.2.1/examples/pylab_examples/scatter_demo.html
3D表面:
https://matplotlib.org/1.2.1/examples/mplot3d/surface3d_demo.html
甚至动画:
http://jakevdp.github.io/blog/2012/08/18/matplotlib-animation-tutorial/
Matplotlib可以输出为ps, eps, pdf, jpg, png等格式,影片可输出为mp4
唯一的缺点大概是不支援CMYK色彩格式,希望以後可以支援
虽然Matplotlib跟Matlab一样,也可以加上xy轴名称、图片名称、标定特定数据点
我还是更喜欢把图档输出後输入到另外的绘图软体去加工标上文字
此外Matlab/Matplotlib要合并画出复数小图(图abcd这种)通常定位上比较复杂
所以我也喜欢个别画图後拿到绘图软体去合并
当然当然,如果要画的不是数值结果而是示意图,Matplotlib就派不上什麽用场
必须要有一个专业的绘图软体才行
最广为人知的绘图软体应该非Adobe Illustrator莫属
AI什麽都好,除了每个月30镁的订阅费这个缺点.....
免费的绘图软体有很多,许多历史还非常悠久
比方说我老板一直想要我跟他一起用Xfig:
http://mcj.sourceforge.net 看这什麽年代的设计风格(初版1985年)
我试过几个软体後,对
Inkscape最为满意:
https://inkscape.org/en/ 至少网页风格很与时俱进
跨平台,Mac/Linux/Windows都有版本
软体预设档案格式是svg(适合网页图片的向量图格式)
可以输出为ps, eps, pdf, ai, jpg, png, gif, tif, cdr, vsd, ....等格式
图片格式基本上不是问题
一般研究人员用Adobe Illustrator会用到的功能都有,至少我从没遇到问题
设计业者需要的高阶功能大概比较困难,不过一般学术工作者也用不到吧
至於色差什麽的问题,对大部分人来说比较迫切的可能是换个好一点的萤幕....
反正出版社做出来的八成还是会跟自己做的有差异,出版前最终校对时再和出版社谈吧
最後放个最近登出的充满彩图的论文
http://iopscience.iop.org/article/10.1088/1367-2630/aa9369/meta
含两分半钟大纲影片,使用Keynote(Mac限定免费)+Matplotlib制作
大部分都是数值结果,只有一两张示意图
并不真的需要多进阶的技巧,用Matlab+AI应该也可以轻松搞定
只是想藉此呈现本篇文章提到的所有免费软体能够做出的论文成果
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 99.230.0.170
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PhD/M.1519840587.A.826.html
1F:推 mmonkeyboyy: TexStudio你可以试试 03/01 02:15
2F:→ mmonkeyboyy: JabRef + google scholar就很够用了 03/01 02:17
3F:→ mmonkeyboyy: 甚至有时都自己去编啦XD 格式比较好 03/01 02:17
4F:→ caseypie: 不了,我爱记事本风格XD 03/01 02:17
5F:→ mmonkeyboyy: Inkscape真的非常好用 用配上PYTHON 大概就够了 03/01 02:18
6F:→ mmonkeyboyy: 我...後来常用的都是ATOM挂各种包 03/01 02:19
7F:→ mmonkeyboyy: 有一个没提到其实就是MAC PREVIEW再重出PDF 03/01 02:19
8F:→ mmonkeyboyy: 对有些出版社来说 这很重要XD (embedded font 03/01 02:20
9F:→ mmonkeyboyy: subset 03/01 02:20
10F:→ mmonkeyboyy: 现在很多人都用线上版的LaTeX就是了 03/01 02:21
11F:推 lisasweet: 请问您提的软体有支援MacOS嘛? 03/01 02:23
12F:→ caseypie: 我觉得JabRef没有BibDesk漂亮,而且好像不能预览PDF啊.. 03/01 02:23
13F:推 mmonkeyboyy: ....你是问我还是问原po (他不就是用mac?) 03/01 02:23
14F:→ lisasweet: 抱歉没提清楚...QQ 想问mm大的软体 03/01 02:24
15F:→ mmonkeyboyy: 所以我说後来我都自己编Q_Q 不过jabref通用了点 03/01 02:24
16F:→ mmonkeyboyy: 我也用mac.... 03/01 02:25
17F:→ lisasweet: 谢谢您~ 03/01 02:25
18F:→ mmonkeyboyy: 我也是免费派.... 03/01 02:25
19F:→ mmonkeyboyy: 但我有去贡献一点 算是还还债XD 03/01 02:26
20F:→ mmonkeyboyy: 现在还有一个跟matlab很像的免费软体 还有一个跟 03/01 02:27
21F:→ mmonkeyboyy: origin很像 另外 office很像的就 libreoffice 03/01 02:27
22F:→ mmonkeyboyy: 因为我工作关系还得常用linux 所以几乎我用的都是跨 03/01 02:27
23F:→ mmonkeyboyy: 平台的就是了 03/01 02:28
24F:→ caseypie: matlab很像的那个是octave吧? 03/01 02:28
25F:→ caseypie: 跟office很像的....就google doc吧XDD 03/01 02:28
26F:推 mmonkeyboyy: 我忘了名字了 前阵子我才在跟一堆跨平台使用者讨论并 03/01 02:32
27F:→ mmonkeyboyy: 出了篇相对应的介绍文章 03/01 02:33
28F:→ mmonkeyboyy: 是 gnu octave没错 03/01 02:33
29F:→ mmonkeyboyy: google doc也不错 XD libreoffice主要是离线&画图 03/01 02:34
30F:推 mmonkeyboyy: origin是 scidavis 03/01 02:39
31F:推 lingon: 这篇价值真高 03/01 03:07
32F:推 newseastar: 一定要推的,很用心 03/01 03:13
33F:推 mmonkeyboyy: 如果爱笔记本风格又没事要写点code的人吼.... 03/01 04:19
34F:→ mmonkeyboyy: 请用ATOM LaTeX <= 没事切来切去不失望呦~ 03/01 04:20
35F:→ mmonkeyboyy: 不过这有点geek就是了 03/01 04:21
36F:→ mmonkeyboyy: 或是更底层的vi vim emacs去的XD 03/01 04:21
37F:→ comaniac: Latex -> Overleaf / ShareLatex 03/01 07:08
38F:推 Philethan: 推!感谢分享! 03/01 07:22
39F:推 ykchang: 感谢您的分享 03/01 07:54
40F:推 hegandy: 超感谢分享以及推文的分享! 03/01 08:01
41F:推 ANUBISANKH: 我回台湾後也是完全舍弃 LabView,全部用 Python 做 03/01 08:13
42F:→ ANUBISANKH: 结果效果还比要收钱的 LabView 好。 03/01 08:14
43F:推 Philethan: 决定来用 python XD 03/01 08:48
44F:推 adifdtd: 推分享 03/01 09:14
45F:推 markliao: 感谢分享! 03/01 10:12
46F:推 mike0227: 分享推 但是超级电脑跑MATLAB其实有点浪费… 03/01 10:17
47F:推 calcium: 感谢分享!! 03/01 10:26
48F:推 mmonkeyboyy: 看来改天其实要来写一篇python的好了 03/01 11:39
49F:推 Huangxx: 感谢分享! 03/01 11:51
50F:推 wayne1229: 推 03/01 12:13
51F:推 moonwind76: 大推~ 太棒的分享 03/01 13:02
52F:推 tainanuser: 真用心!推!!! 03/01 14:34
53F:推 RumiManiac: 用心,推 03/01 21:27
54F:推 forst1117: 感谢认真分享!! 03/01 22:02
55F:推 liapocalypse: 感谢分享,非常用心 03/02 02:31
56F:推 ECZEMA: 推一个 我们大公司超抠门 最近我也在从matlab转anaconda 03/02 07:19
57F:→ mmonkeyboyy: 可以先过门octave 再过去python系列 03/02 09:56
58F:→ mmonkeyboyy: Labview要用 DAQ的就还是硬着头上了啊XD 03/02 09:57
59F:推 vbqv: 如果只是要取代matlab那octave可以用 缺点是它很慢 不在意 03/02 10:00
60F:→ vbqv: 的话语法差不多 03/02 10:00
61F:→ vbqv: 绘图软体可以考虑gimp 功能还挺多的 03/02 10:02
62F:→ mmonkeyboyy: 这种东西都是有备无患 03/02 10:02
63F:→ mmonkeyboyy: 就是用来小试一下东西就用octave 大型的还是走别路 03/02 10:03
64F:推 vbqv: 求快的话可以考虑julia 它是为了服务科学界而生的 据说和c 03/02 10:08
65F:→ vbqv: 差不多快 缺点是丢Google会跳AV女优出来(其实也算个优点啦 03/02 10:08
66F:→ vbqv: ㄎ) 03/02 10:08
67F:推 mmonkeyboyy: scala julia 都可以的 03/02 10:23
68F:推 pttnowash: 我比较喜欢Julia...很好用...常常用... 03/02 16:42
69F:推 jyung: latex 在一些领域接受度太低,会被老师骂 03/02 16:53
70F:→ jyung: 文献我都没有管理,直接doi转bib,doi转sci。hub抓,都能 03/02 16:58
71F:→ jyung: 自动化 03/02 16:58
72F:→ caseypie: julia貌似没有比numba/cython快 03/03 01:05
73F:→ caseypie: 说是专门服务科学界,但我觉得它就像个免费matlab..... 03/03 01:06
74F:→ caseypie: 最大的问题是泛用性依然不足啊,python社群太大太广泛了 03/03 01:07
75F:→ caseypie: 如果julia能够变出像mathematica的package那就另当别论 03/03 01:08
76F:推 jay123peter: 推~ 03/03 18:02
78F:→ mmonkeyboyy: 这个XD 就很多非程式相关领域要花更多时间 03/03 22:48
79F:→ caseypie: Go很有趣,但目前在我的领域没什麽用 03/04 00:34
80F:→ caseypie: 大部分人都只是使用者,泛用性和可读性还是最重要的 03/04 00:35
81F:→ bmka: 顺便推grammarly, 写作的好帮手 03/08 02:09
82F:推 mmonkeyboyy: 要钱~ 03/08 04:01
83F:→ bmka: 免费的阉割版就很好用了 03/08 04:07
84F:推 mmonkeyboyy: 也是 不过就用一阵子就懒得用了XD 03/08 07:13
85F:推 bearching: 推一个~! 03/09 14:45
86F:推 missaturn123: 推 03/20 18:25
87F:推 ilove61812: 推 08/02 12:46