这是我的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
如果满足以下条件:
源代码的再分配必须保留上述版权通知,此条件列表和以下免责声明。
二进制形式的重新分配必须复制上述版权通知,此条件列表以及文档和/或分发提供的其他材料中的以下免责声明。
未经具体的事先书面许可,版权持有人的名称和贡献者的名称都不能用于认可或推广从该软件中获得的产品。
该软件由版权所有者和贡献者“按原样”提供,任何明示或暗示的保证,包括但不限于对适销性和特定目的适合性的隐含保证。在任何情况下,版权持有人或贡献者均不得对任何直接,间接,偶然,特殊,特殊,示例性或结果损害均承担任何责任(包括但不限于替代商品或服务的采购,损失,数据或利润损失,数据或利润;还是造成的,无论是在合同中造成的,或者在任何责任中造成的责任,或者是否有任何责任,或者在任何责任中,是否有任何责任,或者是否有任何责任,或者是否有责任,是否有责任,是否有责任。告知可能造成这种损害的可能性。
- (回到顶部) -