% pic file | tbl | eqn | troff | spooler
多人系統上,通常會為了格式化功能建立一些通用 的 shell script,透過這個 script 去選擇格式化所使用的各個選項和前置處理器。當然這些前置處理器也可以分別執行。要檢查轉換的結果是否正確時很好用。比如:
% tbl file
會將每個 .TS/.TE 之間的的輸入換成 tbl 的指令碼。其它的輸入則維持不變。
Tbl
這是用來建立表格的前置處理器。若要在 pipe 中使用,則必須放在 eqn 之前。這樣比較有效率。tbl 的指令形式如下:
/usr/ucb/tbl [options] [files]
Options:
-me 在檔案之前加上 me 巨集。
-mm 在檔案之前加上 mm 巨集。
-ms 在檔案之前加上 ms 巨集。
-TX 僅處理完整的垂直動作。nroff 格式化或是有些不支援半行高或是不到一行高的動 作的裝置上使用。
-------------------------------------------
一般指令碼形式
文字檔中的 tbl 指令碼形式如下:
.TS H
options;
format1
format2.
Column Titles
.TH
Item1 Item2 Item3
Item1 Item2 Item3 ...
.TE
tbl 處理是否成功關鍵就在於前面的檔頭是否正確。其 內容為一行的選項加上多行的格式指定行。每個表格的項目必須以 tab 字元隔開,同一行的項目都放在同一行內不可斷行,除非加上文字區塊符號 T{ 和 T}.
----------------------------------------------------
Tbl 巨集
.TS 表格開始。
.TE 表格結尾。
.TS H 若表格大小超過一頁則使用這個。和 .TH 併 用,讓每一頁都會有表格檔頭。
.TH 和 .TS H 合用,表示檔頭的結尾。
.T& 改變格式行後繼續表格。
Options:
Options會直接影響整個表格。Options之間可以 "," 或是空白隔開,不過每一行最後必須以 ";" 結尾。
center 以 " 目前 " 的邊界做置中。
expand 將目前的左右邊界都取消。
box 加框。
doublebox 加雙框。
allbox 將每個項目都加框。
tab(x) 將 tab 字元設定為 x。
linesize n 將線寬設定為 n 點。
delim xy 將 xy 當做方程式的分隔符號。
--------------------------------------------------
格式
格式行會影響個別的行欄排列狀態。每行都有一個關鍵字元代表表格中的一欄。每欄的項目要以空白隔開,而整個格式要以 "." 結尾。每一行格式對應到表格中的一行。只有最後 一行是對應到下一個 .T&(若有的話)之前的所有行。
關鍵字元
c 置中。
l 靠左對齊。
r 靠右對齊。
n 將數字項目對齊。
a 將字母子欄對齊。
s 將前一欄和這一欄做水平合併。
^ 將前一行和這一行的同一欄合併。
關鍵字格式
下列符號必須加在關鍵字元之後:
b 粗體。
i 斜體。
fx x 字型。
pn 點大小。
vn 垂直行距,單位為點。僅可用於文字區塊。
t 將垂直合併的欄位從上面開始排列。
e 等寬度欄位。
w(n) 最小欄寬。也可用於文字區塊。n 可以是任何 troff 所接受的單位。
n 欄間隔,以 en 為單位。預設為 3。
| 將欄以單垂直線分開。用於關鍵字元之間。
|| 將欄以雙垂直線分開。用於關鍵字元 之間。
- 將行以單水平線分開。代替關鍵字元。
= 將行以雙水平線分開。代替關鍵字元。
資料格式
資料的部份包括了檔頭和表格內文兩部份。每個表格 ? 的項目都要用 tab 來隔開。
.xx 可用 Troff 的 request,如 .sp n、.na 等等。
\ 放在一行的最後時,表示將下一行和這一行視為同一行(隱藏換行)。
\^ 將上一行的項目跨到本行來。然後置中對齊。
_ 或 = 行中只有這兩個字元時,畫一條單線 (或雙線)橫過整個表格寬。
\$_ 或 \$= 畫一條同欄寬的單線(或雙線)。
\_ 畫一條同欄內容寬度的單線。
\Rx 將 x 印成和欄內容的寬度一樣。
...[tab]T{ 將文字區塊當做表格的項目。必須放在一行的最後面。若輸入的資料超出一行的長度,或是輸出時會超過一行的長 度時,就必須使用這種格式。
...T}[tab] 文字區塊結尾,必須放在一行的開 頭。
Tbl 範例
輸入:
<<<<<< code >>>>>>
輸出:
<<<<<< table >>>>>>>>>>>
Eqn
Eqn 是用來列印數學方程式的前置處理器。若要使用 nroff,則必須用 neqn。Eqn 的指令列格式如下:
/usr/ucb/eqn [options] [files]
options:
-dxy 用 x 和 y 當做開始和結尾的分隔字元 ; 和使用 delimxy 一樣。
-fn 將字型設定為 n; 和使用 gfont 一樣。
-pn 將上標與下標字縮小 n 點。若不指定 -p,則預設縮小 3 點。
-sn 將點大小縮小 n 點,和 gsize 一樣。
-Tdev 將輸出針對 dev 裝置格式化。預設值由 TYPESETTER 環境變數指定。neqn 無此選項。
------------------------------------
Eqn 巨集
.EQ 方程式開始。
.EN 方程式結尾。
用 checkeq 指令來檢查是否有不成對的巨集。
數學符號
下列的符號名稱會以右欄的符號輸出。
符號 輸出 符號 輸出
<<<<<<<< table code >>>>>>>>>
數學文字
數字,大小括號,標點符號和下列的文字會以 Roman 字型印出:
<<<<<<< code >>>>>>>>>
希臘字母
希臘字母可以大寫或小寫印出。要印出希臘字母,只要打入其名稱即可。有些大寫的希臘字母可以直接用英文大寫來代替,所以不在此支援(如 大寫的 alpha 為 A、大寫的 beta 為 B)。
符號 輸出 符號 輸出
<<<<<<< code >>>>>>>>>
特殊上下標號
Eqn 會將下列的特殊標號自動放置在字母上方正確的位置。bar 和 under 會依照所需來延伸。
符號 輸出
<<<<<<< code >>>>>>>>>
---------------------------------------------------
Eqn 所使用的關鍵字元
除了以上的一些符號,eqn 還可以使用下列的關鍵字元:
above 將矩陣的列分開。
back n 向左移動 n 公釐。
bold 改成粗體。
ccol 將矩陣的列置中對齊。
cpile 將列向量中的元素置中對齊。
define 將常用的字串取別名。
delim xy 定義方程式左右的分隔字元為 x 和 y。用 delim off 來關掉分隔字元。
down n 向下移動 n 公釐。
fat 將目前的字體加寬加粗。
font x 將字型換成 x,x 可為單字元字型名稱或是字型編號。
from 定義下界。
fwd n 向右 n 公釐。
gfont x 設定所有方程式所用的字型。
gsize n 設定所有方程式所用的大小。
italic 改為斜體。
lcol 將矩陣的列元素向左對齊。
left 印出大型括號的左邊。
lineup 將不同行中的方程式標記對齊。
lpile 將列向量中的元素靠左對齊。
mark 將方程式中的某個位置予以標記,和 lineup 合 用。
matrix 建立矩陣。
ndefine 建立一個只有在 neqn 下有效的定義。
over 分數。
pile 建立列向量,每個元素都置中對齊。
rcol 將矩陣的列靠右對齊。
right 印出大型括號的右邊。
roman 改成 Roman 字型。
rpile 將列向量的元素靠右對齊。
size n 將字型大小改為 n。
sqrt 畫根號。
sub 下標開始。
sup 上標開始。
tdefine 建立僅用於 eqn 的定義。
to 定義上界。
up n 向上移動 n 公釐。
~ 輸出時強迫輸出空白。
^ 輸出時強破輸出空白,但大小為 ~ 者的一半。
{} 強迫 eqn 將某元素當成單位。
'...' 引號內的文字 eqn 將不予以處理。
優先順序
若不使用括號,則 eqn 將照下表的優先順序進行處理,由左向右由上向 下:
<<<<<<<< table code >>>>>>>>>>>>>>>
下列向左結合
over sqrt left right
其他向右結合
Eqn 範例:
輸入:
<<<<<<< code >>>>>>>>>
輸出:
<<<<<<<<< 方程 式 >>>>>>>>>>>>>>
輸入:
<<<<<<< code >>>>>>>>>
輸出:
<<<<<<<<<<<<<< 方程 式 >>>>>>>>>>>>>>>>
Pic
Pic 可以用來畫簡單的流程圖和簡單圖形。Pic 可用很多種不同的方法畫同一個圖形,因為有許多 種不同的寫法,還加上了英文的敘述。所以畫一條線,不只可以指定起點,長度和角度,也可以簡單地說 "from there to there"。
Pic 的指令行形式如下:
/usr/ucb/pic [files]
Pic 的敘述行可以換行結束,或是以 ";" 結尾。若要跨行,則在第一行最後要加上 "\" 符號。一行的開頭若是 "#' 符號,則為註解。
Pic 巨集
.PS [h[w]] Pic 敘述開始。若有 h 和 w,則表示該圖形的高和寬 ; 最後的圖形會依照這個範圍來放大縮小。
.PS < file 將 file 的內容讀到目前行內。
.PE pic 敘述結尾。
.PF 結束 pic 敘述,並回到前一個 PS 之前的垂直位置。
.xx Troff request(或巨集)。
----------------------------------------
宣告
pic 敘述開始之前,可以宣告新的單位,或是宣告一些變數。Pic 會假設所使用的單位為 1:1,單位為吋。不過也可以用下列指令指定新的單位大 小為 1/n 吋:
scale = n
pic 所定義的變數所代表的意義即為數字,比如下列指 令:
line right n
可以在檔案的一開頭定義
a = n
然後寫成:
line right a
----------------------------------------
基本繪圖動作
pic 可使用一些基本的幾何繪圖指令。下列為所使用的指 令:
<<<<<<
沒有留言:
張貼留言