用于读取和处理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允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”