在Windows環境下搭建Docbook編譯環境

DocBook最先採用的是SGML技術,目前已經有了相應XML技術的實現,DocBook 其實是用SGML/XML定義的html

一種針對文檔撰寫的方言,指的就是用SGML/XML定義了一套DTD。DTD就是DocBook的核心。目前DocBook DTDredis

由Oasis-Open 組織的一個技術委員會維護,並在其網站發佈關於DocBook DTD的最新消息和DTD下載。DTD的下載工具

格式有符合SGML規範的DTD、符合XML規範的DTD、使用最新的Schema格式描述的DTD格式等。但目前只有前兩個版學習

本是正式版本,使用其它格式描述的DTD還在不斷髮展中。SGML格式的DocBook DTD下載地址爲:網站

http://www.oasis-open.org/docbook/sgml/4.2/index.shtml ui

XML格式的DocBook DTD下載地址爲 :this

http://www.oasis-open.org/docbook/xml/4.2/index.shtml spa

下載獲得的docbook-4.2.zip和docbook-xml-4.2.zip中都有兩個文件,即docbook.catcatalog.xml,.net

它們分別是SGML和XML格式的目錄文件(catalog),負責將SGML和XML文檔中聲明的公共標識符(publicIdentifier)命令行

來和本地文件創建映射。這兩個文件的格式不一樣但含義相同,關於這兩個文件的語法咱們將在後面的章節具體講解。

咱們還須要下載ISO Entities.

SGML格式的ISO  Entities下載地址爲: http://www.oasis-open.org/cover/ISOEnts.zip

XML格式的ISO Entities 下載地址爲 :  

http://www.oasis-open.org/committees/docbook/xmlcharent/0.3/xmlcharent-0.3.zip

如下是具體的安裝步驟:

1) 建立docbook根目錄. 例如:c:\share,share就是咱們在後文中常提到的根目錄.

2) 安裝dtd.

   2.1) 在c:\share目錄下建立dtd子目錄:c:\share\dtd\4.2,將docbook-4.2.zip的內容解壓到該目錄中.

   2.2) 在catalog.xml中,刪除全部與ISO 8879:1986相關的行,例如:

        <public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN" uri="iso-dia.gml"/>

   2.3) 在docbook.cat中,刪除全部與ISO 8879:1986相關的行,例如:

       PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN" "iso-dia.gml"

   2.4) 在dbcentx.mod中,將Unix的路徑表達方式修改成Windows的路徑表達方式(即"/"改成"\"),例如:

       "ent/iso-amsb.ent"> 修改成 "ent\iso-amsb.ent">

3) 安裝和配置ISO Entities.

   3.1) 在c:\share下建立entity\sgml子目錄c:\share\entity\sgml, 將ISOEnts.zip內容解壓到該目錄下.

   3.2)在c:\share下建立entity\xml子目錄c:\share\entity\xml,將xmlcharent-0.3.zip內容解壓到該目錄下.

   3.3)在c:\share\entity\目錄下,爲sgml建立目錄文件:catalog.sgml 內容爲:

OVERRIDE YES

-- ...................................................................... --

-- ISO entity sets for DocBook SGML ..................................... --

PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN"

       "sgml\ISOamsa"

PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN"

       "sgml\ISOnum"

PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN"

       "sgml\ISOpub"

PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN"

       "sgml\ISOtech"

PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"

       "sgml\ISOlat1"

PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN"

       "sgml\ISOlat2"

PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN"

       "sgml\ISOgrk1"

PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN"

       "sgml\ISOgrk2"

PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN"

       "sgml\ISOgrk3"

PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN"

       "sgml\ISOgrk4"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"

       "sgml\ISOamsa"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"

       "sgml\ISOamsb"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN"

       "sgml\ISOamsc"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN"

       "sgml\ISOamsn"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN"

       "sgml\ISOamso"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN"

       "sgml\ISOamsr"

PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN"

       "sgml\ISObox"

PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN"

       "sgml\ISOcyr1"

PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN"

       "sgml\ISOcyr2"

-- End of ISO entity sets for DocBook SGML .............................. --

