当前位置: 首页 > news >正文

小聊一下 带圈的数字,以及罕用字的显示、字体文件的分割

以前我在博客《文本文件中一些特殊的字符用法》中提到过,unicode中有一类字符用于在前一字符的右上角的显示字母或数字,如 也有一类在前一字符的右下角显示字母或数字。¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁰ ⁺ ⁻ ⁽ ⁾ ⁿ ⁼ ₐ ₑ ₒ ₕ ₖ ₗ ₘ ₙ ₚ ₛ ₜ ₓ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₀ ₊ ₋ ₍ ₎ ₌

今天聊一下带圈的字符,特别是外带小圆圈的数字字符,它经常用于文章中表示某个小节或小点。实际上,在标准中⓪①②一直到㊿都有特定的带圈字符可用。在Unicode标准中 0x2460 to 0x2473分别对应着①到⑳,0x3251 to 0x325F 对应了带圈的㉑ to ㉟, 0x32B1 to 0x32BF对应了带圈的㊱ to ㊿。但更大的带圈字符就没有定义了。

0x2474 to 0x2487 对应着带括号的数字 ⑴ to ⒇,0x2488 to 0x249C 对应着带点的数字 ⒈ to ⒛ (这里1.看不太出来,实际上有个点)

对于更大的带圈字符怎么办呢?除了造字程序,还有字符组合的办法,字符组合除了用特殊的固定位置的字符之法,比如表示平方立方之类可以用前面提到的右上角数字,表示化学结构中某元素原子个数的下标用数字等,还可以利用unicode中提供的特殊组合符,比如表示字符上面加两个小点的控制符0xXXX,它提供了顶上的两个圆点,后面跟的字符显示在它的位置上从而形成组合字符。除些之外,Unicode 0x20DD定义了一个带圈字符的组合控制符,在正确的渲染下,这个字符显示一个圆圈,不过不占宽度,也就是后面的字符会显示在它的位置上,从而形成一个带圈字符的效果。但目前很多软件对这种字体的渲染未能普及,因此其显示效果不如人意。(有的软件直接把0x20DD这个当成一个圆圈而占用一个字符宽度,就无法得到带圈字符的效果,与一个⭕差不多),Word能够把这个字符当零宽度处理,但是与后面的字符拼合时效果不佳(位置不准确,大小不合适等)。因此没有多少实用价值。

因为Unicode标准是面向全世界各种文字显示而设计的,其中还包括了很多其它特殊的位置控制符,但中文中用到的没有那么多。

带圈字符的输入方法
为了输入这些带圈字符,有多种方法,1) 最简单的直接从某处复制。比如以下的字串

⓪①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿

⓿❶❷❸❹❺❻❼❽❾❿⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴

⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛

⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇

ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ

㊤ ㊥ ㊦ ㊧ ㊨ ㊚ ㊛

2)有的输入法中提供了这些特殊字符的输入,比如在黄狗五笔输入法中,用zzys就可以调出带圈数字的输出。这个在不同的输入法定义的代码或输入方式不同,也有的可能用特殊键盘等方法来输入。

3)在Word中可以用插入特殊字符的办法,找到合适的字体(不同的字体提供的符号数量不一样,风格也有所变化,要根据自己安装的字体选择),然后在“子集”的下拉框中找到“带括号的CJK字母和月份” 或者“带括号的字母数字”,就比较快的可以找到这类数字了。当然你整个滚动查看一遍也可以找到。

Word中插入特殊字符

在不同的软件中,输入不同的特殊符号有它自己的方法,不能一一演示。

4)在WORD还有一种方法,但不太常用。比如我要输入带圈的46,我要知道它的Unicode码值的话,在Word中输入这个十六进制的数字,然后按Alt+X快捷键将它转化成对应这个码值的字符。如我输入32BB,再按Alt+X,就可以得到㊻了。

几种特全的汉字字体
类似的,输入30EDD再按Alt+X,就得到了biangbiang面的𰻝字了。不过这个字不是所有的汉字标准中都有,属于比较晚的unicode标准中才收录,因此如果你的电脑上显示是方框时,需要切换到支持Unicode 第3平面字符的字体才能显示,比如 文津宋体 第3平面,遍黑体P2,Jigmo3等,如果你电脑上没有,可以选择安装 文津宋体或遍黑体或Jigmo字体之一(这几个都是免费的大字体),然后选择与上面相应名称的子字体来显示。(微软雅黑或阿里巴巴普惠体都没有收入这个biang字)

目前文津宋体已经收集了unicode最新的17.0版的所有汉字,字型也很漂亮,我比较喜欢用。我电脑上的黄狗五笔法unicode版就是用它来作为字型显示的。

字体文件为什么要分割成几个?
由于Windows上一个字体文件只能最多存储65536个字符,因此超过这个数量的字符需要分成几个文件来存储,也需要在字体名称上有所区别,因此出现了上面这种“同一字体下还有不同的子字体名称”的做法,如文津宋体就有第0平面,第2平面,第3平面这三个,其中 第3平面才包含了这个biang字的字形。

http://www.jsqmd.com/news/35768/

相关文章:

  • CSP挂分记
  • 实用指南:Agent 的感知-决策-行动循环实现
  • Ubuntu 22.04 的镜像源列表
  • 关于梅特勒-托利多 称重传感器检查
  • Window 11 安装wsl
  • 深入解析:达梦数据库TDE透明加密解决方案:构建高安全数据存储体系
  • 现代Web API应用与优化建议
  • Linux 云计算核心技术:原理、组件与 K8s 实战部署 - 详解
  • 局域网---传输文件资料信息
  • ICPC2023南京个人题解
  • 从C++到wasm,并在JavaScript中调用
  • 图书馆管理系统初步设计
  • Delphi 修改单元名称后,编译报错找不到修改前的单元
  • 详细介绍:计算某字符出现次数
  • 3dgs Scene详解 - 详解
  • 教学视频(1)
  • 实用指南:C++STL---静态数组array
  • 英语_阅读_Why we dislike change_待读
  • 游戏编程模式-享元模式(Flyweight) - 指南
  • 深入解析:css、dom 性能优化方向
  • 002 vue3-admin项目的目录及文件说明之package.json文件
  • 2025年比较好的双缓冲三节轨用户口碑最好的厂家榜
  • 2025年知名的中空板厂家推荐及选购指南
  • [ docker del imags containers ]
  • 2025年评价高的冷库提升机TOP品牌厂家排行榜
  • 英语_阅读_Comic books_待读
  • Flask的核心知识点如下
  • 测试背诵八股文
  • 2025年质量好的发热管缩管机厂家选购指南与推荐
  • 2025年热门的防尘式工业型测力称重变送器厂家最新推荐权威榜