Home Comments Thread
New Thread

11 Comments

giscus-bot giscus-bot 2022-12-16 18:14:02
访客 *Feng Li* @ 2010-02-08 12:43:26 写道:

支持中文我觉得用XeTeX比较好,你可以尝试一下。

@feng-li

yihui yihui 2022-12-16 18:14:14

XeTeX试过,字体问题死都搞不定,不知道为什么。ctex宏包在Linux下的唯一可能字体似乎只有Adobe的那几款字体,而这些字体名称中有空格,于是总是报错:

~/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-adobefonts.def
kpathsea: Invalid fontname `Adobe Song Std', contains ' '

我把空格前面加上也一样报错:

(~/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-adobef
onts.def
kpathsea: Running mktextfm Adobe
~/texlive/texmf/web2c/mktexnam: Could not map source abbreviation A for Adobe.
~/texlive/texmf/web2c/mktexnam: Need to update ~/texlive/texmf-dist/fonts/map/fontname/special.map?
mktextfm: Running mf-nowin -progname=mf mode:=ljfour; mag:=1; nonstopmode; input Adobe
This is METAFONT, Version 2.718281 (TeX Live 2009)

kpathsea: Running mktexmf Adobe
! I can't find file `Adobe'.
 ...e:=ljfour; mag:=1; nonstopmode; input Adobe

Please type another input file name
! Emergency stop.
 ...e:=ljfour; mag:=1; nonstopmode; input Adobe

Transcript written on mfput.log.
grep: Adobe.log: No such file or directory
mktextfm: `mf-nowin -progname=mf mode:=ljfour; mag:=1; nonstopmode; input Adobe' failed to make Adobe.tfm.
kpathsea: Appending font creation commands to missfont.log.

! Font zf@basefont="Adobe" not loadable: Metric (TFM) file or installed font n
ot found.

                   
l.5   {Adobe Song Std}

? 

我看网上早年间还有配置cyberbit字体的,那玩意儿我也搞不定……

——原帖发布于 2010-02-08 21:25:45

giscus-bot giscus-bot 2022-12-16 18:14:17
访客 *Feng Li* @ 2010-02-09 01:23:41 写道:

XeTeX 的优势是可以大大缩减中文文档的大小,因为他不是像普通 cjk 模式那样,需要在每个文档嵌入所有中文字体,而且可以很方便的使用系统字体,如果你能编译成功的话,新的文档大小也许只是你的上面的十分之一,这样屏幕阅读起来也会更顺畅。

首先你需要检查 Adobe 字体是不是正确安装了 运行

fc-list :lang=zh-cn

后你应该至少看到大概这样的输出

Adobe Song Std,Adobe 宋体 Std,Adobe Song Std L,Adobe 宋体 Std L:style=L,Regular
Adobe Fangsong Std,Adobe 仿宋 Std,Adobe Fangsong Std R,Adobe 仿宋 Std R:style=R,

然后你可以试一下这个例子

% file test.tex
documentclass[12pt,a4paper]{article}
usepackage{fontspec}
usepackage{xunicode}
usepackage{xltxtra}
setromanfont{Adobe Song Std}
begin{document}
XeTeX 可以使用系统自带的字体,而不需要再另外生成。
end{document}

运行

xelatex test.tex

这个例子在我的老板本的texlive2007都可以实现。

使用最新的 CTeXKit 可以克服中文拷贝粘贴乱码,里面包含了xeCJK, zhspacing 等常用中文包,如果你用texlive 2009应该没有问题,我用中文tex很少,就没有安装最新的。

@feng-li

yihui yihui 2022-12-16 18:14:18

字体貌似是没问题的:

***@*** [~/tmp]# fc-list :lang=zh-cn
Adobe Song Std L,Adobe Song Std,Adobe 宋体 Std,Adobe 宋体 Std L:style=Regular,L
Adobe Fangsong Std R,Adobe Fangsong Std,Adobe 仿宋 Std,Adobe 仿宋 Std R:style=Regular,R

运行你这个文档还是我前面说的那个错误,说字体名中有空格:

***@*** [~/tmp]# xelatex Text-3.tex
This is XeTeX, Version 3.1415926-2.2-0.9995.2 (TeX Live 2009)
entering extended mode
(./Text-3.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english...
(~/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(~/texlive/texmf-dist/tex/latex/base/size12.clo))
(~/texlive/texmf-dist/tex/xelatex/fontspec/fontspec.sty
(~/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty)
(~/texlive/texmf-dist/tex/latex/tools/calc.sty)
(~/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty
(~/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex
(~/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex)))
(~/texlive/texmf-dist/tex/latex/base/fontenc.sty
(~/texlive/texmf-dist/tex/xelatex/euenc/eu1enc.def)
(~/texlive/texmf-dist/tex/xelatex/euenc/eu1lmr.fd)Fontconfig error: Cannot load default config file
)
fontspec.cfg loaded.
(~/texlive/texmf-dist/tex/xelatex/fontspec/fontspec.cfg))
(~/texlive/texmf-dist/tex/xelatex/xunicode/xunicode.sty)
(~/texlive/texmf-dist/tex/xelatex/xltxtra/xltxtra.sty
(~/texlive/texmf-dist/tex/latex/metalogo/metalogo.sty
(~/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
(~/texlive/texmf-dist/tex/latex/graphics/graphics.sty
(~/texlive/texmf-dist/tex/latex/graphics/trig.sty)
(~/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg)
(~/texlive/texmf-dist/tex/xelatex/xetex-def/xetex.def))))
(~/texlive/texmf-dist/tex/latex/etex-pkg/etex.sty)
(~/texlive/texmf-dist/tex/latex/base/fixltx2e.sty))kpathsea: Invalid fontname `Adobe Song Std', contains ' '

