日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
【Debian參考手冊】第?11?章?數(shù)據(jù)轉(zhuǎn)換

目錄

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、肇慶網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為肇慶等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

11.1. 文本數(shù)據(jù)轉(zhuǎn)換工具
11.1.1. 用 iconv 命令來轉(zhuǎn)換文本文件
11.1.2. 用 iconv 檢查文件是不是 UTF-8 編碼
11.1.3. 使用 iconv 轉(zhuǎn)換文件名
11.1.4. 換行符轉(zhuǎn)換
11.1.5. TAB 轉(zhuǎn)換
11.1.6. 帶有自動轉(zhuǎn)換功能的編輯器
11.1.7. 提取純文本
11.1.8. 高亮并格式化純文本數(shù)據(jù)
11.2. XML 數(shù)據(jù)
11.2.1. XML 的基本提示
11.2.2. XML 處理
11.2.3. XML 數(shù)據(jù)提取
11.2.4. XML 數(shù)據(jù)檢查
11.3. 排版
11.3.1. roff 排版
11.3.2. TeX/LaTeX
11.3.3. 漂亮的打印手冊頁
11.3.4. 創(chuàng)建手冊頁
11.4. 可印刷的數(shù)據(jù)
11.4.1. Ghostscript
11.4.2. 合并兩個 PS 或 PDF 文件
11.4.3. 處理可印刷數(shù)據(jù)的工具
11.4.4. 用 CUPS 打印
11.5. 郵件數(shù)據(jù)轉(zhuǎn)換
11.5.1. 郵件數(shù)據(jù)基礎(chǔ)
11.6. 圖形數(shù)據(jù)工具
11.7. 不同種類的數(shù)據(jù)轉(zhuǎn)換工具

下面是關(guān)于Debian 系統(tǒng)上可用的格式轉(zhuǎn)化工具及其相關(guān)提示的信息。

基于標(biāo)準(zhǔn)的工具,是非常好用的,但支持的專有數(shù)據(jù)格式有限.

11.1. 文本數(shù)據(jù)轉(zhuǎn)換工具

如下是文本數(shù)據(jù)轉(zhuǎn)換工具。

表 11.1. 文本數(shù)據(jù)轉(zhuǎn)化工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
libc6 V:923, I:999 12878 字符集 使用 iconv(1) 的不同語言環(huán)境(locale)之間的文本編碼轉(zhuǎn)換器 (基礎(chǔ)的)
recode V:3, I:23 603 字符集+換行 不同語言環(huán)境(locale)之間的文本編碼轉(zhuǎn)換器(多功能的,更多別名和特性)
konwert V:1, I:52 134 字符集 不同語言環(huán)境(locale)之間的文本編碼轉(zhuǎn)換器(高檔的)
nkf V:0, I:10 362 字符集 日語字符集翻譯
tcs V:0, I:0 518 字符集 字符集翻譯
unaccent V:0, I:0 35 字符集 代替重音字符,使用和它們相當(dāng)?shù)姆侵匾糇址?
tofrodos V:1, I:22 55 換行 在 DOS 和 Unix 之間的文本格式轉(zhuǎn)換: fromdos(1) 和 todos(1)
macutils V:0, I:0 312 換行 在 Macintosh 和 Unix 之間的文本格式轉(zhuǎn)換: frommac(1) 和 tomac(1)

11.1.1. 用 iconv 命令來轉(zhuǎn)換文本文件

提示

iconv(1) 是 libc6 軟件包的一部分并且它可以在類 Unix 的系統(tǒng)上轉(zhuǎn)換字符的編碼。

你能夠通過如下的命令用 iconv(1) 來轉(zhuǎn)換文本文件的編碼。

$ iconv -f encoding1 -t encoding2 input.txt >output.txt

編碼值是大小寫不敏感的,且會在匹配時忽略“-”和“_”。可以使用“iconv -l”命令檢查支持的編碼。

表 11.2. 編碼值和用法的列表

編碼值 用法
ASCII 美國信息交換標(biāo)準(zhǔn)代碼,7位代碼不帶重音符號
UTF-8 用于所有現(xiàn)代操作系統(tǒng)的多語言標(biāo)準(zhǔn)
ISO-8859-1 舊的西歐語言標(biāo)準(zhǔn),ASCII + 重音符號
ISO-8859-2 舊的東歐語言標(biāo)準(zhǔn),ASCII + 重音符號
ISO-8859-15 舊的帶有歐元符號的西歐語言標(biāo)準(zhǔn)(ISO-8859-1)
CP850 code page 850,用于西歐語言的微軟 DOS 的帶有圖形的字符,ISO-8859-1 的變體
CP932 code page 932, 日語 Microsoft Windows 的 Shift-JIS 變體
CP936 code page 936,用于簡體中文的微軟操作系統(tǒng)風(fēng)格的 GB2312,GBK 或者 GB18030 的變體
CP949 code page 949,用于韓語的微軟操作系統(tǒng)風(fēng)格的 EUC-KR 或者 Unified Hangul Code 的變體
CP950 code page 950,用于繁體中文的微軟操作系統(tǒng)風(fēng)格的 Big5 的變體
CP1251 code page 1251,用于西里爾字母的微軟操作系統(tǒng)風(fēng)格的編碼
CP1252 code page 1252,用于西歐語言的微軟操作系統(tǒng)風(fēng)格的 ISO-8859-15 的變體
KOI8-R 用于西里爾字母的舊俄語 UNIX 標(biāo)準(zhǔn)
ISO-2022-JP 日文郵件的標(biāo)準(zhǔn)編碼,只使用 7 位字節(jié)
eucJP 老的日文 UNIX 標(biāo)準(zhǔn)的 8 位字節(jié),和 Shift-JIS 完全不同
Shift-JIS 日文 JIS X 0208 附錄 1 標(biāo)準(zhǔn) (參見 CP932)

