打造最高效的科研环境之Emacs插件们
-1 修改日志
[1] 以上插件,在CentOS7 (内核 3.10.0-514.16.1.el7.x86_64)上的 Emacs 25.2 中同样安装成功。
0 盲人摸象
作为初学者,迫切的需求就是直接上手Emacs并打造包含自动补全命令在内的科研环境。
和网上众多的插件安装的教程相比,我认为找到一个与自己需求匹配的Emacs配置环境来得更方便。
本例中,在实测了两个AucTex和CDlatex插件的安装无果之后,转而寻找现成的配置。
比如Github上的这个设计,支持
- C/C++
- Matlab
- Markdown/LaTeX
- Haskell
与我的需求高度重合,克隆一份相应的配置简直是再方便不过了!也省去了一个个安装的麻烦,也无需解决各个依赖关系,对新手是再适合不过了!
1 更新Emacs配置
本机环境:
$ uname -r
Linux She 2.6.-.el6.x86_64
安装的Emacs版本:
$ emacs --version
GNU Emacs 24.5.
Copyright (C) Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
下载相应的Emacs配置文件:https://github.com/xyguo/emacs.d,选择“Download ZIP”下载压缩包,解压之后,将相应的文件放置到~/.emacs.d/文件夹中。
如果不存在~/.emacs.d/文件夹,上述下载-解压-复制的工作还可以用以下的一句命令来完成:
$ git clone https://github.com/xyguo/emacs.d.git ~/.emacs.d
在终端执行命令,使得配置的Emacs环境立即生效:
$ emacs --debug-init
至此,一个同样的环境被安装完毕,支持命令自动补全,Matlab | Python | C | Latex等语言的语法高亮。
剩下的工作就是如何熟悉这个环境,尤其是快捷键的操作,稍作练习,我相信能很快上手。
2 手动安装package(包)
具体内容译自这里。手动安装package,就是要解决两个问题:(1) LaTex 采用的是什么样的树结构?(2) 应该把一个package中的文件放到哪个目录下? 解决完这两个问题,package 也就安装好了。
两个问题的答案:
(1) 使用以下命令找到 TexLive 的树目录所在位置(若有疑问,可参考这里):
$ kpsewhich -var-value TEXMFLOCAL
/usr/local/texlive/texmf-local
$ echo $TEXMF
/usr/local/texlive/texmf-local
package 的各个文件,都需要放到这个树目录下,但是具体位置还需要根据树目录的规则,也就是第 (2) 个问题的答案来决定。
如果环境变量 $TEXMF 并不存在,则需要设置相应的环境变量,设置方法请参见另一篇博客:《[CentOS] 环境变量设置的三种方法》。
(2) 根据 TexLive 树目录的规则,package 的文档按以下规则来放置(若有疑问,可参考这里):
We assume here that you have decided what tree to put your files in, after reading “choosing a TDS tree”. We will therefore write $TEXMF for it, and you need to substitute the tree you decided on.
The basic idea is to imitate the directory structure in your existing tree(s). Here are some examples of where various sorts of files should go:
.sty, .cls or .fd: $TEXMF/tex///
.mf: $TEXMF/fonts/source///
.tfm: $TEXMF/fonts/tfm///
.vf: $TEXMF/fonts/vf///
.afm: $TEXMF/fonts/afm///
.pfb: $TEXMF/fonts/type1///
.ttf: $TEXMF/fonts/truetype///
.otf: $TEXMF/fonts/opentype///
.pool, .fmt, .base or .mem: $TEXMF/web2c
and for modern systems (those distributed in 2005 or later, using TDS v1.1 layouts):
.map: $TEXMF/fonts/map///
.enc: $TEXMF/fonts/enc///
实际上,自 TexLive 2015 起,minted package 就已经被打包在 TexLive 安装程序中,不需要再单独安装。
这里以 minted package 为例,介绍手动安装的过程。minted 包是一个用于给程序代码自动着色的包,它的官方网址位于:https://www.ctan.org/pkg/minted。
从GitHub 上可以下载它完整的 package,下载之后进入到相应的目录中,将 minted.sty 文件按照上述树目录的规则拷贝到 $TEXMF/tex 目录下,再运行 texhash 命令更新即可。
$ cd ~/Documents/
[She@localhost Documents]$ git clone https://github.com/gpoore/minted.git
正克隆到 'minted'...
remote: Counting objects: , done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta ), pack-reused
接收对象中: % (/), 6.01 MiB | 725.00 KiB/s, done.
处理 delta 中: % (/), done. [She@localhost Documents]$ sudo cp ./minted/source/minted.sty $TEXMF/tex
[sudo] password for She: [She@localhost Documents]$ su
密码:
[root@localhost Documents]# texhash
texhash: Updating /usr/local/texlive//texmf-config/ls-R...
texhash: Updating /usr/local/texlive//texmf-dist/ls-R...
texhash: Updating /usr/local/texlive//texmf-var/ls-R...
texhash: Updating /usr/local/texlive/texmf-local/ls-R...
texhash: Done.
[root@localhost Documents]# exit
exit
[She@localhost Documents]$
从页面上的 Download 链接可以下载到一个压缩包,包括以下几个文档:
Makefile
minted.dtx
minted.ins
minted.pdf
README
安装和使用详见 minted.pdf 文档,需要注意的是,minted 包需要首先安装 Python 的 pygments 组件,安装完成之后,将 文档拷贝到 $TEXMF 目录下的
minted 会生成一些编译的临时文件,比较乱
可以把这些临时文件输出到特定文件夹
\usepackage[outputdir=build]{minted}
如果不想留临时文件:
\usepackage[cache=false, outputdir=build]{minted}
小尾巴:auto-complete 自动补全插件的下载地址为: https://github.com/auto-complete/auto-complete
许多常用的插件,都可以在GitHub中下载到,这个网址要经常访问,上面有好多宝贝待挖掘。
参考资料和学习文档:
[2] Emacs配置文件——新手攻略,相应的配置文件在Github可以下载到。
[3] AUCTeX+Emacs 是目前我见过的能最大限度提高 LaTeX 编辑效率的编辑器(转)
[4] AucTex: A sophisticated TEX environment for Emacs
[6] RefTex配置文件,待安装...
打造最高效的科研环境之Emacs插件们的更多相关文章
- 打造高效前端工作环境 - tmux
打造高效前端工作环境 - tmux 前言 现在前端开发可不容易啊,先打开个VIM,然后再打开个lite-server,一不小心写个ES2015还要打开个gulp来做预编译,如果能把这么多个窗口放在一 ...
- 打造高效的工作环境 – SHELL 篇
注:本文由雷俊(Javaer/Emacser)和我一起编辑,所以文章版权归雷俊与我共同所有,转载者必需注明出处和我们两位作者.原文最早发于酷壳微信公众号,后来我又做了一些修改,再发到博客这边. 程序员 ...
- 用 CentOS 7 打造合适的科研环境
这篇博文记录了我用 CentOS 7 搭建 地震学科研环境 的过程,供我个人在未来重装系统时参考.对于其他地震学科研人员,也许有借鉴意义. 阅读须知: 本文适用于个人电脑,不适用于服务器: 不推荐刚接 ...
- 用CentOS 7打造合适的科研环境 :zhuan
这篇博文记录了我用CentOS 7搭建地震学科研环境的过程,供我个人在未来重装系统时参考.对于其他地震学科研人员,也许有借鉴意义. 阅读须知: 本文适用于个人电脑,不适用于服务器: 不推荐刚接触Lin ...
- 用CentOS 7打造合适的科研环境
http://seisman.info/linux-environment-for-seismology-research.html 这篇博文记录了我用CentOS 7搭建地震学科研环境的过程,供我个 ...
- Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境
1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程序员的博客平台 开发者为什么要写作 写作平台 第三方博客平台 自建博客平台 开发论坛 1 ...
- [转载] 高效MacBook工作环境配置
原文: http://www.xialeizhou.com/?p=71 高效MacBook工作环境配置 发表于 2015 年 8 月 1 日 由 xialeizhou 本文记录整个配置过程,供新入手M ...
- 老司机带你用vagrant打造一站式python开发测试环境
前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...
- Vagrant - 打造跨平台的一致开发环境
官网 参考资料 借助 Vagrant ,可以使用 Vagrantfile 文件自动化虚拟机的安装和配置流程,方便快速的打造跨平台的统一开发环境. 1. Vagrant 是啥 Vagrant 用于构建及 ...
随机推荐
- mac攻略(七) -- 环境变量PATH分析
一.首先需要了解 1>mac 一般使用bash作为默认shell 2>Mac系统的环境变量,加载顺序为: 1.系统级别的 /etc/profile /etc/bashrc /etc/p ...
- QLPreViewController的初步实用
前一阵项目需要添加一个文档文件的查看功能,于是就各种找资料,一开始想实用webView,然而webView有的格式不支持,而且占内存太大了.找着找着就找到QLPreViewController.用了一 ...
- view animation
动画分为 帧动画 drawable animation 补间动画 view animation 属性动画 property animation 作用效果: 加载信息时loading动画 act ...
- CSS 选择器
1. . ==> class选择器 2. # ==> id选择器 3. * ==>选择所有元素 4.<p> ==>选择所有<p>标签的元 ...
- ASP.NET MVC 静态资源打包和压缩问题小记
ASP.NET MVC 中有个 BundleConfig 用于静态资源的打包和压缩,我在使用的过程中遇到一些问题,现在做下总结,并给出具体的解决方案. 问题一:打包压缩后的 JavaScript 和 ...
- http协议 幂等性的理解
HTTP GET.DELETE.PUT.POST四种主要方法的幂等性的理解 GET: GET请求是幂等的,多次的GET请求,不应该修改数据状态,只是查询. DELETE Delete请求也具有幂等性, ...
- mysql表创建好后添加外键
命令:alter table 需加外键的表 add constraint 外键名 foreign key(需加外键表的字段名) referencnes 关联表名(关联字段名); 注意:外键名不能重复
- C# 类型转换
int 转换 string 转换有两种: 一种是隐式, ; string b = a.ToString(); 一种是显示. sting b=Convert.ToString();
- laravel 实现上传 excel
//导入电话号码 public function postTel(){ set_time_limit(0); ini_set('memory_limit','1024M'); $params = In ...
- Linux 利用 locate 和 find 查找文件
Linux 利用 locate 和 find 查找文件 命令 locate 用于快速查找文件.文件夹.此命令并没有在磁盘上查找所有文件,而是在预先建立的数据库里进行搜索.可以使用 updatedb 命 ...