LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: jimmyfoster

实在是搞不定Mandrake 9.1的CJK,请求帮助

[复制链接]
 楼主| 发表于 2003-7-6 10:47:14 | 显示全部楼层
通过一番折腾还是搞清楚了一些东西。
<1>TeX生成dvi,如何使得dvi正常显示中文(需要什么字体)
<2>CJK包中的gbklatex脚本做了什么,为什么这么做,为什么
自己的做法不需要gbklatex,CJK+LaTeX如何工作的。
<3>linux中使用ghostscript,postscript打印,为什么打不出
中文,他们需要什么。
<4>pdflatex如何生成pdf的过程,它需要什么字体。
<5>如何让打印和TeX多一种字体。

如果我将自己的安装过程做成一个包,那我不是成了"大牛"了,
但我不是。 ;)
发表于 2003-7-6 11:46:07 | 显示全部楼层

直接将那个texmf-local打包就可以了

不知道这样做出来的算不算是免安装版的CJK :-)
发表于 2003-7-6 15:20:17 | 显示全部楼层
我的CJK可以用宋体,但楷体和BIG5不可用,不知如何。
发表于 2003-7-6 15:31:08 | 显示全部楼层
没有粗体,用粗体的话,据说还要加个字体,或者用黑体代替,可现在我的楷体还没搞定,真是麻烦。
发表于 2003-7-6 15:46:25 | 显示全部楼层
哪位兄弟可以贴个中文的Tex文件,外加效果图,给大家看看。
 楼主| 发表于 2003-7-6 16:42:59 | 显示全部楼层

好吧,我就来贴一个。

对于CJK中中文字体的粗体问题,引一段sk8er主页上的说明。
怎样让汉字可以显示粗体?

你是否发现,在 \section 标号的小节中,英语是粗体表示的,而汉字却没有变化?很多时候你想让汉字也成为粗体。


如果你用 \textbf{你好}, 你会发现根本没有变化。就像你在 Word 里使用"粗体",打印出来也没有粗体效果一样。因为 Word 其实只是显示在屏幕上的时候让你看到很"粗",但是其实你没有"粗宋体"这个字体,它打印时是不会打印出粗体的。Word 还有很多比如"下划线"之类的字体变化,但是实际上那些都是不符合排版的美学的。


CJK 宏包为没有粗体的人提供了一个"穷人"的办法:在 CJK 的字体定义文件中设置 \CJKbold. 看看你的 c19song.fd 里是否有以下内容:

\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbksong}{\CJKbold}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbksongsl}{}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{\CJKbold}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbksongsl}{}
\endinput



如果有的话,你用 \textbf{粗体} 就会得到一种"穷人的粗体",它是把宋体汉字平移了三次重合在一起实现的,看看你的 CJK.sty 有如下定义:

\DeclareRobustCommand{\CJKsymbols}[2]{
  \char #1\char #2\relax
  \ifCJK@bold@
    \hbox to \CJKboldshift{\hss\char #1\char #2}
    \hbox to \CJKboldshift{\hss\char #1\char #2}
  \fi}



这样的到的粗体显然是非常难看的,在PDF文件里显示明显有"彩虹"效果!根本不能用。所以 gbkfonts 生成的 fd 文件全部去掉了这个选项。


字体不是一个你想怎么变就可以怎么变的东西,它如果设计的时候就不是粗体,那你是不可能把它变成粗体的。如果你用LaTeX缺省的英文字体,一般的时候是 cmr10, 用粗体的时候其实用的是 cmbx10。 cmr10 和 cmbx10 是同一家族(Computer Modern)的两种不同的字体。cmbx 并不是 cmr 做了什么几何变换得到的,甚至 cmr10 也跟本不是 cmr5 扩大了两倍变出来的!


字体都是专门的设计,每一个尺寸的每一笔每一划都经过了字体设计者的精雕细琢。它们有的也可以变化大小,比如很多TrueType和Type1字体都可以随意变化尺寸,但是它们对每一个尺寸范围都设置了不同的参数,这并不是一个等比例的"缩放"过程。如果你把一个LaTeX文档里的 5pt TrueType 字体抓图抓下来,然后用一个图像处理程序(比如 ImageMagick)把图片扩大到原来的两倍,跟你在文档里直接用这个字体的 10pt 的效果肯定不一样,字体的长宽比例,甚至很多弧线的角度都有很大差别。


"原设计"只有放在"原尺寸"才是最好看的,更不用说"粗体"和"普通体"之间这么巨大的变化了。如果你简单的把普通字体经过什么几何变换得到一个"粗体",那么它在美学上是过不了关的,你的字符会"不融合",使得文档"黑白不均",文档的整体效果会受到很大影响。


所以,你不应该把你正在用的这个"宋体"变"粗",而必须去找专门的"粗宋体"来用。但是如果你没有,那就用黑体代替好了。


做法是这样:当要求使用粗体(bx)的时候,用黑体代换。你可以把你的 c19song.fd, c19kai.fd, ... 都改成如下的样子:

\DeclareFontFamily{C19}{song}{}
\DeclareFontShape{C19}{song}{m}{n}{<-> CJK * gbksong}{}
\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbkhei}{}
\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbkheisl}{}
\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{}
\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbkheisl}{}
\endinput



这样黑体就会作为"粗体"出现在章节标题,粗体环境中了。


如果你运气好,你有一个真正的漂亮的"粗宋体",比如它的名字叫做 gbkBsong。你就可以仿造上面在 c19song.fd 加入:

\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbkBsong}{}



如果你还有一个"粗楷体"叫做 gbkBkai。你就依葫芦画瓢,修改 c19kai.fd:

\DeclareFontShape{C19}{kai}{bx}{n}{<-> CJKb * gbkBkai}{}

-----------引自 http://learn.tsinghua.edu.cn/homepage/015450/tex_frame.html

所谓的"穷人的粗体"就是如下的效果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2003-7-6 17:26:04 | 显示全部楼层
MDK9.1中没有带黑体吧,我连楷体都还没搞定呢。
 楼主| 发表于 2003-7-6 18:11:24 | 显示全部楼层

tex文件如下:

\documentclass{article}
\usepackage{CJK}
\begin{document}
        %font song use gbksong
        \begin{CJK*}{GBK}{song}
                这一句是宋体。
                \textbf{这一句是宋体(粗)。}\\
        \end{CJK*}

        %font kai use gbkkai
        \begin{CJK*}{GBK}{kai}
                这一句是楷体。
                \textbf{这一句是楷体(粗)。}\\
        \end{CJK*}

        %font fs use gbkfs
        \begin{CJK*}{GBK}{fs}
                这一句是仿宋。
                \textbf{这一句是仿宋(粗)。}\\
        \end{CJK*}

        %font hei use gbkhei
        \begin{CJK*}{GBK}{hei}
                这一句是黑体。
                \textbf{这一句是黑体(粗)。}\\
        \end{CJK*}

        \begin{CJK*}{GBK}{song}
                ----------------- 上面是被sk8er成为''穷人的粗体字''\\
        \end{CJK*}
\end{document}
发表于 2003-7-7 17:14:49 | 显示全部楼层
既然人家已经搞定了繁体中文,想必简体中文也不会太难。希望能将研究成果尽快和有关方面取得联系,将其与官方版本进行合并。只有这样,才能让研究成果广为流传。
发表于 2003-7-8 15:53:12 | 显示全部楼层

庆祝一下

多谢jimmyfoster的指导,今天我终于用上中文的TeX了。哈哈哈哈!
要补充的就是为了使gbkfonts程序能够正常运行,需要安装Mdk的一个软件包tetex-afm!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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