当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]我的texlive+CJK安装后,加粗字体显示效果很不好
帖子发表于 : 2008-04-09 15:09 

注册: 2007-11-15 16:04
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
基本上都是根据 Yue Wang 的这篇文章: TeXLive 2007 CJK Chinese Howto 来配置的
但是配置完毕之后,发现加粗的字体显示效果很差
测试代码为:
代码:
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{kai}
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
\end{CJK}

\bf
\begin{CJK}{UTF8}{kai}
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
你好!这是楷书latex你好!这是楷书latex你好!这是楷书latex
\end{CJK}
\end{document}


经过编译后得到的pdf如下图所示
图片
加粗部分的字体,感觉有些部分变粗了有些部分却没变,觉得很奇怪
google了好久也不知道是什么原因

初步怀疑会不会是根据Yue Wang的文章建立的fd文件有点不对,根据Yue Wang的文章,建立的c70hei.fd文件的内容应该是:
代码:
% This is c70hei.fd for CJK package.
% created by Edward G.J. Lee
% modify by Yue Wang
\ProvidesFile{c70hei.fd}
\DeclareFontFamily{C70}{hei}{\hyphenchar \font\m@ne}
\DeclareFontShape{C70}{hei}{m}{n}{<-> CJK * hei}{}
\DeclareFontShape{C70}{hei}{bx}{n}{<-> CJKb * hei}{\CJKbold}
\endinput

我也不知道里面的每一条语句是什么意思,只是在此后建立的c70fs.fd、c70li.fd、c70kai.fd...的文件中,直接把文件中的"hei"替换成"fs"、或者是"li"等等,不知道这样对不对。假如是这样建立fd文件不对的话,那应该怎么解决,这个fd文件里面的各句话是什么意思?
假如跟这些fd文件的建立没有关系的话,那这个问题又是怎么引起的,该如何解决?

希望大牛赐教


附件:
screenshot1.png
screenshot1.png [ 51.16 KiB | 被浏览 1360 次 ]



最后由 longzy 编辑于 2008-04-09 15:22,总共编辑了 1 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-04-09 15:27 

注册: 2007-11-15 16:04
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
英文的加粗编译后显示是正常的
就是中文(宋体、仿宋黑体等等都试过了)的加粗编译后显示不正常


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-04-09 23:13 
头像

注册: 2005-08-15 0:04
帖子: 1880
地址: 南7技校
送出感谢: 0 次
接收感谢: 0 次
打印出来是没有问题的,不必要太较真这个效果..


_________________
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-04-09 23:35 
头像

注册: 2005-08-15 0:04
帖子: 1880
地址: 南7技校
送出感谢: 0 次
接收感谢: 0 次
如果要解决的话,有个办法,通过 fontforge 等程序将你需要的字体加粗,然后按照同样的文档将加粗的字体作为新字体作一遍,在对应的 fd 文件中进行映射,比如对应上面的楷体的文件是 c70kai.fd, 后面的一行,如果你做的粗体的楷体的名字是 kaibd, 那么就在相应的粗体的那行(有 \CJKBold 的那里), 将映射的字体改成 kaibd, 并去掉 CJKBold 的声明。举例来说,修改后的 c70kai.fd 看起来应该类似这个样子

代码:

\ProvidesFile{c70kai.fd}

\DeclareFontFamily{C70}{kai}{\hyphenchar \font\m@ne}

\DeclareFontShape{C70}{kai}{m}{n}{<-> CJK * kai}{}
\DeclareFontShape{C70}{kai}{bx}{n}{<-> CJKb * kaibd}{}

\endinput


否则按照 \CJKBold 加粗的效果不好也没有办法。效果不好的详细原因我还不是很清楚....


_________________
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-04-10 9:19 

注册: 2007-11-15 16:04
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
zhan 写道:
如果要解决的话,有个办法,通过 fontforge 等程序将你需要的字体加粗,然后按照同样的文档将加粗的字体作为新字体作一遍,在对应的 fd 文件中进行映射,比如对应上面的楷体的文件是 c70kai.fd, 后面的一行,如果你做的粗体的楷体的名字是 kaibd, 那么就在相应的粗体的那行(有 \CJKBold 的那里), 将映射的字体改成 kaibd, 并去掉 CJKBold 的声明。举例来说,修改后的 c70kai.fd 看起来应该类似这个样子

代码:

\ProvidesFile{c70kai.fd}

\DeclareFontFamily{C70}{kai}{\hyphenchar \font\m@ne}

\DeclareFontShape{C70}{kai}{m}{n}{<-> CJK * kai}{}
\DeclareFontShape{C70}{kai}{bx}{n}{<-> CJKb * kaibd}{}

\endinput


否则按照 \CJKBold 加粗的效果不好也没有办法。效果不好的详细原因我还不是很清楚....


请问用fontforge应该怎么对字体加粗呢??
加粗后,也要对应的建立一个map文件吗?可以的话,可不可以具体说一下啊
谢谢了


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-04-10 9:23 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
字间距也不对的。一看就看出了。 :lol:


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-04-10 11:29 
头像

注册: 2005-08-15 0:04
帖子: 1880
地址: 南7技校
送出感谢: 0 次
接收感谢: 0 次
fontforge 没有用过,我也不知道怎么用,只是知道有这样的一个办法。

先前已经说清楚了,将加粗的字体当做一个全新的字体, 进行你如同正常的楷体那样的工作。
然后再进行映射。。

个人以为对楷体这样的字体,加粗没什么必要...

结合那个 cjkhowto, 这个应该够具体了吧,关于 fontforge 的用法,搜索一下吧,应该会有相关的文章.

好像在这里 http://www.ctex.org/FontForge


_________________
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-04-10 12:15 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
最省事的办法直接在fd文件里用黑体替换掉\CJKbold,我也不喜欢这个宏。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-04-10 14:30 

注册: 2007-11-15 16:04
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
谢谢7楼8楼
我暂时的方法也就是直接在fd文件中用hei替换掉CJKbold
假如有严格要求的话,以后可以考虑尝试一下4楼的方法,看看打印出来是不是完全一样


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译