tex新手:texLive中为什么还要使用cjk包?latex cjk文档和texLive文档兼容吗?

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
Jamsa
帖子: 147
注册时间: 2006-03-17 13:40

tex新手:texLive中为什么还要使用cjk包?latex cjk文档和texLive文档兼容吗?

#1

帖子 Jamsa » 2007-08-19 8:59

刚刚接触tex,问题多多,请大家多多帮助:
1.我刚安装了texlive2007也没有配置字体(下面的都是这样的情况,只是安装完了texlive2007)什么的,直接就可以tetex编译下面的代码:

代码: 全选

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec}
\setromanfont{AR PL ShanHeiSun Uni}
\begin{document}
\section{枫桥夜泊}
月落乌啼霜满天

江枫渔火对愁眠

姑苏城外寒山寺

夜半钟声到客船
\end{document}
只要setromanfont的字体存在就可以显示中文,既然是这样为什么还要使用cjk包呢?

而且,在没有配置中文字体时也可以使用pdflatex编译下面的文档,并生成正确的中文显示:

代码: 全选

% in UTF-8 encoding
% utf8bks3: test CJK pdf outline.
% Edward G.J. Lee 2006.02.21
\documentclass[12pt,a4paper]{article}
\usepackage{CJKutf8}%如果要使用中文标签,必须使用这个宏包取代CJK宏包。这个包也是CJK的作者写的
\usepackage[T1]{fontenc}%这两行都是生成中文标签必须的。
\usepackage[unicode]{hyperref}%如果用pdflatex生成,那么把dvipdfm去掉.
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
\author{李果正 Edward G.J. Lee},
\title{中文 PDF outline 测试}}
\date{\today}
\maketitle
\tableofcontents
\section{将进酒}
君不见,黃河之水天上来,奔流到海不复回。

\section{桃花源记}
晋太元中,武陵人,捕鱼为业,缘溪行,忘路之远近。

\newpage%要编译不出错,在最后必须有这一行。这也是生成中文标签必须的,但不会对最后的pdf有影响。
\end{CJK*}
\end{document}
但产生了警告:

代码: 全选

(/usr/local/texlive/2007/texmf-dist/tex/latex/CJK/UTF8/UTF8.chr)
! Extra }, or forgotten \endgroup.
l.11 \title{中文 PDF outline 测试}}

而我编译下面的文档时由于缺少字体又出错,但在输入quit后仍然生成了部分文档(其中的一个字体我的机器上有,使用SungtiL的部分都正确的生成了):

代码: 全选

