VIM 技巧汇总(置顶)

read more »

Zim的TeX公式中使用中文

找到_Equation.tex模板文件,改成这样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
\documentclass[12pt]{article}
\pagestyle{empty}
\usepackage{CJKutf8}

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[usenames]{color}

\begin{document}
\begin{CJK}{UTF8}{gbsn
}

% No empty lines allowed in math block !
\begin{align*}
[% equation -%]
\end{align*}

\end{CJK}
\end{document
}

插入时,用

1
2
3
\end{align*}
这里是中文
\begin{align*
}

来跳过align*环境。或者直接把模板文件中的align*环境去掉,但是这样在多数情况下不方便。

另外,如果要插入表格,也可以使用上面的方法跳过align*环境。

Homeland中谁是CIA内奸?

Homeland第一季已经播了10集,说是还有两集这季就完了。第二季啥时候放还不知道。

CIA内部肯定有叛徒。这家伙害死了Lynne Reed(线人,沙特王子女友),放跑了Raqim(那个副教授),炸死了外交官。

如果他不准备在这一季暴露的话,有可能是还没有出现的人物,也就没办法猜了。否则,应该是已经出场的人物,而已经出场的CIA官员并不是太多。

根据Aileen Morgan接到的提醒电话,可以排除所有的女性(当然也有可能不是内奸直接打的电话,但是从Aileen接电话的情况看,这人是第一次打电话过来,所以很可能是内奸本人迫不得已直接打的电话)。已经出场的男性CIA官员主要有David(头儿),Saul,Danny Galvez(分析员,给Carrie开过几次车,站在Raqim家屋顶瞭望的那位),以及安装监听设备的一老一少。

安装监听设备的一老一少好象不是正式工,级别太低,不可能接触核心秘密,可以排除。Saul和Danny也可以排除,主要原因是Danny在Raqim家屋顶搜查无果时,Saul指示Danny使用望远镜瞭望,从而发现疑点,线索转向狙击手。如果两人有一人是内奸,不太可能找到这个疑点。

剩下的只有David了。不管什么线索,只有Carrie和Saul知道的时候,啥事儿没有,时不时有些进展。只要让David知道了,就会出意外。另外,David还让Brody见了那个看守,把刀片给了他。

想来想去,内奸最有可能是David。

让Sage Notebook中的LaTeX环境支持中文

只需要修改$SAGE/devel/sage-main/build/sage/misc/latex.py,就可以让notebook中的latex环境支持中文。
测试环境:Archlinux + Sage 4.7 + TeXLive 2011

  1. COMMON_HEADER字符串的最后添加”\\usepackage{CJKutf8}\n“
  2. 文件中有三处包含”\\begin{document}\n“的字符串(注释块中的不算),在其后添加”\\begin{CJK}{UTF8}{gbsn}\n\n“
  3. 文件中有三处包含”\n\\end{document}”的字符串(注释块中的不算),在其前面添加”\n\n\\end{CJK}\n“

这样,就能在notebook的%latex环境中使用中文了。

KDE回收站没有空间的解决方法

症状:无法删除文件,删除文件时提示“回收站已到达其最大容量! 请手动清理回收站。”用Dolphin打开回收站,没有任何文件,并且回收站所在的分区有足够空间。

一种可能的原因是:~/.local/share/Trash/metadata文件中Size选项所对应的数值太大。

解决方法:将~/.local/share/Trash/metadata文件备份后删除。

一个新的支持latex的vim插件

Automatic (La)TeX Plugin for Vim (atp-vim)是一个新的支持LaTeX的插件。前些天刚发现时,bug还比较多,经常出错,现在的版本好多了。与latexsuite相比,有些新的功能很不错(毕竟06年以后latexsuite就没有更新过),推荐给喜欢LaTeX,VIM,Python的朋友。

完整的特性可以查阅官方的Feature List,或者手册。下面几条是我比较喜欢的。

  • 正向查找。由vim中光标处直接跳至pdf相应位置处。
  • 反向查找。由pdf跳转至vim相应源代码处。
  • 清理中间文件。这个功能实现起来不难,但是有了总是方便一点,特别是对有洁癖的人。
  • 补全命令也很丰富。

总的来说,值得一试。

ps. 目前最新的测试版是9.6.7。从SF的记录来看,最早的版本是今年3月份发布的,上来就是9.1。莫非现在流行大版本号?

