這是我的IBM 3161 ASCII終端字體的非常基本的存儲庫。
該存儲庫包含該字體的位圖版本以及通過GNU Unifont的“跟踪”程序創建的(稍微完整的)TRUETYPE版本,該程序用於創建其TrueType版本。 TrueType涵蓋了0x00至0xff(基本的ASCII集和第一個“擴展”庫),而我已經擴展了字體以通過位圖版本覆蓋約0x17F。除了這些閾值之外,字體或多或少從unifont上落在字形上,該字體幾乎與適用的IBM字體字形相匹配。這也意味著我可以將字體用於其他語言,例如日語,如果您來自世界上不使用拉丁字母的區域,或者在終端窗口中使用其他語言的用戶的文件時,它在終端中很方便。
由於在此過程的早期做出一些有缺陷的決策,我已經付出了很多努力來創建我已經付出了很多努力。雖然我計劃做得更好,但事實仍然是,將位圖字形固定/轉換為trueType是很多努力 - 對於我很少使用的東西來說太多了。無論如何,所有的必需品仍在TTF中,我希望我可能會慢慢地改善前進的型號。
我還包括了Fontforge樣條字體數據庫(SFD)文件,這些文件是未壓縮的文本(因此很大;對不起)。因此,如果您只想使用該字體,我建議在“發行”頁面上下載ZIP,而不是克隆回購。
我將GNU Unift用作基礎,因為它看起來有些相似,並且在基本ASCII上方的許多Unicode設置了我的IBM終端支持。此外,其來源還包含一些有用的工具,用於自動在字體上執行轉換。
自從我第一次創建此字體以來,我一直在發現越來越多的格式可以轉換為!每當我找到一種端口的格式時,我都會這樣做,然後在此處添加提交。最近,添加了Amiga版本(在Amiga 500上的Workbench 1.3中製作),以及Minecraft,Rockbox和X11 Emacs特定的字體(以解決奇怪的渲染問題)。
該字體也可在Minecraft 1.11和UP兼容的資源包中使用。通過小調整,它也應該適用於早期和將來的版本。 Minecraft方便地,使用GNU UNIFONT作為Unicode文本,這也是我字體的基礎 - 這使您可以通過修改UNIFONT源分佈中包含的一些工具來添加簡單,以導出字體。
這取決於您的平台,但我將嘗試在哪裡有效。對於某些外來格式(例如Minecraft,Rockbox),方向在端口各自的子目錄中。
在Unix/Linux和Windows平台上,位圖版本受益於沒有像TrueType字體那樣嘗試對其進行任何軟件子像素渲染。在OS X中也可能是正確的,但是我僅由於實際上沒有定期訪問OS X的定期訪問而僅測試了OS X中字體的.dfont版本。
在Windows上,您需要Windows Bitmap .fon文件和/或TrueType字體(.ttf)。可以將它們手動複製到C:WindowsFonts ,也可以從字體預覽器中安裝。
在帶有X11的(非OS X/NextStep)Unix和Linux發行版中,您需要Opentype bitmap(.otB)和/或TrueType字體(.TTF)。
還有一個PCF字體(老式X11字體),對於xterm和GUI版本的emacs等程序,安裝可能是一個好主意。
安裝所有三個版本(TTF,OTB和PCF)允許您將字體與UNIX系統上的任何程序一起使用。可以使用大多數“字體選擇” GUI程序選擇TTF和OTB,而PCF對於xterm等傳統X11程序很有用,通常通過~/.Xresources或~/.emacs進行設置。
我認為,在X11的BSD上,這將與Linux發行版相同,因為它們共享X服務器和freetype的代碼庫。
在我親自嘗試過的OpenBSD和FreeBSD中,它肯定是相同的。
安裝X11 PCF字體的說明在x11/readme.md文件中。
將.TTF文件複製到本地字體路徑(例如~/.fonts或系統範圍的字體路徑(例如/usr/share/fonts/)。這些路徑可能是發行詞和OS依賴性的。
這只能肯定適用於Debian和衍生物。我尚未嘗試過的發行版可能有所不同,但我也敢打賭它在那裡也有效。將linux-console/IBM3161.psf複製到/usr/share/consolefonts/IBM3161.psf 。然後,編輯/etc/default/console-setup ,然後添加/更改FONT=行以讀取:
FONT="IBM3161.psf"
你完成了。您可能需要重新啟動才能在任何地方顯示。
setfont命令行計劃還應該能夠一次性地將其應用於特定的TTY。
待辦事項:編寫FreeBSD控制台安裝。我目前還沒有在每個終端中更改它,只是您觀看啟動過程的主要終端。我希望我不必重新編譯內核即可到達到處。
我向您保證,不過,它確實在FreeBSD中起作用。
在Apple Systems(OS X)上,您需要使用'.dfont'文件。如果失敗,請嘗試.ttf或.pt3(PS類型3)。 IIRC,安裝過程相對直觀。
我還不知道如何將其安裝在“ Classic” Mac OS上。如果有人擁有7或更低的軟盤系統,我可以用來啟動Mac Plus,請讓我知道它(或者您可以給我發送更好的經典Mac!)
在minecraft/ Directory下,安裝Minecraft版本的指令。
Rockbox是許多MP3播放器的替代固件。它已經在我的iPod Classic上進行了測試。說明當然是在rockbox/ Directory中。
在我獲得新的CompactFlash卡之前,我無法再支持此端口,因為iPod中的那張卡片剛剛失敗,硬盤驅動器多年前失敗了。隨意向我射擊一個問題,但我可能無法回答。
有兩種主要方法可以解決這一問題。首先是僅使用truetype字體。如果我沒記錯的話,那將使一切都正確。
常規OTB版本將所有字符填充到16px,而不論其實際寬度如何。因此,不建議這樣做。
但是,OTB文件8wide/IBM3161APL.otb應該起作用。這是(如果我沒記錯的話)命名為此類,因為它是從unifont的APL變體中得出的。我發現Unifont的APL變體似乎確實在Emacs中呈現正確,因此我為自己的字體製作了類似的變體。
我不確定這是否是因為它是APL變體,或者因為Emacs試圖優先考慮pcf樣式字體,而不是otb 。或者也許還有其他freetype相關的東西。 But whatever the case may be, if you install IBM3161APL.otb somewhere (I have it in ~/.fonts/ ), you should be able to make it work in GNU emacs with mx customize , or else manually add it to custom-set-faces in your emacs initialization file (usually ~/.emacs or ~/.emacs.d/init.el ).
一個例子(來自我的custom-set-faces ELISP)如下。
最重要的關注線是包含字符串IBM3161APL的線條。其餘的只是為上下文提供。在查看代碼樣本時,尤其是在不熟悉的語言中,幾乎沒有什麼比不充分的上下文不喜歡的。
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:family "IBM3161APL" :foundry "PfEd" :slant normal :weight normal :height 128 :width normal))))
'(term-color-blue ((t (:background "#2272D9" :foreground "#2272D9"))))
'(term-color-cyan ((t (:background "#06989A" :foreground "#06989A"))))
'(term-color-green ((t (:background "#4E9A06" :foreground "#4E9A06"))))
'(term-color-magenta ((t (:background "#A168AB" :foreground "#A168AB"))))
'(term-color-red ((t (:background "#CC0000" :foreground "#CC0000"))))
'(term-color-white ((t (:background "#D3D7CF" :foreground "#D3D7CF"))))
'(term-color-yellow ((t (:background "#C4A000" :foreground "#C4A000"))))
'(tooltip ((t (:inherit tooltip-ui :background "lightyellow" :foreground "black")))))
如果有人知道為什麼此IBM3161APL變體實際上在常規OTB不行時可以工作,請告訴我。我真的很想知道!
我通過內置的“測試”模式手工手動從我的IBM 3161中屏幕字體,在該模式下,它在單個屏幕上打印了整個ASCII字符。結果,我不能保證它在角色之間的間距方面是100%準確的,但是我可以說我個人尚未註意到任何錯誤。我已經在終端模擬器中使用了它五個月。
您可以在此處找到我使用的一些圖像(儘管我有其他與其他琥珀色CRT一起使用的圖像;我仍然需要挖掘這些文件)。
因此,我在使用猜測工作和(在一定程度上)追踪CAD中的字母並轉換屏幕照片以校正CRT的曲率時,我會像一個人一樣自信。我敢肯定,垂直像素是準確的,因為我可以在照片中闡明對電子束的單獨掃描。我相對肯定的是,基於常識,水平像素是準確的,這一事實是,如果在像素上移動,大多數字符看起來非常不正確,並且我使用的是使用CAD示踪的一些三角學。字符0x7F是一個棋盤格模式,這使我很容易找到顯示顯示屏中心附近CRT上每個“像素”的縱橫比。
如果我有一個ROM笨拙的人,我也可以將ROM倒入終端,因為它們都被插入了。這可能會在將來發生,但是我一直在終端模擬器中以及去年的其他地方使用該字體,但尚未發現任何問題。
如果您想自己破解,我建議如果您想能夠生成truetype版本,我建議使用.hex文件作為起點。將其與統一的十六進制源合併。
我的字體當前沒有提供真正的3161( 0x7F字符)中的大多數非ASCII“擴展”字符。即使是那些具有Unicode等效物的角色也沒有與終端相同的“數字”相關聯,而且由於我從未使用它們,所以我不夠聰明/才華橫溢/痴迷,無法將其繪製出來。此外,有些字符根本沒有我知道的Unicode等效物。
我還想嘗試將其中的3161部分(不是整個UNIFONT)變成適當的TTF字體,這意味著看起來不被像素化但是使用字體中各個角度的向量製成的。如果您想要一個以類似(但不是完全相同的字體)進行此操作的示例,請參見Rbanffy/3270font。
如果有人想添加它們,我將在其“測試”模式下將您指向終端屏幕的照片,其中包含終端能夠顯示的所有字符的完整打印輸出。隨時給我發送拉請請求!
這些字體文件均根據GNU通用公共許可證(如果適用)(如果適用),或者(根據您的選項)為以後的版本,則嵌入文檔中字體本身並不構成違反許可證的例外。許可證的完整條款均在GNU Unifont的許可證中。該許可之所以繼承,是因為我將幾乎所有非ASCII字符的字體都基於GNU UNIFONT。
If you wish to use only the glyphs that I created (0x00-0x7F in the truetype, or 0x00-0xFF plus unicode superscript and subscript numerical digits in the bitmap), those glyphs are licensed (at your option) under the GNU GPL version 2 or later (with the aforementioned exception regarding embedding), the SIL Open Font License, version 1.1, or the 3-Clause BSD許可證,以下複製。此外,如果您想根據不兼容的條款在另一個項目或產品中使用它,我保證我會容納/不要對此進行混蛋。它甚至可能是免費的。
版權所有©2017-2023 Wyatt Ward
如果滿足以下條件:
源代碼的再分配必須保留上述版權通知,此條件列表和以下免責聲明。
二進制形式的重新分配必須複製上述版權通知,此條件列表以及文檔和/或分發提供的其他材料中的以下免責聲明。
未經具體的事先書面許可,版權持有人的名稱和貢獻者的名稱都不能用於認可或推廣從該軟件中獲得的產品。
該軟件由版權所有者和貢獻者“按原樣”提供,任何明示或暗示的保證,包括但不限於對適銷性和特定目的適合性的隱含保證。在任何情況下,版權持有人或貢獻者均不得對任何直接,間接,偶然,特殊,特殊,示例性或結果損害均承擔任何責任(包括但不限於替代商品或服務的採購,損失,數據或利潤損失,數據或利潤;還是造成的,無論是在合同中造成的,或者在任何責任中造成的責任,或者是否有任何責任,或者在任何責任中,是否有任何責任,或者是否有任何責任,或者是否有責任,是否有責任,是否有責任。告知可能造成這種損害的可能性。
- (回到頂部) -