在beamer中使用utf8的中文标签

| 评论(6)

最近开始学用beamer做幻灯片,然而beamer不能使用dvipdfmx来生成pdf所以对中文标签的支持不能通过dvipdfmx来完成。我用的是utf8环境,CJKutf8可以很好的完成中文标签tounicode的转换,但是beamer.cls中的定义存在问题。batman在bbs.ctex.org上提出了对其的修改,使之能支持CJKutf8宏包的这一功能。具体如下:

打开/usr/share/texmf/tex/latex/beamer/beamer.cls,或/usr/share/texmf/tex/latex/beamer/base/beamer.cls 找到

\DeclareOptionBeamer{CJK}{\ExecuteOptionsBeamer{cjk}}

\DeclareOptionBeamer{cjk}{

\def\beamer@hypercjk{\hypersetup{CJKbookmarks=true}}

\def\beamer@activecjk{

% Activate all >128 characters.

\count@=127

\@whilenum\count@<255 \do{%

\advance\count@ by 1

\lccode`\~=\count@

\catcode\count@=\active

\lowercase{\def~{\kern1ex}}

}

}

}

在beamer3.06中?*?78行,把% Activate all >128 characters.改成% Activate all >=0x80 characters. 然后在上文后加上下面几句:

\DeclareOptionBeamer{CJKutf8}{\ExecuteOptionsBeamer{cjkutf8}}

\DeclareOptionBeamer{cjkutf8}{%

\PassOptionsToPackage{unicode}{hyperref}

\def\beamer@activecjk{

% Activate all characters >= 0x80.

\count@=127

\@whilenum\count@<254 \do{%

\advance\count@ by 1

\lccode`\~=\count@

\catcode\count@=\active

\lowercase{\def~{\kern1ex}}

}

}

}

之后用\documentclass[CJKutf8]{beamer}调用beamer类,并用\usepackage{CJKutf8}来使用CJKutf8宏包,之后按常规使用中文环境,最后用pdflatex编译 .tex文档两次即可。

评论(6)

你好,在我的电脑上怎么不能编译通过呢?
我用的是beamerexample4,将相关编码直接变成CJKutf8的,但总是提示出错(/usr/local/texlive/2007/texmf-dist/tex/latex/CJK/UTF8/UTF8.chr)

Package hyperref Warning: Option `pdfauthor' has already been used,
(hyperref) setting the option has no effect on input line 23.


! Package CJK Error: Invalid character code.

See the CJK package documentation for explanation.
Type H for immediate help.
...

l.26 \frame{\titlepage}

你的beamer是3.06的吗?还是texlive中原来的beamer?

还有你的文件是utf8编码的还是gbk编码的?

你把你的tex文件贴上来看看。

又解决了我的大问题。

Beamer 3.07 也适用。

:-)

3.07适用(texlive2008)
但是,不是“上文的第三个} 后加上下面几句”,
而是直接在上文后面加上下面几句。

大家千万不要在“上文的第三个} 后加上下面几句”,否则会抓狂的!!!

小鱼啥都好,就是说话说不清啊。

修改了一下,谢谢提醒 :-)

发表评论

最新日记

mysql的加密连接设置
最近有设置一下mysql的数据库,需要…
思绪纷乱
划过天际,光线的忽明忽暗忽暗。 似有似无…
终于完成论文了
花了快4个月的时间,终于一步步把硕士论文…