Texlive 2013 如何配置使其支持中文输出?

看了会, 忍不住回复下. 刘海洋书的建议是正确的. 也是目前使用 tex 系统的最优建议.
之所以推荐用 CTAN 官方的包, 那是因为 CTAN 官方更新最及时. 很多 linux 发行版的 texlive 落后官方很多, 更新即时的就没几个发行版可以做到.
而自己独立安装 CTAN 的 texlive, 可以做到绿色安全, 完全和 linux 发行版无关的版本控制. 即使重装系统或者 linux/win 多系统共同使用都很方便.(至少我就是这么干的). 所以推荐用 CTAN 方案, 且自己安装一个虚拟包来阻止 linux 源自带的 texlive.CTAN 已经给了 suse 的虚拟包:
ctan.org/pkg/texlive-dummy-opensuse

当然要求不高的人直接用源里的系统关系也不大 (主要因为目前中文系统部分已经比较稳定).

PS: 关于 tex 系统中文字体部分, 那要怪 linux 或者中国没有提供免费使用的一套字体. 不是微米黑这样一个就行了. 至少得有宋体, 黑体, 楷体等和 ctex 宏包匹配 (字体风格类似). 不过目前正有人在制作免费的一套中文字体, 下一版 texlive 估计能释放出来. 这样 tex 的中文系统就完美了.

奇怪, 我回复了一大堆话, 居然没发出来.
算了. 我强调一遍, 刘海洋书的描述是目前使用 tex 系统方案中的最优解.

之所以推荐用 CTAN 官方的 tex, 是以为 linux 发行版通常都落后很多, 更新不及时. 装虚拟包很简单, 就是为了阻止 linux 系统自带的 texlive.
suse 的虚拟包在此:
ctan.org/pkg/texlive-dummy-opensuse

不认同。

我用惯了包管理器,还真不愿意手动装,那样做隐患很多的。 我个人用 windows 和 mac,最无法忍受的环节就是安装软件。

关于版本的问题,我也不敢苟同。首先 Linux 发行版源里的 texlive 一般都不旧的,其次用发行版的源,我想说你升级很方便,以后新版本一进入源就滚上去了。 手动安装,我想绝大部分人恐怕是三年五年都不会去升级的。 就我观察而言,像我们研究组里面用 linux 的基本软件都是最新的,用 mac 的基本软件都是落后几年的,上次还有个关于 git 升级的讨论呢,我发到水区的。

至于虚拟包为什么这么流行。我个人猜测这是由于很多 linux 用户也仍然带着 windows 和 mac 的落后思维来看软件的安装和管理。

另外就 texlive 的版本,openSUSE、fedora、arch、ubuntu 全部都是 TeX Live 2013, 不旧吧? Debian 这么求稳的发行版,也是 TeX Live 2012,也够用啊,我个人还是更在意 Debian 的 KDE 版本旧。

最后,虚拟包不是万能的。以后源里面的 texlive 升级了,虚包可能被填实。而且发行版的 texlive 都是划分好的,如果你手动装,以后 octave 一类的软件就可能都要像在 windows 和 mac 里面一样自己手动装了。

发出来了。

我再说一次,我坚持认为用软件源是最优解。 而且上面我已经证实了大部分主流 发行版(openSUSE、Fedora、Arch、Ubuntu 等)的 TeX Live 都是非常新的。

fandol 字体我非常关心。希望能早点进入 texlive 发行,然后 openSUSE 里我就可以用了。openSUSE 的软件更新速度我不担心,大不了等到下一个发行周期就进去了,进不去也可以提前挂源升级。

但是 fandol 字体并没有说明其来源,仅仅是传言来自某破产厂商字型而已……

我也看的这一篇。我学会用 XeLaTeX 就是从这篇开始的。

但是这篇很推崇 Adobe 字体,称其为免费字体。我感觉 Adobe 中文字体确实比 Uming、UKai 这两个字体好。但是很怀疑是否真正开放。因为 Adobe 官方网站似乎没有免费下载的。 而且协议应该是不开放的所以官方源没有这几个字体。

我想自己什么时候补充补充材料,但是自己水平也太差了一点。

