2009-07-29 6 views
4

Je travaille sur l'obtention de documents japonais créés avec du latex. J'ai installé la dernière version de texlive-2008 qui inclut CJK.Les caractères japonais dans un latex section {} provoquent une erreur

Dans mon document que je donne les résultats suivants:

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

Dans le code ci-dessus il y a 3 emplacements caractères japonais sont utilisés.

1 + 3 fonctionnent bien alors que 2, qui contient des caractères japonais dans un \ section {} échoue avec l'erreur suivante. Après quelques recherches, il s'avère que cette erreur se manifeste lorsque vous avez placé une commande fragile dans un argument en mouvement. Un argument mobile car la section peut être déplacée vers une page de contenu par exemple.

Est-ce que quelqu'un sait comment faire fonctionner cela et pourquoi le latex pense que les caractères japonais sont «fragiles».

+0

Comme un hack j'ai changé \ section {[JP]} à \ section [] {[JP]} Cela fonctionne dans certains documents qui n'ont pas de pages de contenu comme les crochets dénotent la section mobile. Pour la plupart des documents, je dois toujours pouvoir les utiliser normalement pour générer des contenus et des index, etc. – Tom

Répondre

7

Désolé de mettre ceci comme une réponse plutôt qu'un commentaire à votre réponse; Je n'ai pas assez de rep pour commenter. (EDIT:.. Maintenant, j'ai assez représentant pour commenter, mais je ne suis pas désolé plus Merci Will)

Votre solution de remplacement

\section{[Japanese Text]} 

avec

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

suggère que vous » re en utilisant le package hyperref. Lorsque vous utilisez le package hyperref, sorte de texte non-totalement ennuyeux (par exemple mathématique) dans \section provoque un problème car \section rencontre des problèmes pour générer des signets pdf. \texorpdfstring vous permet de spécifier comment vous voulez que le titre de section apparaisse dans le signet pdf. Par exemple, je pourrais écrire

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

si je veux le titre de section pour être "Calcul de H_2 $ (\ mathcal {X}) $" mais je veux le signet PDF à « Calcul de H_2 (X) ".

+2

Ceci est plus approprié comme une réponse, ne soyez pas désolé! –

3

Vous devez probablement utiliser xetex/xelatex, car il a été créé pour prendre en charge unicode. Le changement n'est parfois pas facile pour les documents déjà existants. (xelatex devrait être inclus dans texlive, il est juste différent exécutable à appeler - c'est comme ça que ça se fait dans Debian).

+2

J'allais aussi suggérer xelatex ou xetex. Vous en avez besoin dans votre préambule: % TEX TS-program = xelatex %! Codage TEX = UTF-8 \ usepackage {fontspec}% Sélection de police pour XeLaTeX; voir fontspec.pdf pour la documentation \ defaultfontfeatures {Mapping = tex-text}% pour supporter les conventions TeX comme '' --- '' \ usepackage {xunicode}% Support Unicode pour les noms de caractères LaTeX (accents, caractères européens, etc) \ usepackage {xltxtra}% personnalisations supplémentaires pour XeLaTeX \ setmainfont {Charis SIL} % \ setsansfont {Deja Vu Sans} % \ setmonofont {Deja Vu Mono} – Mica

+0

Comme une note supplémentaire qui peut [nous espérons] aider les autres, une fois que je suis passé à 'xelatex' pour construire des fichiers PDF contenant des caractères ja-JP unicode, j'ai dû spécifier explicitement les polices par défaut contenant des caractères hiragana/katakana/Kanji, alors que ce n'était pas le cas avec vanilla' latex' + ' dvipdf'. Cependant, avec ce dernier, je n'ai pas pu les inclure dans les titres de section et de chapitre lorsque j'ai utilisé une table des matières. Un compromis de toute façon, mais en définissant explicitement certaines de ces choses dans le préambule comme suggéré par @Mica est probablement plus préférable pour la plupart de toute façon. –

2

J'ai réussi à faire fonctionner ça maintenant!

En utilisant Latex et CJK comme précédemment.

\section{[Japanese Text]} 

a été remplacé par

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

maintenant les pages de contenu et les titres de section travail et mise à jour fin.

Questions connexes