注意

一些編碼只支持?jǐn)?shù)據(jù)轉(zhuǎn)換,它不能作為語言環(huán)境的值 (第 8.1 節(jié) “語言環(huán)境”)。

像 ASCII 和 ISO-8859 這樣適用于單字節(jié)的字符集,字符編碼和字符集幾乎指的是同一件事情。

對于多字符的字符集,比如說,用于日文的 JIS X 0213,或用于差不多所有語言的 Universal Character Set (UCS, Unicode, ISO-10646-1) , 有多種編碼方案來序列化它們的字節(jié)數(shù)據(jù)。

  • 日文的 EUC 和 ISO/IEC 2022 (也被稱為 JIS X 0202)

  • Unicode 的 UTF-8、UTF-16/UCS-2 和 UTF-32/UCS-4 編碼

對于以上這些,字符集和字符編碼之間有著明顯的區(qū)別。

對某些計算機廠家而言,code page 是作為字符編碼表的同義詞來使用。

注意

請注意,大部分編碼系統(tǒng)共享 ASCII 的 7 位字符的同樣編碼,但也有一些列外。如果你從通常所說的 shift-JIS 編碼格式,轉(zhuǎn)化老的日文 C 語言程序和 URL 數(shù)據(jù),到 UTF-8 格式,你需要使用 "CP932" 作為編碼名來代替 "shift-JIS" 來得到期望的結(jié)果: 0x5C → "\" 和 0x7E → "~".否則,這些將被轉(zhuǎn)化為錯誤的字符。

提示

recode(1) 也可能被使用并且不僅僅是 iconv(1),fromdos(1),todos(1),frommac(1) 和 tomac(1) 功能的結(jié)合。想要獲得更多信息,請參見 "info recode"。

11.1.2. 用 iconv 檢查文件是不是 UTF-8 編碼

你能夠通過如下命令用 iconv(1) 來檢查一個文本文件是不是用 UTF-8 編碼的。

$ iconv -f utf8 -t utf8 input.txt >/dev/null || echo "non-UTF-8 found"
提示

在上面的例子中使用 "--verbose" 參數(shù)來找到第一個 non-UTF-8 字符。

11.1.3. 使用 iconv 轉(zhuǎn)換文件名

這里是一個示例腳步,在同一目錄下,將在老的操作系統(tǒng)系統(tǒng)下創(chuàng)建的文件名編碼,轉(zhuǎn)換為現(xiàn)代 UTF-8.

#!/bin/sh
ENCDN=iso-8859-1
for x in *;
 do
 mv "$x" "$(echo "$x" | iconv -f $ENCDN -t utf-8)"
done

"$ENCDN" 變量定義了在老的操作系統(tǒng)下,文件名使用的原始編碼,見 表 11.2 “編碼值和用法的列表”.

對于更加復(fù)雜的情況,請使用適當(dāng)?shù)木幋a作為 mount(8) 的選項(參見 第 8.1.3 節(jié) “文件名編碼”) 來掛載包含有這樣文件名的文件系統(tǒng)(比如說,磁盤上的一個分區(qū)),使用 "cp -a" 命令來拷貝它的整個內(nèi)容到另外一個使用 UTF-8 掛載的文件系統(tǒng)上。

11.1.4. 換行符轉(zhuǎn)換

文本文件的格式,特別是行尾(換行符)編碼,有平臺獨立性。

表 11.3. 不同平臺的換行符樣式列表

平臺 換行符編碼 控制碼 十進(jìn)制 16 進(jìn)制
Debian (unix) LF ^J 10 0A
MSDOS 和 Windows CR-LF ^M^J 13 10 0D 0A
蘋果的 Macintosh CR ^M 13 0D

換行符轉(zhuǎn)換程序, fromdos(1), todos(1), frommac(1), 和 tomac(1), 是相當(dāng)方便. recode(1) 也是有用的。

注意

