[2025年6月:更新LXGWWenKaiGB到1.520]
中文字体默认不支持斜体,这与西文字体不同。西文字体如Times New Roman等通常包含专门设计的斜体字形,而中文字体(特别是宋体、黑体等传统中文字体)则没有原生的斜体设计。
在没有专门设计的中文斜体字形时,软件通常采用两种方式实现中文"斜体"效果:
程序算法倾斜:对字形应用数学变换,将垂直的笔画向右倾斜。这种方法不需要额外的字体文件,Windows系统上的中文斜体大多采用这种方法,如微软雅黑、宋体等字体在应用斜体格式时,操作系统会自动应用算法倾斜;
专门设计的斜体字形:一些现代中文字体会专门设计斜体版本,例如得意黑Smiley Sans字体等。这些字体的斜体不是简单的机械倾斜,而是经过专业设计,考虑了汉字结构特点。
有些编辑器如Typora、Notion默认支持中文斜体,但是NotePlan没有实现中文字体算法倾斜,需要创建专用的斜体字体文件。本文介绍的方法是通过FontForge工具对霞鹜文楷GB字体应用斜体变换,并生成新的字体文件,从而让NotePlan可以直接调用这个字体来显示斜体文本。
用FontForge生成斜体字体
首先安装fontforge,
brew install --cask fontforge
也可以手动下载安装: https://fontforge.org/en-US/downloads/mac/
本文以开源中文字体 霞鹜文楷GB 为例(本文方法同样适用于其他中文字体):
brew install font-lxgw-wenkai-gb
通过命令行打开FontForge英文界面:
LANG=en_US.UTF-8 open -a FontForge
生成Regular字体的斜体文件
第1步:通过菜单File → Open
打开已经安装好的霞鹜文楷GB字体 /Users/<username>/Library/Fonts/LXGWWenKaiGB-Regular.ttf
第2步:通过⌘(command)-A选中所有字体,通过菜单Element → Style → Oblique
生成斜体效果。By what angle (in degrees) do you want to slant the font?
设置成10-15度,我这里设置成12度,这里的负号表示向右倾斜:
第3步:通过菜单Element → Font Info
修改字体信息,保证字体名唯一性(很重要)
第4步:通过菜单File → Generate Fonts
将字体保存到 /Users/<username>/Library/Fonts/LXGWWenKaiGB-Italic.ttf
生成Medium字体的斜体文件
第1步:使用同样的方法,用FontForge菜单File → Open
打开字体 /Users/<username>/Library/Fonts/LXGWWenKaiGB-Medium.ttf
第2步同上。
第3步:同样要更新字体信息:
最后一步:通过菜单File → Generate Fonts
将字体保存到 /Users/<username>/Library/Fonts/LXGWWenKaiGB-MediumItalic.ttf
用Font Book查看字体
两个中文斜体字体都已经创建好了,可以通过macOS下的Font Book查看字体,记录下字体的PostScript名称
在NotePlan配置中使用。
创建NotePlan自定义主题
创建自定义主题,让NotePlan使用新创建的字体:
nano -w /Users/<username>/Library/Containers/co.noteplan.NotePlan3/Data/Library/Application\ Support/co.noteplan.NotePlan3/Themes/orange-zh.json
内容如下:
{
"name": "Orange (zh)",
"style": "Light",
"author": {
"name": "Binbin Shen",
"email": "[email protected]"
},
"editor": {
"backgroundColor": "#ffffff",
"altBackgroundColor": "#FAFFFF",
"tintColor": "#d87001",
"tintColor2": "#0091f8",
"textColor": "#333333",
"toolbarBackgroundColor": "#F2F3F5",
"toolbarIconColor": "#444444",
"menuItemColor": "#444444",
"timeBlockColor": "#d87001",
"shouldOverwriteFont": false
},
"styles": {
"body": {
"font": "LXGWWenKaiGB-Regular",
"size": 16,
"color": "#333333"
},
"title1": {
"color": "#000000",
"size": 28
},
"title2": {
"color": "#000000",
"size": 24
},
"title3": {
"color": "#000000",
"size": 20
},
"working-on": {
"backgroundColor": "#306600FF",
"color": "#17003B"
},
"flagged-1": {
"backgroundColor": "#22D04023",
"color": "#59000B"
},
"flagged-2": {
"backgroundColor": "#40E3021D",
"color": "#420008"
},
"flagged-3": {
"backgroundColor": "#6FFF0202",
"color": "#1F0004"
},
"title-mark1": {
"color": "#40000000",
"size": 28
},
"title-mark2": {
"color": "#40000000",
"size": 24
},
"title-mark3": {
"color": "#40000000",
"size": 20
},
"title4": {
"color": "#000000",
"size": 16,
"underlineStyle": 1
},
"title-mark4": {
"color": "#40000000",
"size": 18,
"font": "LXGWWenKaiGB-Regular"
},
"bold": {
"font": "LXGWWenKaiGB-Medium"
},
"bold-left-mark": {
"color": "#40000000"
},
"bold-right-mark": {
"color": "#40000000"
},
"italic": {
"font": "LXGWWenKaiGB-Italic"
},
"italic-left-mark": {
"color": "#40000000"
},
"italic-right-mark": {
"color": "#40000000"
},
"boldItalic": {
"font": "LXGWWenKaiGB-MediumItalic"
},
"boldItalic-left-mark": {
"color": "#40000000"
},
"boldItalic-right-mark": {
"color": "#40000000"
},
"code": {
"font": "Menlo-Regular",
"color": "#0091f8",
"size": 15
},
"code-left-backtick": {
"color": "#660091f8"
},
"code-right-backtick": {
"color": "#660091f8"
},
"checked": {
"color": "#66333333",
"headIndent": 33
},
"todo": {
"color": "#d87001",
"headIndent": 33,
"size": 16
},
"checked-todo-characters": {
"headIndent": 33,
"size": 16
},
"tabbed": {
"headIndent": 43
},
"quote-mark": {
"color": "#800091f8",
"headIndent": 33,
"size": 16
},
"quote-content": {
"color": "#CC333333",
"font": "LXGWWenKaiGB-Italic",
"headIndent": 33
},
"link": {},
"schedule-to-date-link": {},
"done-date": {},
"schedule-from-date-link": {},
"note-title-link": {},
"hashtag": {
"backgroundColor": "#20d87001"
},
"attag": {
"backgroundColor": "#20d87001"
},
"phonenumber": {},
"highlighted": {
"backgroundColor": "#6684FF00"
},
"highlighted-left-marker": {
"color": "#40000000"
},
"highlighted-right-marker": {
"color": "#40000000"
},
"strikethrough": {
"color": "#99333333",
"strikethroughColor": "#DD333333"
},
"strikethrough-left-tilde": {
"color": "#44333333"
},
"strikethrough-right-tilde": {
"color": "#44333333"
},
"underline": {
"underlineStyle": 2,
"underlineColor": "#FFCC66"
},
"underline-left-tilde": {
"color": "#44333333"
},
"underline-right-tilde": {
"color": "#44333333"
}
}
}
主要是设置shouldOverwriteFont
为false
,并设置正确的字体名称。霞鹜文楷GB字体在NotePlan上的显示效果还不错: