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)给出了很多函数,我还没有
来得及仔细研究。不过大部分估计都没什么太大的用处。

,

留下评论