用于读取和处理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 LineNumberReader。如果查询行为不正确,则返回readLine()   java包含了一个使用AndroidX的工具栏,这让我的应用程序崩溃了   JVM设置通过“java jar”运行应用程序的最佳实践   java如何获取ImageButton宽度   java Oracle SQLLDR实用程序无响应   列出Java获取对象的arrayList中最常见的元素   java使用带有FlowLayout的getContentpane对布局应用更改,但不起作用为什么?   在java中,我可以在画布上绘制画布吗?   编译游戏代码时发生java异常错误   从firestore获取java Webview失败   java将TableLayout中单元格的内容向右对齐   java无法在发布模式下启动活动(使用proguard安卓optimize配置)   java允许在线程期间进行GUI更新。睡觉   java如何对以变量为列表的列表进行排序   API URL上的java Google云端点异常