如何自动重载工作目录

使用如下命令, 可以登录时自动加载退出时的工作目录. 这在很多时候是方便的(例如vim的基于目录保存session).

首先在~./.bash_logout加入
pwd > ~/.lastdirectory
这表示在退出时, 将当前目录保存到文件~/.lastdirectory.

然后, 在~/.bashrc 里加入

这表示, 当~/.lastdirectory存在时, 切换到~/.lastdirectory文件中保存的目录.

清理TeX临时文件的一个脚本(Cygwin)

运行./clean.sh列出要清理的文件

运行./clean.sh -d执行清理

请根据需要修改目录texdir

脚本源码

关于电子书/文献整理的一些考虑

现在网络很发达, 电子书有泛滥的趋势. 个人就有不少电子书以及论文. 先罗列问题如下:

1. 杂乱. 首先没有一个地方专门来存储电子书, 而且文件名很乱, 导致不能够及时找到该文献.
2. 信息不全. 在写作过程中, 我们需要引用文献时, 找到电子书了还需要找该文献的参考文献数据, 这两者之间缺乏直接的关联.
3. 没有共享. 可能同一个方向的同学, 有好多备份的电子书/文献, 这里面重复的居多, 而相互之间有没有共享, 导致资源浪费(在获取/整理过程中).
4. 不能随时随地的读取. 例如去开会了, 没带电脑, 只手机; 又如和别人讨论, 需要看下文献; 论文写作, 需要在家/办公室协同等.
5. 需要安装指定的阅读器. 目前我主要有pdf/djvu格式的电子书, 这两种格式需要特定的程序才能阅读. 期望可以在线预览

设想需要解决的问题以及方案

1. 多用户的支持. 需要建立一个数据库, 将文件的基本信息和对应的参考文献链接起来; 将文件的所有者(多用户)和文件链接起来;
2. 杂乱的解决:
* 分类存放. 每个用户可以建立不同的group, 呈现给用户的文件是按照group来组织的;
* 文件名的统一. 利用参考文献数据, 统一将文件名设置为: 作者_年代_完整标题;
* 可以根据作者/杂志/年代/标题等其中两者搜索参考文献以及文件;
* 搜索结果是实时得, 呈现简要的信息:作者加粗 标题 杂志 年代 详细信息的链接
3. 多用户的协作. 通过自建seafile服务器, 将用户上传的文档放到一个统一的地方(root), 然后将链接分享给需要的用户;
4. 在线预览
5. 参考文献的导出. 最终用户的每个group有一个参考文献数据; 而且用户还可以选定一些文献, 然后导出它们的参考文献数据;

使用Mp3tag批量修改音乐的id3标签

从51ape.com下载的无损音乐会自动添加www.51ape.com到artist这一个标签. 我们可以用Mp3tag的正则表达式功能很容易地批量去除.

首先导入要处理的音乐文件, 然后(排序)选中那些需要处理的音乐文件, 按快捷键Alt+5打开标签编辑窗口, 填入
Field: ARTIST
Format string: $repl(%artist%,'[‘www.51ape.com’]’,)
如图所示:

确认即可. 是不是很方便呢?

这里$repl的格式可以参考Mp3tag Help–scripting functions. 这个方案来自stackoverflow.

Vimtex不能运行latexmk的原因

安装vimtex这个vim插件后, 提示不能找到latexmk这个程序. 但是从shell是可以正常运行latexmk来编译的. 这主要原因是我们添加的texlive路径有问题.

问题重现

假设在Ubuntu中安装了gvim(sudo apt-get install vim-gtk)以及texlive, 并将texlive的可执行文件路径添加到系统$PATH. 这里添加的方法是:

其实上面的export可以是~/.bashrc, 但是都会产生同样的问题. 即当我们从终端(Terminal)启动gvim时, 可以看到:echo $PATH包含了上述路径, 但是当我们从Laucher启动时, 却没有上述路径. 这就是Gvim从Laucher启动不能用来编译tex的原因.

解决办法

根据这里的解释, 上面添加路径的办法只对Bash Shell有影响. 故我们需要将上面的路径添加到~/.profile:

然后重新登录即可.