4

我正在努力获取用乳胶创建的日语文档。我已经安装了包含 CJK 的最新版本的 texlive-2008。

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

\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 工作正常,而在 \section{} 中包含日文字符的 2 失败并出现以下错误。

! Argument of \@sect has an extra }.

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

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

4

3 回答 3

7

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

您的更换解决方案

\section{[Japanese Text]}

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

建议您正在使用该hyperref软件包。当您使用该hyperref软件包时,其中的任何类型的不完全无聊的文本(例如数学)\section都会导致问题,因为\section无法生成 pdf 书签。\texorpdfstring允许您指定节标题在 pdf 书签中的显示方式。例如,我可能会写

\section{Calculation of \texorpdfstring{$H_2(\mathcal{X})$}{H\_2(X)}}

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

于 2009-07-29T19:18:49.747 回答
3

您可能应该使用 xetex/xelatex,因为它是为支持 unicode 而创建的。不过,对于已经存在的文档来说,这种改变有时并不容易。(xelatex 应该包含在 texlive 中,它只是调用不同的可执行文件——这就是它在 Debian 中的完成方式)。

于 2009-07-29T12:21:48.317 回答
2

我现在已经设法让它工作了!

像以前一样使用 Latex 和 CJK。

\section{[Japanese Text]}

被替换为

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

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

于 2009-07-29T16:27:15.557 回答