MkIV 会错误的吃掉中文字符与半角标点之间的空白
zhfonts 模块的用法

在 inkscape 中插入 LaTeX 与 ConTeXt 标签

Garfileo posted @ 2010年12月22日 16:35 in ConTeXt 笔记 with tags ConTeXt MkIV Inkscape latex TeXText , 7075 阅读

在 Linux 桌面应用较为广泛的 inkscape 可以通过 textext 扩展实现在矢量图形中插入 LaTeX 标签的功能。昨天因为 CTeX bbs 上 cvgmt 询问类似的功能,我推荐了 inkscape + textext,然后顺便 hack 了一下,让这个扩展可以支持 ConTeXt MkIV。这篇文章对这个 hack 过程稍做总结。

inkscape + textext 依赖以下软件包:

  • inkscape (>= 0.47,本文以 0.48 版本作为示例)
  • textext (>=0.44)
  • pdf2svg

将下载的 textext 包解开后,将所得 textext.inx、textext.py 文件存放于 ~/.config/inkscape/extensions 目录。

理论上,现在可以打开 inkscape,然后打开 "Extensions->TeX Text" 菜单,便可以向 inkscape 输入 LaTeX 文本了。

但是由于最近这一两年,python 和 gtk+ 的版本更迭导致许多软件包的兼容性出现了一些问题。在此,需要一一排查。

首先排查一下 pygtk 的兼容性。打开终端,输入 `python`,然后在 python 的交互环境中输入 `import gtk`,如果未出现一些警告信息或者错误信息,那么恭喜一下,这一关你通过了。

继续在 python 的交互环境中输入 `import md5`,如果 python 交互环境警告你,说这个 md5 模块过时了,那么需要使用 hashlib 模块替换 md5 模块。替换方法为:将 textext.py 文件中的 `import os  sys ... md5 ...` 代码修改为 `import os sys ... hashlib ...`,然后将:

md5.new('%s%s' % (a, kw)).hexdigest()[:8]

修改为:

hashlib.new('md5', '%s%s' % (a, kw)).hexdigest()[:8]

这些工作完成之后,向 inkscape 中插入 LaTeX 文本应该没有什么问题了。

对于 ConTeXt MkIV 用户,可以使用我修改过的 textext 包,在这里下载。在使用时,如果所用的 ConTeXt MkIV 来自 context minimals 包,那么要确定已经启用了 ConTeXt 环境,详见“这就是 ConTeXt Minimals”。

textext 扩展不爽之处在于它提供的 TeX 输入接口是一个模态的对话框。

抓屏:

  

转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com


登录 *


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