2009-07-29 79 views
4

我正在努力获取使用latex创建的日文文档。我已经安装了包含CJK的最新版本的texlive-2008。latex section {}中的日文字符会导致错误

在我的文档,我有以下:

\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 }. 

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

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

+0

作为黑客,我已将\ section {[JP]}更改为\ section [] {[JP]} 这适用于某些没有内容页面的文档,方括号表示可移动部分。对于大多数文档,我仍然需要能够正常使用它们来生成内容和索引等。 – Tom 2009-07-29 13:33:04

回答

7

对不起,发布这个答案,而不是评论你的答案;我没有足够的代表尚未发表评论。 (编辑:。现在我有足够的代表处发表评论,但我不后悔了感谢威尔)

您与

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

更换

\section{[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) ”。

3

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

+2

我还会建议xelatex或xetex。 TEX编程= UTF-8 \ usepackage {fontspec}%XeLaTeX的字体选择;请参阅fontspec.pdf文档 \ defaultfontfeatures {Mapping = tex-text}%来支持TeX约定,例如``''' \ usepackage {xunicode}%对LaTeX字符名称(重音符,欧洲字符等)的Unicode支持。 \ usepackage {xltxtra}%的XeLaTeX 额外定制\ setmainfont {了Charis SIL} %\ setsansfont {似曾相识三世} %\ setmonofont {似曾相识单} – Mica 2009-07-29 16:04:22

+0

作为附加的注释可能[希望]帮助别人,一旦我切换到`xelatex`来构建包含ja-JP unicode字符的PDF,我不得不明确指定具有平假名/片假名/汉字字符的默认字体,而这不是我必须用香草`乳胶`+` dvipdf`。然而,对于后者,当我使用TOC时,我无法将它们包含在章节和章节标题中。不管怎样,两者之间的折衷,但是在@Mica建议的前言中明确定义其中的一些内容对于大多数人来说可能是更可取的。 – 2014-06-01 00:44:55

2

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

像以前一样使用Latex和CJK。

\section{[Japanese Text]} 

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

现在内容页面和章节标题的工作和更新精细取代。

相关问题