跳轉到內容

Oberon/ETH Oberon/Tutorial/FontEditor

來自華夏公益教科書

這些教程頁面由 André Fischer (afi) 編寫,由 Hannes Marais 提供編輯協助,託管在 ETHZ,並根據 ETH 許可證 保留。相關內容可在系統中透過 Book.Tool 找到。擴充套件內容也可以在 紙質版 中找到。一些教程頁面位於 WayBack 存檔 中。

字型編輯器使用者指南

學習如何使用專用編輯器和配套面板 FontEditor 建立和修改字型。這個簡單實用的工具非常適合繪製自定義字型。字型編輯器是一個 Oberon 系統擴充套件,使用了 Rembrandt 工具提供的功能。

預計時間:30 分鐘。

FontEditor 與 Oberon for Windows 一起提供,作為 存檔應用程式,必須先安裝。使用 System.Directory Win.FontTools* ~ 驗證。

使用 FontEditor 面板

[編輯 | 編輯原始碼]

一種 type-font(簡稱 font)是螢幕或印表機字元的集合,它們共享一個共同的 typeface。Oberon 附帶了兩個由 H. Meier 先生設計的自定義字體系列:“Syntax”和最近的“Oberon”。每個系列包含多個不同大小(8、10、12、14、16、20 和 24 點 - 1 點 = 1/72 英寸)和樣式(普通、斜體、粗體,以及僅“Syntax” 的中粗體)的集合。

Oberon 系統還附帶了其他字體系列

  • "Math",大小為 10、12、14、16、20 和 24 點,普通樣式
  • "Greek",大小為 10、12、14、16、20 和 24 點,普通樣式
  • "Courier",大小為 8、10 和 12 點,普通樣式。這是唯一可用的非比例字型。

請注意,除了這些字體系列外,Oberon for Windows 還可以使用已安裝的 TrueType 字型 - 請參見 UserGuide.Text

透過執行以下命令開啟 FontEditor 面板

Desktops.OpenDoc FontEditor.Panel

面板的頂部部分顯示了一個包含 256 個按鈕的表格,每個按鈕對應 256 個 8 位組合中的一個。按鈕用相應的可顯示(或可列印)字元(如果適用)或相應的十六進位制值(否則)進行標註。請注意,只有按鈕 00 到 7F 是標準化的 ASCII 程式碼。按鈕 80 到 96(特殊語言字元)的分配是 Oberon 的屬性。

在表格下方文字欄位小部件中輸入 Oberon 字型名稱之一,例如“Syntax12.Scn.Fnt”或“Oberon14.Pr3.Fnt”(用於 300 dpi 印表機字型),然後(中鍵)單擊 [載入] 按鈕。實現限制使無法使用此工具編輯 600 dpi 印表機字型。點陣圖太大;與系統一起提供的 600 dpi 字型是用另一個工具構建的。

將滑鼠焦點移到表格中的一個按鈕上,然後按中鍵選擇相應的字元,該字元隨後將以原始大小顯示在面板右下角的白色區域中。拖動該鍵,並觀察各個字元如何在白色區域中預覽。當滑鼠焦點定位在要編輯的字元上時鬆開鍵。將開啟一個圖片檢視器來 編輯 該字元。

面板下部的按鈕具有以下含義

[載入] 載入文字欄位中指定的字型。此字型將替換當前字型(如果已載入),現在可以對其進行檢查和修改。

[儲存] 將當前字型儲存在文字欄位中指定的檔案中。字型檔名(必須)具有以下字尾

  • - .Scn.Fnt 用於顯示(螢幕)字型
  • - .Pr2.Fnt 或 Pr3.Fnt 用於分別為 200 或 300 點每英寸的解析度的印表機字型。

[儲存字元 *] 將出現在標記的檢視器中的字元儲存在當前字型中。檢視器的 NamePlate 必須包含字元本身或其十六進位制值(對於可顯示的字元)。對於不可顯示的字元,它必須是其十六進位制值。

[顯示字串] 開啟一個未命名的圖片檢視器,顯示之前在右側文字欄位中輸入的字串。它是一個預覽,可以縮放並在一定程度上進行編輯(選擇、移動和複製),但無法儲存更改。這對於驗證對當前載入字型的修改很有用。

新檢視器:當此複選框選中時,下面描述的三種操作的任何結果都將顯示在一個新的圖片檢視器中。如果沒有選中,結果將顯示在當前檢視器中。