7月11日补充:如果源文件所在目录的路径中包含中文,则会出现很多问题,而且很诡异。

Arch Linux升级系统内核后无法启动的处理

个人感觉Arch Linux是比较激进的一个发行版。早早将Python的默认版本升级到3.0,对待内核也是不留余地。内核文件不区分版本号,都叫kernel26.img,因此每次升级内核,都会将老内核文件覆盖。一旦新内核有问题,麻烦就大了。

今天一开机,习惯性的pacman -Syu,和往常一样,有若干软件包需要升级,直接确认升级。最后才注意到内核也升级了。重启后,卡在加载Alsa的那一步,无法进入系统。折腾了一上午,以下方法可以避免重装。

  • Arch Linux还是给自己留了一条后路。系统一般安装了lts版(应该是长期支持版本)的内核,也就是kernel-lts.img和vmlinuz26-lts,都在/boot目录下。如果没有安装这个包,建议立即安装,以备不时之需。可以在系统启动时,修改启动参数,选择使用lts版内核。Grub菜单出现后,按e修改启动参数,将kernel26.img换成kernel26-lts.img,将vmlinuz26换成vmlinuz26-lts,按b启动即可。或者在系统还是正常的时候,修改/boot/grub/menu.lst文件增加一个使用lts内核的启动项。

  • 如果已经进不了系统,也没有安装lts内核,用Arch Linux系统盘启动或者其他方式启动,想办法加载原系统的/分区,修改/etc/rc.conf文件,将启动时报错的服务禁用后重启。我这次是alsa和hal与新内核不兼容,重启后进入系统。

  • 后来在Arch Linux的wiki上看到另外一个方法:https://wiki.archlinux.org/index.php/Kernel_Panics_(%e7%ae%80%e4%bd%93%e4%b8%ad%e6%96%87),但是我自己还没有尝试。

为了防止以后出现类似问题,可以将kernel26和kernel26-headers加入pacman.conf的忽略包列表,这样在使用pacman -Syu时,这两个包就不会被升级了。

Archlinux下安装HP LaserJet P1505打印机

1) 安装cups

1
2
3
sudo pacman -S cups

修改/etc/rc.conf,在DAEMONS中添加cups

2) 安装hplip和hplip-plugin

1
2
3
yaourt -S hplip-plugin

(注:以上命令运行时,会自动安装hplip)

3) 启动cups

1
2
3
重启计算机或运行如下命令:

sudo /etc/rc.d/cups start

4) 添加打印机

1
2
3
4
5
6
7
- 将打印机连接到电脑上,打开电源
- 通过浏览器访问http://localhost:631
- 进入Administration --> Add Printer,按提示输入系统管理员账号密码
- 选择"HP LaserJet P1505 USB CA2988Z HPLIP (HP LaserJet P1505)"(其中的编号有可能不同),点击"Continue"
- 修改打印机名称等信息后点击"Continue"
- 在Model中,选择"HP LaserJet p1505, hpcups 3.11.3, requires proprietary plugin (en)",点击"Add Printer"
- 选择打印机默认设置选项后,点击"Set Default Options"

5) 下载Firmware

1
2
3
4
5
6
7
运行

hp-toolbox

(或在程序菜单选择HP打印机管理程序)

在左边选择正确的设备,点击"Download Firmware",再点击"Download Firmware"

6) 打印测试页

1
如果以上步骤正确,应该能够输出正确的打印结果。(我的机子上,使用cups的web管理界面打印出的测试页有方块,不知道是不是缺字体的原因。)

注:如果有问题,可以尝试将用户加入到lp组:sudo gpasswd -a yourusername lp

===========================

English Version

Install HP LaserJet P1505 printer under Archlinux

1) Install cups

1
2
3
sudo pacman -S cups

Modify /etc/rc.conf, add cups to DAEMONS.

2) Install hplip and hplip-plugin

1
2
3
yaourt -S hplip-plugin

(Note: hplip will be installed automatically with this command)

3) Start cups

1
2
3
Reboot your pc or run this command in command-line window:

sudo /etc/rc.d/cups start

4) Add printer

1
2
3
4
5
6
7
- Connect the printer and power on.
- Using web browser to access http://localhost:631
- Click Administration --> Add Printer,and input root's information.
- Select "HP LaserJet P1505 USB CA2988Z HPLIP (HP LaserJet P1505)" (the number may be diffenent), click "Continue".
- Modify the information or not and click "Continue".
- In "Model", select "HP LaserJet p1505, hpcups 3.11.3, requires proprietary plugin (en)", click "Add Printer".
- Select the default options, and click "Set Default Options"

