如果您可以像使用CSS

时间:2018-07-22 21:19:22

标签: unix unicode fonts terminal command-line-interface

我已经看到了两个问题:

两者的答案都是肯定的。

我想知道是否可以让CLI从自定义字体中将数学符号打印到终端中仅用于个人使用,而与此同时我永远不必更改字体在我的终端上(我可以继续将默认字体用于其他所有内容)。也就是说,假设我将终端的默认字体设置为x。 CLI程序将已下载并具有字体y的本地副本。然后,CLI将终端的字体类型设置为字体y,以字体y绘制一些内容,然后在关闭之前将其设置回字体x。这样,终端仍然具有其原始字体,但也能够显示另一种字体的符号(如数学符号)。想知道这是否有可能。

我正在想像您在CSS中拥有字体家族的方式。在CSS中,您可以向最终用户的浏览器提供下载的字体,以使用与他们在浏览器中默认的字体不同的字体显示文本。想知道您是否可以使用终端执行相同的操作。具体来说,我在Mac上使用iTerm2,但是了解是否可能在那里或在任何其他终端上很有用。

2 个答案:

答案 0 :(得分:2)

在X应用程序中,字体替换已达到您的描述。默认情况下,当字体没有特定字形时,将从另一种字体替换它。详细信息可在/etc/fonts/fonts.conf中自定义,为此,有几种GUI配置工具。

截屏:Konsole 18.04,已为应用程序配置的字体为DejaVu Sans Mono,尺寸为16,啤酒杯字形由Symbola取代

答案 1 :(得分:1)

不是。原则上,您可以使用ANSI逸出代码ESC [ 11m切换字体,其中11可以是介于10到20之间(包括10和20)的“字体”,默认值为10。您将必须先加载适当的字体(setfont?)。

实际上,没有任何终端仿真器真正支持此功能(我听说pangoterm支持)。

通常的解决方法是创建修补后的Unicode字体,该字体在私人使用区域中对其他符号进行编码,然后将终端仿真器配置为使用该字体。但是,您的程序将不得不输出正确的代码点,您不能在本地切换ASCII字体。字体修补例如由Powerline vim扩展程序建议。