CN102779118B - 一种论文的排版方法及*** - Google Patents
一种论文的排版方法及*** Download PDFInfo
- Publication number
- CN102779118B CN102779118B CN201210246411.XA CN201210246411A CN102779118B CN 102779118 B CN102779118 B CN 102779118B CN 201210246411 A CN201210246411 A CN 201210246411A CN 102779118 B CN102779118 B CN 102779118B
- Authority
- CN
- China
- Prior art keywords
- typesetting
- source file
- page
- numbering
- order
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种论文的排版方法及***。该技术中的排版程序读取图文混合的源文件,解析源文件中的编号命令,进行图、表、章节、参考文献等的自动编号及编号的引用,解析源文件中的格式排版命令进行格式排版。排版程序还可以自动加入章节目录、图目录、表目录、页眉、页脚、名词索引表等。本发明方法及***改进了现有论文排版方法的不足,兼具直观易用和快速高效的优点:相比以Latex为代表的基于纯文本式源文件的排版软件具有直观易用的特点;相比以Microsoft Word为代表的图形界面式的排版软件具有论文内容和论文排版分开、排版效率高的特点。
Description
技术领域
本发明涉及论文排版领域,特别涉及一种论文的排版方法及***。
背景技术
易用高效的论文排版方法对于提高论文质量是至关重要的,令使用者得以将更多的精力放在论文内容上,而不是浪费在论文排版上,从而提升科学研究的水平。本发明专利所述的论文排版包括参考文献、公式、注释、图表、章节等的编号及编号的引用,以及对这些编号、编号的引用和待排版的图文进行格式排版,也包括排版程序在格式排版完成后自动加入与页面物理位置相关的信息,与页面物理位置有关的信息是指格式排版完成后才能确定的信息,这些信息包括章节目录、图目录、表目录、页眉、页脚和名词索引表等。
目前,论文的排版常用两类软件:一是以Microsoft Word为代表的图形界面式的排版软件,二是以LaTeX为代表的基于纯文本式源文件的半编译式排版软件。
用于论文排版时,这两类软件各有不足:前者表现在论文撰写过程中涉及大量的人工格式排版动作,影响了论文的写作效率,尤其是较大篇幅的论文在修改阶段涉及较多的内容调整时,用于格式排版的精力相对较多;后者虽完全实现了论文格式的自动排版,但因其执行过程中涉及大量排版格式相关的宏包命令的解释执行,整体执行速度较慢,用于论文排版时每次执行的时间较长,用户难以接受,而且其纯文本式的源文件不能显示图表与公式,学习与使用过程中缺乏图形界面的直观性,不具有易用性。另外,上述两类排版软件尚缺乏高效易用的论文参考文献编号与引用功能:Microsoft Word配合Reference Manager等软件实现的参考文献编号与引用不够直观,不易用;LaTeX的BibTeX宏包可以实现参考文献的编号与引用,但一般需要四次执行过程,即LaTeX、BibTeX、LaTeX、LaTeX,使得论文排版速度变得更慢。
发明内容
本发明针对上述缺点,提出一种基于图文混合源文件的论文排版方法及***,其直观易用,能够显著提高论文撰写过程中的排版效率。
本发明提供的一种论文的排版方法包括如下步骤,
步骤1:使用支持图文输入功能的文档编辑器创建源文件,源文件的内容包括论文内容、编号命令和格式排版命令,源文件中的论文内容为待排版的图文。
步骤2:排版程序读取步骤1中的源文件,解析其中的编号命令,进行编号,得到各个编号命令对应的编号值。此处的编号值与页面物理位置无关。
步骤3:排版程序读取步骤1中的源文件,解析源文件中的论文内容和格式排版命令,按照格式排版命令的要求,对源文件中的论文内容和步骤2中的编号结果进行格式的排版,排版格式遵循相应的论文排版规范。
步骤4:将排版结果写入磁盘文件。
优选地,所述排版方法步骤3后还包括步骤:
排版程序自动加入的与页面物理位置有关的信息,与页面物理位置有关的信息是指步骤3格式排版完成后才能确定的信息,这些信息包括章节目录、图目录、表目录、页眉、页脚、名词索引表等。
优选地,所述排版程序自动加入的与页面物理位置有关的名词索引表,其实现过程包括:使用者将索引词逐条保存在源文件外的一个磁盘文件中;排版程序通过解析该磁盘文件,逐个得到各个索引词,并在步骤3中的格式排版结果中搜索各个索引词,记录搜索到的各个索引词所在的页码;最后由所有的索引词和索引词所出现在的页码生成名词索引表。
优选地,所述排版方法中的排版程序还具有编号命令和格式排版命令报错功能,即排版程序在执行过程中若解析到不符合预先规定的编号命令或格式排版命令,则报出相应的错误。
优选地,所述排版方法步骤3中排版程序在进行一行文字的左(右)对齐时,基准线取作字型数据(GlyphMetrics)的内边框,即边界框(Bounding Box)的左(右)边界。
优选地,所述排版方法中的图文包括文字、符号、图片、表格、公式。
优选地,所述排版方法中的编号命令和格式排版命令是预先规定的字符串,编号命令用于实现编号功能和编号的引用功能,格式排版命令用于实现格式排版功能。编号命令包括三类,第一类是按在源文件中的出现顺序分类依次编号,如论文的图片、表格、公式、定理、定义、引理、推论、章节条款等的编号;第二类是按在源文件中的被引用的顺序分类依次编号,如论文的参考文献、注释等的编号;第三类是对前两类编号命令的编号值的引用。步骤2执行之前,所有编号命令对应的编号值均未确定;步骤2执行结束,则所有编号命令对应的编号值即已确定。
优选地,所述排版方法中的论文排版规范包括学位论文排版规范和期刊论文排版规范。
优选地,所述排版方法中的磁盘文件符合某种标准文档交换格式。
优选地,所述的排版程序是全编译式的程序,采用标准的XML软件包解析源文件的内容。
本发明提供的一种论文排版***,所述***包括:
图文源文件创建单元,使用支持图文输入功能的文档编辑器创建源文件,源文件的内容包括论文内容、编号命令和格式排版命令,源文件中的论文内容为待排版的图文。
编号单元,排版程序读取源文件,解析其中的编号命令,进行编号,得到各个编号命令对应的编号值。此处的编号与页面物理位置无关。
格式排版单元,排版程序读取源文件,解析源文件中的论文内容和格式排版命令,按照格式排版命令的要求,对源文件中的论文内容和编号单元的编号结果进行格式的排版,排版格式遵循相应的论文排版规范。
保存单元,将排版结果写入磁盘文件。
本发明所述论文排版***还可包括信息自动加入单元,用于在格式排版单元格式排版完成后,排版程序自动加入与页面物理位置有关的信息,与页面物理位置有关的信息是指格式排版单元格式排版完成后才能确定的信息,这些信息包括章节目录、图目录、表目录、页眉、页脚、名词索引表等。
本发明提出了一种基于图文混合源文件的论文排版方法及***,排版程序读取图文混合的源文件,解析源文件中的编号命令,进行图、表、章节、参考文献等的自动编号及编号的引用,解析源文件中的格式排版命令进行格式排版,排版程序还可以自动加入章节目录、图目录、表目录、页眉、页脚、名词索引表等。本发明改进了现有论文排版方法的不足之处,兼具直观易用和快速高效的特点。
附图说明
图1是本发明提出的论文排版方法的实施过程流程图。
图2是本发明实施例一提供的源文件内容。
图3是本发明实施例一提供的源文件排版后的结果。
图4是本发明实施例一提供的段落两端对齐时左右边界基准线为文字外边框的结果。
图5是本发明实施例一提供的段落两端对齐时左右边界基准线为文字内边框的结果。
图6是本发明实施例一提供的文字内边框、外边框展示图。
图7是本发明实施例六提供的索引词文件的内容。
图8是本发明实施例六提供的索引词排版结果。
图9是本发明实施例七提供的论文排版***结构图。
具体实施方式
为使本技术领域的技术人员更好地理解本发明,下面结合附图对本发明的具体实施方式作进一步详细说明。
实施例一
附图中的图1为本发明提出的论文排版方法的实施过程流程图,具体实施方式如下:
步骤1:使用支持图文输入功能的文档编辑器Microsoft Word 2007创建源文件(见图1中的11),将源文件的内容保存为磁盘文件,文件名为1.docx,1.docx的存储格式符合《Microsoft Office Open XML第二版》的文档格式规范。1.docx的内容(见图2)包括论文内容、编号命令和格式排版命令,论文内容是待排版的图文,图文包括文字、符号、图片、表格、公式,编号命令和格式排版命令是预先规定的字符串,编号命令用于实现编号功能和编号的引用功能,格式排版命令用于实现格式排版功能。本实施例的源文件1.docx中相邻的段落以段结束符隔开(也可以定义其它的方式标示段落结束),段结束符如附图2中201的行尾所示,对于同属一个段落的相邻行以行结束符“↓”隔开,如图2中的205行和206行同属于一个段落,205行和206行之间用行结束符隔开。源文件1.docx中的段落包括如下几类:由格式排版命令组成的段落(如图2的201、204等),由论文内容组成的段落(如图2中的“参考文献”等),由编号命令和论文内容组成的段落(如图2中的202、207、208等),由编号命令和格式排版命令组成的段落(如图2中的210),在本实施例中对于同时含有格式排版命令和论文内容的段落定义为非法(不支持)的段落。对论文内容、编号命令和格式排版命令详细解释如下:
(11)格式排版命令:以图2中的201为例,$song表示字体为宋体,$zihao18表示18磅的字号,$juzhong表示段落按居中的方式排版,$duanqian14 $duanhou14 $jianju30依次表示段前距14磅、段后距14磅、行距30磅,$xinye表示开始一个新的页面。以图2中的204为例,$zuoyouduiqi表示段落为左右两端对齐,$shouhangsuojin20表示段落的首行缩进量为20磅。以图2中的210为例,$count_gongshi$bianhao_youduiqi表示编号命令$count_gongshi的编号值按格式排版命令$bianhao_youduiqi(即右对齐的方式)排版。
(12)编号命令:包括三类,解释如下(以图2为例):
(12a)按在源文件中的出现顺序分类依次编号。如图2中的203即$count_zhang,表示章的编号命令,210即$count_gongshi是公式的编号命令。
(12b)按在源文件中的被引用的顺序分类依次编号。此类编号命令如图2中212中的$count_ckwx$ref1和213中的$count ckwx$ref2,这两个编号命令对应的编号值分别赋给变量ref1和ref2。
(12c)对前两类编号命令的编号值的引用。首先,将被引用的编号命令的编号值赋给一个变量,然后,通过变量引用编号命令的编号值。如图2中的208表示将编号命令$count_zhang的编号值赋给变量name-zhang-ybzs,图2中的212、213分别表示将编号命令$count_ckwx的编号值赋给变量ref1和ref2。指定变量即可引用编号命令的编号值,如图2中205、206、207中的$ref{ref2}、$ref{ref1}、$ref{name-zhang-ybzs}。
(13)论文内容是待排版的图文,图文包括文字、符号、图片、表格、公式,解释如下:
(13a)文字:如图2中的“第”、“章”、“绪论”、“高效易用的论文排版软件能够提升科学研究的水平”、“,让使用者将更多的精力放在论文内容上”等。
(13b)符号:如图2中的202即空格符,也包括其他特殊符号。
(13c)公式:如图2中的209和211,209是嵌入在文字中的公式,211是单独组成一个段落的公式。以211为例,源文件1.docx中的公式在Word 2007编辑器中显示的是直观的图形结果B(x0,r)={x∈Rn:||x-x0||≤r},而不是繁琐的纯文本式的LaTeX命令“$\mathcal{B}(x_0,r)=\{x\in\mathbf R^n:||x-x_0||\le r\}$”。图2中的公式用Word 2007之外的公式编辑器MathType 5.2编辑完成,然后拷贝粘贴到Word 2007编辑器中,按照《Microsoft OfficeOpen XML第二版》的文档格式规范,本实施例中的公式以单独的wmf格式的图片文件存储在源文件1.docx中。
(13d)图片、表格:源文件1.docx中的图片和表格在Word 2007编辑器显示的也是直观的图形结果。本实施例中的图片和表格用Word之外的图片编辑器和表格编辑器制作后拷贝粘贴到Word中,按照《Microsoft Office Open XML第二版》的文档格式规范,本实施例中的图片、表格与公式的存储方式相同,也是以单独的图片文件存储在源文件1.doc中,图片文件的存储格式包括png、jpg、emf、wmf格式等。
步骤2:采用C语言编写的全编译式排版程序读取步骤1中的源文件1.docx的内容(见图1中的12),解析其中的编号命令,进行编号,得到各个编号命令对应的编号值,此处的编号与页面物理位置无关。步骤2执行之前,所有编号命令对应的编号值均未确定;步骤2执行结束,则所有编号命令对应的编号值即已确定。过程如下:
(21)源文件1.docx的存储格式符合《Microsoft Office Open XML第二版》的文档格式规范,排版程序采用标准的XML软件包解析1.docx的内容,解析出各个编号命令。
(22)对编号命令进行编号,过程如下:
(22a)按在源文件中的出现顺序分类依次编号。图2中的203即$count_zhang,表示章的编号,在源文件中$count_zhang的第一次出现时,其编号值为1,$count_zhang第二次出现时见图2中的208,其编号值为2,$count_zhang第三次出现时的编号值为3,以此类推。图2中的210即$count_gongshi也是该类型的编号命令。
(22b)按在源文件中的被引用的顺序分类依次编号。此类编号命令如图2中的212、213行,$count_ckwx$ref1表示将此编号命令的编号值赋给变量ref1,$count_ckwx$ref2表示将此编号命令的编号值赋给变量ref2。图2中的212、213行中的编号命令$count_ckwx在编号时不是按$count_ckwx在源文件中的出现顺序编号为“[1]”、“[2]”,而是按照编号值在源文件中的被引用的顺序编号为“[2]”、“[1]”,因为在源文件中ref2比ref1先被引用:第213行中的$count_ckwx$ref2的编号值被205行中的$ref{ref2}引用,而第212行中的$count_ckwx$ref1的编号值在206行中被$ref{ref1}引用。
(22c)对前两类编号命令的编号值的引用。首先,将被引用的编号命令的编号值赋给一个变量,然后,通过变量引用编号命令的编号值。如图2中的208行表示将编号命令$count_zhang的编号值赋给变量name-zhang-ybzs,图2中的212、213行分别表示将编号命令$count_ckwx的编号值赋给变量ref1和ref2。指定变量即可引用编号命令的编号值,如图2中的205、206、207,$ref{ref2}表示“[1]”,$ref{ref1}表示“[2]”,$ref{name-zhang-ybzs}表示“2”。
步骤3:采用C语言编写的全编译式排版程序读取步骤1中的源文件1.docx的内容(见图1中的13),解析源文件中的论文内容和格式排版命令,按照格式排版命令的要求,对源文件中的论文内容和步骤2中得到的编号结果进行格式的排版,源文件1.docx的排版结果见图3,图3中的301表示分页符,实际的排版结果中并不存在分页符,图3为方便展示排版的结果,用301所示的分页符将实际排版后共3页的排版结果显示在一个大小合适的图片上。排版后的格式遵循相应的论文排版规范,如某学位论文排版规范要求章的排版格式为“宋体18磅字、段落居中、段前距14磅、段后距14磅、行距30磅”,则使用者在源文件中输入对应的排版命令“$song $zihao18 $juzhong $duanqian14 $dnanhou14 $jianju30”。排版程序采用标准的XML软件包解析步骤1中的源文件1.docx的内容,采用逐段解析的方式。本实施例中的格式排版也是逐段进行的,排版时,行中内容的排版方向是由左到右,段落中的各个行在页面中由上到下进行排版,当前页面排满后则开启新页面。针对每个段落的格式排版过程如下:
(31)如果解析出的段落由格式排版命令组成,如图2中的201,则依次解析出各个格式排版命令,修改排版设置。格式排版命令的作用范围是以段落为最小作用单位,按命令的作用范围分为有记忆性的格式排版命令和无记忆性的格式排版命令两类:
(31a)有记忆性的格式排版命令的作用范围是其后出现的含有论文内容的一个或多个段落,如图2的201中的$zihao18是一个格式排版命令,表示字号是18磅,其作用范围是201后面的一个含有论文内容的段落,204中的$zihao12是一个与$zihao18相同类型的命令,表示字号是12磅,排版程序解析到$zihao12命令时,则$zihao18的作用到此为止。与此类似,204中的$zihao12的作用范围直到下一个$zihao类型的命令出现为止。
(31b)无记忆性的格式排版命令的作用范围是其后出现的含有论文内容的一个段落,如图2的201中的$xinye命令。
(32)如果解析出的段落由论文内容组成,或是同时由论文内容和编号命令组成,则利用步骤2中得到的编号结果将该段中的所有编号命令替换为具体的编号值,从而得到本段落对应的预排版内容。转到下述(34)。
(33)如果解析出的段落由编号命令和格式排版命令组成,如图2中的210,则首先处理格式排版命令,处理方法同(31)。其次,利用步骤2中得到的编号结果将该段中的所有编号命令替换为具体的编号值,所得到的编号值作为本段落对应的预排版内容。
(34)针对(32)和(33)得到的预排版内容,计算预排版内容所占据的页面高度和宽度,方法如下:
(34a)如果预排版内容只含有一个图片,或只含有一个表格,或只含有一个公式。按照《MicrosoftOffice Open XML第二版》的文档格式规范,则该预排版内容在Word 2007内部存储为一个独立的图片文件,图片文件可以为png、jpg、emf、wmf格式。按相应的图片格式标准读取图片文件的内容,可获取图片的宽度和高度,预排版内容所占据的页面高度和宽度即是图片的宽度和高度。
(34b)如果预排版内容含有文字、符号和嵌入在文字中的公式,对于文字和符号,在相应字库的afm(Adobe Font Metrics)文件中存储有字型数据,通过解析afm文件,可获得字库设计时的单个文字和符号的内边框位置信息、外边框位置信息以及单个文字和符号的宽度信息,这三类信息进一步由afm文件中的字库设计时的缩放比例信息进行缩放,得到当前格式排版命令中的字号设置所对应的该字号下的单个文字和符号的内边框位置信息、外边框位置信息以及单个文字和符号的宽度信息;对于嵌入在文字中的公式,其宽度的获取方法同(34a)。预排版内容的总宽度即为预排版内容中所有的文字、符号和嵌入在文字中的公式的宽度总和。根据论文排版规范中规定的页面版心宽度信息和段落缩进信息,对预排版内容进行断行,断行方法为:从预排版内容中逐个取出文字、符号和嵌入在文字中的公式,它们的宽度逐个依次累加,若累加的和大于页面版心宽度与缩进量之差,则另起一个新行,对剩余的预排版内容同样地逐个取出文字、符号和嵌入在文字中的公式,进行宽度逐个依次累加,以此类推,直到预排版内容完全处理完毕为止,从而计算出预排版内容所占据的行数。每行的高度信息由行间距命令设置,如$jianju30表示每行的高度信息为30磅,因此,预排版内容所占据的页面高度就是每行的高度乘以预排版内容所占据的行数。
(35)由(34)得到的预排版内容所占据的页面高度信息、当前段落前面的一个论文内容段排版后的位置信息和论文排版规范中规定的页面版心高度位置信息判定是否断页,即是否另起一个新的页面,然后确定预排版内容所在的页码信息以及预排版内容所在页面中的纵坐标位置。预排版内容的断页规则为:
(35a)首先,比较当前段落的段前距设置值和当前段落前面的一个论文内容段的段后距设置值,取较大的设置值作为当前段的段前空白区的高度。当前段的段前空白区的高度与预排版内容所占据的页面高度做和,得到含段前空白区的预排版内容所占据的页面高度。
(35b)如果预排版内容只含有一个图片,或只含有一个表格,或只含有一个公式。如果含段前空白区的预排版内容所占据的页面高度不能在当前页面内放下,即含段前空白区的预排版内容所占据的页面高度大于前面一个排版后的论文内容段的下边界位置的纵坐标与页面版心下边界的纵坐标之差,则断页,且将预排版内容放在新页面。预排版内容在新页面中的纵坐标位置由页面版心高度位置信息、段前距的设置即可确定,方法是:页面版心高度位置信息中的上边界的纵坐标位置减去当前段的段前距设置,结果作为预排版内容的上边界在页面中的纵坐标位置;如果含段前空白区的预排版内容所占据的页面高度能在当前页面内放下,则不断页,预排版内容在页面中的纵坐标位置由前面一个排版后的论文内容段的下边界位置信息、当前段的段前空白区的高度可确定,方法是:前面一个排版后的论文内容段的下边界的纵坐标位置减去当前段的段前空白区的高度,结果作为预排版内容的上边界在页面中的纵坐标位置。
(35c)如果预排版内容含有文字、符号和嵌入在文字中的公式。①如果含段前空白区的预排版内容所占据的页面高度不能在当前页面内放下,则断页,并且根据当前页面中所剩余的页面高度(即前面一个排版后的论文内容段的下边界的纵坐标减去页面版心下边界的纵坐标)、含段前空白区的预排版内容所占据的页面高度信息、行间距信息计算当前页面中可以放下的行数,计算方法为:含段前空白区的预排版内容所占据的页面高度减去1倍行间距,得到的结果若能在当前页面内放下(即得到的结果小于等于当前页面中所剩余的页面高度),则新页面中放1行;否则,将含段前空白区的预排版内容所占据的页面高度减去2倍行间距,得到的结果若能在当前页面内放下,则新页面中放2行;否则,将含段前空白区的预排版内容所占据的页面高度减去3倍行间距,得到的结果若能在当前页面内放下,则新页面中放3行,以此类推就得到预排版内容中放在当前页面中的行数和放在新页面中的行数,预排版内容所在的页码信息即已确定。然后确定预排版内容所在页面中的纵坐标位置,由论文排版规范中规定的页面版心高度位置信息、段前距和行间距的设置即可计算出预排版内容的每行内容在页面中的纵坐标位置,方法是:位于本页面的首行内容上边界的纵坐标的确定方法同(35b),第二行内容的上边界的纵坐标等于首行内容上边界的纵坐标减去行间距,第三行内容的上边界的纵坐标等于第二行内容上边界的纵坐标减去行间距,以此类推;位于新页面的首行内容上边界的纵坐标的确定方法同(35b),位于新页面的其他行内容上边界的纵坐标的确定方法与本页面的除首行外的其他行纵坐标的确定方法相同。②如果含段前空白区的预排版内容所占据的页面高度能在当前页面内放下,则预排版内容全部放在当前页面,采用与(35c)的①中同样的方法可确定预排版内容中的文字、符号和嵌入在文字中的公式的纵坐标。
(36)确定预排版内容在页面中的横坐标位置,方法为:
(36a)如果预排版内容只含有一个图片,或只含有一个表格,或只含有一个公式,则根据格式排版命令中的对齐命令、段落缩进信息、论文排版规范中规定的页面版心宽度信息和预排版内容所占据的页面宽度信息决定预排版内容在页面中的横坐标位置。方法是:如果对齐命令为左对齐,则预排版内容的左边界的横坐标等于页面版心的左边界横坐标减去段落的左缩进量;如果为右对齐命令,则预排版内容的右边界的横坐标等于页面版心的右边界横坐标减去段落的右缩进量;如果为居中命令,则预排版内容的纵向中心线与页面版心的纵向中心线对齐;如果为两端对齐命令,则与居中命令同样处理。预排版内容在页面中的横坐标位置即已确定。
(36b)如果预排版内容含有文字、符号和嵌入在文字中的公式,因对齐命令针对的是整个段落内容的格式排版,首先,由段落的对齐命令得到预排版内容的每行的对齐方式,算法为:若对齐命令为居中,则预排版内容的每行的对齐方式均为居中;若对齐命令为左对齐,则预排版内容的每行的对齐方式均为左对齐;若对齐命令为右对齐,则预排版内容的每行的对齐方式均为右对齐;若对齐命令为两端对齐,则预排版内容的最后一行的对齐方式为左对齐,而其他行的对齐方式为两端对齐。
(36c)如果预排版内容含有文字、符号和嵌入在文字中的公式,则逐行处理预排版内容所占据的各个行,确定每行内容中各个文字、符号和嵌入在文字中的公式的横坐标。确定横坐标的原则是符合行的对齐方式,且各个文字、符号和嵌入在文字中的公式之间的空白距离均匀。目前,Miaosoft Word排版软件和LaTeX排版软件在进行一行文字的左(右)对齐时,基准线取作字型数据中的文字外边框,见图4中的一个两端对齐的段落,LaTeX排版软件的左对齐效果见41和42,右对齐效果见43。本实施例在排版过程中解析afm文件,进行一行文字的左(右)对齐时,基准线取作字型数据中的文字内边框,即边界框(Bounding Box),排版结果见图5,其中,51和52为左对齐效果、53为右对齐的效果。本实施例根据字号设置、每行的对齐方式、段的缩进方式、页面版心宽度、每行内容的总宽度(即该行内容中所有的文字、符号和嵌入在文字中的公式的宽度的总和)决定每行内容中各个文字、符号和嵌入在文字中的公式的横坐标。对每行内容的处理过程为:
i.若该行内容中最左边为文字或符号,则解析相应字库的afm文件,获得该文字或符号的左内边框及其左外边框之差的宽度,即图6中的61和62。由字库的afm文件中的字库设计时的缩放比例信息对当前的字号进行相应的缩放,得到排版时在该字号下的左内边框及其左外边框之差的宽度。若该行内容中最左边的是嵌入在文字中的公式,则不考虑左内边框及其左外边框之差的影响,即左内边框及其左外边框之差的宽度取作零。
ii.若该行内容中最右边为文字或符号,根据上述i中同样的方法,计算该文字或符号的排版时在该字号下的右内边框及其右外边框之差的宽度。若该行内容中最右边的是嵌入在文字中的公式,则不考虑右内边框及其右外边框之差的影响,即右内边框及其右外边框之差的宽度取作零。
iii.计算该行内容的绝对宽度,算法为:每行内容中所有的文字、符号和嵌入在文字中的公式的总宽度减去上述i中的左内边框及其左外边框之差的宽度,再减去上述ii中的右内边框及其右外边框之差的宽度。
iv.计算该行内容的空余宽度,即页面版心宽度减去该行内容的绝对宽度,若段落有缩进的设置,则再减去相应的缩进量。
v.计算该行相邻字符间的空白宽度,方法是:若该行的对齐方式是两端对齐,则计算该行的文字数、符号数、以及嵌入在文字中的公式数,这三个数目做和,再减去数字1,再以得到的结果作为分母,去除该行内容的空余宽度,得到的结果即为该行相邻字符间的空白宽度。若该行的对齐方式是居中或左对齐或右对齐,则该行相邻字符间的空白宽度设置为零。
vi.确定预排版内容中该行的所有文字、符号、以及嵌入在文字中的公式的横坐标。①不考虑段落缩进时的算法是:若该行的对齐方式为居中,则计算版心宽度和该行内容的绝对宽度之差,结果再除以数字2,所得的结果再加上页面版心的左边界的横坐标,得到该行内容的起始位置。然后,计算最左边的文字或符号或嵌入在文字中的公式的横坐标位置,方法是:如果该行最左边的是文字或符号,则根据《Adobe Portable Document Format1.4版》规范的要求,PDF文件的字符显示命令的横坐标基准是字符的左外边框,如果调用PDF文件的字符显示命令时指定的横坐标位置是该行内容的起始位置,则该行内容排版后最左边的文字或符号的外边框将与页面版心的左边界对齐。本实施例中在调用PDF文件的字符显示命令时指定的横坐标位置不是该行内容的起始位置,而是该行内容的起始位置减去该行内容排版时在该字号下的左内边框及其左外边框之差的宽度,则该行内容排版后最左边的文字或符号的内边框将与页面版心的左边界对齐;如果该行最左边的是嵌入在文字中的公式,按照《Microsoft Office Open XML第二版》的文档格式规范,公式以单独图片文件存储在1.docx中,则根据《Adobe Portable DocumentFormat 1.4版》规范的要求,PDF文件的图片显示命令的横坐标基准是图片的左边界,此时,直接将该行内容的起始位置作为横坐标参数传递给PDF文件的图片显示命令即可。其次,确定该行内容的第二个文字或符号或嵌入在文字中的公式的左外边框横坐标位置,方法是:该行的最左边的文字或符号或嵌入在文字中的公式的左外边框的横坐标位置加上该行相邻字符间的空白宽度,所得的结果再加上该行的最左边的文字或符号或嵌入在文字中的公式的宽度。然后,在第二个文字或符号或嵌入在文字中的公式的左外边框横坐标位置的基础上,同样的方法得到第三个文字或符号或嵌入在文字中的公式的左外边框横坐标位置,以此类推,直到该行内容的左外边框横坐标全部确定为止。若该行的对齐方式为左对齐或两端对齐,则该行内容的起始位置等于版心左边界,其余过程与上述“若该行的对齐方式为居中”的情形完全相同;若该行的对齐方式为右对齐,则该行内容的起始位置等于版心右边界,其余过程类似上述“若该行的对齐方式为居中”的情形,所不同的是确定横坐标的顺序是相反的,即最先确定该行的最右边的文字或符号或嵌入在文字中的公式的横坐标位置,然后由右到左依次确定各个文字或符号或嵌入在文字中的公式的横坐标位置。②考虑段落缩进时的算法:除考虑行的左右缩进量外,其他与上述“不考虑段落缩进时的算法”完全相同。
步骤4:将排版结果写入磁盘文件(见图1中的14)。在本实施例中根据《Adobe Portable Document Format1.4版》规范要求的文字、符号、图片等的放置命令的具体格式,将步骤3中的排版结果(即文字、符号、图片、表格、公式等所在的页码信息、纵坐标位置、横坐标位置)逐个转换为《Adobe Portable Document Format1.4版》规范要求的文字与字符放置命令以及图片放置命令,最后将这些放置命令写入磁盘文件。
实施例二
与实施例一中的不同之处在于:本实施例的源文件中的格式排版命令“$song $zihao18 $juzhong$duanqian14 $duanhou14 $jianju30 $xinye”(见图2中的201)可简化为更高级的命令,如“$zhang”,则排版程序在运行实施例一之前,将“$zhang”展开为排版命令“$song $zihao18 $juzhong $duanqian14$duanhou14$jianju30 $xinye”,然后以改变后的源文件为基础参照实施例一进行排版,便于用户使用。
实施例三
与实施例一的不同之处在于:本实施例的格式排版命令、编号命令以及文字可组成更高级的命令,如在源文件中输入高级命令“$zhang_bianhao”,则排版程序在运行实施例一之前,将高级命令“$zhang_bianhao”展开为“$song $zihao18 $juzhong $duanqian14 $duanhou14 $jianju30 $xinye”(见图2中的201)和“第$count_zhang章”以及“空格符”(见图2中的202),然后以改变后的源文件为基出参照实施例一进行排版,更便于用户使用。
实施例四
与实施例一的不同之处在于:本实施例的源文件文档编辑器为自行开发的图形界面编辑器,只支持图文显示与编辑,不支持排版功能。自行开发的图形界面编辑器所保存的磁盘文件符合自行规定的文件格式或标准的文档存储格式。排版程序按上述自行规定的文件格式或标准的文档存储格式读取源文件的内容,然后参照实施例一完成论文的排版。
实施例五
与实施例一的不同之处在于:本实施例的排版程序还具有命令报错功能,即排版程序在解析源文件后,若解析到一个编号命令为$conut_zhang,其不是排版程序所规定的编号命令,则排版程序报出错误“不识别的编号命令$conut_zhang”,同时提供出错命令所在源文件的行号,方便使用者修改。
本实施例的排版程序在解析源文件后,若解析到一个格式排版命令为$ziaoh18,其不是排版程序所规定的格式排版命令,则排版程序报出错误“不识别的格式排版命令$ziaoh18”,同时提供出错命令所在源文件的行号,方便使用者修改。
实施例六
与实施例一的不同之处在于:本实施例在实施例一的步骤3后还包括:排版程序自动加入与页面物理位置相关的信息,如自动加入的章节目录用到章节所在的页码,而章节所在的页码只能在步骤3格式排版完成后才能确定。对排版程序自动加入的章节目录进行格式排版时,格式排版过程参照实施例一。图目录、表目录、页眉、页脚、名词索引表的自动加入方法与章节目录相同。
特别地,本实施例中的排版程序自动加入名词索引表,实现步骤为:
(1)使用者将索引词逐条保存在源文件外的一个磁盘文件中,该磁盘文件为文本文件,每个索引词占一行,见图7。图7中的71、72、73是一般索引词,索引结果顶格排版(见图8的81、82、83);图7中的76是不加索引页码的索引词,前面的“X”表示不打印页码,索引结果见图8的86;图7中的74、75、77、78是缩进索引词,索引结果排版时前面有缩进,前面的“+”表示缩进,索引结果见图8的84、85、87、88。
(2)排版程序逐行解析该磁盘文件,得到各个索引词。针对每个索引词,在步骤3中的排版结果中搜索每个索引词出现的位置,记录所在的页码,将重复的页码删除,得到索引词对应的索引结果。
(3)生成名词索引表:将所有索引词和索引结果按论文排版规范的要求进行格式排版,格式排版过程参照实施例一,由图7所示的索引词文件生成的名词索引表见图8。
实施例七
本发明还提供一种论文排版***,图9是本发明实施例所述论文排版***结构图。
本发明实施例所述论文排版***包括:图文源文件创建单元91,编号单元92,格式排版单元93和保存单元94。
图文源文件创建单元91,使用支持图文输入功能的文档编辑器创建源文件,源文件的内容包括论文内容、编号命令和格式排版命令,源文件中的论文内容为待排版的图文。
编号单元92,排版程序读取源文件,解析其中的编号命令,进行编号,得到各个编号命令对应的编号值。此处的编号与页面物理位置无关。
格式排版单元93,排版程序读取源文件,解析源文件中的论文内容和格式排版命令,按照格式排版命令的要求,对源文件中的论文内容和编号单元的编号结果进行格式的排版,排版格式遵循相应的论文排版规范。
保存单元94,将排版结果写入磁盘文件。
本发明实施例所述论文排版***还可以包括信息自动加入单元,用于在格式排版单元93格式排版完成后,排版程序自动加入的与页面物理位置有关的信息,与页面物理位置有关的信息是指格式排版单元93格式排版完成后才能确定的信息,这些信息包括章节目录、图目录、表目录、页眉、页脚、名词索引表等。
本发明实施例所述论文排版***还可以包括报错单元,用于排版程序在执行过程中若解析到不符合预先规定的编号命令或格式排版命令,则报出相应的错误。
本发明实施例所述的论文排版***的具体实现过程可以参见前文所述的方法部分,具体不再详述。
本发明实施例提供了一种论文的排版方法及***,该方法基于图文混合的源文件进行论文的排版,且排版程序是全编译式的计算机程序,相比以Latex为代表的基于纯文本式源文件的半编译式排版软件具有直观易用的特点,执行速度上有了很大改进,相比以Microsoft Word为代表的图形界面式的排版软件具有论文内容和论文排版分开、排版效率高的特点。本排版方法是一种易用高效的论文排版方法。
以上所述仅为本发明的优选实施方式,应该指出,本发明所述的方法并不局限于以上具体的实施例,本领域技术人员根据本发明的技术方案得到其他的实施方式,同样属于本发明的技术创新范围。对于本技术领域的普通技术人员来说,可以对本发明进行改动和变型而不脱离本发明的精神和范围。倘若这些改动和变型属于本发明权利要求及等同技术的范围之内,则本发明也应视这些改动和变型在保护范围之内,由此本发明的应用范围并不仅局限于论文的排版,也包括与本发明的排版原理相类似的科技图书、研究报告等的排版。
Claims (10)
1.一种论文的排版方法,其特征在于,所述排版方法包括以下步骤:
步骤1,使用支持图文输入功能的文档编辑器创建源文件,源文件的内容包括论文内容、编号命令和格式排版命令,源文件中的论文内容为待排版的图文;
步骤2,全编译式的排版程序读取步骤1中的源文件,解析其中的编号命令,进行编号,得到各个编号命令对应的编号值;
步骤3,全编译式的排版程序读取步骤1中的源文件,解析源文件中的论文内容和格式排版命令,按照格式排版命令的要求,对源文件中的论文内容和步骤2中的编号结果进行格式的排版,排版格式遵循相应的论文排版规范;
步骤4,将排版结果写入磁盘文件。
2.根据权利要求1所述一种论文的排版方法,其特征为:步骤3后还包括:
全编译式的排版程序自动加入与页面物理位置有关的信息,与页面物理位置有关的信息是指步骤3格式排版完成后才能确定的信息,这些信息包括章节目录、图目录、表目录、页眉、页脚、名词索引表。
3.根据权利要求1所述一种论文的排版方法,其特征为:所述全编译式的排版程序还具有编号命令和格式排版命令的报错功能,即全编译式的排版程序在执行过程中若解析到不符合预先规定的编号命令或格式排版命令,则报出相应的错误。
4.根据权利要求1所述一种论文的排版方法,其特征为:所述编号命令和格式排版命令是预先规定的字符串,编号命令用于实现编号功能和编号的引用功能,格式排版命令用于实现格式排版功能,编号命令包括:按在源文件中的出现顺序分类依次编号,按在源文件中的被引用的顺序分类依次编号和对前两类编号命令的编号值的引用。
5.根据权利要求1所述一种论文的排版方法,其特征为:所述论文排版规范包括学位论文排版规范和期刊论文排版规范,所述图文包括文字、符号、图片、表格、公式。
6.根据权利要求1所述一种论文的排版方法,其特征为:全编译式的排版程序采用标准的XML软件包解析源文件的内容。
7.根据权利要求2所述一种论文的排版方法,其特征为:所述全编译式的排版程序自动加入与页面物理位置有关的名词索引表,其实现过程包括:使用者将索引词逐条保存在源文件外的一个磁盘文件中;全编译式的排版程序通过解析该磁盘文件,逐个得到各个索引词,并在步骤3中的格式排版结果中搜索各个索引词,记录搜索到的各个索引词所在的页码;最后由所有的索引词和索引词所出现在的页码生成名词索引表。
8.根据权利要求1所述一种论文的排版方法,其特征为:步骤3中全编译式的排版程序在进行一行文字的左对齐或右对齐时,基准线取作字型数据的内边框。
9.一种论文排版***,所述***包括:
图文源文件创建单元,使用支持图文输入功能的文档编辑器创建源文件,源文件的内容包括论文内容、编号命令和格式排版命令,源文件中的论文内容为待排版的图文;
编号单元,全编译式的排版程序读取源文件,解析其中的编号命令,进行编号,得到各个编号命令对应的编号值;
格式排版单元,全编译式的排版程序读取源文件,解析源文件中的论文内容和格式排版命令,按照格式排版命令的要求,对源文件中的论文内容和编号单元的编号结果进行格式的排版,排版格式遵循相应的论文排版规范;
保存单元,将排版结果写入磁盘文件。
10.根据权利要求9所述一种论文排版***,其特征在于,所述***还包括:
信息自动加入单元,用于在格式排版单元格式排版完成后,全编译式的排版程序自动加入与页面物理位置有关的信息,与页面物理位置有关的信息是指格式排版单元格式排版完成后才能确定的信息,这些信息包括章节目录、图目录、表目录、页眉、页脚、名词索引表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210246411.XA CN102779118B (zh) | 2012-07-17 | 2012-07-17 | 一种论文的排版方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210246411.XA CN102779118B (zh) | 2012-07-17 | 2012-07-17 | 一种论文的排版方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102779118A CN102779118A (zh) | 2012-11-14 |
CN102779118B true CN102779118B (zh) | 2015-07-15 |
Family
ID=47124035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210246411.XA Active CN102779118B (zh) | 2012-07-17 | 2012-07-17 | 一种论文的排版方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102779118B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246639B (zh) * | 2013-05-30 | 2016-03-02 | 安徽皖通科技股份有限公司 | 一种设有固定装置免税车辆图册自动排版方法 |
CN103559173A (zh) * | 2013-10-22 | 2014-02-05 | 张祖勋 | 一种扫描式期刊合订本封面自动排版的方法及装置 |
CN108694162A (zh) * | 2017-04-11 | 2018-10-23 | 北大方正集团有限公司 | 文件的处理方法和装置 |
CN108984498B (zh) * | 2017-06-05 | 2021-04-30 | 北大方正集团有限公司 | 文档的排版处理方法及装置 |
CN110020419B (zh) * | 2018-01-09 | 2020-10-16 | 北大方正集团有限公司 | 排版方法及装置 |
CN108280053B (zh) * | 2018-01-30 | 2019-05-14 | 北京仁和汇智信息技术有限公司 | 一种基于Mathtype的公式排版的方法及装置 |
CN110532521A (zh) * | 2018-05-23 | 2019-12-03 | 北京金山办公软件股份有限公司 | 一种文档格式套用的实现方法、装置及电子设备 |
CN109359286A (zh) * | 2018-09-06 | 2019-02-19 | 华南理工大学 | 一种毕业论文LaTeX模板自动排版的生成方法 |
CN110134932A (zh) * | 2019-05-15 | 2019-08-16 | 北京点众科技股份有限公司 | 一种用于优化电子书排版的方法和设备以及文件格式 |
CN111090980A (zh) * | 2019-12-18 | 2020-05-01 | 北大方正集团有限公司 | Pdf文件的生成方法、计算机设备与可读存储介质 |
CN111506378B (zh) * | 2020-04-17 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 文字显示效果的预览方法、装置、设备及存储介质 |
CN112016290A (zh) * | 2020-09-02 | 2020-12-01 | 湖南写邦科技有限公司 | 一种文档自动排版方法、装置、设备及存储介质 |
CN113515929A (zh) * | 2021-07-14 | 2021-10-19 | 北京北大方正电子有限公司 | 学位论文的排版方法、装置、设备、储存介质及程序产品 |
CN115146608A (zh) * | 2022-05-13 | 2022-10-04 | 北京字节跳动网络技术有限公司 | 内容排版方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1416077A (zh) * | 2002-12-05 | 2003-05-07 | 北京北大方正电子有限公司 | 一种手持设备文字排版对齐的方法 |
US6882441B1 (en) * | 1998-10-28 | 2005-04-19 | On-Line Print Services, L.L.C. | Automated typesetting system |
CN1908931A (zh) * | 2006-08-22 | 2007-02-07 | 北京北大方正电子有限公司 | 一种文字的可变数据排版的方法 |
-
2012
- 2012-07-17 CN CN201210246411.XA patent/CN102779118B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6882441B1 (en) * | 1998-10-28 | 2005-04-19 | On-Line Print Services, L.L.C. | Automated typesetting system |
CN1416077A (zh) * | 2002-12-05 | 2003-05-07 | 北京北大方正电子有限公司 | 一种手持设备文字排版对齐的方法 |
CN1908931A (zh) * | 2006-08-22 | 2007-02-07 | 北京北大方正电子有限公司 | 一种文字的可变数据排版的方法 |
Non-Patent Citations (4)
Title |
---|
On Writing a Thesis;C P RAVIKUMAR;《IETE Journal of Education》;20080831;第49卷(第1期);第65-72页 * |
基于LATEX的学位论文模板的设计与实现;罗振等;《沈阳航空工业学院学报》;20070630;第24卷(第3期);第45-48页 * |
用LATEX撰写学位论文;陈德伟;《软件导刊》;20091130;第8卷(第11期);第100-102页 * |
陈志杰等.第一章 引言.《LATEX入门与提高》.高等教育出版社,2002, * |
Also Published As
Publication number | Publication date |
---|---|
CN102779118A (zh) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102779118B (zh) | 一种论文的排版方法及*** | |
Mittelbach et al. | The LATEX companion | |
US7853869B2 (en) | Creation of semantic objects for providing logical structure to markup language representations of documents | |
Kopka et al. | Guide to LATEX | |
Grätzer | Math into LATEX | |
AU2012207560B2 (en) | Storage of a document using multiple representations | |
US7716574B2 (en) | Methods and systems for providing direct style sheet editing | |
JP2004086883A (ja) | Xmlを理解するアプリケーションによって操作できる単一のxmlファイルに記憶されたワードプロセッシング文書 | |
Grätzer | Math into LATEX: An introduction to LATEX and AMS-LATEX | |
CN111104557A (zh) | 基于标准文档标记语言规范的异构文档处理***及方法 | |
Kottwitz | LaTeX beginner's guide | |
CN104063365A (zh) | 在pdf文档中***对象的方法 | |
Bagley et al. | Creating reusable well-structured PDF as a sequence of component object graphic (COG) elements | |
WO2006001392A1 (ja) | 文書処理方法および装置 | |
US11449663B2 (en) | Device dependent rendering of PDF content including multiple articles and a table of contents | |
CN105045774B (zh) | 一种所见即所得的用户界面操作手册编写及生成方法 | |
KR20230069374A (ko) | 어도비 인디자인 전자편집(dtp) 프로그램을 이용한 이미지 자동배치 및 실행방법 | |
JP3115059B2 (ja) | 構造化文書編集方法 | |
CN104424184B (zh) | 生成字形字库的方法和*** | |
KR20150085282A (ko) | 전자 문서의 첨삭을 위한 단말의 동작 방법 | |
US11842141B2 (en) | Device dependent rendering of PDF content | |
Bilauca et al. | Building table formatting tools | |
Gonzato | LATEX for Word Processor Users version 1.0. 10 | |
von Bechtolsheim et al. | Processing with TEX | |
JP2001043214A (ja) | 自動作表方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |