一个python模块包,用于处理与tex相关的各种文件格式。

texlib的Python项目详细描述


tex_wrap v1.00
===


这是动态编程算法的一个实现,
最初由d.e.knuth和m.f.plass开发,tex用来将一个段落分成几行。我不会在这里的
细节中描述算法;要获得完整的解释,请参阅
Knuth的《数字印刷术》一书中描述算法的章节,该书解释了这一理论,并展示了如何使用它来实现各种巧妙的效果。

界面相当简单。创建一个objectlist实例,并用一系列代表单个段落的box、glue和pension对象填充它。完成此操作后,调用objectlist的
.add_closing_pension()方法为
段落结尾添加标准胶水和惩罚。然后调用它的.compute_breakpoints()方法,该方法完成所有工作并返回一个整数列表,这些整数是文本应该被打断的
索引。


此方法的签名是:
def compute_breakpoints(self,
行长度,
松散度=0,
公差=1,
适应度缺点=100,
标记的缺点=100,
):


行长度是唯一必需的参数,是一个整数列表,给出每行的长度。列表的最后一个元素
将被重新用于后续行。因此,对于宽度为100个单位的段落,可以通过[100],对于三角形段落,可以通过范围(140、20、-10)。宽度没有特定的单位,因此您可以在
点或像素或您喜欢的任何位置工作。


其他参数是可选的。松散度是一个整数
值。如果它是正的,段落将被设置为比最佳值多取那么多行,因此您可以使段落多取一行。如果是负数,则段落设置为多行
更紧(如果可能);通常您只能将其设置为一行
更紧。松动默认为零,这意味着段落的最佳长度

默认值为1,这意味着线条上的所有胶水都会拉伸到其指定的拉伸值。


有四类:非常紧、紧、松和非常松。该算法尽量避免在一条非常宽松的线旁边有一条非常紧的线,
因为这一差异是可见的,而且会分散注意力。


flagged撸demerit是在两个标记的罚分中的第二个出现
中断时,对记分的附加值。

格式化和输出文本取决于您;我还没有为
实现一个api,因为我不知道这样的api会是什么样子。box
实例有一个可以指定的“character”属性,因此
可以将其设置为给定框的字符,以便以后由
输出过程使用。(它不必是字符;如果您愿意,可以将其设置为
任意对象,但名称会引起误解。)


错误报告、示例代码和有关模块用法的说明都是
欢迎使用;请将它们发送到<;amk@amk.ca>;

--
a.m.kuchling http://www.amk.ca

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

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?