CJK 输入法与字体配置
Obsidian 基于 Electron 构建,在中文、日文、韩文(CJK)环境下可能遇到输入法兼容性、字体渲染、排版等问题。本文汇总常见问题和解决方案。
输入法兼容性
常见问题
| 问题 | 平台 | 原因 |
|---|---|---|
| 输入法候选框不跟随光标 | 全平台 | Electron IME 兼容性 |
| 无法切换到中文输入法 | Linux | 环境变量未配置 |
| 输入时卡顿或重复 | Windows | 输入法与编辑器冲突 |
| 日文输入法无法使用 | macOS | 输入源配置问题 |
Linux 输入法配置
Fcitx5 配置
bash
# 安装 Fcitx5
sudo apt install fcitx5 fcitx5-chinese-addons
# 设置环境变量(添加到 ~/.profile 或 ~/.bashrc)
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitxIBus 配置
bash
# 安装 IBus
sudo apt install ibus ibus-pinyin
# 设置环境变量
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
# 启动 IBus 守护进程
ibus-daemon -drxWayland 环境特别配置
Wayland 下需要额外参数:
bash
# 启动 Obsidian 时添加参数
obsidian --enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4或在 .desktop 文件中:
text
Exec=env GTK_IM_MODULE=fcitx obsidian --enable-features=UseOzonePlatform --ozone-platform=waylandmacOS 输入法问题
如果中文输入法异常:
- 系统偏好设置 → 键盘 → 输入源
- 确保已添加简体拼音
- 移除不需要的输入源
- 重启 Obsidian
字体配置
中文字体推荐
| 字体 | 特点 | 适合 | 来源 |
|---|---|---|---|
| 思源黑体 (Noto Sans CJK) | 开源、清晰 | 正文阅读 | Google Fonts |
| 思源宋体 (Noto Serif CJK) | 开源、优雅 | 长文阅读 | Google Fonts |
| 霞鹜文楷 (LXGW WenKai) | 手写风、美观 | 休闲笔记 | GitHub |
| 更纱黑体 (Sarasa Gothic) | 等宽中文 | 代码笔记 | GitHub |
| 方书楷体 | 清秀古典 | 文学写作 | 商业字体 |
安装字体
Windows:
- 下载
.ttf或.otf文件 - 右键 → 「为所有用户安装」
- 重启 Obsidian
macOS:
- 下载字体文件
- 双击安装,或复制到
~/Library/Fonts/ - 重启 Obsidian
Linux:
bash
# 复制到用户字体目录
mkdir -p ~/.local/share/fonts
cp *.ttf ~/.local/share/fonts/
# 刷新字体缓存
fc-cache -fv在 Obsidian 中配置字体
方法一:设置界面
- 打开设置 → 外观
- 在「字体」中输入字体名称
- 如
LXGW WenKai或Noto Sans CJK SC
方法二:CSS 代码片段
创建更精确的字体配置:
css
/* 在 .obsidian/snippets/cjk-fonts.css 中 */
/* 编辑器字体 */
body {
--font-text: 'LXGW WenKai', 'Noto Sans CJK SC', sans-serif;
--font-monospace: 'Sarasa Mono SC', 'Noto Sans Mono CJK SC', monospace;
}
/* 界面字体 */
.mod-root .workspace-leaf-content {
font-family: 'LXGW WenKai', 'Noto Sans CJK SC', sans-serif;
}
/* 标题字体 */
.cm-header-1, .cm-header-2, .cm-header-3,
.markdown-preview-view h1, .markdown-preview-view h2, .markdown-preview-view h3 {
font-family: 'Noto Serif CJK SC', serif;
}启用 CSS 代码片段:设置 → 外观 → CSS 代码片段 → 刷新 → 启用。
排版优化
中英文混排间距
自动在中文和英文之间添加空格(盘古之白):
css
/* 使用 CSS 自动添加间距 */
body {
text-autospace: ideograph-alpha ideograph-numeric;
}兼容性
text-autospace 是较新的 CSS 属性,部分浏览器/版本可能不支持。也可以使用「Linter」插件自动添加中英文空格。
中文字号调整
中文字符比英文宽,可能需要调整字号:
css
/* 适当增大正文字号 */
body {
--font-text-size: 16px;
}
/* 调整行高以适应中文 */
.cm-line, .markdown-preview-view p {
line-height: 1.8;
}中文标点优化
css
/* 中文标点不换行 */
body {
hanging-punctuation: last allow-end;
}
/* 破折号不断开 */
.cm-line {
word-break: keep-all;
overflow-wrap: break-word;
}Obsidian Publish 中文字体
如果使用 Publish 发布网站,需要在 publish.css 中配置字体:
css
/* publish.css */
body {
font-family: 'LXGW WenKai', 'Noto Sans CJK SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
line-height: 1.8;
letter-spacing: 0.02em;
}
/* 引入 Web 字体(可选) */
@import url('https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/style.css');常见问题
字体安装后不显示?
- 确认字体安装成功(在系统字体设置中查看)
- 检查字体名称是否正确(区分大小写)
- 完全关闭并重新打开 Obsidian
- 检查 CSS 代码片段是否正确启用
中文字体在代码块中不生效?
代码块使用等宽字体,需要单独配置:
css
code, pre, .cm-s-obsidian .cm-code {
font-family: 'Sarasa Mono SC', 'Noto Sans Mono CJK SC', monospace !important;
}Linux 下字体渲染发虚?
bash
# 启用字体抗锯齿
sudo ln -s /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d/
sudo ln -s /usr/share/fontconfig/conf.avail/10-hinting-slight.conf /etc/fonts/conf.d/
fc-cache -fv移动端字体问题?
iOS 和 Android 系统字体已经对 CJK 做了优化,通常不需要额外配置。如果需要自定义字体,需要通过 CSS @font-face 引入 Web 字体。
相关资源
- CSS 代码片段 - 自定义样式
- 主题定制 - 主题配置
- Obsidian Publish 指南 - 发布网站字体配置