Oberon/ETH Oberon/字型
該文件最初託管在ETHZ。 它仍然在ETH 許可下,並且位於WayBack 檔案中。
一種型別字型(或簡稱為字型)是螢幕或印表機字元的集合,它們共享一個共同的字型。 Oberon 附帶了由 H. Meier 先生設計的自定義字體系列“Oberon”,他建立了“Syntax”字型,這是 Oberon for Windows 的標準字型。 這兩個系列都包含多個不同大小(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 點,普通樣式。 唯一提供的非等寬字型
螢幕字型和印表機字型分別儲存在副檔名為 .Scn.Fnt 和 .Prx.Fnt 的檔案中(x 指的是 x00dpi 印表機字型)。 要載入字型,必須指定完整字型名稱(如 Syntax12b.Scn.Fnt)。
當原生 Oberon 啟動並且 Oberon.Text 處於其原始狀態時,GUI(或 TUI)文字將具有由多個全域性變數定義的屬性,這些變數被分配了預設值。
Fonts.Default := Fonts.This("Oberon10.Scn.Fnt");
Oberon.CurFnt := Fonts.Default;
Oberon.CurCol := Display.FG; (* = 15 - black *)
Oberon.CurOff := 0;
Fonts.Default 是出現在 NamePlates、Buttons、GUI 標題中的文字的字型,並且將在指定無效字型名稱時用作預設字型; 即,不是有效字型檔案的名稱。
Oberon.CurFnt 決定在新的檢視器中輸入文字時使用的字型。
Oberon.CurColor 決定在新的檢視器中輸入文字時使用的顏色。
Oberon.CurOff 決定在新的檢視器中輸入文字時使用的垂直偏移量。
在 Oberon for Windows 中,預設字型是 Syntax10.Scn.Fnt。
- System.SetFont (fontName | ^): fontName 必須是有效的字型檔名。 字型檔案將被開啟,並且字型將被載入到快取中。 如果不是有效的字型,則為空。
- PROCEDURE SetFont (Fonts.This(fontName: ARRAY OF CHAR)); 在 Oberon.Mod 中。 如果fontName 不是有效的字型檔名,則使用預設字型。
- System.ShowLibraries
- 列出當前位於快取中的庫; 即,字型庫和其他庫(*.Lib)。 最近載入的庫顯示在頂部。
- System.FreeLibraries ({ libraryname} | ^) ~
- 釋放指定的庫。
PROCEDURE This(fontName: ARRAY OF CHAR): Font; 在 Fonts.Mod 中
- 開啟字型檔案並將字型載入到快取中。 如果fontName 不是有效的字型檔名,則返回 NIL。
字型也可以在ASCIITab.Tool 的上下文中載入到快取中。
- System.SetColor (color | ^) - 0 <= color <= 15
- PROCEDURE SetColor (color: SHORTINT); 在 Oberon.Mod 中
- System.SetOffset (voff | ^) - voff 為正整數或負整數
- PROCEDURE SetOffset (voff: SHORTINT); 在 Oberon.Mod 中
與其設計和製作新字型,不如利用OType.Text 中描述的當前 Oberon OpenType 實現。 雖然它只支援 OpenType 的 TrueType 部分,但它已經涵蓋了大多數現有的 OpenType 字型。 有兩種使用 OpenType 的方法。
- 使用命令OTFonts.Make 將 TTF 轉換為 Oberon 光柵字型檔案。 例如
OTFonts.Make Arial.TTF Arial 8 10 12 14 16 20 24 Scn Pr3 Pr6~ - 在需要時動態生成 Oberon 光柵字型檔案。
因此生成的字型將對映 TTF 中表示的字元集到 Oberon 字元集。
在另一種方法中,可以設計一個程式將字型對映到 Oberon,我們建議重新命名新字型以避免衝突。 有關字型檔案格式,請參閱Fonts.Mod 中的Internalize 過程。
Gfx:提供了一種外掛機制,用於新增除原生 Oberon 點陣圖和輪廓字型之外的其他字型格式。 目前,支援兩種擴充套件:TrueType 字型和 Metafont pk 點陣圖(用於 Kaspar Fischer 的 DVI 檔案檢視器)。 TrueType 支援需要已經安裝了 OType 包。 更多內容請參閱Gfx.Tool。
抽象資料型別 Font 在模組 Fonts 中有以下定義
TYPE
FontDesc = RECORD ( Objects.LibDesc )
type: SHORTINT; (* Substitute, font, or metric. *)
height, minX, maxX, minY, maxY: INTEGER
(* Font height, extremal values of characters in font. *)
END;
Font 是 Library 的擴充套件。 字型的每個字元都是一個(虛擬)物件,由字型庫中的 ASCII 碼索引。 抽象資料型別 Char 有以下定義
TYPE
CharDesc* = RECORD (Objects.ObjDesc)
dx*, x*, y*, w*, h*: INTEGER;
(** Character width, pattern offset (x, y), pattern size (w, h). *)
pat*: Display.Pattern (** Character raster data. *)
END;
2002 年 7 月 13 日 - 版權所有 © 2002 ETH Zürich。 保留所有權利。
電子郵件:oberon at lists.inf.ethz.ch
主頁:http://www.ethoberon.ethz.ch/