ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Kali Linux 中文环境配置:locale、字体与输入法

Kali Linux 中文环境配置:locale、字体与输入法 Kali Linux 系统设置中文语言环境这件事看起来只是把英文换成中文但真动手做过的人都知道它其实是三件互相独立的事locale 要生成、中文字体要装、输入法框架要配。任何一环漏了你都会遇到那种菜单变中文了但汉字全是方块汉字能显示但打不出来浏览器能打字终端不行的诡异状态。这篇内容就是把我自己反复装过十几次 Kali 之后总结出来的完整流程写下来从最小白的方式开始一步步到能正常看中文文档、正常用拼音输入顺手把终端、双系统、时间显示这些容易被忽略的周边问题一起处理掉。不管你是第一次接触这个系统还是已经用了很久但一直懒得折腾中文照着走一遍基本都能搞定。1. 先搞清楚中文环境到底是哪几条线1.1 locale 决定系统说的是哪国话刚接触这个概念的人最容易把它和输入法混为一谈其实它是完全两码事。locale 是 Linux 里描述地区与语言约定的一组变量它决定的是程序和系统自己输出的文字用哪种语言、日期怎么排、数字千分位用什么符号、货币符号长什么样、字符按什么规则排序。你敲一条date如果 locale 是英文输出是Fri May 3 10:20:31 CST 2024切到中文 locale同样的命令会变成2024年 05月 03日 星期五 10:20:31 CST这就是 locale 在起作用。它的命名规则也很直白语言_地区.字符集比如zh_CN.UTF-8就是中文、中国大陆、UTF-8 编码。这套东西不是系统内核管的而是 glibc 那套 C 库在管所以你会看到相关配置文件散落在/etc/locale.gen、/etc/default/locale、/etc/environment这几个地方而不是某一个集中的语言设置面板。理解了这一点后面遇到改了没生效就不奇怪了——很多时候是改错了文件或者改了没重新登录。还有一个特别容易被忽略的角色LANGUAGE。这个变量是给 gettext 用的专门控制翻译优先级列表格式是冒号分隔的语言序列比如zh_CN:zh:en。LANG管的是整体默认值LANGUAGE只在有翻译文件的应用里覆盖它。很多教程只让你改LANG结果图形界面的菜单还是英文原因就在这里。至于优先级记住一条LC_ALLLC_*具体分类 LANG 默认。LC_ALL是个总开关一旦设定就会压过所有其他设置。新手最常犯的错误就是把LC_ALL写进全局配置因为一旦这个 locale 没生成成功系统会在每次登录时刷一屏的setlocale: LC_ALL: cannot change locale而且怎么改都改不动。我的建议是全局配置里永远不要写LC_ALL。1.2 中文字体决定汉字能不能显示出来locale 只管语言约定它并不带字体。系统里如果一个 CJK 字体都没有那么即使 locale 已经是zh_CN.UTF-8所有汉字也会渲染成一个个空心方框——这就是大家常说的豆腐块。判断这件事最简单的办法是fc-list :langzh | wc -l这条命令会列出系统里所有支持中文的字体条目返回 0 或者很小的数字基本就说明缺字体。安装完之后再跑一次正常应该有几十条甚至上百条。字体这块归 fontconfig 管它负责某个字体缺失时用哪个字体替换sans-serif 到底映射到哪个真实字体这类决策所以后面第六节我还会顺带讲一下怎么调渲染效果。桌面环境里中文显示能用和好看之间差距很大尤其是终端和代码编辑器默认字体如果不含 CJK中英混排会非常难受——字宽对不齐、标点挤在一起、行距忽大忽小。这属于配置细节但干活的体验差别很大值得花十分钟调一调。1.3 输入法框架决定你能不能打出汉字显示和输入是两条完全独立的链路。字体装好了你能看见汉字但要在框里敲出汉字需要一个输入法框架加一套输入法引擎。Linux 上主流就两套fcitx5和ibus。它们各自有图形界面程序面板、配置工具各自有引擎拼音、五笔、双拼、仓颉各自需要往应用程序里挂前端模块——应用程序通过GTK_IM_MODULE、QT_IM_MODULE、XMODIFIERS这三个环境变量知道该找谁要输入。为什么要知道前端模块这件事因为一个非常高频的故障就是浏览器里能打字终端里不行或者反过来。本质上就是某个应用没拿到正确的环境变量或者对应的前端包没装。你在网上搜到的各种输入法失效帖子八成根源都在这一层而不是输入法本身坏了。2. 动手之前先摸清底细版本、桌面、软件源2.1 三条命令确认你的系统长什么样不同版本、不同桌面环境的配置落点完全不同所以先别急着改文件先把下面三条命令的输出记下来cat /etc/os-release echo $XDG_CURRENT_DESKTOP echo $XDG_SESSION_TYPE第一条告诉你发行版的版本号和名字比如Kali GNU/Linux Rolling。第二条告诉你当前桌面环境是XFCE、GNOME还是KDE——这一点非常关键因为它决定了输入法框架的推荐方案和自动启动怎么做。第三条告诉你跑在x11还是wayland上这决定了输入法前端走的是老式的 XIM 机制还是新的 Wayland 文本输入协议。为什么非要确认这两个因为它们在真实场景里踩坑率极高。比如 GNOME 配合 Wayland 的组合下fcitx5 的配置逻辑和 X11 下完全不一样很多老教程照抄上去就是不行KDE 上 fcuitx5 反而支持得非常好还有专门的配置面板模块。同一个操作在不同组合下结果不同这不是玄学是机制差异。顺便再补两条locale localectl status第一条输出当前会话里每个 locale 分类的实际取值是排查问题最直接的证据第二条是 systemd 体系下看的系统级设置两者对不上就说明某个环节没生效。2.2 桌面环境与输入法方案怎么搭网上那些到底用 fcitx5 还是 ibus的争论其实大部分是没区分桌面环境。下面这张表是我自己在几种组合下实测之后的倾向桌面环境显示协议我推荐的输入法框架理由XFCEX11fcitx5老牌 X11 环境环境变量方式生效稳定配置简单直接KDE PlasmaWayland/X11fcitx5KDE 侧对 fcitx5 有原生模块支持面板集成度高GNOMEWaylandibus 优先GNOME 自带 ibus 集成Wayland 下切换成本最低GNOMEX11fcitx5 或 ibus两者都行看个人习惯图省事用 ibus无桌面/纯命令行无不需要终端本身不能输入中文只有图形程序才需要说句实在的如果你只是想在浏览器里搜资料、在文本编辑器里写点中文笔记选哪套都能满足。真正影响体验的是你是否愿意花时间配环境变量——fcitx5 的灵活度更高词库、皮肤、快捷键都能细调但初始配置步骤比 ibus 多一两步ibus 装上就能用但在 X11 下偶尔会出现候选框位置飘忽的小毛病。2.3 软件源与更新时机配置语言环境的几乎所有操作都要装包所以先确认软件源是通的。Kali 的源配置在/etc/apt/sources.list默认大概是这个形式deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware网络条件一般的话可以换成就近的镜像站把域名替换掉即可不要改动后面的组件列表。改完记得sudo apt update刷新索引。这里有个时机问题值得单独说我建议先更新、后配置。也就是在开始折腾语言环境之前先跑一次sudo apt update sudo apt full-upgrade -y因为装了新字体和输入法之后有些依赖变化会拖一堆包一次性做完比中途来回插队干净得多。但要提醒一句滚动更新的发行版有时候会遇到刚更新完某个包输入法就用不了了的情况这是因为前端模块的包版本和主程序没对齐。遇到了解决办法很简单重新apt install --reinstall一遍输入法相关的包即可别慌着重装系统。3. 正式实操字体、locale、输入法一次配齐3.1 第一步把中文字体装进去这一步建议放在最前面因为它是后面所有显示效果的基础而且不需要重新登录就基本能见效。sudo apt update sudo apt install -y fonts-noto-cjk fonts-noto-cjk-extra \ fonts-wqy-microhei fonts-wqy-zenhei sudo fc-cache -fv fc-list :langzh | wc -l最后那条命令返回的数字就是系统里支持中文的字体条目数量装完之后一般能到几百。如果还是 0那多半是/etc/apt/sources.list有问题或者包根本没下载成功。字体包怎么选我也整理了一张对比表按需装就行没必要全装包名字体名称体积与覆盖适合谁fonts-noto-cjk思源黑体系列体积较大覆盖简体、繁体、日韩绝大多数人界面显示最稳fonts-noto-cjk-extra思源黑体补充字重更大含更多字重对排版有要求、做文档的人fonts-wqy-microhei文泉驿微米黑体积小黑体风格老机器、虚拟机、追求轻量fonts-wqy-zenhei文泉驿正黑体积小字形略方正备选出问题时切过来对比fonts-arphic-ukai文鼎楷体衬线风格喜欢阅读类排版的人fonts-arphic-uming文鼎明体衬线风格同上做正式文档可考虑还有一个坑要提前说图形界面变中文和字体安装是两回事。如果你用的是 Firefox它的界面语言由独立的语言包提供装了字体也不会让菜单变中文sudo apt install -y firefox-esr-l10n-zh-cnThunderbird 同理包名是thunderbird-l10n-zh-cn。Debian 系很多应用的翻译是拆包发布的遇到某个软件死活是英文的情况先去搜一下有没有对应的语言包不要急着改 locale。3.2 第二步生成并启用 zh_CN.UTF-8这是中文环境的核心步骤。Debian 系的机制是/etc/locale.gen这个文件里列出了所有可以生成的 locale但默认大部分被注释掉了只有被取消注释的行才会在实际执行locale-gen时被编译进系统。图形化的做法是sudo dpkg-reconfigure locales进去之后用方向键找到zh_CN.UTF-8 UTF-8按空格勾选回车确认然后在下一屏把默认 locale 选成zh_CN.UTF-8。这个交互界面对新手比较友好但缺点是勾选一堆的时候容易手滑。命令行做法更可控我一般这么干sudo sed -i s/^# *zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/ /etc/locale.gen sudo locale-gen locale -a | grep zh_CN最后那条命令应该输出zh_CN.utf8看到它就说明生成成功了。这里的sed是把被注释掉的那一行前面的#去掉注意里面保留了原始缩进所以正则里写了^# *兼容不同的空格数量。接下来设置默认值。直接编辑系统级配置文件sudo tee /etc/default/locale /dev/null EOF LANGzh_CN.UTF-8 LANGUAGEzh_CN:zh LC_TIMEzh_CN.UTF-8 EOF这三个变量各自的含义值得逐个说清楚LANGzh_CN.UTF-8是总默认值绝大多数分类都会跟着它走。LANGUAGEzh_CN:zh控制翻译优先级。写两个是为了在某个中文翻译缺失时自动回落虽然zh这个通用值在实践里用得不多但写上没坏处。LC_TIMEzh_CN.UTF-8专门管时间日期格式。有人会问为什么不干脆设LC_ALL。前面说过了LC_ALL一旦设错就是灾难级体验而且它还会影响脚本输出的可解析性。举个例子中文 locale 下date的输出是带年月日的如果你写了某个 shell 脚本要靠date的输出做字符串切割切出来就全乱了。所以系统级配置里只设 LANG 和必要的分类把 LC_ALL 留给临时场景比如临时想用英文输出跑个脚本就LC_ALLC ./script.sh这样最灵活。另外注意/etc/default/locale是 Debian 系的惯例位置。也可以用sudo update-locale LANGzh_CN.UTF-8这个命令来写它干的是同一件事。但别把 locale 写进/etc/environment那个文件是给 PAM 读环境变量用的虽然能生效但和系统自带的语言管理机制混在一起之后排查问题时会非常混乱。改完之后必须注销当前会话再登录或者直接重启。当前已经跑起来的 shell 和图形程序不会自动重新读取这些设置。想临时在当前终端里看效果可以先手动导一下export LANGzh_CN.UTF-8 date看到中文的日期格式就说明 locale 本身是好的剩下的只是有没有重新登录的问题。3.3 第三步装 fcitx5 并配好三个环境变量输入法这块我以 fcitx5 为例因为它在各种桌面环境下的一致性最好。sudo apt install -y fcitx5 fcitx5-chinese-addons \ fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 \ fcitx5-frontend-qt5 fcitx5-config-qt如果源里提示找不到fcitx5-config-qt这个包用下面这条命令自己找一下配置工具的真实包名apt search fcitx5 | grep -i config包的作用简单说明一下fcitx5是主程序fcitx5-chinese-addons提供拼音、双拼这些中文引擎几个frontend-*是给不同图形库的前端模块fcitx5-config-qt提供图形化的配置工具。想加五笔、仓颉这类码表输入再补装fcitx5-table-extra。然后是整件事里最关键、也最容易漏的一步——环境变量。写入系统级配置sudo tee /etc/environment /dev/null EOF GTK_IM_MODULEfcitx QT_IM_MODULEfcitx XMODIFIERSimfcitx EOF这三行的分工是变量作用对象不设的后果GTK_IM_MODULEGTK 程序如 Firefox、Thunar 文件管理器GTK 类程序打不出中文QT_IM_MODULEQt 程序如部分编辑器、KDE 应用Qt 类程序打不出中文XMODIFIERSX11 下的老式输入协议一些小众程序、Java 程序失效顺手提一句很多人在 Windows 上折腾环境变量路径折腾得很熟到了 Linux 这边其实也是同一套思路只不过 Linux 里全局变量和用户变量的落点更分散系统级在/etc/environment用户级可以放~/.xprofile仅 X 会话或者~/.profile。放错位置就会出现注销后不生效或者只在某个终端里生效的情况。Debian 系还提供了一个更官方的工具来指定输入法框架sudo apt install -y im-config im-config -n fcitx5它会往~/.xinputrc写一条记录图形会话启动时会读这个文件来决定优先启动哪套输入法。用它的好处是避免和系统其他部分打架我会建议在 X11 环境下同时用这两种方式双保险。如果你的桌面是 GNOME 跑在 Wayland 上我的建议是换成 ibus配置会简单得多sudo apt install -y ibus ibus-libpinyinGNOME 自带对 ibus 的集成基本不需要手配环境变量装完在设置里加一下输入源就行。3.4 第四步让 fcitx5 登录时自启并加上拼音环境变量配好只是能用还得让主程序在图形会话启动时自动跑起来。图形界面下的自启动文件放在~/.config/autostart/最省事的做法是直接把系统的 desktop 文件复制过去ls /usr/share/applications | grep -i fcitx5先看清楚文件叫什么名字然后mkdir -p ~/.config/autostart cp /usr/share/applications/*fcitx5*.desktop ~/.config/autostart/复制过去之后也可以直接在 XFCE 的设置 → 会话和启动 → 应用程序自启动里看到它勾选状态一目了然。KDE 在系统设置 → 开机与关机 → 自动启动里也能看到。接下来打开配置工具加输入法fcitx5-configtool在输入法标签页里把左侧可用输入法中的拼音添加到右侧然后点应用。这时候应该就能用Ctrl 空格切换中英文了。如果切不出来先别怀疑人生按下面顺序检查右下角托盘或面板有没有 fcitx5 的小图标。没有就说明进程没跑起来手动在终端敲fcitx5 -d再试。敲echo $GTK_IM_MODULE看输出是不是fcitx。空的就说明环境变量没生效检查/etc/environment有没有写错然后注销重登。如果只有某个特定软件不行基本可以断定是缺对应的前端包。fcitx5 -d里的-d是让它以守护进程方式在后台跑。有时候你手动敲一次能好重启又不行那就是自启动那步没做对回去看~/.config/autostart/里的 desktop 文件在不在。4. 配套细节时区、终端、双系统文件名的坑4.1 时区和时间显示格式一起收拾干净中文环境配好之后很多人会发现时间不对通常是差 8 小时。这有两个独立的原因要分开处理。第一个是时区。Kali 默认不一定是本地时区尤其是在虚拟机里。查一下timedatectl看到Time zone: Asia/Shanghai才算对。不对就改sudo timedatectl set-timezone Asia/Shanghai如果你想同时把时间显示格式调回英文很多人觉得中文日期在终端里看着别扭可以在/etc/default/locale里单独覆盖LC_TIMEen_US.UTF-8这就是LC_*分类存在的价值——只换一部分不影响其他。第二个原因更隐蔽是双系统下硬件时钟的时间标准不一致。Windows 默认把硬件时钟当本地时间用而 Linux 默认当成 UTC两边来回切换就会各显示各的时区每切一次差 8 小时。两种修法# 方案一让 Linux 跟随本地时间标准改动小和 Windows 行为一致 sudo timedatectl set-local-rtc 1 --adjust-system-clock # 方案二反过来让 Windows 按 UTC 走需要改注册表此处不展开实际用下来我更推荐方案一因为它只动 Linux 一侧不用去碰另一个系统。缺点是 Linux 这边在跨夏令时切换的地区可能会有一次时间抖动但如果你在不受夏令时影响的时区基本无感。顺带说一句时间同步。sudo timedatectl set-ntp true可以打开网络时间同步但要注意某些安全测试场景下系统时间需要保持固定因为时间戳是证据链的一部分所以如果你在那种场景里就别随便开自动同步了。4.2 终端和远程连接下的中文显示locale 配好了终端里还是可能出问题主要有三种表现第一种ls出来的中文文件名显示成???。这说明当前 shell 的 locale 还是C或POSIX。在终端里敲locale如果LC_CTYPE是C就是这个原因。要么是没重新登录要么是你用的终端模拟器在启动时自己重置了环境。临时解法是export LANGzh_CN.UTF-8根本解法还是回去检查/etc/default/locale。第二种汉字显示成方块但文件名是对的。这纯粹是终端字体的问题。打开终端设置把字体换成含 CJK 的等宽字体比如Noto Sans Mono CJK SC。换成这个之后中英混排的字宽对齐会好很多因为在大多数 CJK 字体里汉字宽度正好是两个半角字符和终端的等宽假定一致。第三种SSH 连过去之后中文全乱。这是远端和服务端两件事叠加。远端需要生成中文 locale就是 3.2 那一步在远端机器上再做一遍服务端则要在/etc/ssh/sshd_config里允许环境变量透传AcceptEnv LANG LC_*同时客户端这边的~/.ssh/config里加上SendEnv LANG LC_*Debian 系默认一般已经开了AcceptEnv但改过配置的话就要自己确认一下改完sudo systemctl restart ssh生效。这里的逻辑其实很朴素SSH 会话默认不会把你本地的语言设置带过去得显式允许它带。4.3 挂载 Windows 分区时的中文文件名双系统玩家经常遇到的场景在 Linux 里挂载 Windows 的 NTFS 分区发现中文文件名要么变问号要么直接列不出来。正常情况下现代内核的 NTFS 驱动加 UTF-8 locale 是能正确显示的如果不行sudo apt install -y ntfs-3g sudo mount -t ntfs-3g -o iocharsetutf8 /dev/sdXn /mnt/win关键是那个iocharsetutf8它指定了文件名的字符集转换方式。还有一种情况是老文件名的编码问题。早期 Windows 上创建的文件用的是 GBK 编码的文件名在 UTF-8 环境下读出来就是乱码。这种情况得用转码工具批量处理注意先备份再操作并且一定要先不加--notest跑一遍预览sudo apt install -y convmv convmv -f gbk -t utf8 -r /mnt/win/某目录 # 确认预览结果没问题之后再加上 --notest 真正执行 convmv -f gbk -t utf8 -r --notest /mnt/win/某目录这个操作会真的重命名文件所以预览那一步千万别省。我见过有人直接加--notest跑完发现整个目录的文件名都变成了一堆问号恢复起来相当麻烦。5. 常见故障与排查实录5.1 高频问题速查表下面这张表把我在实际配置过程中遇到的问题汇总了一下遇到故障先按表查一般能覆盖八九成的情况。现象最可能的原因处理方式登录时报setlocale: LC_ALL: cannot change localelocale 没生成或者LC_ALL被设成了不存在的值先在/etc/locale.gen里取消对应注释并sudo locale-gen再删掉全局的LC_ALL菜单、按钮还是英文缺LANGUAGE或应用缺翻译语言包补上LANGUAGEzh_CN:zh装firefox-esr-l10n-zh-cn之类的语言包汉字显示成空心方框系统里没有 CJK 字体装fonts-noto-cjk后执行fc-cache -fvCtrl 空格切不出中文fcitx5 没启动或环境变量没生效手动fcitx5 -d验证检查三个 IM 变量然后注销重登只有浏览器能打中文缺 GTK 前端模块装fcitx5-frontend-gtk3只有部分 Qt 程序能打中文缺 Qt 前端模块装fcitx5-frontend-qt5候选词框字体太小看不清输入法主题字体设置在fcitx5-configtool的附加组件里调主题和字体终端里中文文件名是???会话 locale 是 C 或 POSIX检查locale输出确认已重新登录时间差 8 小时双系统硬件时钟标准不一致sudo timedatectl set-local-rtc 1 --adjust-system-clockSSH 连过去中文乱码远端没生成 locale 或未允许透传远端locale-gen两端配置AcceptEnv/SendEnv系统更新后输入法突然失效主程序与前端模块版本不一致sudo apt install --reinstall重装输入法相关包组关机前弹出英文提示框某些会话管理器组件缺翻译属于正常现象不影响功能不必强求汉化5.2 三个我实际踩过的坑第一个坑改完 locale 直接在当前终端里试然后以为没生效。这个错误我犯过不止一次。当时敲date还是英文我以为是配置文件写错了来回改了半小时最后发现在当前会话里必须重新export或者注销重登才有效。判断配置对不对最可靠的方式是看配置文件本身和locale -a的输出而不是在当前会话里试效果。第二个坑把LC_ALL设进/etc/default/locale。有一台机器我在配置时图省事直接写了LC_ALLzh_CN.UTF-8。结果后来升级系统时 locales 包被重新配置那个 locale 一时没生成好登录时刷了一屏报错而且因为LC_ALL优先级最高临时想用英文环境跑脚本都跑不了只能改回配置文件才能进系统干活。从那以后我的原则就是全局不设LC_ALL临时场景才用。第三个坑输入法在 Wayland 会话下怎么都不听话。有一次在 Wayland 的 GNOME 里配 fcitx5环境变量、前端包、自启动全配齐了切换快捷键就是没反应。折腾了很久才意识到Wayland 下的输入法走的是合成器的文本输入协议不是靠XMODIFIERS那一套 X11 的机制。最后换成 ibus 三分钟搞定。这件事给我的教训是先看echo $XDG_SESSION_TYPE再动手别拿 X11 的经验去套 Wayland。另外再补一条不算坑但很省时间的经验配置之前拍个快照。不管你是虚拟机还是物理机动手改 locale 和输入法之前做一次快照万一真把图形界面配到启动不了回滚比修快一百倍。6. 字体渲染微调与几个锦上添花的设置6.1 用 fontconfig 让中文看着更舒服字体装好了不等于看着舒服。默认情况下 sans-serif 未必会优先选到中文字体表现就是界面里的中文用的是一套字体、英文用的是另一套行高不统一看着别扭。可以写一个用户级的 fontconfig 规则来强制指定优先级mkdir -p ~/.config/fontconfig然后创建~/.config/fontconfig/fonts.conf内容大致如下?xml version1.0? !DOCTYPE fontconfig SYSTEM fonts.dtd fontconfig match targetpattern test namefamilystringsans-serif/string/test edit namefamily modeprepend bindingstrong stringNoto Sans CJK SC/string /edit /match match targetpattern test namefamilystringmonospace/string/test edit namefamily modeprepend bindingstrong stringNoto Sans Mono CJK SC/string /edit /match /fontconfig这里的逻辑是当有任何程序请求sans-serif时先把中文字体插到候选列表最前面bindingstrong表示这个优先级是强约束不容易被其他规则覆盖。改完执行fc-cache -fv重建缓存然后重新打开应用程序看效果。想验证当前某个字体名到底映射到了哪个真实字体用fc-match sans-serif就能看到结果。如果机器性能一般觉得中文界面卡顿可以在渲染设置里关掉抗锯齿或者把微调hinting调低视觉损失不大但响应会快一些。这个取舍因人而异用虚拟机的话值得试一下。6.2 浏览器与常用软件的中文显示浏览器是个特殊的点它有自己的字体设置会覆盖系统默认。如果你发现网页中文很好看但浏览器菜单是另一种字体去浏览器设置里的字体选项单独调一下把衬线体/无衬线体/等宽体都指定到你已经装好的中文字体上。Firefox 这边还有一个值得注意的设置语言包装了之后界面语言取决于LANGUAGE变量和浏览器内部的语言偏好。如果界面没跟着变进about:config搜intl.locale.requested手动设一下也能解决。另外如果你日常要处理中文文档建议额外装一套衬线字体比如文鼎明体或者思源宋体因为屏幕阅读长文本时衬线字体的舒适度明显更好。黑体适合界面衬线适合正文这个原则和排版领域的通用经验是一致的。最后分享一个我自己的使用习惯系统界面语言我一般保持英文只有字体和输入法配中文。原因很实在——绝大多数报错信息、日志、文档、论坛帖子的关键词都是英文的界面保持英文时搜报错信息能直接复制粘贴切到中文之后反而要先翻译一遍。这是我用了几年之后稳定下来的取舍不一定适合所有人但如果你经常需要查资料排错可以试一段时间感受一下。字体和输入法配好了日常写中文、看中文网页的体验就已经完全够用了。
返回列表