-- ...................................................................... --

-- ...................................................................... --

-- ISO entity sets for DocBook XML ...................................... --

PUBLIC "ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"

       "xml/iso-dia.ent"

PUBLIC "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"

       "xml/iso-num.ent"

PUBLIC "ISO 8879:1986//ENTITIES Publishing//EN//XML"

       "xml/iso-pub.ent"

PUBLIC "ISO 8879:1986//ENTITIES General Technical//EN//XML"

       "xml/iso-tech.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"

       "xml/iso-lat1.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"

       "xml/iso-lat2.ent"

PUBLIC "ISO 8879:1986//ENTITIES Greek Letters//EN//XML"

       "xml/iso-grk1.ent"

PUBLIC "ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"

       "xml/iso-grk2.ent"

PUBLIC "ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"

       "xml/iso-grk3.ent"

PUBLIC "ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"

       "xml/iso-grk4.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"

       "xml/iso-amsa.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"

       "xml/iso-amsb.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"

       "xml/iso-amsc.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"

       "xml/iso-amsn.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"

       "xml/iso-amso.ent"

PUBLIC "ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"

       "xml/iso-amsr.ent"

PUBLIC "ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"

       "xml/iso-box.ent"

PUBLIC "ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"

       "xml/iso-cyr1.ent"

PUBLIC "ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"

       "xml/iso-cyr2.ent"

-- End of ISO entity sets for DocBook XML ............................... --

-- ...................................................................... --

  3.4)在c:\share\entity\目錄下,爲xml建立目錄文件:catalog.xml,內容爲:

<?xml version='1.0'?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

<!-- ...................................................................... -->
<!-- ISO entity sets ...................................................... -->

<public publicId="ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
        uri="xml/iso-dia.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
        uri="xml/iso-num.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Publishing//EN//XML"
        uri="xml/iso-pub.ent"/>

<public publicId="ISO 8879:1986//ENTITIES General Technical//EN//XML"
        uri="xml/iso-tech.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
        uri="xml/iso-lat1.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
        uri="xml/iso-lat2.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
        uri="xml/iso-grk1.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
        uri="xml/iso-grk2.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
        uri="xml/iso-grk3.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
        uri="xml/iso-grk4.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
        uri="xml/iso-amsa.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
        uri="xml/iso-amsb.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
        uri="xml/iso-amsc.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
        uri="xml/iso-amsn.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
        uri="xml/iso-amso.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
        uri="xml/iso-amsr.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
        uri="xml/iso-box.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
        uri="xml/iso-cyr1.ent"/>

<public publicId="ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
        uri="xml/iso-cyr2.ent"/>
</catalog>

4) 安裝SGML的DSSSL樣表

   DTD定義了DocBook的元素, 描述了DocBook文檔的結構, 可是DTD並無包含一點點文檔格式化的信息,

   不管如何,文檔的漂亮的表現形式——格式, 都是很是重要的. 這些就依靠樣表來解決了. SGML的樣表是DSSSL

   4.1) 能夠從如下地址下載DSSS樣表,筆者下載的版本爲:docbook-dsssl-1.79.zip

           http://sourceforge.net/projects/docbook/

   4.2) 在c:\share根目錄下建立子目錄: c:\share\style\dsssl , 將docbook-dsssl-1.79.zip解壓到該目錄.

   4.3) 修改 c:\share\style\dsssl\catalog文件,Unix的路徑表達方式修改成Windows的路徑表達

         方式(即"/"改成"\"),例如:

    PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"

    print/docbook.dsl

    修改成:

    PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"

    print\docbook.dsl

     4.4)   修改  c:\share\style\dsssl\catalog文件,刪除如下語句行:

    DTDDECL "-//Norman Walsh//DTD DocBook HTML 1.0//EN"

    dtds/html/dbhtml.dcl

5) 安裝XML樣表XSL

   5.1) 能夠從如下地址下載XML的樣表XSL,筆者下載的版本爲:docbook-xsl-1.76.1.zip

          http://sourceforge.net/projects/docbook/

   5.2) 在c:\share根目錄下建立子目錄: c:\share\style\xsl , 將docbook-xsl-1.76.1.zip解壓到該目錄.

