打造最高效的科研环境之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 用于构建及 ...
随机推荐
- 系统建设 > 医疗集团CRM系统建设步骤与分析
概述 医院客户关系管理系统(Customer Relationship Management,简称CRM)是一个完善的“以病人为中心”的管理系统,为集团/医院/总院分院/管理机构提供院前.院中.院后的 ...
- Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据
Protobuf序列化的字节流数据是不能自描述的,当我们通过socket把数据发送到Client时,Client必须知道发送的是什么类型的数据,才能正确的反序列化它.这严重影响限制了C/S功能的实现, ...
- 【前端】js中new和Object.create()的区别
js中new和Object.create()的区别 var Parent = function (id) { this.id = id this.classname = 'Parent' } Pare ...
- iOS的多版本配置(版本分离,多环境配置)
前几天公司说一个客户要搞一个app,我说搞呗,跟我啥关系...他说,就是从咱的app上搞,什么都一样,就是一些logo啥的不一样.我一开始感觉,那就改改logo呗,后来一想,凑,百度推送,友盟统计,B ...
- SQL-Server使用点滴(三)
除了基本的数据库,数据表,数据记录操作之外,SQL-Server还为我们提供了比较丰富的其他对象元素.函数,过程,触发器,序列,映射服务器, 以及对各种元素的系统表信息读取与判断. --先加一个利用递 ...
- COG注释--转载
http://blog.sina.com.cn/s/blog_670445240102uxwy.html 一 COG简介 COG,即Clusters of Orthologous Groups of ...
- [Linux]cmd to use
0x01 Linux Perfermance Analysis in 60s 1> uptime ---load averages 2> dmesg -r | tail ---kernel ...
- python连接mysql的驱动
对于py2.7的朋友,直接可以用MySQLdb去连接,但是MySQLdb不支持python3.x.这是需要注意的~ 那应该用什么python连接mysql的驱动呢,在stackoverflow上有人解 ...
- 简单的canvas时钟
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- web开发字符乱码问题
java动态网页后台乱码问题总结 乱码可能出现的几块地方: 首先是浏览器和html之间采用的编码不一致 解决办法: 修改浏览器的编码格式 修改html页面的编码格式: <meta http-eq ...