论文部分内容阅读
摘 要:当今高校使用word作为论文排版模板效率较低,容易产生排版错误。为此,本文提出了一种基于Latex的自动论文排版系统。该系统采用B/S架构,用户只要能够连接互联网和拥有浏览器就能使用本系统。首先,通过Latex语句生成一个论文模板,将模板中需要用户添加的部分使用预留字占位。其次,提示用户输入相应的内容,将这些内容与模板中的预留字进行替换。最后,服务器通过调用外部Latex命令将Latex模板转换成PDF文档。结果表明,通过Latex模板生成论文文档效率更高,格式出错率更低。
关键词:自动排版 Latex应用 B/S
中图分类号:G642 文献标识码:A 文章编号:1673-9795(2013)09(b)-0189-02
当今有两大类论文编辑工具比较常用:一类是类似于Microsoft word的所见即所得的文本编辑器;另一类是类似于Latex的标记式的文本编辑器。所见即所得的文本编辑器的优势在于它能与用户更好的交互,能把排版的样式第一时间反馈给用户,方便用户查看与修改。并且相关的功能使用简单,方便易懂,使用门槛较低,只要多使用几次就能很快的熟悉一些简单的、常用的操作,而且它的用户量比较大,出现问题方便用户之间互相沟通学习,通用性比较强[1]。但是,对于毕业论文中经常使用的功能优化不够,比如,数学公式,交叉索引等功能。基于Latex的标记式的文本编辑器在交叉索引技术上有着卓越的表现,并且拥有着强大的数学公式排版功能,它更能起到锁定论文排版格式的作用[2]。但是由于它需要相应的Latex的语法知识,相对比较复杂不易被掌握,所以不能被广大用户所接受,一般用户想通过它来编辑一篇毕业论文是比较困难的。基于以上情况,本系统要做好用户与Latex的桥梁,通过Web网站的方式,使用户在自己熟悉的环境中在完全不了解Latex的情况下编辑出高质量的、符合毕业论文规范的PDF文档来[3]。
1 相关技术介绍
1.1 Latex介绍
Tex是一个用于文章和数学公式排版的功能非常强大的工具,它是由著名的计算机专家和数学家美国斯坦福大学Donald E.Knuth教授编写的计算机程序[4]。Tex系统由1977年开始组织搭建程序,并在1982年正式出品最初的版本,在此之后又陆续的有几次版本上的升级,它用圆周率无理数π作为它的版本号,每更新一个新版本就在无理数后面添加一位数字。Tex的内核非常的稳定,在推出3.14159版本之后很长的一段时间都没有更新过版本,直到时隔很长时间才更新到下一版本[5]。当前版本的Tex系统已经非常稳定而且几乎没有漏洞。Tex作为一款开源的工具,可以排版大多数的文章与科技文献,并且它卓越的数学公式处理能力也被认为是各排版工具当中最好的。虽然Tex功能强大,但是它将近900条的命令是一般用户和初学者所不能接受的,所以,当Tex推出不久之后Latex就诞生了。Latex以Tex为基础,作为一个宏集它提供了大量的简单并且易于学习的命令,简化了Tex复杂的命令与操作,让普通用户和初学者只需通过一些好记易懂的命令就能排版出他们想要的文章。因此,Latex比Tex更容易被人们所接受,拥有更广泛的应用前景,通过多次的版本优化,现在的Latex已经基本可以用简单的命令来实现所有的Tex命令了,并且在排版一些专业的文章,如论文、书籍、期刊等时有着非常良好的效果。尤为值得高兴的是,现在的Latex已经能够很好的支持中文文章的编辑,为我们之后的应用与推广打下了坚实的基础。
1.2 B/S结构介绍
由B/S结构即浏览器和服务器结构,随着互联网的不断的发展B/S结构已经逐渐的替代了C/S结构[6]。在这种结构下,用户的使用界面通过浏览器界面实现,很少的功能与逻辑部分出现在前台客户机上,而是把几乎所有的逻辑运算或者复杂的功能放在网络服务器上实现,这样可以减轻客户端的压力,只需要用户能够运行浏览器就能使用到网页上的所有功能。同时在程序的维护更新方面,只需更新或者更改服务器端的配置,无需更新客户端,这样能够减少运营维护费用,降低系统开发、维护费用。浏览器通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
如果本系统采用C/S结构,将会在每个客户机上安装一个庞大的系统运行环境安装包,出于用户体验和成本考虑,综合上述的优点,本系统将采用B/S结构进行程序的开发与设计。
1.3 PHP介绍
PHP是当下流行的一种动态网页编辑语言,PHP是英文超文本预处理语言Hypertext Preprocessor的缩写,它是一种嵌入到Html中执行的脚本语言,它具有运行速度快、安全性高、函数丰富、厂商支持多、跨平台等特点。它的语言风格类似于C语言,混合了C、Java、Perl的语法并且有一些自己的语法。它学习起来非常的简单,许多细节得到了简化,比如使用变量时可以随用随申请,不需要提前的定义,而且不需要说明变量的格式,这在灵活性上与其它语言相比就有很大的提升。由于PHP是嵌入到Html中执行的,所以与其它动态网页编辑语言相比,速度要快的多。而且它还支持几乎所有流行的数据库以及操作系统。
PHP的应用比较广泛而且开源,方便以后系统的更新和维护。它的函数比较丰富,许多比较常用或者比较实用的函数可以直接使用,不需要自己编写,提高了工作效率。它在连接数据库和文件的读写方面比较简单直观,可以实现PHP代码与Html代码的混合编写效率较高。综合考虑本系统使用PHP代码编写。
2 系统概要设计
本系统是为了方便各高校的学生排版毕业论文而开发的系统,所以设计原则要符合整理论文的原则。在划分模块的过程当中,将绝大多數文字类的功能与内容放在了一起作为向导模块,它不仅符合一般人整理论文的习惯,而且可以引导初次使用本系统的用户进行操作。根据向导模块的一步一步的提示与转变将带领用户全面的完成论文模版的使用。当论文的文字部分都录入到系统之后,图片处理模块和表格处理模块就开始发挥作用,用户可以运用这些模块的功能,将论文中缺少的图片与表格内容添加到已经编辑好的论文中。在这些工作都完成后,用户就能借助查看代码模块来查看之前操作所形成的Latex源代码,同时,可以根据自己的实际需要来修改这些代码。当所有的修改工作都完成后,可以通过生成PDF模块来预览最终的结果,如果有需要修改的地方可以回到查看代码模块进行下一步的修改,如此反复直到能够得到用户满意的PDF文档。最后,通过PDF模块的下载功能,将生成好的PDF文档下载到用户本地。系统各模块与功能之间的组织结构如图1所示。 3 详细设计与实现
3.1 正文设计思路
正文部分是向導模块设计中最关键也是最复杂的部分,由于Latex的特点正文中的章、节、小节的区分并不直观,所以在页面中要充分的考虑到这个问题,不然用户在输入大量的章节的时候容易忘记自己输入的章节编号,造成文章结构混乱。
本系统中通过章节标题和章节内容分离,并且添加3个选择按钮的形式来解决这个问题。标题和内容的分离不仅让用户感觉更加的直观,更清楚自己输入的是论文的哪个章节。3个按钮分别从章、节、小节三个层次上提示用户输入的内容。当用户输入完相应的章节时,选择相应的按钮,系统就能正确的添加Latex标签。这就要求这三个按钮的内容要随着用户的输入而改变,为了达到这个要求,系统中采用设置3个计数器的形式来实现。这三个计数器分别代表着当前输入的章号、节号、小节号,通过计数器加1的形式来提示用户的输入,如图2所示,此时用户刚刚输入完2.1.1的内容,章计数器为1,节计数器为1,小节计数器为1。
3.2 其他部分设计思路
用户在使用这部分功能时大多是直接复制粘贴现成的文本文档。在这部分需要注意的主要就是Web中的编辑框读取空格和回车上与文本字符的不同,要把这些Html的字符转化为文本文档的字符,这样才能正确的现实信息。采用的方法是读取文件,逐行匹配,替换文本的方法,将全部文档以“.TEX”结尾保存。需要注意的是,由于Latex性质的原因,只通过一次编译无法得到最终的结果,而是需要通过2~3次的编译才能生成所有Latex代码所包含的内容。所以在程序的后台中通过循环语句自动执行了3次编译语句,而这个过程用户是无法察觉的。当3次编译工作结束以后,就可以把生成好的PDF文档连接显示在页面上,供用户预览或者下载。程序中最后效果如图3所示。
4 结论
作为一个Web端的功能性系统,这种网页与功能工具相结合的形式随着网络的普及和服务器技术的完善以及服务器运算性能的增强必定会成为主流的开发形式。实验表明,本系统以研究为目的的设计获得了很好的效果,不仅开发出了一款具有实用性的网站,而且让更多的人认识Latex,尝试着用Latex编辑文章,这对一款不太流行的工具来说是一种进步。相信以后更多的高性能、实用但很少被人们使用的工具,都会以类似的形式进行组织设计,逐渐的被用户所接受。
参考文献
[1] Donald E.Knuth.The TEXBook[M].Massachusetts:Addison-Wesley,1986:7-9.
[2] 陈志杰,赵书钦,万福永.LATEX入门与提高[M].北京:高等教育出版社,2002:5-8.
[3] Ethan Cerami.Web Services Essentials[M].O’Reilly,2007:20-21.
[4] Tobias Oetiker,Hubert Partl,Irene Hyna.The Not So Short Introduction to LaTeX2e[M].Cambridge:Free Software Foundation,2006:8-11.
关键词:自动排版 Latex应用 B/S
中图分类号:G642 文献标识码:A 文章编号:1673-9795(2013)09(b)-0189-02
当今有两大类论文编辑工具比较常用:一类是类似于Microsoft word的所见即所得的文本编辑器;另一类是类似于Latex的标记式的文本编辑器。所见即所得的文本编辑器的优势在于它能与用户更好的交互,能把排版的样式第一时间反馈给用户,方便用户查看与修改。并且相关的功能使用简单,方便易懂,使用门槛较低,只要多使用几次就能很快的熟悉一些简单的、常用的操作,而且它的用户量比较大,出现问题方便用户之间互相沟通学习,通用性比较强[1]。但是,对于毕业论文中经常使用的功能优化不够,比如,数学公式,交叉索引等功能。基于Latex的标记式的文本编辑器在交叉索引技术上有着卓越的表现,并且拥有着强大的数学公式排版功能,它更能起到锁定论文排版格式的作用[2]。但是由于它需要相应的Latex的语法知识,相对比较复杂不易被掌握,所以不能被广大用户所接受,一般用户想通过它来编辑一篇毕业论文是比较困难的。基于以上情况,本系统要做好用户与Latex的桥梁,通过Web网站的方式,使用户在自己熟悉的环境中在完全不了解Latex的情况下编辑出高质量的、符合毕业论文规范的PDF文档来[3]。
1 相关技术介绍
1.1 Latex介绍
Tex是一个用于文章和数学公式排版的功能非常强大的工具,它是由著名的计算机专家和数学家美国斯坦福大学Donald E.Knuth教授编写的计算机程序[4]。Tex系统由1977年开始组织搭建程序,并在1982年正式出品最初的版本,在此之后又陆续的有几次版本上的升级,它用圆周率无理数π作为它的版本号,每更新一个新版本就在无理数后面添加一位数字。Tex的内核非常的稳定,在推出3.14159版本之后很长的一段时间都没有更新过版本,直到时隔很长时间才更新到下一版本[5]。当前版本的Tex系统已经非常稳定而且几乎没有漏洞。Tex作为一款开源的工具,可以排版大多数的文章与科技文献,并且它卓越的数学公式处理能力也被认为是各排版工具当中最好的。虽然Tex功能强大,但是它将近900条的命令是一般用户和初学者所不能接受的,所以,当Tex推出不久之后Latex就诞生了。Latex以Tex为基础,作为一个宏集它提供了大量的简单并且易于学习的命令,简化了Tex复杂的命令与操作,让普通用户和初学者只需通过一些好记易懂的命令就能排版出他们想要的文章。因此,Latex比Tex更容易被人们所接受,拥有更广泛的应用前景,通过多次的版本优化,现在的Latex已经基本可以用简单的命令来实现所有的Tex命令了,并且在排版一些专业的文章,如论文、书籍、期刊等时有着非常良好的效果。尤为值得高兴的是,现在的Latex已经能够很好的支持中文文章的编辑,为我们之后的应用与推广打下了坚实的基础。
1.2 B/S结构介绍
由B/S结构即浏览器和服务器结构,随着互联网的不断的发展B/S结构已经逐渐的替代了C/S结构[6]。在这种结构下,用户的使用界面通过浏览器界面实现,很少的功能与逻辑部分出现在前台客户机上,而是把几乎所有的逻辑运算或者复杂的功能放在网络服务器上实现,这样可以减轻客户端的压力,只需要用户能够运行浏览器就能使用到网页上的所有功能。同时在程序的维护更新方面,只需更新或者更改服务器端的配置,无需更新客户端,这样能够减少运营维护费用,降低系统开发、维护费用。浏览器通过Web Server同数据库进行数据交互。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
如果本系统采用C/S结构,将会在每个客户机上安装一个庞大的系统运行环境安装包,出于用户体验和成本考虑,综合上述的优点,本系统将采用B/S结构进行程序的开发与设计。
1.3 PHP介绍
PHP是当下流行的一种动态网页编辑语言,PHP是英文超文本预处理语言Hypertext Preprocessor的缩写,它是一种嵌入到Html中执行的脚本语言,它具有运行速度快、安全性高、函数丰富、厂商支持多、跨平台等特点。它的语言风格类似于C语言,混合了C、Java、Perl的语法并且有一些自己的语法。它学习起来非常的简单,许多细节得到了简化,比如使用变量时可以随用随申请,不需要提前的定义,而且不需要说明变量的格式,这在灵活性上与其它语言相比就有很大的提升。由于PHP是嵌入到Html中执行的,所以与其它动态网页编辑语言相比,速度要快的多。而且它还支持几乎所有流行的数据库以及操作系统。
PHP的应用比较广泛而且开源,方便以后系统的更新和维护。它的函数比较丰富,许多比较常用或者比较实用的函数可以直接使用,不需要自己编写,提高了工作效率。它在连接数据库和文件的读写方面比较简单直观,可以实现PHP代码与Html代码的混合编写效率较高。综合考虑本系统使用PHP代码编写。
2 系统概要设计
本系统是为了方便各高校的学生排版毕业论文而开发的系统,所以设计原则要符合整理论文的原则。在划分模块的过程当中,将绝大多數文字类的功能与内容放在了一起作为向导模块,它不仅符合一般人整理论文的习惯,而且可以引导初次使用本系统的用户进行操作。根据向导模块的一步一步的提示与转变将带领用户全面的完成论文模版的使用。当论文的文字部分都录入到系统之后,图片处理模块和表格处理模块就开始发挥作用,用户可以运用这些模块的功能,将论文中缺少的图片与表格内容添加到已经编辑好的论文中。在这些工作都完成后,用户就能借助查看代码模块来查看之前操作所形成的Latex源代码,同时,可以根据自己的实际需要来修改这些代码。当所有的修改工作都完成后,可以通过生成PDF模块来预览最终的结果,如果有需要修改的地方可以回到查看代码模块进行下一步的修改,如此反复直到能够得到用户满意的PDF文档。最后,通过PDF模块的下载功能,将生成好的PDF文档下载到用户本地。系统各模块与功能之间的组织结构如图1所示。 3 详细设计与实现
3.1 正文设计思路
正文部分是向導模块设计中最关键也是最复杂的部分,由于Latex的特点正文中的章、节、小节的区分并不直观,所以在页面中要充分的考虑到这个问题,不然用户在输入大量的章节的时候容易忘记自己输入的章节编号,造成文章结构混乱。
本系统中通过章节标题和章节内容分离,并且添加3个选择按钮的形式来解决这个问题。标题和内容的分离不仅让用户感觉更加的直观,更清楚自己输入的是论文的哪个章节。3个按钮分别从章、节、小节三个层次上提示用户输入的内容。当用户输入完相应的章节时,选择相应的按钮,系统就能正确的添加Latex标签。这就要求这三个按钮的内容要随着用户的输入而改变,为了达到这个要求,系统中采用设置3个计数器的形式来实现。这三个计数器分别代表着当前输入的章号、节号、小节号,通过计数器加1的形式来提示用户的输入,如图2所示,此时用户刚刚输入完2.1.1的内容,章计数器为1,节计数器为1,小节计数器为1。
3.2 其他部分设计思路
用户在使用这部分功能时大多是直接复制粘贴现成的文本文档。在这部分需要注意的主要就是Web中的编辑框读取空格和回车上与文本字符的不同,要把这些Html的字符转化为文本文档的字符,这样才能正确的现实信息。采用的方法是读取文件,逐行匹配,替换文本的方法,将全部文档以“.TEX”结尾保存。需要注意的是,由于Latex性质的原因,只通过一次编译无法得到最终的结果,而是需要通过2~3次的编译才能生成所有Latex代码所包含的内容。所以在程序的后台中通过循环语句自动执行了3次编译语句,而这个过程用户是无法察觉的。当3次编译工作结束以后,就可以把生成好的PDF文档连接显示在页面上,供用户预览或者下载。程序中最后效果如图3所示。
4 结论
作为一个Web端的功能性系统,这种网页与功能工具相结合的形式随着网络的普及和服务器技术的完善以及服务器运算性能的增强必定会成为主流的开发形式。实验表明,本系统以研究为目的的设计获得了很好的效果,不仅开发出了一款具有实用性的网站,而且让更多的人认识Latex,尝试着用Latex编辑文章,这对一款不太流行的工具来说是一种进步。相信以后更多的高性能、实用但很少被人们使用的工具,都会以类似的形式进行组织设计,逐渐的被用户所接受。
参考文献
[1] Donald E.Knuth.The TEXBook[M].Massachusetts:Addison-Wesley,1986:7-9.
[2] 陈志杰,赵书钦,万福永.LATEX入门与提高[M].北京:高等教育出版社,2002:5-8.
[3] Ethan Cerami.Web Services Essentials[M].O’Reilly,2007:20-21.
[4] Tobias Oetiker,Hubert Partl,Irene Hyna.The Not So Short Introduction to LaTeX2e[M].Cambridge:Free Software Foundation,2006:8-11.