组合任意 Unicode 符号,或具有负宽度的 Unicode 字符
Combining arbitrary Unicode symbols, or Unicode characters with negative width
在早期的 ZX Spectrum 时代,有一种方法可以将一个字形打印在另一个字形之上,在 OVER 1
指令的帮助下创建一个复合字形。
我想知道是否有一种 Unicode 方式可以在现代计算机上做同样的事情?我能否将两个完全任意的可打印字形(例如 7
和 ~
)相互叠加,就好像它们是 OR'ed 或 XOR'ed 以产生此结果一样?
或者,是否有任何 "negative width" Unicode 符号?
无法在 Unicode 中对两个任意字符的叠加进行编码。
在一些甚至早于 8 位计算机的编码中,您可以通过传输退格键来覆盖任意字符,因此 è 将是 e backspace
`。这不适用于早期的计算机屏幕,但适用于机械行式打印机!
Unicode中有组合字符,包括7̴和7̃。只是不是那个特别的。
最接近支持将任意字符组合成单个字素的是零宽度连接器 (zwidge),例如用于制作 (woman) + ZWJ
+ ⚕ (caduceus) = ⚕️ (女卫生员)。在表情符号和许多脚本中,例如梵文和阿拉伯语,这意味着除了叠加符号之外的其他东西。
OpenType 字体支持连字,因此给定的字体可能将 7~ 或 7 ZWJ
~ 定义为该符号。 Palatino Linotype 是一种支持这种方式的interrobang (‽)
不过,通常情况下,您需要通过其他方式将其传达给您的应用程序,例如嵌入自定义字体或将字形作为内联矢量图形传输。
在早期的 ZX Spectrum 时代,有一种方法可以将一个字形打印在另一个字形之上,在 OVER 1
指令的帮助下创建一个复合字形。
我想知道是否有一种 Unicode 方式可以在现代计算机上做同样的事情?我能否将两个完全任意的可打印字形(例如 7
和 ~
)相互叠加,就好像它们是 OR'ed 或 XOR'ed 以产生此结果一样?
或者,是否有任何 "negative width" Unicode 符号?
无法在 Unicode 中对两个任意字符的叠加进行编码。
在一些甚至早于 8 位计算机的编码中,您可以通过传输退格键来覆盖任意字符,因此 è 将是 e backspace
`。这不适用于早期的计算机屏幕,但适用于机械行式打印机!
Unicode中有组合字符,包括7̴和7̃。只是不是那个特别的。
最接近支持将任意字符组合成单个字素的是零宽度连接器 (zwidge),例如用于制作 (woman) + ZWJ
+ ⚕ (caduceus) = ⚕️ (女卫生员)。在表情符号和许多脚本中,例如梵文和阿拉伯语,这意味着除了叠加符号之外的其他东西。
OpenType 字体支持连字,因此给定的字体可能将 7~ 或 7 ZWJ
~ 定义为该符号。 Palatino Linotype 是一种支持这种方式的interrobang (‽)
不过,通常情况下,您需要通过其他方式将其传达给您的应用程序,例如嵌入自定义字体或将字形作为内联矢量图形传输。