6) 安裝LDP擴展

LDP(Linux文檔計劃)使用DocBook格式撰寫文檔,而且在 Norman Walsh DSSSL 的基礎上進行了

必定的擴充。咱們使用 LDP 的DSSSL擴充,一方面使本身撰寫的文檔具備LDP的統一的風格,另外一方

能夠學習到定製 DSSSL 的知識。

  6.1)能夠從如下地址下載擴展文件ldp.dsl.

         http://www.tldp.org/authors/tools/ldp.dsl

   6.2) 將ldp.dsl拷貝到c:\share\style\dsssl目錄下.

  6.3)修改ldp.dsl擴展文件,刪除掉如下內容.

<style-sheet>

;; ------------------------------------------------------------------------

;; ldp.dsl - LDP Customized DSSSL Stylesheet

;; v1.12, 2003-03-19

;; Copyright (C) 2000-2003

;;

;; This program is free software; you can redistribute it and/or modify

;; it under the terms of the GNU General Public License as published by

;; the Free Software Foundation; either version 2 of the License, or

;; (at your option) any later version.

;;

;; This program is distributed in the hope that it will be useful,

;; but WITHOUT ANY WARRANTY; without even the implied warranty of

;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

;; GNU General Public License for more details.

;;

;; You should have received a copy of the GNU General Public License

;; along with this program; if not, write to the Free Software

;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA

;; ------------------------------------------------------------------------


7) 在根木文件c:\share中,創建全局目錄文件catalog.xml,內容以下:

<?xml version='1.0'?>

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

<!-- ...................................................................... -->

<!-- DocBook driver file .................................................. -->

<nextCatalog  catalog="dtd/4.2/catalog.xml" /> 

<!-- ...................................................................... -->

<!-- ISO entity sets ...................................................... -->

<nextCatalog  catalog="entity/xml/catalog.xml" /> 

<nextCatalog  catalog="style/xsl/catalog.xml" /> 

</catalog>

8) 安裝OpenJade

OpenJade 是一個DSSSL語言的實現工具,它能夠把SGML和XML文檔經過DSSSL轉換爲其它格式,如轉換爲 RTF、

TeX、HTML等格式。OpenJade 源自 James Clark's 的工具 JADE (James' DSSSL Engine),如今做爲開放源碼,

由Source Forge維護。

  8.1) 從如下地址下載Windows平臺的OpenJade安裝包openjade-1.3-1.exe

  http://sourceforge.net/projects/openjade/files/openjade/1.3/

   8.2) 安裝openjade-1.3-1,例如:C:\Program Files\OpenJade-1.3\ 。

      須要將C:\Program Files\OpenJade-1.3\bin 添加到系統PATH變量中,以即可以在Windows命令行直接調用openjade

9)導入openjade自帶的DTD到c:\share\dtd目錄。

   將OpenJade自帶的c:\Program Files\OpenJade-1.3\dsssl,加入到c:\share\dtd目錄中,重命名爲openjade

10) 在根目錄文件c:\share中,創建全局目錄文件catalog.sgml,內容以下:

OVERRIDE YES

SGMLDECL "dtd\4.2\docbook.dcl"

CATALOG "dtd\4.2\docbook.cat"

CATALOG "entity\catalog.sgml"

CATALOG "style\dsssl\catalog"

CATALOG "dtd\openjade\catalog"

DOCTYPE book dtd\4.2\docbook.dtd

DOCTYPE article dtd\4.2\docbook.dtd

DOCTYPE chapter dtd\4.2\docbook.dtd

 11.配置環境變量

SGML/XML的應用程序須要經過環境變量SGML_CATALOG_FILES和XML_CATALOG_FILES來確認目錄文件的位置,

進而找到相應的DTD等文件.Windows經過控制面板中的系統來設置環境變量,

設置 SGML_CATALOG_FILES 爲 C:\share\catalog.sgml

設置 XML_CATALOG_FILES 爲 C:\share\catalog.xml

------------------------------------------------------------------------------------------------

相關文章
相關標籤/搜索