Archive for 2005年8月
TeX4ht效果不错
TeX4ht效果不错
我个人感觉看起来比以前用latex2html弄出来的要好看。不过,最后出来的文件
用到mathml,必须用支持mathml的browser。在Windows下我用firefox,得要在这
里装一个额外的字体:
http://www.mozilla.org/projects/mathml/fonts/
在Linux下具体安装TeX4ht请参看这篇文章:
http://gentoo-wiki.com/HOWTO_Convert_LaTeX_to_HTML_with_MathML
用RamDisk来为coLinux增加内存
1。用RamDiskXP之类的软件设定一个ramdisk,format成fat32。这个盘在我的机器上会被XP认成G盘。
2。生成一个空白文件以便coLinux swap用。有很多种方法,我用的是这个:
打开Cygwin terminal, 进入/cygdrive/g,执行:
dd if=/dev/zero of=1G.swap bs=1000k count=1024
3。修改colinux的那个xml配置文件,加入这一行(你的index当然不一定非得选6):
<block_device index="6" path="\DosDevices\g:\1G.swap" enabled="true" />
4。修改/etc/fstab,加入这一行:
/dev/cobd6 swap swap defaults 0 0
5。重起colinux service,这个时候系统就应该把那个ramdisk认做/dev/cobd6了,但要用它做swap我们还得做最后一件事情:
6。mkswap /dev/cobd6;swapon /dev/cobd6。
大功告成,用free 来确认一下:
root:/root # free
total used free shared buffers cached
Mem: 515936 229312 286624 0 103524 61556
-/+ buffers/cache: 64232 451704
Swap: 1023992 0 1023992
这个方法唯一美中不足的就是我的XP现在隔一段时间就会警告我一次:G盘空间不够啦!所以,最佳办法应该是做一个unformatted ramdisk,这样Windows不会去mount它,然后我用colinux来mount这个raw device。但是我的试验失败了,下面是我的步骤:
1。我找到了一个dd.exe,可以用来列出Windows下面的devices:
http://uranus.it.swin.edu.au/~jn/linux/rawwrite/dd.htm
开一个DOS窗口或者cygwin窗口,执行:
dd.exe –list
我能看到那个ramdisk,它有一个比较奇怪的label,大概是\\?\?\RamdiskXP nramdisk。我把这个东西加到colinux配置文件里头去,colinux不认 :(
GNU readline library
readline library
今天研究了一下bash,终于搞明白了这个readline库的作用,解决了一直想解决
的一个小问题:怎么实现类似于tcsh里头的M-p history-completion,还有如何
把Meta arrow-right/left设定成forward/backward-word。
Bash所有的行编辑命令都是通过调用readline library来实现的。这个readline
库受~/.inputrc的控制。而且不止是Bash,别的不少开源程序比如说R也通过
readline来接受命令行,所以学会调整~/.inputrc还是有一定的好处的。
首先,我们来看看系统默认都设了一些什么热键:
bind -p > temp.txt
然后启动一个编辑器(自然是emacs了)来编辑这个temp.txt文件。
我发现,类似于tcsh的历史扩展函数叫做history-search-backward,系统默认没
有绑定在任何键上。Meta-p被设置成non-incremental-reverse-search-history。
所以下一步就是把Meta-p设成history-search-backward,我先用bind来做个实验:
bind ‘"M-p": history-search-backward’
然后再做实验:
bin加上Meta-p Bash果然就调出了bind ‘"M-p": history-search-backward’!
之后就是把这个新的热键还有相对应的向前搜索写进~/.inputrc:
"M-p": history-search-backward "M-n": history-search-forward
再通过C-x C-r读进新的设置,我的Bash就实现了tcsh的那种历史展开了。
之后我还加上了:
"\M-\M-[C": forward-word "\M-\M-[D": backward-word "\M-k":
kill-whole-line
这样同时按下Meta和arrow right/left,在我的键盘上就可以实现
forward/backward word。
我是怎么知道同时按Meta和arrow right/left到底是什么控制符的?很简单,
Bash里头有一个功能可以让你输入raw control sequence:C-v。你在Bash里头先
按一下Control v,然后再按一下arrow right,在我的terminal里头就出现了:
^[[C,这就是Meta [C了,因为control [等于Meta。而我想要的组合是meta 加
arrow right,所以就应该写成\M-\M\[C,这是emacs lisp里头的标准写法。
查看readline的手册(man readline,或者bind -l)给出了很多函数,我还没有
来得及仔细研究。不过大部分估计都没什么太大的用处。