5) Download Firmware

1
2
3
4
5
6
7
run this command

hp-toolbox

or select from the program menu.

Select right device in the left coloum, click "Download Firmware", and click "Download Firmware" again.

6) Print test paper

1
It's done.

Note: can anyone help me to improve my poor English?

=============================

周五晚将ubuntu 11.04换成Archlinux,速度有提升,但是太折腾。每项设置都要看着wiki,开着google。目前感觉最困难的是声音和打印机。

alsa折腾很久都没有声音,换oss。有声音了,还挺大,但是插上耳机没有用,还是用喇叭放。又换回alsa,莫明其妙好了,也不知道是哪个地方的设置起作用了。

打印机也很麻烦,什么hplip了,foo2zjs了,直接安装了,自己编译了,反正能查到的,能折腾的,都试了一遍。周六凌晨终于能够打印了。睡了一觉起来,打印机又不干活了。又折腾了一天,总算成功了。为了保险,将所有相关的程序都删除,再重新安装,确认没有问题。

关键的步骤有三点:1、第4步添加打印机时,只能用cups的web管理界面添加,不能用HP的管理程序添加。用HP的程序添加时,总是会卡在下载plugin那一步,无法下载。2、Model一定要选对,其他的不行,至少在我的机子上不行。3、第5步,Firmware一定要下载,不下载打印机不干活。

相信以上步骤对于其他发行版下安装HP打印机也有一定的参考价值。

PS:知道第一次安装、配置会很难,但是没想到这么难!现在我知道为什么装了Archlinux的人都说,装了一次,就不用重装了,折腾不起啊!

Python中更改程序运行目录为程序所在目录

一般情况下不需要做这一步,程序运行时默认的运行目录是程序所在的目录,但是有部分IDE会更改这一设置。所以,可以添加以下代码:

1
2
3
import os

os.chdir(os.path.abspath(os.path.dirname(__file__)))

Python处理pdf文件的包

  • pyPdf
    纯Python的PDF处理工具。
    主页:http://pybrary.net/pyPdf/
    主要功能:
    • 读取文档信息(标题,作者,……)
    • 逐页分割文件
    • 逐页合并文件
    • 裁剪页面
    • 合并多个页面为一个页面
    • 加密、解密PDF文件
  • ReportLab
    强大的生成PDF文件的库。
    主页:http://www.reportlab.com/software/opensource/rl-toolkit/
    主要功能:

    • 创建专业的PDF文件
    • Real document layout engine (Platypus) (这个不知道怎么翻译,大概是很NB的页面布局引擎)
    • 浮动对象,如段落,标题行,表格,图像,图形等
    • 支持嵌入Type-1字体或TTF字体
    • 支持亚洲,希伯来和阿拉伯字符
    • 支持任何流行格式的位图图像
    • 支持矢量图形
    • 包括一个可重用的基本图形库
    • 可扩展的widget库
    • Layed architecture, written in Python
    • 包含简单示例和更复杂的工具
    • 允许使用任何数据源
    • 源代码完全公开
    • 强大的社区支持
    • 跨平台
  • PDFMiner
    主要用于分析PDF文本内容的工具。
    主页:http://www.unixuser.org/~euske/python/pdfminer/index.html
    主要功能:

    • 纯Python(2.4以上版本)
    • 解析,分析和转换PDF文档
    • 支持PDF-1.7标准(几乎完美支持)
    • 支持CJK语言和竖向书写
    • 支持多种字体格式(Type1,TrueType,Type3和CID)
    • 基本的加密支持(RC4)
    • PDF转HTML(一个简单的Web转换器)
    • 摘要(TOC)抽取
    • 标记抽取内容
    • 重构原始布局

简单讲,如果只折腾现成的PDF文件,用pyPdf,如果要生成新内容的PDF文件用ReportLab,如果要分析现有PDF文件的内容,用PDFMiner。

不过,生成PDF方面,我更愿意使用LaTeX系列的工具,这样质量有保证,乱码之类的问题比较少。

Sage-多项式插值

http://www.sagenb.org/home/pub/2736/
下载:Interpolation

无觅相关文章插件,快速提升流量