用于读取和处理DVI(设备无关)文件的库,是Tex的本机输出。源代码还提供了PNG转换器和基于OpenGL API的硬件加速查看器。

PyDvi的Python项目详细描述


Pydvi

pydvi官方主页位于http://fabricesalvaire.github.io/PyDVI

从git存储库生成的最新文档可以在readthedocs.orgPyDvi@readthedocs-badge

Fabrice Salvaire编写。

PyDvi build status @travis-ci.org


https://raw.github.com/FabriceSalvaire/PyDvi/master/doc/sphinx/source/images/dvi-gl-viewer.scaled.png

简介

pydvi是一个Python库,用于读取和处理dvi(设备无关)文件,即本机输出 由Donald E. Knuth实现的著名的tex排版程序。

pydvi还可以读取与tex世界相关的大多数文件格式,比如压缩字体, 虚拟字体、文本字体度量、字体映射和字体编码。它还可以读取adobe字体度量文件。

基本上,dvi文件通过与 注册机器以更新页面上的位置,加载字体并绘制字形和规则。在 它包含字形及其在页面上的位置。因为Tex的设计目的是 《计算机编程艺术》系列丛书 文本和数学表达式。因此,dvi比postscript或其后续pdf要简单得多。 是为图形设计的。但是,我们可以使用special 操作码,可以包含任何类似postscript片段的文本。

dvi流可以来自文件或tex守护进程,以便动态呈现tex输入。

pydvi的dvi解析器从dvi流构建一个程序,该程序稍后可以由 提供设计为用户子类的DVI机。

源代码包括一个实验性的dvi查看器作为示例,它使用opengl api 渲染,因此具有硬件加速渲染功能。pydvi和查看器可以用作 基于gpu的复杂文本绘制实验平台。

源代码还包括一个dvi png工具的克隆,用于将dvi渲染为png图像。这个工具是 主要目的是通过图像对比检查pydvi的顺应性。

PYDVI可用于多种用途,我们将在下面对其进行回顾:

tex是一个主要的历史排版程序。pydvi可以用来读取和处理它的输出 使用python。用户可以是一个好奇的皮尔森谁想要倾斜特克斯或有兴趣的人特克斯 后处理。

tex是目前仍在运行的最古老的计算机程序之一。原因很简单,这些 算法做得很好,它的生态系统很丰富,代码也不那么简单。因此没有人 成功地重新实现它到目前为止,除了它的数学布局算法由MathJax javascript库,旨在为web浏览器提供数学布局。在 传递mathjax时,正确呈现数学内容的唯一解决方案是生成 使用类似dvipng的程序生成图像。维基百科的引擎在幕后做了什么。 通常,像AsymptoteCircuit_macros这样的程序将图形生成为pdf格式 文档,然后将此文档包含在乳胶文档中,乳胶文档包含放置在 页面中的绝对位置。使用pydvi,我们可以尝试另一种方法,即发送tex 满足于一个守护进程并取回标志符号及其位置。Matplotlib使用这种方法 渲染乳胶标签。

安装

pydvi本身的安装非常简单。然而,它将更容易得到 依赖于Linux桌面。

依赖性

PYDVI需要以下依赖项:

OpenGL DVI查看器需要这些附加依赖项:

dvi to png工具需要这些附加依赖项:

此外,建议使用这些python模块:

  • pip
  • virtualenv

为了发展,您还需要:

从pypi存储库安装

PYDVI可用在https://pypi.python.org/pypi/PyDVIPyPI存储库中

运行此命令以安装最新版本:

pip install PyDvi

从源安装

pydvi源代码托管在https://github.com/FabriceSalvaire/PyDVI

要克隆git存储库,请在终端中运行此命令:

git clone git@github.com:FabriceSalvaire/PyDvi.git

然后要构建和安装pydvi,请运行以下命令:

python setup.py build
python setup.py install

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java NIO选择器最多只能选择50个SelectionKeys?   java阻止ImageButton创建新活动   为什么Java方法“Arrays.copyOf”处理中的整数数组与处理对象数组时的行为不同   java将安卓 1.6日历字段提取到vcal   将字符串转换为双精度后的java问题   java使用Webflux,是否可以使用AOP获取用于日志记录的ServerHttpRequest   java与jTextArea的基本区别是什么。setText()和jTextArea。append()方法?   java程序执行时间|将值保存到文件或数据结构?   java如何将表示字符的整数转换为字符串?   Java LWJGL新的渲染问题windows   java GUI提供异常   java创建第二个对象使类的函数不再工作   如何在java中将000验证为3位数字?   java bigO算法的时间复杂度,可以在不重复的情况下找到最长的子串   在30像素内点击按钮后,java在两个图像之间转换   java eclipse maven nexus不可解父pom   当存在其他SecurityConstraint时,java TransportGuary机密将被忽略   重新连接后激发的java Red5客户端流断开事件   javafx聊天应用程序中连接客户端的java问题