! Font zf@basefont="Adobe Song Std" at 10.0pt not loadable: Metric (TFM) file
or installed font not found.
zf@fontspec ...ntname zf@suffix " at f@size pt
                                                  unless ifzf@icu zf@set@...
l.5 setromanfont{Adobe Song Std}

?

——原帖发布于 2010-02-09 03:26:42

giscus-bot giscus-bot 2022-12-16 18:14:23
访客 *Feng Li* @ 2010-02-09 03:50:45 写道:

你是不是需要给字体一下权限

#chmod 644 /where/is/your/fonts

@feng-li

yihui yihui 2022-12-16 18:14:24

呃,改成744都不管用……一模一样的错误信息……

难道是fontconfig的问题?

——原帖发布于 2010-02-09 10:23:48

giscus-bot giscus-bot 2022-12-16 18:14:25
访客 *Feng Li* @ 2010-02-09 12:28:54 写道:

那就太奇怪了,不过我看见这里有一个错误,
(~/texlive/texmf-dist/tex/xelatex/euenc/eu1lmr.fd)Fontconfig error: Cannot load default config file)

@feng-li

giscus-bot giscus-bot 2022-12-16 18:14:42
访客 *cloud_wei* @ 2010-10-09 19:13:29 写道:

啥字体都可以用吧?可以参照这个配置一下:
http://bbs.chinatex.org/forum.php?mod=redirect&tid=5170&goto=lastpost

@taiyun

yihui yihui 2022-12-16 18:14:43

又折腾了一下午,太麻烦了。Ubuntu下的TeXLive的LaTeX包管理实在太差,Ubuntu不支持tlmgr,所以装ctex就不那么直接了当,而且TeXLive自带一大堆用不着的包,这一点我很不喜欢。写中文还是在Windows下写吧。

——原帖发布于 2010-10-10 02:41:55

giscus-bot giscus-bot 2022-12-16 18:14:44
访客 *cloud_wei* @ 2010-10-10 12:29:55 写道:

我装了基于Ubuntu的Mint系统,一路下去都比较顺利,没有太大问题啊。tlmgr 在ctex那个ctan镜像里面有

@taiyun

yihui yihui 2022-12-16 18:14:45

我现在知道原因了:我要么是用Ubuntu源里的TeXLive(装起来又快又好),要么是有选择性地装一个子集,因为全集太大了。直到最后我狠心把这几G的东西都装全了,才用xelatex跑出中文来。

另外,你给的那个链接中的教程都过于复杂了,事情本来很简单,只需要把TeXLive装完整、字体用sudo fc-cache -fv更新过,基本上所有事情都搞定了。

——原帖发布于 2010-10-12 00:21:10

giscus-bot giscus-bot 2022-12-16 18:14:03
访客 *刘思喆* @ 2010-02-08 14:11:26 写道:

2.8可以直接中文复制粘贴没留意,不过2.6版本的 CTeX 可以使用 usepackage{ccmap} 来解决复制粘贴的问题。没尝试过pgfSweave,回头试一试去。关于设置 Sweave 文档中图形参数问题,我一般都是这么解决的:

<<>>=
pdf('example1.pdf',width = 6,height = 4)
x <- rnorm(100)
par(mar = c(2,2,1,1))
plot(x,main = '',xlab = '',ylab = '')
invisible(dev.off())
@
begin{figure}[h]
  centering
<<>>=
cat("includegraphics[width = 0.6textwidth,height = 0.4textwidth]{","example1.pdf","}nn",sep = "")
@
caption{Some random points.}
label{fig:random}
end{figure}

@sunbjt

yihui yihui 2022-12-16 18:14:15

这确实是一种办法,只是R代码要么就隐藏,要么就让读者看到自己开启和关闭pdf()的两行代码,可能干涉正题了……

——原帖发布于 2010-02-08 21:32:07

giscus-bot giscus-bot 2022-12-16 18:14:04
访客 *刘思喆* @ 2010-02-08 14:13:19 写道:

额,<>= 中间的参数设置被自动吞掉了 ~~

@sunbjt

yihui yihui 2022-12-16 18:14:16

<要写成<,>同理……否则被当做HTML处理了

——原帖发布于 2010-02-08 21:34:27

giscus-bot giscus-bot 2022-12-16 18:14:05
访客 *tengfei* @ 2010-02-08 23:03:24 写道:

先顶后看。。。
我前几天因为要用latex写中文,才试了一下如何写,当时用了下面的方法

begin{document}
begin{CJK}{UTF8}{gbsn}
begin{center}
。。。
结果出来的字体非常不养眼。。不知道我哪里没配置好。

yihui yihui 2022-12-16 18:14:20

你自己的电脑有管理员权限,所以应该好配。我是在hostmonster的服务器上折腾,尤其是字体问题很难整……

——原帖发布于 2010-02-09 03:31:31

giscus-bot giscus-bot 2022-12-16 18:14:06
访客 *DJ* @ 2010-02-12 02:04:05 写道:

还没有用pgfsweave写过中文文档,回头按照你的方法试一下。关于LyX默认的Scrap定义,我用起来也很不方便,不过看官方给的示例,都是直接利用 『Insert TeX code』来插入R代码,快捷键 C+L ,换行符也正常。

yihui yihui 2022-12-16 18:14:26

之所以必须要用Ctrl+Enter,是因为原作者设置了scrap的LaTeX类型为段落(paragraph),你知道,一旦敲回车,也就是意味着生成下一个新段落,所以必须用Ctrl+Enter(仅仅换行),保证不要生成新段落,否则就跳出scrap环境了。

我把LaTeXType修改为Environment就不会有这个问题了:

LatexType             Environment

可以自由敲回车,如果要换到段落环境中,只需要点工具栏中的Standard下拉框菜单即可。

——原帖发布于 2010-02-12 06:18:06

giscus-bot giscus-bot 2022-12-16 18:14:27
访客 *DJ* @ 2010-02-12 14:04:38 写道:

嗯,我其实就是不爽那个默认Scrap的回车总会产生新的段落,C+Enter虽然不会产生新段落,但是确有缩进,很无语。而 C+L却没有这个问题,而且还有快捷键可用,如果有很多Code snippets,这个快捷键会大大加快写作效率。

yihui yihui 2022-12-16 18:14:28

作者Gregor说Ctrl + L只能保证目前还能用,以后LyX也许会不支持这种用法……这是为什么我花了这么长时间去找一个靠谱的办法的原因……

——原帖发布于 2010-02-12 21:51:05

giscus-bot giscus-bot 2022-12-16 18:14:29
访客 *DJ* @ 2010-02-12 22:29:28 写道:

呵呵,这个C+L的确有点dirty trick的意思,您的做法也很有借鉴意义,我参照您定义的那个环境重新定义了一个新环境,并给它绑定了一个快捷键(如 A+P C+L),用起来就方便多了。C+L应该没有问题,LyX理论上不会取消TeX Code的嵌入,除非哪一天它变得不是TeX-based了。

yihui yihui 2022-12-16 18:14:30

C+L嵌入LaTeX代码这一点LyX肯定不会取消的,问题是LyX将来如何转化C+L生成的LaTeX到LaTeX文档(目前是原文复制的方式),万一将来<<>>= @这东西在转化过程中被改了,那Sweave就找不到R代码了。