在 Debian 系統(tǒng)上的一些數(shù)據(jù),如 python-moinmoin 軟件包的 wiki 頁面數(shù)據(jù),使用 MSDOS 式樣的 CR-LF 作為換行符編碼。所以,上面的規(guī)則僅僅是一個通用規(guī)則。

注意

大部分編輯器 (比如: vim, emacs, gedit, …) 能夠透明處理 MSDOS 式樣的換行符文件。

提示

對于混合 MSDOS 和 Unix 式樣的文件,統(tǒng)一到 MSDOS 換行符式樣,使用 "sed -e '/\r$/!s/$/\r/'" 代替 todos(1) 比較好。 (例如,在使用 diff3(1)移植兩個 MSDOS 式樣的文件后.)這是因為 todos 給所有的行增加 CR.

11.1.5. TAB 轉(zhuǎn)換

這里有一些轉(zhuǎn)換 TAB 代碼的專業(yè)工具。

表 11.4. bsdmainutilscoreutils 包中的用于轉(zhuǎn)換 TAB 的命令列表

功能 bsdmainutils coreutils
把制表符擴(kuò)展成空格 "col -x" expand
將空格轉(zhuǎn)換為制表符(unexpand) "col -h" unexpand

indent 包中的 indent(1) 命令能夠重新格式化 C 程序中的空格。

例如 vimemacs 這樣的編輯軟件可以被用來擴(kuò)展 TAB。就拿 vim 來說,你能夠按順序輸入 ":set expandtab" 和 ":%retab" 命令來擴(kuò)展 TAB。你也可以按順序輸入 :%set noexpandtab" 和 ":%retab" 命令來復(fù)原。

11.1.6. 帶有自動轉(zhuǎn)換功能的編輯器

vim 這樣的現(xiàn)代智能編輯器軟件是相當(dāng)聰明的并且能夠處理任何編碼系統(tǒng)以及任何文件格式。你應(yīng)該在支持 UTF-8 編碼的控制臺上并在 UTF-8 環(huán)境下使用這些編輯器來獲得最好的兼容性。

以 latin1(iso-8859-1)編碼存儲的舊西歐語言的 Unix 文本文件,“u-file.txt”,能通過如下所示的用 vim 輕易的編輯。

$ vim u-file.txt

這是可能的因為 vim 的文件編碼自動檢測機制先假定文件是 UTF-8 編碼,如果失敗了,則假定它是 latin1 編碼。

以 latin2(iso-8859-2) 編碼存儲的舊波蘭語的 Unix 文本文件,“pu-file.txt”,能通過如下所示的用 vim 編輯。

$ vim '+e ++enc=latin2 pu-file.txt'

以 eucJP 編碼存儲的舊日語的 Unix 文本文件,"ju-file.txt",能通過如下所示的用 vim 編輯。

$ vim '+e ++enc=eucJP ju-file.txt'

以所謂的 shift-JIS 編碼 (更確切的說法是:CP932) 存儲的舊日語 MS-Windows 文本文件,"jw-file.txt",能通過如下所示的用 vim 編輯。

$ vim '+e ++enc=CP932 ++ff=dos jw-file.txt'

當(dāng)一個文件用 vim 打開的時候帶有 "++enc" 和 "++ff" 選項,在 Vim 命令行輸入 ":w" 命令會以原格式存儲文件并且會覆蓋原文件。你也可以在 Vim 命令行指定存儲文件名及其格式,例如,":w ++enc=utf8 new.txt"。

請查閱 vim 在線幫助中的 mbyte.txt,"多字節(jié)文本支持"和表 11.2 “編碼值和用法的列表”來獲得 "++enc" 使用的本地值的信息。

emacs 家族的程序能夠?qū)崿F(xiàn)同樣的功能。

11.1.7. 提取純文本

如下所示讀入 web 頁面并把它轉(zhuǎn)化成文本文件。當(dāng)從 Web 中拷貝配置或者是在 web 頁面中應(yīng)用類似 grep(1) 的基礎(chǔ) Unix 文本工具時,以下命令是非常有用的。

$ w3m -dump http://www.remote-site.com/help-info.html >textfile

同樣,你可以使用如下所示的工具從其他格式提取純文本數(shù)據(jù)。

表 11.5. 用于提取純文本數(shù)據(jù)的工具列表