% This is the file `arphic-sampler.tex' which shows the shapes
% of the Arphic fonts for simplified and traditional Chinese.
%
% written by Werner Lemberg <wl@gnu.org> 17-Jul-2005

\documentclass[12pt]{article}

\usepackage{CJK}


\begin{document}

\begin{center}
\Large Arphic Font Sampler
\end{center}

\begin{CJK*}{UTF8}{}

\CJKtilde

\CJKfamily{gbsn}
\noindent AR PL SungtiL GB:

\noindent 本常问问答集~(FAQ list)~是从一些经常被问到的问题及其适当的解
答中,以方便的形式摘要而出的。跟上一版不同的是,其编排结构已彻底改变。
\textbf{有关新结构的细节,可参考「如何阅读本问答集及了解其编排结构」该
  项中的说明。}

\vspace{1cm}

\CJKfamily{gkai}
\noindent AR PL KaitiM GB:

\noindent 本常问问答集~(FAQ list)~是从一些经常被问到的问题及其适当的解
答中,以方便的形式摘要而出的。跟上一版不同的是,其编排结构已彻底改变。
\textbf{有关新结构的细节,可参考「如何阅读本问答集及了解其编排结构」该
  项中的说明。}

\vspace{1cm}

\CJKfamily{bsmi}
\noindent AR PL Mingti2L Big5:

\noindent 本常問問答集~(FAQ list)~是從一些經常被問到的問題及其適當的解
答中,以方便的形式摘要而出的。跟上一版不同的是,其編排結構已徹底改變。
\textbf{有關新結構的細節,可參考「如何閱讀本問答集及了解其編排結構」該
  項中的說明。}

\vspace{1cm}

\CJKfamily{bkai}
\noindent AR PL KaitiM Big5:

\noindent 本常問問答集~(FAQ list)~是從一些經常被問到的問題及其適當的解
答中,以方便的形式摘要而出的。跟上一版不同的是,其編排結構已徹底改變。
\textbf{有關新結構的細節,可參考「如何閱讀本問答集及了解其編排結構」該
  項中的說明。}

\end{CJK*}

\end{document}


%%% Local Variables:
%%% coding: utf-8
%%% mode: latex
%%% TeX-master: t
%%% End:
为什么会出现上面的情况?

2.请问latex cjkutf8 cjkgbk编写的文档与texLive兼容吗?

3.我有一个文档有时想在windows下用miktex,有时需要在ubuntu下使用texLive,这可以做到吗?该怎样处理中文问题?

4.miktex的中文处理是什么样的?是latex ckjutf8的方式吗?
zhangsong023
帖子: 768
注册时间: 2006-09-20 19:56

#2

帖子 zhangsong023 » 2007-08-20 0:59

为什么会出现上面的情况?
你是用xetex编译的吧,xetex可以调用系统字体。
至于为什么还要使用CJK,置顶贴中yulewang已经说得非常清楚了(顺便再感谢一下置顶贴)。
2.请问latex cjkutf8 cjkgbk编写的文档与texLive兼容吗?
根本没有冲突一说,texLive是TeX的一种发行版,cjk只是宏包,可以带在任何一个发行版中。
3.我有一个文档有时想在windows下用miktex,有时需要在ubuntu下使用texLive,这可以做到吗?该怎样处理中文问题?
可以,Windows下用gbk,Linux下用utf8(也不必严格这样做,不过应该可以少很多麻烦)。
4.miktex的中文处理是什么样的?是latex ckjutf8的方式吗?
Windows下latex用得少,不是很清楚miktex具体带的包,不过中文肯定是通过CJK处理,因为它目前最成熟,宏包兼容问题最少。
Jamsa
帖子: 147
注册时间: 2006-03-17 13:40

#3

帖子 Jamsa » 2007-08-20 12:46

谢谢2楼的兄弟。是不是可以这样理解:
1.texLive中使用的tex发行版是xeTex;而目前用得最多的是latex+cjk包(使用的tex发行版是teTex)。
2.texLive中使用CJK宏的时候实际上是xeTex在使用cjk宏
4.latex+CJK的时候是teTex在使用latex.fmt宏包和CJK宏包
zhangsong023
帖子: 768
注册时间: 2006-09-20 19:56

#4

帖子 zhangsong023 » 2007-08-21 18:53

Jamsa 写了:谢谢2楼的兄弟。是不是可以这样理解:
1.texLive中使用的tex发行版是xeTex;而目前用得最多的是latex+cjk包(使用的tex发行版是teTex)。
2.texLive中使用CJK宏的时候实际上是xeTex在使用cjk宏
4.latex+CJK的时候是teTex在使用latex.fmt宏包和CJK宏包
都不对。
建议先看看书。
cdacl
帖子: 153
注册时间: 2007-01-13 20:15

#5

帖子 cdacl » 2007-08-29 11:43

代码: 全选

1.texLive中使用的tex发行版是xeTex;而目前用得最多的是latex+cjk包(使用的tex发行版是teTex)。
texlive只是一个发行版,但它集成了很多tex的组件,包括tex、xetex、latex等等,这些你都可以在doc目录下看到相关的介绍,还包括各种包,比如支持中日韩语言的cjk包。你想用哪个编译你的tex文档就用哪个,比如xetex就可以用系统的字体、latex须用cjk包,但你的文档也要符合相应的格式,它们之间有有些语法不一致。

代码: 全选

2.texLive中使用CJK宏的时候实际上是xeTex在使用cjk宏
同上,你用xetex编译你的tex文档它就调用系统字体,你用latex编译就使用cjk包。
回复