详见Gregor的日志:http://ggorjan.blogspot.com/2009/07/lyx-sweave-mandatory-use-of.html

——原帖发布于 2010-02-12 23:59:09

giscus-bot giscus-bot 2022-12-16 18:14:07
访客 *Cloudly* @ 2010-02-16 17:24:59 写道:

感觉PDF中复制/粘贴是编码的事儿,UTF-8的应该都可以,GBK的貌似还是不行。
不过我现在用的Texlive而不是miktex,另貌似ctex论坛上比较荐xecjk,不过我用的不爽,编译起来太慢。

@cloudly

giscus-bot giscus-bot 2022-12-16 18:14:08
访客 *Cloudly* @ 2010-02-17 10:11:54 写道:

恕我愚钝,没看出怎么个动态图形法。貌似上面那个PDF只有一张图……而且我没看出它动起来……

@cloudly

yihui yihui 2022-12-16 18:14:30

“动态”的意思不是说文档内有什么东西在动,而是这份文档是蕴含了动态的计算的(就是“动态网页”中的“动态”的意思),你表面上看到的是有图有真相的文档,但实际上我的源文档只有R代码没有图形,图形是在编译过程中调用R动态生成然后插入LaTeX的。将来如果我想改图形的话,只需要在文档中改R代码即可,后面的事情就交给R和LaTeX去处理好了。

——原帖发布于 2010-02-18 00:02:36

giscus-bot giscus-bot 2022-12-16 18:14:10
访客 *Cloudly* @ 2010-02-20 20:28:51 写道:

关于那个中文的问题~如果在Git上面的话,我是用xetex还是pdflatex?不过很奇怪的是,我本地的texlive系统似乎出毛病了,xetex和xecjk编译中文都不成功。

@cloudly

yihui yihui 2022-12-16 18:14:31

如果你是Windows的话,我建议直接用pdflatex。我装的MikTeX,用xelatex的问题就是不能用ae这个包(牵涉到fontenc的问题,xelatex好像和T1的编码有冲突),而我个人又比较喜欢ae的字体,所以就没用xelatex。

TeXLive的中文问题我实在搞不定,所以在COS的服务器上定期编译中文LaTeX文档怕是实现不了了,还是自个儿编好了传到GitHub上吧。

Git跟你用xelatex还是pdflatex没有关系,但你最好用UTF-8编码(LyX文档设定--语言--编码,用Unicode (XeTeX) (utf8),用这种编码还有一个原因,我懒得解释了,说不清,汗)。

——原帖发布于 2010-02-21 01:45:13

giscus-bot giscus-bot 2022-12-16 18:14:32
访客 *Cloudly* @ 2010-02-21 18:09:28 写道:

我一直以为中英文wordpress之间是trackback无效的……这次居然ping过来了……
我用pdflatex还是字体的问题,生成的文件巨大(几乎1M/page),让我很是郁闷。所以我想试试服务器编译而不是本地编译……使用xetex也是想绕过字体问题,但现在根本编译不出来……
我在想要不要重新装一下latex系统,突然发现这东西只要牵扯到中午就真的是超级麻烦啊!!!头痛。

@cloudly

giscus-bot giscus-bot 2022-12-16 18:14:33
访客 *Cloudly* @ 2010-02-21 18:10:25 写道:

打错了,"中午"->"中文",汗。

@cloudly

yihui yihui 2022-12-16 18:14:34

我觉得解决中文问题还是MikTeX+ctex的方式吧……这个问题太复杂了,毕竟人家已经研究了多年。去下载个CTeX的简版,需要什么LaTeX包直接从MikTeX中装,很方便的。

——原帖发布于 2010-02-21 23:50:41

giscus-bot giscus-bot 2022-12-16 18:14:35
访客 *Cloudly* @ 2010-02-22 19:51:26 写道:

我窃以为ctex和texlive也是可以合作的……主要不知道为什么我的miktex无法更新,导致几乎编译什么都找不到宏包。
我在想有没有必要把文档变成一个动态生成的……对于数据的改动性貌似不大。但配置起来实在是好麻烦啊 :(

@cloudly

yihui yihui 2022-12-16 18:14:36

你装最新版的CTeX,里面的MikTeX是可以更新和安装包的。我几年前装的那个CTeX也是没法更新或安装包。

上面我没说的一件事是pgfSweave依赖于cacheSweave包,后者提供了缓存机制,你的代码如果没有更改的话,只需要运行一次就可以了,下次运行的时候会从缓存数据库中读取,但cacheSweave没有缓存图形的机制,而pgfSweave解决了这个问题。所以整体来说编译速度不会太慢。

——原帖发布于 2010-02-22 23:59:09

giscus-bot giscus-bot 2022-12-16 18:14:36
访客 *Cloudly* @ 2010-02-25 15:18:08 写道:

那个,在“可以采取任何手段把R目录下的texmf下的Sweave.sty复制到LaTeX宏包的目录中去"之后加上去一句“刷新latex数据库”或者运行“texhash”吧,我折腾了半天总是忘记刷新数据库,一直卡在这里了。

@cloudly

giscus-bot giscus-bot 2022-12-16 18:14:37
访客 *Cloudly* @ 2010-02-25 15:21:09 写道:

另,再加上一条“安装RTools”吧。我发现我真的好笨,一直卡在命令行那里,.sh文件始终无法运行……忽然间记起来自己用的是win...

@cloudly

giscus-bot giscus-bot 2022-12-16 18:14:11
访客 *DJ* @ 2010-03-17 23:23:03 写道:

你给出的pgfSweave converter在我这里总报错(可能是参数路径问题),不过我参照
http://yildizoglu.blogspot.com/2009/02/lyx-and-sweave-under-windows-xp.html
修改了一下,以pgfSweave替代Sweave,就可以了。

yihui yihui 2022-12-16 18:14:38

介个,我总觉得三两句话说不清,因为这个依赖关系实在是有点复杂。你得保证R、LaTeX和LyX都配置好……你可以把错误信息贴出来我诊断诊断,看是缺了哪一样。

——原帖发布于 2010-03-18 07:15:56

giscus-bot giscus-bot 2022-12-16 18:14:39
访客 *DJ* @ 2010-03-18 16:49:26 写道:

LyX报告cp命令行那里的问题,这个很奇怪,我在独立的batch文件里使用
cp $$r/*.{r,txt}
就没有问题,而直接写在preferences里LyX就报错。所有的路径我都检查过了,唯一不同是我这里R安装在 E:Program FilesR,可能是这个空格的问题。所以我猜测可能是 & R ... 这里出错了。

用batch的好处就是,我可以直接指定R的绝对路径,例如
"E:Program FilesRR-2.10.1binRterm" [options] ...

另外,把 -e 后的命令单独打包进一个R文件,可以方便的在其中进行一些设定,另外,我使用函数texi2dvi() 直接生成pdf文件的,所以就没了R CMD pgfSweave相关的烦恼。

yihui yihui 2022-12-16 18:14:40

据我的经验,报这种错并非cp的问题,而是文中的R代码出错了。用LyX时最难的事情就是查错,每当出错的时候就得用命令行方式重新跑一遍,看哪里出错了,因为LyX不能获得R的出错信息……

——原帖发布于 2010-03-20 02:41:01

giscus-bot giscus-bot 2022-12-16 18:14:41
访客 *catfish* @ 2010-07-08 10:13:14 写道:

是不是没有将R在我的电脑中设置为环境变量呢?今天我卸载了老版本的R,装了最新的,然后用LyX编译Sweave时总是通不过cp那一关,后来发现是R没有设置成环境变量,没法被LyX直接调用。设置后就成功了。

giscus-bot giscus-bot 2022-12-16 18:14:12
访客 *feimon* @ 2010-10-19 13:48:55 写道:

请教您一个问题:
俺用 pgfSweave 一个 UTF-8 编码的 .Rnw 文档, pdflatex 后发现 R 所作图片里的中文成了乱码,找原因是发现生成的 tikz 文件不是 UTF-8 的了,记事本打开另存为UTF-8 的后再 pdflatex,图片中便能正常显示中文。
每次都这样转码不现实,也还没有找到 pgfSweave 中相关的设置,不知道您是怎样解决这个问题的?

yihui yihui 2022-12-16 18:14:45

in R: options(encoding='UTF-8')

Originally posted on 2010-10-19 19:42:08

giscus-bot giscus-bot 2022-12-16 18:14:13
访客 *lix* @ 2015-09-09 13:28:23 写道:

安装lyx后出现如下情况,求解答

Sign in to join the discussion

Sign in with GitHub