前言
在撰写一份文件的时候,除了文件的架构和内容之外,常常要分 心去处理排版工作,如调整字体的大小、行距、段落缩排、版面大
小等。如果文件要以许多不同格式出版时(如HTML、PDF、Postscript 等格式),还要依据该格式的呈现方式做一番修改。这些额外的修
改工作,往往使撰写文件成为一件 旷日费时的工作。
DocBook是一套由Norman Walsh所发展的技术文件撰写环境,其中 包含了一组XML DTD定义,用来规范文件的结构,以及一组XSL
stylesheet文件格式转换的stylesheet。Docbook提供了一个撰写结 构化文件的环境,编辑文件时只要考虑文件的结构与内容,而不必
理会文件呈现的版面与文字编排。只有当文件要出版时,才套用 DocBook所提供的stylesheet,将文件转换成各式各样的出版格式,
例如HTML、PDF、PostScript等。文件转换之后的格式与排版方式, 完全视所套用的stylesheet而定。一个完整的文件转换环境,除了
要有stylesheet之外,还要安装stylesheet proces
本文将介绍如何在Linux系统上安装DocBook文件转换环境,包括 stylesheet安装、stylesheet processor安装、stylesheet及
stylesheet processor的中文化等等。目前DocBook所提供的stylesheet 有两种,分别由DSSSL(Document Style Semantics and Specification Language)及XSL(eXtensibleStylesheet Language)语言所定义。由于DSSSL部份在中文文件的 转换上尚有困难,故本文只拟说明XSL的部份。在使用上,XSL stylesheet processor被分成两个部份,一为XSLT processor(XSL Transformations processor)--负责将文件转换到form atting objects格式;另一为formatter--负责将formatting objects转换 成可打印格式。本文所使用的XSLT processor及formatter为Apache 计画所发展的xalan 2.2版及FOP 0.20.3版。
设定DocBook文件转换环境大致可以分成:安装DocBook XSL Stylesheet、安装XSLT Processor(XSL Transformations Processor)、
安装Formatter、以及设定中文化环境等步骤,分别说明如下:
安装DocBook XSL Stylesheet
stylesheet决定了文件的输出格式(如:HTML、PDF等)以及呈现 样式(如:字形、字体大小、页面编排等)。DocBook所提供的
stylesheet可以输出HTML、HTMLHELP XHTML、JAVAHELP、Formating Object等格式。其中,Formatting Object格式是转成PDF及其它出
版格式的媒介。
安装DocBook XSL Stylesheet的步骤只要将整个套件下载之后, 解压缩并置放在适当的目录下即可。以docbook XSL Stylesheet
1.48版为例,其安装步骤如下:
1.从sourceforge下载docbook-xsl-1.48.tar.gz:
$ wget http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.48.tar.gz
2.解开档案到适当的目录,假设解开到/usr/share/sgml/docbook:
$ tar zxvf docbook-xsl-1.48.tar.gz -C /usr/share/sgml/docbook
当解开压缩档以后,在您的/usr/share/sgml/docbook路径下会出 现一个docbook-xsl-1.48的目录,该目录即为DocBook XSL Stylesheet
存放的目录,读者亦可自行决定将其置放在其它路径。
安装XSLT Processor(XSL Transformations Processor)
XSLT Processor是XML文件的格式转换器,可以依据XSL stylesheet 的定义将XML文件转换至其它格式。XSLT Processor在转换文件时,
没有预定的格式,完全依据XSL Stylesheet的描述来决定输出的档 案格式及内容编排,在文件转换中扮演一个引擎的角色。目前有许
多的计画在发展XSLT Processor,其中,xalan是Apache计画所发 展的一个XSLT processor,目前有两个分支,一个是由Java语言实
做出来的;另一个则是C++语言实做出来的。下面就以Java实做的 xalan 2.2版来说明安装程序。
执行xalan必须要有Java执行环境,在安装xalan之前,请先安装 好Java的执行环境。然后依据下列步骤安装xalan:
1.请至http://xml.apache.org网站下载xalan-j 2.2版套件:
$ wget http://xml.apache.org/dist/xalan-j/xalan-j_2_2-bin.tar.gz
2.将xalan-j套件解开:
$ tar zxvf xalan-j_2_2-bin.tar.gz
3.把bin目录下所有以jar为附文件名的档案拷贝到Java的library目录:
$ cp xalan-j_2_2_0/bin/*.jar /usr/java/jdk1.3.1/lib
安装好xalan之后,就可以做DocBook对HTML的转换了。举例来说, 编辑一个简单的DocBook文件hello.xml,其内容如下:
“http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd”>
Hello world!
存盘之后,就可以做文件转换了。但由于xalan在执行时,必须包 含许多个class path,下指令时不容易记忆,所以最好是写成
shell script。下列为执行xalan的shell script例子:
#!/bin/sh
# JAVA interpreter 的安装路径
JAVA=/usr/java/jdk1.3.1/bin/java
# JAVA library 的安装路径
JAVA_LIB=/usr/java/jdk1.3.1/lib
# 所有的类别路径
CLASSPATH=”$JAVA_LIB/xalan.jar:$JAVA_LIB/xerces.jar”
export CLASSPATH
# 执行
$JAVA org.apache.xalan.xslt.Process “$@”
将shell script存成xalan.sh,可以放在/usr/local/bin目录下
或任何$PATH变量定义的路径下以便执行。存盘后就可以用xalan.sh
指令来转换DocBook文件成为HTML文件了:
xalan.sh -in sample.xml -xsl /usr/share/sgml/docbook/docbook-xsl-1.48/html/docbook.xsl-out sample.html
程序执行完之后产生sample.html檔,使用mozilla浏览看看结果 是否正确。
如前所述,XSL Stylesheet决定文件转换的格式。因此,只要使 用不同的stylesheet,就会产生不同格式的输出档。xalan使用FO
stylesheet亦可将DocBook文件转换成FO檔:
xalan.sh -in sample.xml -xsl /usr/share/sgml/docbook/docbook-xsl-1.48/fo/docbook.xsl-out sample.fo
程序执行完后产生sample.fo檔。然FO格式的输出文件只是一种媒介 格式而已,如要打印出来,还需经过formatter处理,才能转换成PDF
或PostScript等格式文件。有关formatter的安装介绍,另刊载于下