FixCJK!

中文字体和标点设定及修正脚本

目前为 2016-06-02 提交的版本。查看 最新版本

作者
stecue
评分
0 0 0
版本
0.10.3
创建于
2016-05-19
更新于
2016-06-02
大小
59.8 KB
许可证
GPLv3
适用于
所有网站

FixCJK!

跨平台 Firefox/Chrome/Chromium/Opera 用户脚本

简介

FixCJK! 是适用于简体中文用户的中文字体和标点修正脚本。主要功能为:

  1. 强力字体设置。忽略浏览器和系统设置,直接强力设定映射为“无衬线(sans-serif)”和“有衬线(serif)”的实际字体列表。
  2. 替换中易宋体为矢量字体。
  3. 将中英文混排中错误使用了中易宋体的英文部分设置为使用单独的拉丁字体。默认是 Ubuntu Mono(其字符宽度正好是中易宋体的一半并自带良好的 hinting 信息)。
  4. 对于矢量粗体,将使用字体文件提供的真粗体而不是合成伪粗体(最初目的是绕过 Linux 版 Chrome/Chromium 的这个 bug)。
  5. 设定中文全角标点字体。对于弯引号,根据上下文自动识别并设定为全角字体。
  6. 对于连续的两个或三个中文标点进行空白压缩(或者说间距调整)。

用法

推荐下载安装 Noto Sans CJK SC 字体Ubuntu Mono 字体。默认设置覆盖了大多数 Windows 和 Linux 设备。如果需要自定义设置(包括中英文字体以及修正级别),请直接修改脚本中从CJKdefaultFixPunct的定义。注意:自动更新可能会重置你对脚本做的修改。

0.10 分支新增“点击重检查”功能。遇到在页面初次载入时尚未出现的动态内容,可以在网页内任意处单击;脚本将重新检查所有需要修正的网页元素。点击重检查的允许最小间隔时间默认为三秒。间隔短于三秒的连续点击将被忽略。

已知问题

  1. 由于采用直接遍历和修改innerHTML的方法,标点修正的效率可能会较低。为了尽量少影响网页加载时间,脚本内置了定时机制;超时自动退出运行。所以字体和标点修正效果可能和机器配置以及浏览器有关。按F12并选择控制台(或 console)可查看脚本执行日志信息。
  2. 连续三个中文标点的空白压缩仅考虑了包含引号的情况。连续更多中文标点的空白压缩尚未实现(除非可以分成两个或三个一组)。
  3. 由于脚本注入位置的差异,一些看起来并非动态生成的网页元素(比如本项目在 GitHub 上的中文 Readme 文件)在页面载入完成时也可能尚未被修正。此时一般只需单击页面内或该网页元素内的任意一点,触发脚本的“点击重检查”功能即可修正该网页。