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

Tom*_*Tom 4 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}
Run Code Online (Sandbox Code Playgroud)

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

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

! Argument of \@sect has an extra }.
Run Code Online (Sandbox Code Playgroud)

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

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

Ant*_*nko 7

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

你的替换解决方案

\section{[Japanese Text]}
Run Code Online (Sandbox Code Playgroud)

\section{\texorpdfstring{[Japanese Text]}{}}
Run Code Online (Sandbox Code Playgroud)

表明你正在使用这个hyperref包.当您使用该hyperref软件包时,任何类型的非完全无聊的文本(例如数学)\section都会导致问题,因为\section生成pdf书签时遇到问题.\texorpdfstring允许您指定部分标题在pdf书签中的显示方式.例如,我可能会写

\section{Calculation of \texorpdfstring{$H_2(\mathcal{X})$}{H\_2(X)}}
Run Code Online (Sandbox Code Playgroud)

如果我希望节标题是"计算$ H_2(\ mathcal {X})$"但我希望pdf书签为"计算H_2(X)".

  • 这个答案比较合适,不要后悔! (2认同)