[水平翻轉] 圍繞中線翻轉 選擇

[垂直翻轉] 圍繞中線翻轉 選擇

[旋轉 90 度] 逆時針旋轉 選擇 90 度。

使用編輯器

[編輯 | 編輯原始碼]

使用 FontEditor 面板,您已經瞭解瞭如何透過單擊字體表格中的一個按鈕開始編輯字元。字元圖片顯示在一個圖片檢視器中,該檢視器的屬性與 Rembrandt 教程中描述的圖片檢視器非常相似。

字元以其最大尺寸顯示,在一個帶有網格的白色區域中。此區域不一定會覆蓋整個檢視器。每個方格對應於實際尺寸中的一個畫素。滑鼠焦點或游標是相交的水平和垂直線段形成的十字形。當滑鼠焦點越過圖片邊界時,它就會出現。按左鍵可以讓插入符號出現,它是一個旋轉 45 度的十字形,它捕捉到網格上並標記插入點。在鍵上拖動,跟蹤插入符號。也可以透過單擊左鍵設定插入符號。

字元度量

[編輯 | 編輯原始碼]

檔案:OberonFontEditor1.png

字元的成像模型定義了字元包含在一個由度量資料 x、y、w、h 和 dx 定義的框中,這些資料位於由兩條紅色正交線表示的座標系中。座標系的原點稱為參考點,X 軸稱為基線。(x,y)是從當前參考點到框原點的向量。w 和 h 是框的寬度和高度,dx 是到同一基線上下一個字元的參考點的距離,即藍色線的橫座標。

可以透過程式檢索字元的度量,如下所示

PROCEDURE ShowC*;
  VAR
    dx, x, y, w, h: INTEGER;
    pat: LONGINT;
    ch: CHAR;
BEGIN
  ch := "g";
  Fonts.GetChar (Fonts.This("Syntax12.Scn.Fnt"),
  ch, dx, x, y, w, h, pat);
  Out.Int(x, 3), ....
  (* Visualizing the values produces,
     for the example letter in the example font,
     x = 1, y = -3, w = 5, h = 10 and dx = 6 *)
END ShowC;

字型度量

[編輯 | 編輯原始碼]

Fonts 模組中定義的抽象資料型別 Font 代表一個字元集合。字型屬性為

Fonts.height:行間距。修改垂直偏移時,此距離也會發生變化。

Fonts.minX、Fonts.maxX、Fonts.minY、Fonts.maxY:當所有字元的基點對齊在 (0, 0) 時,這些是包含所有字元的框的極值。

可以透過程式檢索字型的度量,如下所示

PROCEDURE ShowF*;
  VAR
    F: Fonts.Font;
BEGIN
  F := Fonts.This("Syntax12.Scn.Fnt");
  Out.Int(F.height, 3); ...
  (* Visualizing the values produces, for the example font,
    F.height = 14, F.minX = 0, F.maxX = 13,
    F.minY = -4 and F.maxY = 10 *)
END ShowF;

垂直偏移

[編輯 | 編輯原始碼]

當編輯文字時,字元通常將其基線對齊。但是,字元可能會在相鄰字元的基線之上或之下偏移幾個點,以使它們顯示為上標或下標字元,例如:sin2 x + cos2 x = 1. 或 aij

這是透過使用 TextDocs.ChangeOffset 命令實現的。在這種情況下,與相鄰行的距離不再等於 Fonts.height,而是增加了。

縮放圖片

[編輯 | 編輯原始碼]

除了標準按鈕外,標題欄還包含兩個用於縮放的額外按鈕。

[+] 放大 選區,如果沒有選區則放大整個影像。該按鈕可以連續點選 5 次,以獲得 16 倍的放大倍率。這使得以點為單位編輯字元影像變得非常容易。

[-] 縮小字元影像的大小。該按鈕最多可以連續點選 5 次,直到恢復原始大小,並且不能超過 5 次。

使用滑鼠進行編輯

[編輯 | 編輯原始碼]

字元的編輯主要透過點選滑鼠中鍵來完成。但是,系統的行為取決於選擇的是“畫素”還是“度量”兩種模式。這兩個按鈕是單選按鈕。

[畫素] 當選擇畫素時,將滑鼠焦點放在網格的一個方格上。如果方格是白色的,則單擊滑鼠中鍵時會變為黑色。如果它是黑色的,則會變為白色。您不必逐點編輯圖案,而是可以使用滑鼠中鍵進行拖動,以處理軌跡上的所有點。如果您從一個黑色方格開始,它和所有後續點都將變為白色,反之亦然。更改會立即反映在面板中的小型白色區域中。