还有就是 ps2pdf 用起来很爽我喜欢。

那你在 CTeX 发行版里面的包就是最新的吗?未必吧,来看一下 CTeX 的 Release Notes ctex.org/CTeXReleaseNotes

我们来看看 openSUSE 中的 xetex 版本:

这里面明确说是 TeX Live 2013 for SUSE Linux. 如果 Linux 发行版的 TeX 也算旧的话,那么 CTeX 得旧到什么程度?
:nauseated_face:
由于一般人拿到 CTeX 发行版也基本不升级,所以我是不是可以这么说:

恩。很多人不是不想升级,而是没法自己跟升级,而且就算知道出了新版本,升级也太麻烦、消耗太大。

用包管理器全部解决得轻轻松松。

hehe 我本人用 linux 好歹也十多年了. 还 win 思维? 包管理我好歹也比你用的早. 我当年用 rpm 系列还远没 deb 系的 apt 好用. 连在线装 rpm 的都不成熟.
我再强调一遍, 推荐 CTAN 官方并非基于包管理或者 win 包管理思维, 而是基于 CTAN 的即使跟新. 你根本不知道当年大概在 texlive2009 的年代, 中文部分改版很大的时候, 很多发行版的 texlive 还停留在 texlive2007 的时代. 包括 debian/ubuntu/redhat 系. 导致根本没法使用最新技术的 ctex(包含了 xeCJK 等宏包) 的新技术 (用 xelatex). texlive 是独立的系统, 它可以和操作系统完全无关. 如果你用更新技术的 ConText/luatex(MKIV) 技术, 就更需要专门搭建一个独立的小型 luatex 系统.

以至于当时还有很多人使用古老的 pdftex 引擎用 CJK 宏包.
ps: 目前几大版本确实是 texlive2013 的版本. 但宏包的更新还是慢, 你自己装下 texlive 就知道了, 宏包几乎每天都有更新. 当然, 目前的发行版的更新速度且加上中文系统的暂时性稳定 (指 ctex,xeCJK 部分), 所以用 linux 发行版的官方版还是可接受的. 一般 texlive 会在年中的时候更新.

PS2:texlive 的安装完全是基于它自己一套的包管理系统 (包括 gui 和命令行的包管理命令). 事实上 texlive 恰恰用的是 linux 下的包管理理念. 其实 windows 下的 miktex 的包管理做的更出色, 能智能判断系统缺乏的宏包, 在编译的时候能自动下载安装. 所以, 你也不要用主观的眼光去评价.

那你在 CTeX 发行版里面的包就是最新的吗?未必吧,来看一下 CTeX 的 Release Notes ctex.org/CTeXReleaseNotes

我们来看看 openSUSE 中的 xetex 版本:

这里面明确说是 TeX Live 2013 for SUSE Linux. 如果 Linux 发行版的 TeX 也算旧的话,那么 CTeX 得旧到什么程度?
:nauseated_face:
由于一般人拿到 CTeX 发行版也基本不升级,所以我是不是可以这么说:

楼上这位, 你自我感觉还挺好的嘛! 我不明白你为啥没有读懂我的话还是说故意曲解. 我明明说的是 texlive 系统, 刘海洋推荐的也是 CTAN 官方的 texlive 系统. 怎么到你嘴里就变成了 ctex 套装了? 这哪跟哪啊. 怪不得你们要认为 texlive 违背包管理理念. 汗死我了. 能不能先把几个关键词的概念搞清楚? ctex 套装是 ctex 论坛的某人自己根据 miktex 系统根据中文使用习惯打包的系统.

恩。很多人不是不想升级,而是没法自己跟升级,而且就算知道出了新版本,升级也太麻烦、消耗太大。

用包管理器全部解决得轻轻松松。
texlive 自己就是用包管理器的!. 我当初选 archlinux 就是因为其他几个发行版跟新太慢.

顺便给 ls 两位展示下 texlive 的包管理系统.


