zj45499
千年狐狸
千年狐狸
  • UID29472
  • 注册日期2009-07-03
  • 最后登录2014-10-06
  • 发帖数1158
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4686回复:16

能否实现汉字用某特定字体,E文用某特定字体?

楼主#
更多 发布于:2009-10-29 12:20
不安装别的拓展. 就通过改userChrome.css的方法.
我想汉字都用"DFPheimediun-UN" E文全部都用宋体
谢过


hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
1楼#
发布于:2009-10-29 12:20
不可能吧?很多网页都没有指定文字的语言(Word 生成的网页除外),所以浏览器无从判断一个字符究竟是何种语言的,也就只能够按“先到先得”原则显示。
例如如果设定如下:
{font-family: Arial, "DFPheimediun-UN" !important;}

那么浏览器会优先用“Arial”显示,遇到“Arial”中没有的字符(也就是除罗马字母外的字符)时才用中黑體显示。
所以你要用宋体来显示英文的话,就要填“宋体”到上面“Arial”的位置,那么宋体中支持的字符也会优先用宋体显示,也就是大多数中文字也变成宋体了。
解决方法要么把宋体中的英文部分剥离出来成一个新字体放在上面“Arial”的位置,要么用一种相似的英文字体取代放在上面“Arial”的位置。
ferret
千年狐狸
千年狐狸
  • UID21816
  • 注册日期2007-11-11
  • 最后登录2013-03-22
  • 发帖数1114
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2009-10-29 12:20
在字体设置里把西方和简体中文里的字体设置为想要的,再取消勾选“允许页面使用。。”。
试了下几个网站都可以正确显示我选择的中英文。
zj45499
千年狐狸
千年狐狸
  • UID29472
  • 注册日期2009-07-03
  • 最后登录2014-10-06
  • 发帖数1158
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2009-10-29 12:20
我就是这么设置的啊....但是没有用....


kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
4楼#
发布于:2009-10-29 12:20
你要弄明白至少Windows的字体选择顺序,不幸的是它没有Linux那么个性化。

咱只说浏览器,只说Firefox,一般来说Firefox要显示多语言、多字符集的网页,首先要判断这个网页是什么语言——假设是中文(夹杂着一些英文、数字),并假设你的Firefox设定中关于简体中文的设定是无衬线字体,且是Tahoma。那么要显示这句话:
我的另1辆car也是保10洁

英文和数字(1,car,10)将用Tahoma显示,但是中文呢,注意,Tahoma里面没有中文字符,那么Firefox(Firefox知道“我的另”等字符是中文)将向系统询问:我找不到的字符在哪个字体中找?这就是字体Fallback技术,也称Fontlink技术,我已经提到过了
在注册表中找到:
\\\Registry\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

一看Tahoma的键值你就会明白,Tahoma被链接到了SimSun上面。也就是说你需要动一动注册表,例如把Tahoma这个键值里面,Simsun.ttc的前面加上你的DFPheimediun-UN。

但是这是有点麻烦并且有很多细节要注意的地方,并且需要反复重启才能看到效果。

还有就是你的要求很难实现,因为如果英文用宋体显示,Firefox会发现宋体中有也中文字符,那它根本不会启动Fallback程序。所以你不能用宋体的英文,而且宋体的英文太难看了,你怎么会喜欢?!


Tagged_by_kmc : 字体, font link
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
5楼#
发布于:2009-10-29 12:20
kmc:而且宋体的英文太难看了,你怎么会喜欢?!回到原帖

可能人家就只是想要一种等宽英文字体呢。推荐 Lucida Console 或者 Consola 。如果楼主真的觉得唯宋体的英文不用了,那么就选 Courier New 吧。
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
6楼#
发布于:2009-10-29 12:20
宋体的英文部分也不是等宽,等宽的是“新宋体”,即便如此,好像也只是把本来不等宽的字符都调整成等宽的。你推荐的那几个才是王道。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
zj45499
千年狐狸
千年狐狸
  • UID29472
  • 注册日期2009-07-03
  • 最后登录2014-10-06
  • 发帖数1158
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2009-10-29 12:20
我用的是xp替换宋体(就相当于微软雅黑...)


zj45499
千年狐狸
千年狐狸
  • UID29472
  • 注册日期2009-07-03
  • 最后登录2014-10-06
  • 发帖数1158
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2009-10-29 12:20
我想那样主要是因为DFPHEIMEDIUM-UN的英文是不等宽的..都挤在一起了..我的意思就是说英文不用那个的 只要是等宽(像微软雅黑)的都可以...
到底应该怎么设置呢?
修改
\\\Registry\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink

会不会改掉系统字体 就是说文件夹名字等等?


kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
9楼#
发布于:2009-10-29 12:20
雅黑的英文是Segoe,怎么会是等宽的?你这个雅黑也是修改过的吧?

所以你应该把英文部分设置成Courier New或者Lucida Console,然后在注册表中添加一个Lucida Console的Multi String值,里面写你DFPHEIMEDIUM-UN的字体名,例如DFPHEIMEDIUM-UN.ttf


上面别试了,我记起来:Windows下面无法超越宋体的干预,要是fontlink可以方便地转链接到任意中文字体,也就不会有人搞替换宋体了。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
zj45499
千年狐狸
千年狐狸
  • UID29472
  • 注册日期2009-07-03
  • 最后登录2014-10-06
  • 发帖数1158
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2009-10-29 12:20
是的 我的这个雅黑是改过的....
这么说还是没有办法罗?,,,,,,,


hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
11楼#
发布于:2009-10-29 12:20
在 userChrome.css (对应界面的样式)和 userContent.css (对应网页的样式) 中加入如下代码:
*{font-family: Consolas, "DFPheimediun-UN" !important;}

这样就可以了。
当然“Consolas”可以改成“Courier New”或“Lucida Console”,随你喜欢。

kmc 想多了,楼主只是想 Firefox 内显示自己想要的字体吧,这个可跟 Windows 的字体设置无关哦——除了标题栏。
zj45499
千年狐狸
千年狐狸
  • UID29472
  • 注册日期2009-07-03
  • 最后登录2014-10-06
  • 发帖数1158
  • 经验11枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
12楼#
发布于:2009-10-29 12:20
会跟在工具-选项里的设置冲突吗? 是不是有那个了选项里就不用管了?..
---------------------------没问题了-----------------
选的*{font-family:aurulent sans, "DFPHeiMedium-UN" !important;}
看起来蛮不错!!谢谢大家哦!


kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2022-09-22
  • 发帖数9186
  • 经验397枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
13楼#
发布于:2009-10-29 12:20
hzhbest:在 userChrome.css (对应界面的样式)和 userContent.css (对应网页的样式) 中加入如下代码:
*{font-family: Consolas, "DFPheimediun-UN" !important;}

这样就可以了。
当然“Consolas”可以改成“Courier New”或“Lucida Console”,随你喜欢。

kmc 想多了,楼主只是想 Firefox 内显示自己想要的字体吧,这个可跟 Windows 的字体设置无关哦——除了标题栏。
回到原帖

原来Firefox的CSS还有这样的字体选择顺序,谢谢了。

另外这个CSS的好处可以针对域名,但是能不能像Firefox字体选项中那样,针对网页语言呢?我希望简体和繁体的中文字体用不同的。

Tagged_by_kmc : font select fallback
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
hzhbest
千年狐狸
千年狐狸
  • UID22640
  • 注册日期2008-01-15
  • 最后登录2017-04-06
  • 发帖数1763
  • 经验476枚
  • 威望3点
  • 贡献值414点
  • 好评度89点
  • 社区居民
  • 忠实会员
14楼#
发布于:2009-10-29 12:20
另外这个CSS的好处可以针对域名,但是能不能像Firefox字体选项中那样,针对网页语言呢?我希望简体和繁体的中文字体用不同的。

/* 全局字体 */
*{font-family: Arial, STXiHei !important;}
:lang(en), :lang(en) *{font-family: "Times New Roman" !important;}
:lang(zh-TW), :lang(zh-TW) *{font-family: "LiHei Pro" !important;}

其他语言我连怎么搜出其网页都不清楚(例外的下述),所以只列了上面两个,经测试成功,示例网页:
繁体中文的:http://www.tda.org.tw/
英文的:http://www.cyf.vic.gov.au/home_page/quick_help2/first-child-and-family-information-referral-and-support-teams

示例网页只是通过 Google 随便搜出来的,不代表任何观点和含义。

例外的是日语,我用“:lang(jp)”没法让任何日文网页显示我要的字体,难道是其他代码?

要注意的是,语言为“Unicode”的网页或网页容器均会使用默认设置,也就是上面代码中第二行的设定;没这行的话则是优先使用跟系统语言相对应的语言下指定的字体,例如简体中文系统就用设置中“简体中文”下选用的字体。但 Firefox 也提供了这样一个选项来给你选择 Unicode 下应把网页“当成”什么语言处理:

不过也仍然只是个自定义优先级而已,浏览器自己不能判断 Unicode 下一个中文字例如“三”字究竟是简体的还是繁体的还是日文的。
上一页
游客

返回顶部