有用提示:為了便於對字元進行修飾,請先複製檢視器,然後根據需要放大兩個檢視中的任何一個。在縮放後的圖片中修飾的內容將反映在原始圖片中。

[度量] 當選擇度量時,可以移動彩色的度量線。將滑鼠游標放在要移動的線附近,按下滑鼠中鍵,並沿線的方向拖動,直到線被“捕捉”。從那時起,可以將垂直線左右移動,或將水平線上下移動,以捕捉網格的離散間隔。當線被正確定位時,釋放滑鼠鍵。

滑鼠命令通常符合 Oberon 標準。

左鍵 中鍵 右鍵
單獨 (跟蹤和)
設定游標
見上文 跟蹤選擇
+ 左 刪除選擇
+ 中 設定游標並複製
選擇到游標
複製選擇
到游標上

選擇

單擊滑鼠右鍵(檢視器中的任何位置)將選擇整個圖片。游標變為扁平的手形,整個白色區域被一個粗框包圍。再次單擊,將取消選擇圖片並恢復游標。

按下滑鼠鍵並拖動,將跟蹤由橡皮筋矩形界定的選擇。釋放滑鼠鍵後,將繪製一個粗選擇框。複製選擇時,可以在與包含選擇的檢視器不同的檢視器中設定游標。

移動圖片

可以使用兩種方法移動檢視器中的白色區域。首先,使用滑鼠右鍵選擇整個區域,然後按下滑鼠中鍵並拖動。其次,如果區域沒有完全覆蓋檢視器,將滑鼠焦點放在區域之外,按下滑鼠中鍵(游標變為扁平的手形),並拖動。在這兩種情況下,當白色區域被正確定位時,釋放滑鼠鍵。

完成編輯後,關閉圖片檢視器,並將字元儲存在當前字型中。

列印字元影像

[編輯 | 編輯原始碼]

要列印字元影像,請標記它,然後:
- 點選 Rembrandt 面板中的 [列印 *] 按鈕,或
- 執行命令:Desktops.PrintDoc printDevice * ~

使用 Windows 字型資源工具

[編輯 | 編輯原始碼]

如果您使用的是 Oberon for Windows,並且使用字型編輯器建立或修改了字型,則可以透過從 Oberon 光柵字型編譯 Windows 字型資源來提高顯示系統的效能。請注意,這適用於使用 FontEditor 工具開發或修改的自定義字型。所有與 Oberon for Windows 一起分發的字型都已作為 Windows 字型資源在 System 子目錄中提供。Oberon for Windows 使用 Windows 字型進行列印。轉換使用 FontRes 模組中的單個命令執行。

FontRes.Convert { OberonFontFile => [路徑]WindowsFontFile} ~ | ^ 處理由“=>”分隔的名稱對列表。Oberon 顯示字型檔案oberonFontFile將被轉換為 Windows FON 資源。如果檔案已存在,它將被覆蓋。FON 檔案的名稱由四個部分組成:NNNNNSSF.FON,其中

  • NNNNN 字型族名稱的前五個字母(例如,Synta 表示 Syntax,Math 表示 Math)
  • SS 字號的一或兩位數字
  • F 面格樣式的可選字元(b = 粗體,i = 斜體,m = 中等)
  • FON 標準名稱副檔名

FontRes.Tool 包含所有必要的工具,以便在需要時轉換整個 Syntax 字型族,並且可以修改此文字以轉換其他字型。

注意:用於生成資源的 Windows .FON 檔案格式在 Microsoft Windows 程式設計師參考,第 4 卷,第 4 章:字型檔案格式中有所說明。

[ B | C | F | G | M | P | R | S | V | Z ]

B

基線

C

字元度量

F

水平翻轉選擇
垂直翻轉選擇
字型編輯器面板
字型編輯器
字型度量
字型資源 (Win)
FontEditor.Panel
字型
FontRes.Convert
FontRes.Tool

G

網格

M

移動圖片

P

預覽字串
預覽
列印字元影像

R

參考點
修飾字符影像
旋轉選擇

S

選擇

V

垂直偏移

Z

縮放


1997 年 3 月 26 日修訂
1997 年 5 月 30 日安裝


華夏公益教科書