Linux 下体验极速飙车
Linux 为何对病毒免疫?

试用了一下 diff + patch

lyanry posted @ 2007年8月21日 17:14 in 我爱用Gentoo with tags diff patch , 3278 阅读

Beamer 3.07 + CJKutf8 + pdfLaTeX 生成的 PDF 演示文档,其中文书签是乱码。究其原因,是因为 Beamer 只支持 CJK ,不支持 CJKutf8。鱼一尾兄对这个问题给出了一个解决的方法,见:
http://acevery.cnlog.org/2007/02/beamerutf8.html。我的测试,这个方法对于 Beamer 3.07 依然有效。

我这里要说的不是解决 PDF 演示文档中文书签是乱码的问题,而是如何从一份修改后的文件产生补丁并作用于未修改文件的方法。

假定我的Beamer 安装路径是 $Beamer。首先,我进入 $Beamer/base 目录,在该目录下将 beamer.cls 复制一份,命名为 beamer_new.cls。之后,按照鱼一尾兄给出的方法,对 beamer_new.cls 进行了修改。完后,可以使用 diff 工具对 beamer.cls 与 beamer_new.cls 进行比对,并生成补丁文件,所用命令如下:

$ diff -Nur beamer.cls beamer_new.cls > beamer.patch

生成补丁后,我就可以将这个补丁提供给别人使用。

现在假定你下载了 beamer.patch ,你需要将它复制到 $Beamer/base 目录中,然后执行:

$ patch -p0 < beamer.patch

这样,你的 beamer.cls 就与我修改后的 beamer_new.cls 一样了。

如果你觉得这个补丁不好,或者你有更好的方法来解决 PDF 演示文档中文书签,你想将已经打了补丁的 beamer.cls 恢复原状。这时,只要你的 beamer.patch 还在 $Beamer/base 目录下,可以这样:

$ patch -R -p0 < beamer.patch

具体 diff 与 patch 各参数的作用可参考 man,也可以参考下面文章:

用Diff和Patch工具维护源码


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter