A lifelong programmer. | Java for food, Python for fun

👋 Welcome to my weblog.

  • Feel free to show your support by giving me a star 🌟 on GitHub or subscribe to it with your favorite RSS reader.
三个汉字方格,第一格里的短横线只占半格宽,第二格的一字线和第三格的浪纹线各占满一格

常被误用的连接号

连接号是一种标点符号。和只有一种形式的间隔号不同,在中国大陆它有三种形式:短横线“–”、一字线“—”和浪纹线“~”。 麻烦的地方在于,国标只规定了这三种形式的长相和宽度,一个字也没提对应的码位。今天通行的U+2013、U+2014、U+FF5E,是W3C事后替它推断出来的——推断得站得住,但毕竟不是国标白纸黑字的规定,这中间的缝隙塞满了误用。 用途 短横线 化合物的名称或表格、插图的编号,例如: 3–戊酮 表 2–8 门牌号码、电话号码,以及用阿拉伯数字表示的年月日,例如: 安宁里东路 26 号院 3–2–11 室 010–88842603 2011–02–15 在复合名词中起连接作用,例如: 吐鲁番–哈密盆地 某些产品的名称和型号,例如: WZ–10 直升机 汉语拼音、外来语内部的分合,例如: shuōshuō–xiàoxiào(说说笑笑) 盎格鲁–撒克逊人 让–雅克·卢梭(“让–雅克”为双名) 皮埃尔·孟戴斯–弗朗斯(“孟戴斯–弗朗斯”为复姓) 最后两个例子里,短横线和间隔号同时出现,分工正好相反:间隔号分开姓和名,短横线把双名或复姓连成一体。 以上说的都是排版意义上的写法。程序里的日期字段、电话号码字段是另一回事,那里2011-02-15就该是ASCII。 一字线和浪纹线 这两种一般可以互换。 标示相关项目(如时间、地域等)的起止,例如: 沈括(1031—1095),宋朝人。 2011 年 2 月 3 日—10 日 北京—上海特别旅客快车 标示数值范围(由阿拉伯数字或汉字数字构成)的起止,例如: 25~30 g 第五~八课 相关标准 《标点符号用法》(GB/T 15834–2011) 第4.13.1节“定义”说: 标号的一种,标示某些相关联成分之间的连接。 第4.13.2节“形式”说: 连接号的形式有短横线“-”、一字线“―”和浪纹线“~”三种。 (这份广为流传的电子版在这里的短横线打的是ASCII的U+002D,一字线用的是U+2015而不是U+2014——引文照录,两处后面都会说到。) 第5.1.6节说: 连接号中的短横线比汉字“一”略短,占半个字位置;一字线比汉字“一”略长,占一个字位置;浪纹线占一个字位置。连接号上下居中,不出现在一行之首。 注意这一节从头到尾说的都是“比汉字‘一’略短”“占半个字位置”这种排版意义上的长相,没有出现任何码位。这正是后面所有混乱的源头。 附录A.11“连接号用法补充规则”说: 浪纹线连接号用于标示数值范围时,在不引起歧义的情况下,前一数值附加符号或计量单位可省略。 示例:5公斤~100公斤(正) 5~100 公斤(正) 相对1995年的老版本,这一版还砍掉了一种形式。前言说: 取消了连接号中原有的二字线,将连接号形式规范为短横线“-”、一字线“―”和浪纹线“~”,并对三者的功能做了归并与划分(4.13)。 台湾“教育部”《重订标点符号手册》(修订版) 修订说明说: ...

August 23, 2026 · 3 min · Hanson Hu

医学术语之科室和医生

医学术语是用于医学专业人员有效、准确交流的特殊术语,但每个普通人可以对医学术语有一些认知和了解,至少是关于科室和医生的说法。 科室 内科,Internal Medicine 呼吸与危重症医学科,Pulmonary and Critical Care Medicine 消化内科,Gastroenterology 血液内科,Hematology 外科,Surgery 整形外科,Plastic Surgery 神经外科,Neurosurgery 心脏外科,Cardiac Surgery 肝胆外科,Hepatobiliary Surgery 泌尿外科,Urology 耳鼻喉科,E.N.T. 口腔科,Stomatology 牙科,Dentistry 眼科,Ophthalmology 儿科,Pediatrics 妇产科,Obstetrics and Gynecology 肛肠科,Proctology 骨科,Orthopedics 皮肤科,Dermatology 老年病科,Geriatrics 内分泌科,Endocrinology 风湿免疫科,Rheumatology 肿瘤科,Oncology 麻醉科,Anesthesiology 放射科,Radiology 病理科,Pathology 药房,Pharmacy 医生 全科医生,general practitioner 内科医生,physician 外科医生,surgeon 整形外科医生,plastic surgeon 神经外科医生,neurosurgeon 牙科医生,dentist 眼科医生,ophthalmologist 儿科医生,pediatrician 妇科医生,gynecologist 产科医生,obstetrician 骨科医生,orthopedist 皮肤科医生,dermatologist 麻醉师,anaesthetist 药剂师,pharmacist

August 24, 2025 · 1 min · Hanson Hu

常被误用的间隔号

间隔号“·”(Unicode U+00B7)是一种标点符号。在中国大陆“·”占半个字的位置,在台港澳地区“·”占一个字的位置(这里使用思源黑体)。 实务上,宋体把这个字渲染成全宽,微软雅黑把这个字渲染得太窄,都不像是半个字的位置。而大部分台湾字体厂商又把这个字渲染成半宽,反而把“.”(Unicode U+FF0E)渲染成全宽(这里使用微软正黑体),造成误用非常常见。 用途 少数民族人士或外国人的姓名(或本名与父名)之间的分界,例如: 爱新觉罗·玄烨 尼格买提·热合曼 艾萨克·牛顿 书名的卷名、篇名和章节名之间的分界,例如: 陈寿《三国志·蜀书·诸葛亮传》 王朔《起初·纪年》 诗词的诗体、词牌和题目之间的分界,例如: 苏轼《念奴娇·赤壁怀古》 陆游《七绝·示儿》 毛泽东《沁园春·雪》 会产生歧义时月份和日期之间的分界,例如: “一二·九”运动 “3·15”消费者权益日 在词语之间表示并列关系,例如: 鲁迅《狗·猫·鼠》 生活·读书·新知三联书店 相关标准 《标点符号用法》(GB/T 15834–2011) 第4.14节“间隔号”说: 标号的一种,标示某些相关联成分之间的分界。 第5.1.7节说: 间隔号标在需要隔开的项目之间,占半个字位置,上下居中,不出现在一行之首。 讽刺的是,由于这份文件使用方正排版系统生成,使用方正字库,所有的间隔号都被印刷成全宽。其他标点挤压也很糟糕,句中标点显示为半宽,句末标点显示为全宽。 《金融服务 生僻字处理指南》(JR/T 0253–2022) 第6.1.4节“少数民族姓名间隔符的输入”节说: 少数民族姓名间隔符须按照《关于在政府管理和社会公共服务信息系统中统一姓名采集应用规范的通知》(民委发〔2016〕33号文)要求的格式输入, 统一用“·”(UCS编码U+00B7,GB18030编码A1A4)。考虑到常用字符集中“实心点”字符有多个,宜在用户输入的前端检测少数民族姓名间隔符为非U+00B7的“实心点”时, 自动转换成U+00B7。 注:有些文字处理软件中U+00B7复制到其他应用有可能变成U+2022。 U+00B7在Unicode中的定义是“MIDDLE DOT”。 1 2 3 4 >>> hex(ord('·')) '0xb7' >>> chr(0xb7) '·' 顺便说一句,U+XXXX或U+2XXXX表示UCS的一个码点或字符。通用编码字符集(UCS) 标准由国际标准化组织(ISO)与国际电工委员会(IEC)制订, 编号为ISO/IEC 10646,最新版本为ISO/IEC 10646:2020。 统一码(Unicode) 是由统一码联盟依据UCS制定的可以容纳世界上所有文字和符号的编码字符集。我国现行GB/T 18030–2005与ISO/IEC 10646:2000(即第2版)保持同步,也就相当于Unicode 3.1版本。2023年8月1日即将实施的GB/T 18030–2022与ISO/IEC 10646:2017(即第5版)保持同步,也就相当于Unicode 11.0版本。 《中文出版物夹用英文的编辑规范》(CY/T 154–2017) 第6节“人名缩略翻译的处理”说: ...

