WriteTeX 1.6.1版发布

WriteTeX是Inkscape的原生公式插件,这次更新主要解决了`pdfcrop`的问题。

目录


1.6.1版WriteTeX发布

大家可到这里下载,这次更新的主要内容包括:

  1. 移除了pdfcrop的依赖,详见下文。
  2. 更新了Mac OSX版的pdf2svg二进制文件。

1.0.0版的重大BUG

前一段时间WriteTeX有了一个重大更新,由于时间比较紧张,一直也没有发文介绍。关注WriteTeX的读者应该知道将WriteTeX推向1.0.0版的主要更新是加入了Crop的功能,这个功能是自WriteTeX初始设计以来一直放在TODO列表的功能。最开始的时候一直寄希望于使用pdfcrop完成这一工作,而实际上在适当的运行环境下pdfcrop确实可以正常地工作,由此,基于pdfcrop,WirteTeX推出了其1.0.0., 然而很快就有用户反应代码在各种操作环境下不能正常运行,而大家都没法确定问题所在。一些怀疑包括perl处理path的机制和shell不一样,或者glibc处理path的机制和shell不一样,似乎都很难解决。这次更新反而成为了一个不稳定的发行版。

移除pdfcrop依赖

因此,我一直想将pdfcrop从项目中移除,一个可行的方案是自己计算svg的extent。这需要对svg的结构比较熟悉,所以一直没有着手实施。前些天,在试图实现extent算法的过程中,我突然意识到可能不需要一个完整的extent算法。因为读入的svg的内容是在插件内构建的,所以原则上讲,读入的svg格式是在插件的控制范围内。因此,我可以只需要实现一个很小的子集就可以实现确定svg的extent的功能(实际上,对于pdf2svg的结果我仅仅需要实现translate变换的计算功能)。因此,我就实现了一个对应与pdf2svg的读入功能的extent计算代码,现在看起来工作得很好。欢迎大家测试,测试时请认准1.6.1版本,之前的版本都没有解决这个问题,同时PDFTOSVG的转换器必须是pdf2svg。我不是很想支持pdftoedit了,有兴趣的读者可以参照pdf2svg的实现方法实现pdftoedit的相关功能。

另外,pdf2svg的extent算法可能可以简化一下,现在的svg结构是两重变换,先变小又变大,凭空增大了一些计算量。有兴趣的读者也可以优化一下。

WRITETEX
Python Inkscape WriteTeX

评论