軟件包 流行度 大小 關(guān)鍵詞 功能
w3m V:25, I:221 2367 html→text 用 "w3m -dump" 命令把 HTML 轉(zhuǎn)化為文本的轉(zhuǎn)換器
html2text V:2, I:27 274 html→text 高級的 HTML 到文本文件的轉(zhuǎn)換器 (ISO8859-1)
lynx V:16, I:113 1949 html→text 用 "lynx -dump" 命令把 HTML 轉(zhuǎn)化為文本的轉(zhuǎn)化器
elinks V:5, I:25 1763 html→text 用 "elinks -dump" 命令把 HTML 轉(zhuǎn)化為文本的轉(zhuǎn)換器
links V:5, I:35 2286 html→text 用 "links -dump" 命令把 HTML 轉(zhuǎn)化為文本的轉(zhuǎn)換器
links2 V:1, I:13 5459 html→text 用 "links2 -dump" 命令把 HTML 轉(zhuǎn)化為文本的轉(zhuǎn)換器
catdoc V:21, I:127 686 MSWord→text,TeX 轉(zhuǎn)化 MSWord 文件到純文本或 TeX文件
antiword V:1, I:9 589 MSWord→text,ps 轉(zhuǎn)化 MSWord 文件到純文本或 ps 文件
pstotext V:0, I:2 126 ps/pdf→text 從 PostScript 和 PDF 文件里導(dǎo)出文本
unhtml V:0, I:0 43 html→text 從一個 HTML 文件里面刪除標(biāo)記標(biāo)簽
odt2txt V:1, I:12 60 odt→text 從開放文檔格式到文本格式的轉(zhuǎn)化器

11.1.8. 高亮并格式化純文本數(shù)據(jù)

你可以通過如下所示的來高亮并格式化純文本數(shù)據(jù)。

表 11.6. 高亮純文本數(shù)據(jù)的工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
vim-runtime V:19, I:427 32763 高亮 用 ":source $VIMRUNTIME/syntax/html.vim" Vim 宏命令轉(zhuǎn)化源代碼到 HTML
cxref V:0, I:0 1193 c→html 從 C 程序到 latex 和 HTML 的轉(zhuǎn)換器(C語言)
src2tex V:0, I:0 622 高亮 轉(zhuǎn)換許多源代碼到 TeX(C語言)
source-highlight V:0, I:7 1991 高亮 轉(zhuǎn)換源代碼到帶有高亮顯示的 HTML, XHTML, LaTeX, Texinfo, ANSI 顏色轉(zhuǎn)義序列和 DocBook 文件 (C++)
highlight V:0, I:8 1079 高亮 轉(zhuǎn)化許多源代碼到帶有高亮顯示的 HTML, XHTML, RTF, LaTeX, TeX or XSL-FO 文件。(C++)
grc V:0, I:4 208 text→有顏色的 用于任何文本的通用顏色生成器 (Python)
pandoc V:9, I:48 151715 text→any 通用標(biāo)記轉(zhuǎn)化器 (Haskell)
python3-docutils V:14, I:47 1810 text→any 重構(gòu)文本文檔到 XML (Python)
markdown V:0, I:10 57 text→html Markdown 文本文檔到 (X)HTML (Perl)
asciidoctor V:0, I:8 99 text→any AsciiDoc 文本文檔格式化到 XML/HTML (Ruby)
python3-sphinx V:6, I:21 2763 text→any 基于文檔發(fā)布系統(tǒng) (Python)重構(gòu)文本
hugo V:0, I:4 48225 text→html 基于 Markdown 的靜態(tài)站點發(fā)布系統(tǒng)(Go)

11.2. XML 數(shù)據(jù)

擴(kuò)展標(biāo)記語言 Extensible Markup Language (XML) 是一種標(biāo)記語言,用于含有結(jié)構(gòu)化信息的文檔。

在 XML.COM 查看介紹信息.

  • "什么是 XML?"

  • "什么是 XSLT?"

  • "什么是 XSL-FO?"

  • "什么是 XLink?"

11.2.1. XML 的基本提示

XML 文本看起來有些像 HTML.它能夠使我們管理一個文檔的多個格式。一個簡單的 XML 系統(tǒng)是 docbook-xsl 軟件包,在這里使用。

每一個 XML 文件使用下面的標(biāo)準(zhǔn) XML 聲明開始。

XML 元素的基本語法是按下面的方式標(biāo)記。

content

內(nèi)容為空的 XML 元素,使用下面的短格式標(biāo)記。

上面列子中的 "attribute="value"" 是可選的。

XML 里面的注釋部分,是按下面的方式標(biāo)記。

不同于增加標(biāo)記,XML 至少要求使用預(yù)定義實體里的內(nèi)容來轉(zhuǎn)化下列字符。

表 11.7. XML 預(yù)定義實體列表

預(yù)定義實體 轉(zhuǎn)化的字符
" " : 引號
' ' : 撇號
< < : 小于號
> > : 大于號
& & :&號

小心

<”或“&”不能在屬性(attributes)或元素(elements)中使用。

注意

當(dāng) SGML 式樣的用戶定義實體,比如 "&some-tag;", 被使用的時候,第一個定義會覆蓋其它的。實體定義在 ""里表示。

注意

只要 XML 標(biāo)記是一致使用某一標(biāo)簽名集合(一些數(shù)據(jù)作為內(nèi)容或?qū)傩灾担?,使?Extensible Stylesheet Language Transformations (XSLT) 來轉(zhuǎn)換到另外一個 XML,是一個微不足道的任務(wù)。

11.2.2. XML 處理