November 16, 2022 · 1 min · Hanson Hu

Kindle搬家

近日亚马逊宣布Kindle业务将在2年后撤离中国。 2014年在香港工作时,从美亚入坑Kindle PaperWhite 2 (2013) WiFi (U.S., Intl.),8年间前后购入80几本书。决定先保全这些书,再换绑美亚。 工具 calibre 5.43.0 DeDRM tools 10.0.2 步骤 下载电子书 在电子书清单界面,点击...按钮,选择通过电脑下载USB传输。 80几本对我来说手工操作就好,犯懒的同学可以找油猴脚本来跑。 再到设备详情界面,拷贝下序列号,后面用。 准备工具 解压DeDRM_tools_10.0.2.zip。 运行calibre,打开Preferences界面。 修改Saving books to disk设置,取消勾选Save cover separately和Save metadata in a separate OPF file,勾选Replace space with underscores,把Save template修改为{author}/{author}-{title}。 打开Plugins对话框,点击Load plugin from file按钮,选择DeDRM_plugin.zip文件。导入成功后,在File type中找到DeDRM并双击。点击eInk Kindle ebooks按钮,输入设备序列号。 加工 回到主界面,通过Add books功能导入下载的书籍。导入过程中后台已自动执行DeDRM动作。注意,也只有在导入的过程中才能执行这个动作。 通过Edit metadata功能清理一下Title和Author(s)信息。 再通过Save to disk功能导出azw3文件。按照设计的template,相同作者的作品将保存在同一个文件夹内。注意,如果书是旧版的mobi格式,可能需要先通过Convert books功能生成azw3文件。 拷贝 把Kindle连接到电脑,拷贝azw3文件到documents文件夹。放在子文件夹中亦可。 顺便,把中意的中文字体霞鹜文楷拷贝到fonts文件夹。注意,旧的mobi格式书籍可能不支持自定义字体。 换绑 还原 设置 -> 设备选项 -> 重置。 登录 使用美亚账号登录。 ...

June 7, 2022 · 1 min · Hanson Hu

Hugo及GitHub Pages迁移教程

安装软件 安装Git for Windows 1 2 C:\>git --version git version 2.35.2.windows.1 安装Hugo 把下载的hugo_extended_0.97.0_Windows-64bit.zip解压到C:\bin\hugo_extended_0.97.0_Windows-64bit。 把该目录添加到Path。 1 2 C:\>hugo version hugo v0.97.0-c07f3626e7c8160943591f4d209977efa02c3dca+extended windows/amd64 BuildDate=2022-04-14T08:45:07Z VendorInfo=gohugoio 在本地搭建 新建项目 1 2 C:\>cd _gh C:\_gh>hugo new site hanson2010.github.io 由于Hugo跟Hexo不同,没有内置模板,下载一份喜欢的模板(我用kiera)。 1 2 3 4 C:\_gh>cd hanson2010.github.io C:\_gh\hanson2010.github.io>git init C:\_gh\hanson2010.github.io>git submodule add https://github.com/funkydan2/hugo-kiera.git themes/kiera C:\_gh\hanson2010.github.io>echo theme = "kiera" > config.toml 试发一篇文章 1 C:\_gh\hanson2010.github.io>hugo new posts/my-first-post.md 这时已生成一个文件content/posts/my-first-post.md,而且内容被初始化为: 1 2 3 title: "My First Post" date: 2022-04-14T20:07:04+08:00 draft: true 本地运行 1 C:\_gh\hanson2010.github.io>hugo server -D 访问http://localhost:1313看看效果吧: ...

April 15, 2022 · 2 min · Hanson Hu