掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 3374|回复: 6

[经验交流] 字体[渲染]丑?@Windows 版 GoldenDict[...]

[复制链接]

该用户从未签到

发表于 2018-2-9 18:32:51 | 显示全部楼层 |阅读模式
本帖最后由 Oeasy 于 2018-2-9 19:32 编辑
9 h4 }0 a/ A! x7 x0 A3 D7 C: L* y+ W4 @' M9 k
3 L& ^  \: z+ W% N" P4 H. k; Y
字体[渲染]丑:Windows 版 GoldenDict[...]
( N/ k; P% \" `. I) |+ M! u9 E+ f+ ^5 B8 q
有不少朋友反馈、抱怨这个问题,尤其是汉字字体。我觉得有必要开个专贴,这里先是为了记录,不一定能解决问题。
& {& n9 @4 C( b: z& v/ }0 t* F1 r
5 m5 }$ }" s4 r3 @% u先看一些帖子:1 e8 {0 ]4 _' Z7 |& W5 C+ v: N
- chrome字体锯齿的问题 https://www.v2ex.com/t/47004 {这帖子里有熟人,我晕}
3 M: F1 j. x4 C, t- Wrong CJK font in the UI  https://github.com/zealdocs/zeal/issues/536 {虽然不是同一个软件,但是本质是一样的,都是基于 QT}
8 |/ a3 q  {0 x& H! G1 j+ v& [- Windows 字体渲染 http://zhihu.sogou.com/zhihu?query=字体渲染# x* [! ^& ]: m+ L; _
- 微软为什么不改善Windows的字体渲染? https://www.zhihu.com/question/318656873 d# P+ u, c( u9 q, g' C
- 非高分屏升级Windows 10后Chrome字体渲染问题? https://www.zhihu.com/question/33653293
* O  j) M! t% H) ?$ v4 @- 如何评价Windows 10和Ubuntu的中文字体渲染? https://www.zhihu.com/question/67991459/answer/3125350280 W7 }4 B6 j# d( t, R4 v
- 为什么苹果中文官网的字体有的消除锯齿有的没有? https://www.zhihu.com/question/20222415
0 K2 F0 Z" J9 B9 M- ThinkPad的高分屏是否能达到surface book的字体圆润无锯齿的显示效果,像素对齐是何意? https://www.zhihu.com/question/263335468/answer/2685391709 l) q/ m6 B, K& E& F" k
8 v5 w6 v, ]+ g- t8 b- o9 _

7 y  X- q* |6 ]: [::  A, P8 u/ p  E. R& D

+ U+ f! y( p- n8 d/ f2 N# s- GoldenDict 不妨看作一个小型浏览器,它是基于 WebKit https://webkit.org/ 的。GoldenDict Windows 版,有 Qt5WebKit.dll 或者 QtWebKit4.dll 这二十多 MB 的文件。1 N: \+ x+ z# H3 \1 m7 Z
- MDict 也可以看作一个小型浏览器,它是基于 IE 的。
" e0 [! ^7 N  x7 A6 g+ H3 v, A  l/ u7 s5 E3 A# z! \& ?
可以【文件】->【保存文章】(快捷键 F2),将 GoldenDict 查询结果保存为 html 格式,然后用 Chrome 、IE 等浏览器打开这个 html 文件,看看效果。. r; Y' a9 }# V" U
2 V8 c2 M0 Q7 e" z# J
7 s. z9 A7 h0 [
要解决这个问题,可以硬件、软件着手。" [. b4 s( ?- |* Q! [( |- V, z
- 硬件(OR 软硬一体),  Mac 下真的漂亮些;高分屏真的更好看一些;iPhone、iPad、安卓手机等小尺寸显示器、高分辨率下,显示效果确实都很棒。
+ `4 }3 Q  H- w5 m- X! Y1 Y' B    - 我今天买了个新显示器才知道retina把我毁了。买前请三思! https://www.douban.com/review/5927987/
) Z* R9 g' U/ T5 v0 M  q- 软件,这就需要调教了。说实话,我觉得好多人其实不太在乎字体渲染啥的,XP 、IE6 都还有那么多国人在用呢。8 _: ~" ^# H3 m; r

' F( V* @$ P. \5 i0 _我今天在用的 'Windows-10-10.0.16299-SP0' , GoldenDict 1.5.0-RC2-209-gfe9312e 基于 Qt 5.6.3 (GCC 6.4.0, 64 位)
& o- w. V) L2 O% _1 W! K) p8 U- GoldenDict如何建立article-style.css并设置字体?[动图示例] https://pdawiki.com/forum/thread-23016-1-1.html" ?+ m9 b# _, v

2 ~3 R! n2 }4 z  M我的今天在用的 article-style.css 和 qt-style.css  就下面这点内容(这个 CSS 在我目前用的 GoldenDict 1.5.0-RC2-209-gfe9312e 基于 Qt 5.6.3 (GCC 6.4.0, 64 位) 是有效的,或许其他版本如 Qt4、32 位下无效 )。我没用 MacType ,我使用的所有 mdx ,全部没有限制字体。我的英文(ASCII 字符)全部是 Arial ,中文全部是微软雅黑(看头疼了有时候换成 SimSun)。9 `' Z  |' W9 Y. h
  1. * {0 D/ v+ ?. C. O+ a3 M
  2. font-family: Arial, "Microsoft Yahei"!important;, l: x- k6 k8 G! C& k0 |5 V
  3. }
复制代码

0 u% H; P( J. R3 g  I( P8 O2 {: i! }3 i- }6 h
效果如图,我觉得可以接受。$ x* N* W3 Q# Z' Z4 ]" Z4 I

; {/ m) F! }8 _+ a! P! t8 T2 q0 u, Z" ~" y( s* t

. h% B. W# \1 h) W- S5 C0 j
" C3 H2 G3 P8 w+ R/ t. O2 S( ?- u- C8 f' _  e& w

5 E. n1 ~9 L/ v  K6 f3 Y- MacType http://www.mactype.net/( V* `) v7 }" z7 O
    - https://github.com/snowie2000/mactype
4 c3 L5 B: p, `' U, _. B3 v7 [/ n' P-  zz MacType Patch for Win 10 https://pdawiki.com/forum/thread-17880-1-1.html& p) Q: i; Z7 b1 S3 f
  • TA的每日心情
    慵懒
    2023-10-14 18:34
  • 签到天数: 210 天

    [LV.7]常住居民III

    发表于 2018-2-10 11:25:52 | 显示全部楼层
    本帖最后由 deeke 于 2018-2-10 11:27 编辑 $ \; o% o! x/ U7 o( X

    9 i, T( T1 W5 S. H+ Q1. 字体选择是个人偏好,供参考。
    7 H/ O, t  }( t% w" O$ L$ L中文:冬青黑体,网上可以找到它的修改版 Smartisan_Compact。
    6 m1 L6 U5 x# w5 n# _& j! K- {" p扩展中文:花園明朝体,用它的 HanaMinB 部分来显示生僻汉字。) w- h/ e) c/ }- ?) V, l. d
    英文:Lato,用它的斜体来显示例句也很自然。" `+ }! ~% a2 ]4 ~; d" S
    等宽:Inconsolata,偶尔编号会用到。1 x* f7 X! x! ^5 x6 Y  d" A
    音标:Cambria,有些词典需要专用字体,如朗文双解4、美国传统词典。& b. v  b/ g, K3 u6 M1 {( G
    符号:Segoe UI Symbol,显示喇叭、星号等。$ _6 Y& r9 v/ \' ^% m7 Z

    . d, P0 l  y1 {& G' ?; r8 {5 dqt-style.css" T1 p5 @  X6 c. f2 a+ N/ i
    在GD界面的搜索面板、历史面板等位置也会出现生僻字,如果 HanaMinB 里找不到,那就交给操作系统指定的非衬线字体试试。
    , l, {1 o8 E, K8 o" J3 J% t  G2 H- r
    1. * { font-family: Lato, Smartisan_Compact, HanaMinB, sans-serif; }
    复制代码

      w+ `( q* Q4 P  ~article-style.css
    ( {6 ]0 c* o- d: f; _* O# [: z
    1. * { font-family: Lato, Smartisan_Compact, "Segoe UI Symbol", HanaMinB, sans-serif; }
    复制代码
    . B) j8 n( N8 g$ j
    P.S. O兄截图中例句翻译里“攀岩”两个汉字高度不一样 :0/ D0 m# v7 U4 `% t9 t) X
    ; g- U4 a0 G1 g* O6 p
    2. MacTpye 拯救低分屏。: d+ S9 @0 G2 _9 [, K! D- j
    从 WinXP 时期 开始使用 MacTpye,那时需要手动替换系统 DLL 文件。2011年我买了一台 MBA 笔记本(不是视网膜屏),搭配 Win8 双系统,被 MacTpye 渲染过的 Win8 比 Mac 系统的文字漂亮太多。但缺点是配置麻烦、常遇到兼容问题,为了迁就 MacTpye 就不能用 Chrome。所以最终解决方案还是升级硬件为高分屏,相当于花钱把折腾渲染的时间买回来。

    评分

    1

    查看全部评分

    该用户从未签到

     楼主| 发表于 2018-2-10 13:08:26 | 显示全部楼层
    deeke 发表于 2018-2-10 11:25
    : {% E' ?7 P% Q2 u3 ^# d' Q1 |1. 字体选择是个人偏好,供参考。4 L# U3 @$ q9 J
    中文:冬青黑体,网上可以找到它的修改版 Smartisan_Compact。5 p$ S: l6 \, ]4 P! N
    扩展中文 ...

    : K# C8 `$ L" s' U4 \9 Y- }+ [6 W7 \1 T
    : k  s) {' {* K/ o9 Q5 g2 c- Q- a# s
    0 |9 N/ y5 [7 ]
    多谢指点。
    6 C  @; j' |, O! Z2 j0 g1 e8 v" d
    1. * {, @9 u+ H* q! j1 ]; W
    2. font-family: Arial,"PingFang SC", "Microsoft Yahei"!important;; ~. ]% W$ p; c/ ]
    3. }
    复制代码

    1 g# G* S% u8 B9 m/ S! z: y% h7 y" \, u/ v) @
    换成 PingFang SC ,感觉也不错。
    ; Z- U5 l- O" s  K2 }3 r* }3 f5 w7 t! U2 F' @( T; }! V5 M

    ' f1 W- Q3 V7 D3 p  V( A7 q
  • TA的每日心情
    开心
    2018-2-10 00:34
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2018-2-10 16:25:02 | 显示全部楼层
    提示: 该帖被管理员或版主屏蔽
  • TA的每日心情
    慵懒
    2023-10-14 18:34
  • 签到天数: 210 天

    [LV.7]常住居民III

    发表于 2018-2-11 04:17:25 | 显示全部楼层
    本帖最后由 deeke 于 2018-2-11 04:55 编辑
    0 L3 P4 w" }0 F& L
    $ c1 b; b: Y' J% _8 {- B在 GoldenDict 中精确指定字体,有时还要考虑注册表。, b" E, @! u% k4 P: R$ x
    ! {* t9 v2 m2 P
    在 Windows 中,GD 根据 文字编码 去调用 字体 的过程大致如下:' T# a7 @9 e: q
    假设 CSS 设置为 xyz {字体1,字体2,字体3;}4 D; }: n& b1 ^7 j& }2 I
    GD 首先会根据 CSS 设置检查 字体1 是否包含这个文字编码,3 X, q* C4 _4 y* B$ k
    如果没有,那么会去 注册表 检查 字体1的备用字体列表(字体链),
    9 H( }3 P, B6 B; j3 ?" e4 K9 I如果没有,接着检查 字体2、字体2的备用字体列表,# ?) B& s: y" E/ r, F& q7 l
    如果直到 字体3、字体3的备用字体列表 都没有,9 {0 W0 {+ k" |
    GD 会去调用 Windows 默认字体、默认字体的字体列表,& n; @' n6 Y- z. ^7 B+ j/ I; M0 K7 J1 v
    如果依旧没有,GD 会显示一个空白(如果显示一个乱码,那就是找到的字体包含该编码,但该编码对应的字形不是 Unicode 标准 或 该编码本来就不是 Unicode)。$ D3 K0 ?  L  z% p  K

    ! Z' G1 u* h; P字体的备用字体列表 存放在注册表中,可以修改,也可以为新安装的字体创建一个新的注册表项并手动建立备用字体列表,位置如下:
    % g4 D) S# c" j" EHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
    + N* N3 W3 }$ F% V6 L参考:Unicode Font Issue in Windows
    * L1 x7 S' [* d5 }% x注意备份,风险自担 :0
    7 N0 P0 V9 Y) H8 d- C. Z0 |
    8 g) t! [0 x6 T6 ?% s5 g2 x& G5 ^% dP.S. , S* C, o2 q: z' \+ F' R- S, B
    前面帖子涉及的字体 Arial 并没有备用字体列表,所以直接跳到 CSS 设置的第二个字体。7 `- `* P9 [. H6 `" ~
    另外备用字体列表里的字体也可能有备用字体列表,当心别弄得太乱。
    7 ^' K  d' a, z, o1 d, l# p
    * T0 z5 H9 [7 y

    评分

    1

    查看全部评分

    该用户从未签到

    发表于 2018-2-11 11:47:10 | 显示全部楼层
    Oeasy 发表于 2018-2-10 13:08
    " g. [' j2 j3 c多谢指点。
    3 M9 f, e- E$ Z; P. W
    + d8 v/ U" j4 ?6 t

    % ~' f2 W, x$ l; b4 L1 D终于找到一款可以用的苹方了,谢谢
    - `. L4 S$ M( G8 ^5 N6 ~$ x* O) ?1 F7 F6 j9 R  n4 [( C6 j6 |

    评分

    1

    查看全部评分

  • TA的每日心情
    慵懒
    2023-10-14 18:34
  • 签到天数: 210 天

    [LV.7]常住居民III

    发表于 2018-2-11 14:15:31 | 显示全部楼层
    刚看到O兄在知乎答题:计算机中字体的原理是什么?
    2 |: h' Q/ H' ~. r* t7 ?2 w# q推荐一本书 <O'Reilly - Fonts & Encodings>,网上有 PDF 版,讲得很全面。

    评分

    1

    查看全部评分

    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-18 21:09 , Processed in 0.044255 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表