有許多工具可以用于處理 XML 文件,比如說: 可擴(kuò)展樣式表語言 Extensible Stylesheet Language (XSL).

一旦你創(chuàng)建了一個好的成形的 XML 文件,基本上來講,你就可以使用 可擴(kuò)展樣式表語言轉(zhuǎn)換 Extensible Stylesheet Language Transformations (XSLT),將其轉(zhuǎn)換成任何格式。

格式化對象的可擴(kuò)展樣式表語言 Extensible Stylesheet Language for Formatting Objects (XSL-FO) 是用來作為格式化的解決方案. fop 軟件包比 Debian main 檔案庫要新,因為它依賴 Java 編程語言. LaTeX 代碼通常是從 XML 使用 XSLT 生成,LaTeX 系統(tǒng)是用來創(chuàng)建 DVI, PostScript 和 PDF 這類可打印的文件。

表 11.8. XML 工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
docbook-xml I:351 2134 xml DocBook 的 XML 文檔類型定義(DTD)
docbook-xsl V:11, I:147 14870 xml/xslt 使用 XSLT 將 DocBook XML 處理成各種輸出格式的 XSL 樣式表
xsltproc V:14, I:93 160 xslt XSLT 命令行處理器 (XML→ XML, HTML, 純文本,等等)
xmlto V:1, I:20 130 xml/xslt 使用 XSLT 將 XML 轉(zhuǎn)換到任意格式的轉(zhuǎn)換器
fop V:1, I:18 291 xml/xsl-fo 轉(zhuǎn)換 Docbook XML 文件到 PDF
dblatex V:3, I:14 4643 xml/xslt 使用 XSLT 將 Docbook 文件轉(zhuǎn)換為 DVI, PostScript, PDF 文檔
dbtoepub V:0, I:0 37 xml/xslt DocBook XML 到 .epub 轉(zhuǎn)換

由于 XML 是 標(biāo)準(zhǔn)通用標(biāo)記語言 Standard Generalized Markup Language (SGML)的一個子集,用于處理 SGML 的擴(kuò)展工具,也能夠處理 XML,比如說 文檔式樣語言和規(guī)范語言 Document Style Semantics and Specification Language (DSSSL).

表 11.9. DSSSL 工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
openjade V:2, I:34 1019 dsssl ISO/IEC 10179:1996 標(biāo)準(zhǔn) DSSSL 處理器 (最新的)
docbook-dsssl V:1, I:19 2605 xml/dsssl 使用 DSSSL 處理 DocBook XML 到各種輸出格式的 DSSSL 樣式表
docbook-utils V:0, I:14 287 xml/dsssl DocBook 文件的工具包,包括使用 DSSSL 的轉(zhuǎn)換成其它格式 (HTML, RTF, PS, man, PDF)的 docbook2* 命令
sgml2x V:0, I:0 90 SGML/dsssl SGML 和 XML 使用 DSSSL 樣式表的轉(zhuǎn)換器

提示

GNOME 的 yelp 往往能夠方便的直接讀取 DocBook XML 文件,這是因為它可以從 X 獲得適當(dāng)?shù)匿秩尽?/p>

11.2.3. XML 數(shù)據(jù)提取

使用下面的方法,你能夠從其它格式提取 HTML 或 XML 數(shù)據(jù)。

表 11.10. XML 數(shù)據(jù)提取工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
man2html V:0, I:2 138 man 手冊頁→html 從 man 手冊頁到 HTML 的轉(zhuǎn)換器(支持 CGI)
doclifter V:0, I:0 451 troff→xml troff 到 DocBook XML 的轉(zhuǎn)換器
texi2html V:0, I:7 1833 texi→html 從 Texinfo 到 HTML 的轉(zhuǎn)換器
info2www V:1, I:2 76 info→html 從 GNU info 到 HTML 的轉(zhuǎn)換器 (支持 CGI)
wv V:0, I:6 717 MSWord→任何格式 從微軟 Word 格式到 HTML, LaTeX, 等格式的文件轉(zhuǎn)換器。
unrtf V:0, I:4 148 rtf→html 從 RTF 到 HTML 等的轉(zhuǎn)換器
ooo2dbk V:0, I:0 217 sxw→xml 從 OpenOffice.org SXW 文檔到 DocBook XML 的轉(zhuǎn)換器
wp2x V:0, I:0 202 WordPerfect→任意格式 WordPerfect 5.0 和 5.1 文件到 TeX, LaTeX, troff, GML 和 HTML

11.2.4. XML 數(shù)據(jù)檢查

對于非 XML 的 HTML 文件,你能夠轉(zhuǎn)換它們?yōu)?XHTML,XHTML 是一個相當(dāng)成型的 XML 實例。XHTML 能夠被 XML 工具處理.

XML 文件的語法和在它們中發(fā)現(xiàn)的 URL 的完整性,能夠被檢查。

表 11.11. XML 美化打印工具列表