顺便看了下你提供的这篇文档, 文档写自 2007 年. 当年还没有 xeCJK 宏包, 太古老了, 不建议各位参考这篇文档.
它直接用了 fontspec 做底层的字体调用, 没错, 确实可以, 但没有解决中英文混排的断行, 标点压缩等问题. 直接影响排版质量.

用 xelatex 最好用官方的 ctex 宏包, 你愿意. 也可以用 xeCJK 宏包. 排版的引擎你可以选择 xelatex. 还能自动解决中文和英文的自动插入空格问题.
目前的 texlive 已经帮你解决了绝大部分的中文使用问题, 为啥还要认为不接地气? 你根本不用自己配置和设置字体.

再顺便把 lz 的问题也回复了.lz 一定是用了古老的 CJK 模板. 就如二楼那位贴的 CJK 古老模板. 那样你直接编译当然通不过. 因为你系统缺乏 type1 字体.
你非要用 CJK 宏包, 也请你使用 ctex 宏包来替代 (如果你用 latex 编译, 就会自动调用 CJK 宏包, 你不需要关系这些底层的事情).
你只要在 ~/.fonts 里添加中易六套中文字体就 OK 了.

我确实用 Linux 比你年限短。我用 Linux 也快要 9 年了。红帽系、Debian 系、SUSE 系、Mandriva 系、Arch 系我都长时间用过,也尝试过 slackware、gentoo 和 CRUX。Linux 之外的系统,Windows、Mac OS X、和 Haiku 我都用过。

我再重复我提出的质疑,再增加几条质疑:
1) 使用光盘安装,可能“新”那么一点,但是你能自己更新吗? 使用 Linux 的包管理器从源里面安装,如果版本升级了,只需要 zypper 升级一下系统,版本就滚上去了,使用光盘安装有这么方便吗? 至少我身边不用 Linux 的的人来看,他们的软件基本永不更新。
2) 你提出使用虚包。确实可以用虚包骗一下。但是系统升级的时候,包管理器还不是会把虚包填实?
3) 你提出的“TeX Live”是独立系统与操作系统其他部分无关,是伪命题。 使用反证法予以证明,我可以随意列举诸如 Python-Sphinx、octave 这样的软件包,都依赖 TeX 相关的包。不采用系统的包管理器安装,而采用光盘装,那么就意味着以后这些软件你想安装、想升级,全部都手动搞定吧!否则系统会让你再次安装 TeX Live。当然更重要的是你没有一个可以自动处理这些软件包和 TeX 包之间的错综复杂的依赖关系的工具,那就可以等着痛苦了。我认识很多用 Windows 和 Mac 的用户,所采取的策略就是一旦安装好,永远不升级。 而我平时都用包管理器、用源,从来没有为这些问题操心过。

你并没有回复清楚这些质疑。

前面就有个帖子讲了用光盘装 TeX Live 导致被迫手动编译 Octave 的事实。

所以无论如何,我都反复强调 Linux 用户应该使用包管理器和源来安装 TeX Live。 比 Windows 和 Mac 用户手动安装方便很多,而且对日后的系统维护更是省心省力。

我每次都看到有很多人装个 TeX 都花好长时间,实际上只需要包管理器勾选一下睡一觉就自动完成的事情,何苦呢? 何况那种安装方法是后患无穷的。

我提个问题吧:

我使用 docbook、Sphinx、asciidoc,都依赖一定版本的 TeX Live,还依赖大量特定版本的 Python 包。请问怎样使用 TeX Live 自身的包管理器统筹规划、自动处理这些依赖?

使用系统自带的包管理器安装 TeX Live,后面这些东西的安装、升级,都全自动,省心不说还不出问题。

这个手动装、那个手动装,最后的结果就是这些东西全部一起手动装,然后永不升级直到换电脑。

[quote=" 奇瑞艾瑞泽"][/quote]

我很奇怪你居然没看懂我说的 texlive 本身就自带包管理系统. 完全可以在命令行里或者 gui 的包管理器里直接升级. 我贴的图已经清楚的表明了这点. 你只要打开包管理器, 载入源, 就能升级, 按下鼠标即可. 能升级系统的包, 就一定能操作 texlive. 我这里并非反对用 linux 发行版自带的 texlive. 我只是反驳楼上某人说刘海洋的书在误导人的说法. 如果认为刘海洋有问题, 就到水木的 tex 版去提建议.

这个. 我非常惊讶于你对虚拟包的理解 (尽管你说用了 9 年, 我不是鄙视你, 毕竟每个人感兴趣的点不同)… 你大概根本没用过虚拟包, 或者不懂虚拟包根本不存在" 填实" 的说法. 因为文件根本就不同好吗. 虚拟包的原理是用一个空包, 但在这个空包的依赖关系上填写" 提供 tex 的各种依赖", 也就是直接骗过系统的包管理器. 包管理器在装 kile 这种依赖 tex 的软件的时候, 会认为系统已经安装了 texlive. 你最好自己玩下虚拟包的概念, 很有意义的.

同上的回答. 你只要理解了虚拟包的概念, 就不会问这种问题.

→ 这有力的说明了这个人根本就没用虚拟包. 如果连 octave 的以来都解决不了, 我还会认为这是最优解? 你也太…

呵呵… 说明你对独立的包管理根本就不懂或者没体验过. 你先搞清楚有些包管理器为什么会影响到系统的包管理器. 你这些概念没搞清楚只会自已在那猜想.
动手一遍永远比你猜想更有意义.

自己理解了虚拟包就不会问这个问题. 同上面的回答. 如果你还是有疑问, 我会详细给你解答原理. 行不?

你认为我会那么蠢的用手动装 A, 手动装 B 来解决依赖? 虚拟包如果那么蠢, 那还推荐它干嘛啊. 这不是自找麻烦么. 你还是静下心来去了解下. 我理解你的冲动.

恩。假如说你更新 TeX Live 之后和某个其他的依赖 TeX Live 的软件包不兼容了呢?
或者说你升级了系统里某个其他软件包,该软件包依赖最新版本的 TeX Live(已经进入源),但是你忘记再更新 TeX Live 的包管理器了呢?
再最后,实际上用光盘安装的人当中,绝大部分人都是不会更新的。这一点至少我身边的人几乎全部都是永不升级的。
再比如说,你自己以前安装 TeX Live 的时候用 ISO 装了,只安装了部分 TeX Live 包。以后再安装另外一个软件,结果发现它依赖的一些 TeX 包你当时没有安装上,这个时候你就只能自己手动排查、补装了。烦心又费时。

我确实没用过虚拟包。
1)填实的说法是上面那个帖子的争论里提到了,就提出者的资历和水平,我完全深信不疑,她做的软件包是企业发行版水平的。
2)我完全理解虚拟包的原理,就是一个写提供依赖的空包。我水平虽然不如女王,但是自己也打过 RPM 包,都知道这些东西是怎么回事。但是系统更新这个包的时候,就存在将其填实的可能性。
2)关于 Octave 那个,争论的时候做过试验了,至少 CTAN 那个虚包,无法阻止包管理器在安装 Octave 的时候要求再次安装软件源里面的。Octave 依赖 texinfo,虚拟包不能提供 texinfo 依赖。 srpm 修改 spec 重新编译 Octave 安装也讨论过了,也不可行。最后得出的结论是要用源里面装。

最后,用源装比用 ISO 装方便得多,就这么简单。只需要点几次鼠标、或者敲一行命令,就能有一个即时能用的 TeX 系统了。 那些又是光盘,又是虚包的网文,首先就是在吓唬读者。他们往往导致读者弄半天还配置不好。要开始用 TeX,最轻松简单的方法就是用源装。

关于你说的动手。不好意思我系统里的 TeX 好好的,系统用起来爽得很。我才不会没事找事给自己找麻烦。很久以前我也是装过 ISO 的。在 Windows 和 Mac 下装 TeX,我也装过,痛苦得很。Linux 方便爽快。

我更新 texlive 之后凭什么会和依赖 texlive 的软件包不兼容? 你到底用那些依赖 texlive 的软件没? 你到底知不道他们到底依赖于什么部件? 我一再告诉你自己亲自动手试验,ok, 你既然选择不动手, 我就直接告诉你, 不存在这个问题. 我用了那么多年的 tex 了, 从早期打包一个 iso 镜像,win/linux/mac 三系统共用开始, 到现在多种 linux 下的使用 (ubuntu,debian,archlinux) 从来没碰到过升级 texlive 后会出现依赖软件不兼容.
请你注意, 通常像 kile 这样的软件, 仅仅依赖于 tex 的系统, 而不是像 glibc 这样的库文件 (存在版本依赖). 他们通常没有版本依赖. 至少我目前没发现有版本依赖. 就算有版本依赖, 那只要虚拟包里写进去即可. 和 texlive 系统没有任何关系.
至于身边的人是否永远不升级, 这道不重要. 有很多原因造成他不升级:1 不懂 texlive 本身的包管理. 你最好向他们普及下这个知识. 很多人不知道. 只知道拿镜像安装.2.texlive 不仅仅是镜像, 他是一个在线安装且实时更新的系统. 他不是光盘!! 3. 就算不升级也问题不大.

完全可以后续安装. 和 linux 系统的包管理没有任何本质上的区别. 事实上从安装开始就可以在线定制. 最简单的方法就是一股脑统统装上去.

请你给我原始的帖子, 我要看原始内容. 你的复述让我很奇怪. 另外玛丽苏不至于那么蠢吧.

如果虚拟包不能提供 texinfo 依赖, 说明这个虚拟包没写好. 再写一个虚拟包就是. 我没用过 suse 的那个虚拟包, 我都是自己写的虚拟包. 很容易修改下 suse 的虚拟包.
===>ps. 我刚看了下,texlive 本身不提供 texinfo 依赖,texinfo 是独立的一套软件. 所以官方那个虚拟包没问题.
我手头没有 suse 系统, 但我这里的 debian 系统的 octave 只要求 texinfo 依赖.

Depends: libamd2.2.0 (>= 1:3.4.0), libarpack2 (>= 2.1), libblas3 | libblas.so.3 | libatlas3-base, libc6 (>= 2.11),
         libcamd2.2.0 (>= 1:3.4.0), libccolamd2.7.1 (>= 1:3.4.0), libcholmod1.7.1 (>= 1:3.4.0), libcolamd2.7.1 (>=
         1:3.4.0), libcurl3-gnutls (>= 7.16.2), libcxsparse2.2.3 (>= 1:3.4.0), libfftw3-3, libfltk1.1 (>= 1.1.7),
         libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libgl1-mesa-glx | libgl1, libglpk0 (>= 4.30), libgomp1 (>=
         4.2.1), libgraphicsmagick++3, libgraphicsmagick3 (>= 1.3.5), liblapack3 | liblapack.so.3 | libatlas3-base,
         liboctave1, libpcre3 (>= 8.10), libqhull5 (>= 2003.1), libqrupdate1 (>= 1.0), libstdc++6 (>= 4.6),
         libumfpack5.4.0 (>= 1:3.4.0), zlib1g (>= 1:1.1.4), texinfo, octave-common (= 3.6.2-5+deb7u1)

显然和 texlive 的虚拟包不冲突. 难道 suse 不能单独安装 texinfo? 我这里的 debian/archlinux 的 octave 工作的没有任何问题. 如果你有疑问, 我可以马上测试下 suse 最新版. 或者你给我原始的讨论连接, 我来看下到底怎么回事. 你的叙述太模糊了.

真是搞笑, 吓唬谁了? 推荐 texlive 的官方包就没有任何问题.texlive 同样可以在线安装和升级. 就那么简单. 你并不需要下 iso(下载也很方便, 很多人可能不具备网络条件). 官方的 texlive 具有最标准的 TDS 目录结构 (安装完毕就是绿色版), 即使重新安装 suse 都不需要重新安装. 对于初级用户, 无论哪种方法都是没关系.

补充点, 请你告诉我什么情况下出现" 填实" 的现象. 既然是学理工科的, 就以证据为准.
因为实在太出乎我所料了. 虚拟包是否填实, 完全在于你怎么写这个虚拟包的依赖关系. 我这个虚拟包的文件名根本在系统里不存在, 你如何填实? 这不是无中生有么.