SGMLtools-Lite 是 SGML 處理軟件的 Python 前端。基本上,SGMLtools-Lite 簡化了將 DocBook 文檔轉換成希望分發的一種或幾種格式的過程。 如果您是 Linux 用戶,那麼根據您使用的發行版和在安裝期間選擇的選項,可能系統上已安裝了原始 SGMLtools 包。不過
SGMLtools-Lite 是 SGML 處理軟件的 Python 前端。基本上,SGMLtools-Lite 簡化了將 DocBook 文檔轉換成希望分發的一種或幾種格式的過程。
如果您是 Linux 用戶,那麼根據您使用的發行版和在安裝期間選擇的選項,可能系統上已安裝了原始 SGMLtools 包。不過,原始 SGMLtools 項目沒有維持多長時間,SGMLtools-Lite 項目成了該項目的接任者。
SGMLtools-Lite 的安裝 SGMLtools-Lite 項目在 Sourceforge 上托管(請參閱本文稍後部分的參考資料)。根據您的需要,可以從那裡
下載 RPM 或 tar-gzip 壓縮的源碼。RPM 是針對 Red Hat 6.2 構建的,它也曾在 SuSE Linux 上
測試過。它們可能不能在其它發行版中正確工作,所以請小心使用。
安裝 SGMLtools-Lite 之前 不幸的是,SGMLtools-Lite 沒有包括您需要的所有文件。還需要安裝其它三個包 - SGML ISO 實體聲明以及 DocBook DTD 和 DSSSL 樣式表。大多數發行版都具有帶有這些文件的包;有關鏈接,請參閱參考資料。
從源碼進行安裝 要從源碼安裝 SGMLtools-Lite,將 sgmltools-lite-3.0.0.tar.gz 文件復制到一個空的目錄中,在那裡展開它,然後將目錄更改到新的 sgmltools-lite-3.0.0 目錄:
tar -zxvf sgmltools-lite-3.0.0.tar.gz
cd sgmltools-lite-3.0.0/
在執行任何其它操作之前,檢查 sgmltools-lite-3.0.0 目錄中是否有 "config.cache" 文件。如果有,在運行配置之前將它除去。如果文件在配置 make 時出現,可能會導致問題。
rm config.cache
../configure
make
make install
到目前為止應該就是這些。要查看是否安裝了 SGMLtools-Lite,運行以下命令:
sgmltools --help
如果已正確安裝和配置了 SGMLtools-Lite,您應該看到以下消息:
SGMLtools version 3.0.0
Usage:
sgmltools [OPTION...] [INPUT-FILE...]
Convert SGML files into various output formats.
Options:
-v --verbose Print verbose output
-d --de
bug Do not remove temporary files
-b: --backend= Backend to use
-j: --jade-opt= Options passed on to jade
-s: --dsssl-spec= DSSSL spec to use
-V --version Print version number and exit
-h --help Print usage and exit
-l --license Print license information
For help on a specific backend, use "--backend xyz --help".
從 RPM 進行安裝 如果使用的是基於 RPM 的系統,可以使用 RPM 來安裝 SGMLtools-Lite。需要下載最新的 sgmltools-lite 包和支持文件。下載了這兩個 RPM 後,繼續使用 -i 選項安裝它們。您還是可以通過運行 sgmltools -- help 命令來測試安裝,確保每個部分都安裝成功。
安裝疑難解答 要使 SGMLtools-Lite 能正確工作,您可能需要做的一件事就是設置 SGML_CATALOG_FILES 環境變量,以使 SGMLtools-Lite 知道在什麼地方查找目錄文件。可以通過手工發出設置正確環境變量的命令來做到。在我的系統上使用的就是這種方法(是的,輸入工作可能有些繁重)。
export SGML_CATALOG_FILES=/usr/local/share/sgml/stylesheets/docbook/catalog:
/usr/local/share/sgml/entities/iso-entities-8879.1986/iso-entities.cat:
/usr/local/share/sgml/d
td/jade/dsssl.cat:
/usr/local/share/sgml/stylesheets/sgmltools/sgmltools.cat:
/usr/local/share/sgml/dtd/sgmltools/catalog:
/usr/local/share/sgml/dtd/docbook/3.1/docbook.cat
要避免在每次登錄時都不得不執行這一步,您可能需要繼續設置 .bash_profile 中的 SGML_CATALOG_FILES 環境變量。請注意,如果在一個 x-term 中設置環境變量,可能無法擴大到其它 x-term,因此如果收到錯誤,需要通過檢查來確保正確設置環境。
使用 SGMLtools-Lite 產生輸出文件 一旦安裝了 SGMLtools-Lite,使用起來就相當簡單。SGMLtools-Lite 主要用來從 DocBook 文件中產生 HTML、PostScript、RTF 或純文本文件。還可以使用 SGMLtools 來將 Linuxdoc 文件轉換成 DocBook 格式。
產生 HTML 文件 以下是如何使用 SGMLtools-Lite 來產生 HTML 輸出的方法。如果所產生的文檔帶有圖像,則需要引用不帶有文件擴展名的圖像名。例如,不是這樣引用:
<screenshot>
<graphic fileref="../images/datebook1.gif"><graphic>
<screenshot>
而希望這樣使用:
<screenshot>
<graphic fileref="../images/datebook1"><graphic>
<screenshot>
在處理 DocBook 文件時,如果產生的是 HTML 文件,SGMLtools-Lite 需要的是 gif,如果產生的是 PostScript 文件,需要的是 EPS 文件。在產生 HTML 時,SGMLtools-Lite 自動附加 .gif 擴展名,因此 HTML 文檔可以正確使用。
要從名為 book.sgml 的 DocBook 文件中產生 HTML 輸出,輸入以下命令:
sgmltools -b html book.sgml
"-b" (後端)參數告訴 SGMLtools-Lite 產生 HTML 輸出。
這將創建一個名為 "book" 的目錄,並且 HTML 文件在其中。如果您的 DocBook 文檔調用其它文件,SGMLtools-Lite 也將處理它們,並自動創建索引和“頁面”之間的導航。
由 SGMLtools-Lite 產生的 HTML 標記過於花俏。在把文件上載到
服務器之前,您需要對它們運行 "HTML Tidy" (請參閱參考資料)。HTML Tidy 不僅可以整理代碼,它還會用 CSS 規則替換例如 <font> 和 <center> 這樣的顯示標記。
產生 PostScript 文件
要產生 PostScript 輸出,使用以下命令:
sgmltools -b ps book.sgml
由 SGMLtools-Lite 產生的 PostScript 輸出看上去很專業,適合於許多文檔的使用,例如軟件手冊或公司報告;通常情況下,會使用排版程序來產生這些文檔。SGMLtools-Lite 甚至還可以直接產生封面和目錄表。
產生 RTF 文件 如果需要與使用 Word 的人共享文檔,則需要輸出多文本格式 (Rich Text Format),或 RTF 格式的文件。如果使用 SGMLtools-Lite,這一過程和產生任何其它輸出類型的過程一樣簡單:
sgmltools -b rtf book.sgml
不幸的是,據我所知,Microsoft Word 沒有導出到 DocBook 的選項。
產生純文本文件 最後,如果需要,可以用 DocBook 創建純文本文件。要使用 SGMLtools-Lite 產生純文本,使用 "-b txt" 參數。
將 Linuxdoc 轉換成 DocBook 在某些情況下,也許要負責維護 Linuxdoc 格式的文檔。可能您所在公司是使用 Linuxdoc 來編寫文檔的,也可能您碰巧遇到一些以 Linuxdoc 編寫的舊文檔。幸運的是,SGMLtools-Lite 的一個特性是能夠將文檔從 Linuxdoc DTD 轉換成 DocBook DTD。
要將名為 Howto.sgml 的 Linuxdoc 文件轉換成 DocBook 格式,使用以下命令:
sgmltools -b ld2db Howto.sgml
這將從 Linuxdoc 文件中創建 DocBook SGML 文件。然後,可以使用新的 DocBook 文件來產生其它各種類型的文件。SGMLtools-Lite 不能從 Linuxdoc 文件中產生除 DocBook 以外的輸出。