軟件包 流行度 大小 功能 說明
libxml2-utils V:20, I:224 186 xml?html?xhtml 使用 xmllint(1) 的 XML 命令行工具 (語法檢查,重新格式化,梳理, …)
tidy V:1, I:12 84 xml?html?xhtml HTML 語法檢查和重新格式化
weblint-perl V:0, I:1 32 檢查 用于 HTML 的小巧的語法檢查器
linklint V:0, I:0 344 鏈接檢查 快速的網(wǎng)站維護(hù)工具及鏈接檢查器

一旦適當(dāng)?shù)?XML 生成,基于標(biāo)記的內(nèi)容等,你能夠使用 XSLT 技術(shù)提取數(shù)據(jù)。

11.3. 排版

Unix上的 troff 程序最初是由 AT&T 公司開發(fā)的,可以被用做簡單排版?,F(xiàn)在被用來創(chuàng)建手冊頁。

Donald Knuth 發(fā)明的 Tex 是非常強大的排版工具也是實際上的標(biāo)準(zhǔn)。最初是由 Leslie Lamport 開發(fā)的 LaTex 使得用戶可以更為方便的利用 Tex 的強大功能。

表 11.12. 排版工具的列表

軟件包 流行度 大小 關(guān)鍵詞 說明
texlive V:4, I:44 72 (La)TeX 用于排版、預(yù)覽和打印的 TeX 系統(tǒng)
groff V:4, I:53 11870 troff GNU troff 文本格式化系統(tǒng)

11.3.1. roff 排版

傳統(tǒng)意義上,roff 是 Unix 上主要的文本處理系統(tǒng)。參見 roff(7), groff(7), groff(1), grotty(1), troff(1), groff_mdoc(7), groff_man(7), groff_ms(7), groff_me(7), groff_mm(7) 和 "info groff"。

安裝好 groff 軟件包以后,你輸入 "-me" 宏指令就能看到一份不錯的指導(dǎo)手冊,它的位置是 "/usr/share/doc/groff/"。

提示

"groff -Tascii -me -" 輸出帶有 ANSI 轉(zhuǎn)義碼的純文本。如果你想要 manpage 的輸出帶有許多 "^H" 和 "_",那么使用替代命令 "GROFF_NO_SGR=1 groff -Tascii -me -"。

提示

如果想要移除 groff 生成的文本文件中的 "^H" 和 "_",使用 "col -b -x" 來過濾它。

11.3.2. TeX/LaTeX

Tex Live 軟件提供了全部的 TeX 系統(tǒng)。texlive 元包只是 TeX Live 中的一部分,但是它足夠應(yīng)付日常任務(wù)。

這里有許多可用的 TeX 和 LaTeX 的參考資料。

  • The teTeX HOWTO: The Linux-teTeX Local Guide

  • tex(1)

  • latex(1)

  • texdoc(1)

  • texdoctk(1)

  • "The TeXbook", 作者 Donald E. Knuth, (Addison-Wesley)

  • "LaTeX - A Document Preparation System", 作者 Leslie Lamport, (Addison-Wesley)

  • "The LaTeX Companion", 作者 Goossens, Mittelbach, Samarin, (Addison-Wesley)

這是最強大的排版環(huán)境。許多 SGML 處理器把它作為其后臺字處理工具。lyx 軟件包提供的 Lyx 和 texmacs 軟件包提供的 GNU TeXmacs 都為 LaTeX 提供了非常不錯的所見即所得的編輯環(huán)境,然而許多人使用 Emacs 和 Vim 作為其源代碼編輯器。

有許多在線資源存在。

  • TEX Live Guide - TEX Live 2007 ("/usr/share/doc/texlive-doc-base/english/texlive-en/live.html") (texlive-doc-base 包)

  • Latex/Lyx 的一個簡單指引

  • 使用 LaTeX 進(jìn)行文字處理

  • teTeX/LaTeX 的本地用戶指引

當(dāng)文檔變得更大時,TeX 有時會出錯。你必須在 "/etc/texmf/texmf.cnf" 中增加 pool 的大小 (更確切的說話是編輯是 "/etc/texmf/texmf.d/95NonPath" 并且運行 update-texmf(8)) 來修復(fù)此問題。

注意

"The TeXbook" 的 TeX 源碼可以從 http://tug.ctan.org/tex-archive/systems/knuth/dist/tex/texbook.tex 上下載。此文件包含了絕大多數(shù)所需的宏指令。我聽說把文檔中的第7到第10行注釋了并且添加 "\input manmac \proofmodefalse",就可以用 tex(1) 來處理此文檔。我強烈建議去購買這本書 (還有 Donald E. Knuth 寫的其他書) 而不是使用在線版本,但是在線版本中的源碼確實是學(xué)習(xí) Tex 輸入很好的例子!

11.3.3. 漂亮的打印手冊頁

你能夠用如下任意一個命令在打印機上漂亮的打印手冊頁。

$ man -Tps some_manpage | lpr

11.3.4. 創(chuàng)建手冊頁

盡管用純 troff 格式寫手冊頁(manpage)是可能的,這里還是有一些輔助的程序包用于創(chuàng)建手冊頁。

表 11.13. 創(chuàng)建手冊頁的工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
docbook-to-man V:0, I:11 191 SGML→man 手冊頁 從 DocBook SGML 到 roff 手冊頁宏指令的轉(zhuǎn)換器
help2man V:0, I:9 509 text→man 手冊頁 通過 --help 參數(shù)自動生成手冊頁的工具
info2man V:0, I:0 135 info→man 手冊頁 轉(zhuǎn)換 GNU info 到 POD 或手冊頁的轉(zhuǎn)換器
txt2man V:0, I:1 114 text→man 手冊頁 把純粹的 ASCII 文本轉(zhuǎn)化為手冊頁格式

11.4. 可印刷的數(shù)據(jù)

在 Debian 系統(tǒng)中,可打印的數(shù)據(jù)是 PostScript 格式的。對于非 PostScript 打印機,通用 Unix 打印系統(tǒng) (CUPS) 使用 Ghostscript 作為其后臺光柵處理程序。

11.4.1. Ghostscript

處理可印刷的數(shù)據(jù)的核心是 Ghostscript PostScript 解釋器,它能夠生成光柵圖像。

表 11.14. Ghostscript PostScript 解釋器列表

軟件包 流行度 大小 說明
ghostscript V:202, I:531 234 GPL Ghostscript PostScript/PDF 解釋器
ghostscript-x V:8, I:60 226 GPL Ghostscript PostScript/PDF 解釋器-X 顯示支持
libpoppler102 V:147, I:277 4274 PDF 渲染庫 (xpdf PDF 瀏覽器的分支)
libpoppler-glib8 V:254, I:478 445 PDF 渲染庫(基于 Glib 的共享庫)
poppler-data V:112, I:620 13089 用于 PDF 渲染庫的 CMaps (CJK 支持:Adobe-*)

提示

"gs -h" 能夠顯示 Ghostscript 的配置信息。

11.4.2. 合并兩個 PS 或 PDF 文件

你能夠使用 Ghostscript 中的 gs(1) 來合并兩個 PostScript(PS) 或可移植文檔格式(PDF) 文件。

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=bla.ps -f foo1.ps foo2.ps
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f foo1.pdf foo2.pdf
注意

PDF 是用途很廣的跨平臺可印刷的數(shù)據(jù)格式,它本質(zhì)上是帶有一些額外特性和擴(kuò)展的壓縮了的 PS 格式。

提示

對于命令行來說,psmerge(1) 和 psutils 包中的其他命令在處理 PostScript 文檔時是很有用的。pdftk 包中的 pdftk(1) 在處理 PDF 文檔的時候同樣是很好用的。

11.4.3. 處理可印刷數(shù)據(jù)的工具

如下是處理可印刷數(shù)據(jù)的工具列表。

表 11.15. 處理可印刷數(shù)據(jù)的工具列表

軟件包 流行度 大小 關(guān)鍵詞 說明
poppler-utils V:195, I:367 689 pdf→ps,text,… PDF 工具:pdftops, pdfinfo, pdfimages, pdftotext, pdffonts
psutils V:6, I:91 219 ps→ps PostScript 文件轉(zhuǎn)換工具
poster V:0, I:4 58 ps→ps 用 PostScript 頁制作大型海報
enscript V:1, I:18 2132 text→ps, html, rtf 轉(zhuǎn)化 ASCII 文本到 PostScript, HTML, RTF 或 Pretty-Print
a2ps V:1, I:14 3648 text→ps '任何文本到 PostScript' 的轉(zhuǎn)換器并且也是相當(dāng)不錯的打印程序
pdftk I:49 28 pdf→pdf PDF 文檔轉(zhuǎn)換工具:pdftk
html2ps V:0, I:3 261 html→ps 從 HTML 到 PostScript 的轉(zhuǎn)換器
gnuhtml2latex V:0, I:1 27 html→latex 從 html 到 latex 的轉(zhuǎn)換器
latex2rtf V:0, I:5 480 latex→rtf 轉(zhuǎn)換 LaTeX 文檔到能被 Microsoft Word 讀取的 RTF 格式的文檔
ps2eps V:3, I:56 99 ps→eps 從 PostScript 到 EPS(Encapsulated PostScript)的轉(zhuǎn)換器
e2ps V:0, I:0 109 text→ps 帶有日文編碼支持的文本到 PostScript 轉(zhuǎn)換器
impose+ V:0, I:0 119 ps→ps PostScript 工具
trueprint V:0, I:0 146 text→ps 漂亮的打印許多源程序(C, C++, Java, Pascal, Perl, Pike, Sh, 和 Verilog)到 PostScript。(C 語言)
pdf2svg V:0, I:4 30 ps→svg PDF 到可升級的向量圖形格式的轉(zhuǎn)換器
pdftoipe V:0, I:0 70 ps→ipe 從 PDF 到 IPE‘s XML 格式的轉(zhuǎn)換器

11.4.4. 用 CUPS 打印

Unix 通用打印系統(tǒng)(CUPS) 中的 lp(1) 和 lpr(1) 命令都提供了自定義打印數(shù)據(jù)的選項。

你可以使用下列命令中的一個來打印 3 份有裝訂頁碼的文件。

$ lp -n 3 -o Collate=True filename
$ lpr -#3 -o Collate=True filename

你能夠通過 "-o number-up=2", "-o page-set=even", "-o page-set=odd", "-o scaling=200", "-o natural-scaling=200" 等等打印機選項來進(jìn)一步定制打印機操作,詳細(xì)的文檔參見命令行打印和選項。

11.5. 郵件數(shù)據(jù)轉(zhuǎn)換

下列郵件數(shù)據(jù)轉(zhuǎn)換軟件包捕獲了我的眼球。

表 11.16. 有助于郵件數(shù)據(jù)轉(zhuǎn)換的軟件包列表

軟件包 流行度 大小 關(guān)鍵詞 說明
sharutils V:3, I:47 1421 郵件 shar(1), unshar(1), uuencode(1), uudecode(1)
mpack V:1, I:16 107 MIME 編碼和解碼 MIME 信息: mpack(1) 和 munpack(1)
tnef V:1, I:9 110 ms-tnef 解包 MIME 附件類型 "application/ms-tnef",該格式僅由微軟使用
uudeview V:0, I:4 109 郵件 下列格式的編碼器和解碼器: uuencode, xxencode, BASE64, quoted printable 和 BinHex

提示

如果郵件客戶端可以配置使用 IMAP4 服務(wù)器,互聯(lián)網(wǎng)消息訪問協(xié)議 版本 4 (IMAP4) 服務(wù)器可以用來把郵件從專有郵件系統(tǒng)里面移出來。

11.5.1. 郵件數(shù)據(jù)基礎(chǔ)

郵件 (SMTP) 數(shù)據(jù)需要被限制為 7 位數(shù)據(jù)序列。二進(jìn)制數(shù)據(jù)和 8 位文本數(shù)據(jù)使用 Multipurpose Internet Mail Extensions (MIME) 互聯(lián)網(wǎng)多用途郵件擴(kuò)展 和選擇的字符集編碼到 7 位格式。(參見 表 11.2 “編碼值和用法的列表”)。

標(biāo)準(zhǔn)的郵件存儲格式是 mbox,它是依據(jù) RFC2822 (由 RFC822 更新) 來的格式. 參見 mbox(5) (由 mutt 軟件包提供).

對于歐洲語言,由于沒有什么 8 位字符,"Content-Transfer-Encoding: quoted-printable" 加 ISO-8859-1 字符集通常被用于郵件。如果歐洲文本是被編碼為 UTF-8,由于幾乎全是 7 位數(shù)據(jù),使用 "Content-Transfer-Encoding: quoted-printable" 也是合適的。

對于日語,傳統(tǒng)的 "Content-Type: text/plain; charset=ISO-2022-JP" 通常被用于郵件來保持文本在 7 位。但是老的微軟系統(tǒng)會在沒有聲明的情況下使用 Shift-JIS 來發(fā)送郵件。如果日語文本是用 UTF-8 編碼, 由于含有許多 8 位數(shù)據(jù),使用 Base64 是合適的。其它亞洲語言也是類似情形。

注意

如果你的非 Unix 郵件數(shù)據(jù)可以通過一個具備和 IMAP4 服務(wù)通訊的非 Debian 客戶端訪問,你可以通過運行你的 IMAP4 服務(wù)來將郵件數(shù)據(jù)移出。

注意

如果你使用其它郵件存儲格式,第一步把它們移動到 mbox 格式比較好。像 mutt(1) 這樣多功能的客戶端程序可以便捷的完成這類操作。

你可以使用 procmail(1) 和 formail(1) 把郵箱內(nèi)容分開成每一封郵件.

每一封郵件能夠使用來自 mpack 軟件包的 munpack(1) 命令(或其它特異的工具)來獲得 MIME 編碼內(nèi)容。

11.6. 圖形數(shù)據(jù)工具

如下是關(guān)于圖形數(shù)據(jù)轉(zhuǎn)換、編輯和管理的工具包。

表 11.17. 圖形數(shù)據(jù)工具列表

      <th id="imh9j"></th>
      軟件包 流行度 大小 關(guān)鍵詞 說明
      gimp V:61, I:300 19827 圖形(位圖) GNU 圖形處理程序
      imag
      本文題目:【Debian參考手冊】第?11?章?數(shù)據(jù)轉(zhuǎn)換
      瀏覽地址:http://www.dlmjj.cn/article/coijdis.html
          • <tt id="imh9j"><big id="imh9j"></big></tt>