latex \ section {}中的日文字符会导致错误

时间:2009-07-29 12:12:32

标签: unicode latex cjk

我正在努力获取用乳胶创建的日文文档。我安装了最新版本的texlive-2008,其中包括CJK。

在我的文件中,我有以下内容:

\documentclass{class}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{min}
\title{[Japanese Characters here 1]}
\maketitle
\section{[Japanese Characters here 2]}
[Japanese Characters here 3]
\end{CJK*}
\end{document}

在上面的代码中,有3个位置使用日文字符。

1 + 3正常工作而2在\ section {}中包含日文字符失败,并出现以下错误。

! Argument of \@sect has an extra }.

经过一些研究后发现,当你在一个移动的参数中放入一个脆弱的命令时,这个错误就会显现出来。移动参数因为部分可以移动到内容页面,例如。

有谁知道如何让这个工作以及为什么乳胶认为日语字符是“脆弱的”。

3 个答案:

答案 0 :(得分:7)

很抱歉将此作为答案而不是对您的答案发表评论;我还没有足够的代表发表评论。 (编辑:现在我有足够的代表发表评论,但我不再抱歉了。谢谢Will。)

您的替换解决方案

\section{[Japanese Text]}

\section{\texorpdfstring{[Japanese Text]}{}}

建议您使用hyperref包。当您使用hyperref软件包时,<{1}}中的任何类型的非完全无聊的文本(例如数学)会导致问题,因为\section生成时遇到问题pdf书签。 \section允许您指定部分标题在pdf书签中的显示方式。例如,我可能会写

\texorpdfstring

如果我希望节标题为“$ H_2(\ mathcal {X})$的计算”,但我希望pdf书签为“H_2(X)的计算”。

答案 1 :(得分:3)

您应该使用xetex / xelatex,因为它是为了支持unicode而创建的。但是,对于现有文档,这种变化有时并不容易。 (xelatex应该包含在texlive中,它只是调用不同的可执行文件 - 这是在Debian中完成的。)

答案 2 :(得分:2)

我已经设法让这个工作了!

像以前一样使用Latex和CJK。

\section{[Japanese Text]}

替换为

\section{\texorpdfstring{[Japanese Text]}{}}

现在内容页面和章节标题可以正常工作和更新。