Problème babel-french et bibtopic

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Problème babel-french et bibtopic

Messagepar ld06 » Mardi 07 Septembre 2010, 00:44

Bonjour,

J'ai un problème en utilisant conjointement babel-french et bibtopic. Quand j'utilise les deux, j'ai, au moment de la
citation, un message du type :


Code: Tout sélectionner
! Missing \endcsname inserted.
<to be read again>
                   \penalty
l.389 \cite{_S_Como09:cardiff,_S_ComoJ10}


Est-ce que quelqu'un aurait déjà rencontré ce problème (j'ai googlé, mais sans résultat ...)

merci
Luc
Mon entête est :
Code: Tout sélectionner
%\documentclass[slideColor,colorBG]{book}
\documentclass{book}
\usepackage{a4}
\usepackage{palatino}
\usepackage{amsmath,amssymb}
%LD modified
%\usepackage{frenchle}
%\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{pifont,fancybox}
\usepackage{pstricks,pst-node,pst-text,pst-3d}
%\usepackage{rotating}


\usepackage{eurosym}
\usepackage{epsfig}
%\usepackage{url}
%LD
% LD
\usepackage{longtable}
\usepackage{eso-pic}
\usepackage{graphicx}
\usepackage{color}
\usepackage{type1cm}
\usepackage[english,french]{babel}
\usepackage[pdftex,hyperindex,breaklinks]{hyperref}

 \makeatletter
   \AddToShipoutPicture{%
     \put(0,0){%
 \makebox(500,650){\rotatebox{45}{\textcolor[gray]{0.75}{\fontsize{5cm}{5cm}\selectfont{Draft}}}} }
 }
 \makeatother


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\usepackage{bibtopic}
\usepackage{bibtopicprefix}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlength{\textheight} {23cm} \setlength{\textwidth} {16cm}
\oddsidemargin 0cm \evensidemargin 0cm
\topmargin -1cm
\parskip 0.2cm

%_______________________________________________
\def\eu{\textgreek{\euro}}

\newenvironment{todo}[1]
   {\fbox{TODO : }\emph{#1}}

% Definition of new colors
\newrgbcolor{comred}{0.8 0.5 2.4}
\newrgbcolor{glc}{0.8 1.5 0}
\newrgbcolor{mdsc}{2.5 1.4 0}
\newrgbcolor{sis}{2 0.5 0}



\newrgbcolor{LemonChiffon}{1. 0.98 0.8}
\newrgbcolor{LightBlue}{0.68 0.85 0.9}
\newrgbcolor{NTNUBlue}{0.0470 0 0.5294}
\newrgbcolor{NVRed}{0.7 0.2 0.1}
\newrgbcolor{NVbleu}{0 0.2 0.8}
\newrgbcolor{NVvert}{0 0.05 0}
\newrgbcolor{violet}{0.8 0 0.9}
\newrgbcolor{darkgray}{0.4 0.4 0.4}
\newrgbcolor{gray}{0.4 0.4 0.4}
\newrgbcolor{dgreen}{.33333 .41961 .18431}
\newrgbcolor{dgold}{.5451 .39608 .03137}
%_______________________________________________
\begin{document}
Dernière édition par guiguiche le Mardi 07 Septembre 2010, 06:46, édité 1 fois.
Raison: balises [code]
ld06
Utilisateur
 
Messages: 5
Inscription: Mardi 07 Septembre 2010, 00:37
Statut actuel: Actif et salarié | Professeur des universités

Publicité

Re: Problème babel-french et bibtopic

Messagepar pg » Mardi 07 Septembre 2010, 08:02

Ça ressemble à un problème de caractères actifs (pas sûr, car le message d'erreur est un peu cryptique et je ne suis pas parvenu à reproduire l'erreur). Si c'et le cas, le plus simple est de ne pas utiliser de ":" dans les étiquettes de citations, donc changer "_S_Como09:cardiff" en "_S_Como09.cardiff" par exemple. Si ce n'est pas cela, il faudra donner un code complet montrant le problème et le fichier log correspondant lorsqu'on rajoute \listfiles avant \documentclass dans le fichier .tex.
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Problème babel-french et bibtopic

Messagepar ld06 » Mardi 07 Septembre 2010, 08:49

Bonjour

C'est bien le problème du : dans la citation, mais comme il y a plus de 700 entrées biblio, je ne peux pas toutes les
modifier. Est-ce qu'il y a moyen de rendre ce caractère "inactif" ?

Luc
ld06
Utilisateur
 
Messages: 5
Inscription: Mardi 07 Septembre 2010, 00:37
Statut actuel: Actif et salarié | Professeur des universités

Re: Problème babel-french et bibtopic

Messagepar ld06 » Mardi 07 Septembre 2010, 08:57

Re-bonjour,

désolé pour la question précédente, posée avant d'avoir cherché. Ca marche avec :

Code: Tout sélectionner

\let\citeorig\cite
\renewcommand{\cite}[1]{%
   \begin{otherlanguage}{english}\citeorig{#1}\end{otherlanguage}%
}


Merci !
Luc
ld06
Utilisateur
 
Messages: 5
Inscription: Mardi 07 Septembre 2010, 00:37
Statut actuel: Actif et salarié | Professeur des universités

Re: Problème babel-french et bibtopic

Messagepar pg » Mardi 07 Septembre 2010, 09:07

Ce n'est pas une très bonne idée d'utiliser l'environnement {otherlanguage} car du coup quelque chose du genre "d'après \cite{...} et \cite{...}" donnera "d'après [1]et [2]", sans espace avant le "et" (car \end{otherlanguage} fait \ignorespaces). Il vaut mieux utiliser \selectlanguage. Par ailleurs, l'argument optionnel de \cite ne fonctionnera pas non plus avec cette solution.

Voici un code qui n'a pas ces défauts :

Code: Tout sélectionner
\makeatletter
\let\cite@orig\cite
\renewcommand{\cite}{\@ifnextchar[{\new@cite@opt}{\new@cite@nopt}}
\def\new@cite@opt[#1]#2{%
   \selectlanguage{english}\cite@orig[#1]{#2}\selectlanguage{french}%
}
\def\new@cite@nopt#1{%
   \selectlanguage{english}\cite@orig{#1}\selectlanguage{french}%
}
\makeatother
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Problème babel-french et bibtopic

Messagepar ld06 » Mardi 07 Septembre 2010, 11:46

Merci,

Par contre, il y a des parties en "french" et "english" dans le document. Que puis-je faire
pour revenir à la langue "précédente" (english le cas échéant) ?

Luc
ld06
Utilisateur
 
Messages: 5
Inscription: Mardi 07 Septembre 2010, 00:37
Statut actuel: Actif et salarié | Professeur des universités

Re: Problème babel-french et bibtopic

Messagepar pg » Mardi 07 Septembre 2010, 11:54

On pourrait mettre dans le changement de langue dans un groupe :

Code: Tout sélectionner
\makeatletter
\let\cite@orig\cite
\renewcommand{\cite}{\@ifnextchar[{\new@cite@opt}{\new@cite@nopt}}
\def\new@cite@opt[#1]#2{%
   {\selectlanguage{english}\cite@orig[#1]{#2}}%
}
\def\new@cite@nopt#1{%
   {\selectlanguage{english}\cite@orig{#1}}%
}
\makeatother

Cela ne devrait pas avoir d'effet de bord indésirable.
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Problème babel-french et bibtopic

Messagepar ld06 » Mardi 07 Septembre 2010, 13:18

Hello,

Ca marche. Merci !
Luc
ld06
Utilisateur
 
Messages: 5
Inscription: Mardi 07 Septembre 2010, 00:37
Statut actuel: Actif et salarié | Professeur des universités

Re: Problème babel-french et bibtopic

Messagepar Dejeante » Mardi 07 Septembre 2010, 19:16

Bonjour,
Utilisant Papers pour ma biblio, je me suis retrouvé avec un problème similaire. Mes liens apparaissent mais les hyperref ne fonctionnent pas sur les \cite qui possèdent un : :chair: !!!

Je suis en babel french, UFT8, T1, fontenc et je compile sous texmaker mac ( donc Mactex).
Les liens apparaissent donc, mais lors de la compil en pdflatex, j'ai 200 fois :

Code: Tout sélectionner
pdfTeX warning (dest): name{cite.Bahriz:2008p5412} has been referenced but do
es not exist, replaced by a fixed one
, ce qui fait que les hyperliens me ramènent en haut, je pense que les review vont moyennement apprecier...

J'ai essayé d'adapter le code précédent mais je suis manifestement pas au niveau ;-)
Avez vous une petite idée de ou commencer ( voir finir ma ... de thèse ;-) )

PS: j'ai prévenu Papers pour leur dire, mais ca règle pas ma génération de thésard francais sous mac ,-)
Dejeante
Utilisateur
 
Messages: 3
Inscription: Mardi 07 Septembre 2010, 19:07
Statut actuel: Post-bac | Doctorat

Re: Problème babel-french et bibtopic

Messagepar pg » Mardi 07 Septembre 2010, 22:45

Tu peux essayer ceci, mais aucune garantie que ça marche :

Code: Tout sélectionner
\makeatletter
\let\cite@orig\cite
\renewcommand{\cite}{\@ifnextchar[{\new@cite@opt}{\new@cite@nopt}}
\def\new@cite@opt{%
  \begingroup\shorthandoff{:}\new@cite@opt@bis
}
\def\new@cite@opt@bis[#1]#2{%
  \cite@orig[#1]{#2}\endgroup
}
\def\new@cite@nopt{%
  \begingroup\shorthandoff{:}\new@cite@nopt@bis
}
\def\new@cite@nopt@bis#1{%
  \cite@orig{#1}\endgroup
}
\makeatother

Si ça ne résout pas le problème, il faudra donner un exemple complet de code qui ne fonctionne pas correctement.
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Problème babel-french et bibtopic

Messagepar Dejeante » Mercredi 08 Septembre 2010, 10:59

Bonjour, et bien désolé ca ne marche pas... en fait ca ne change rien...
Voici mon header:

Code: Tout sélectionner
\documentclass[a4paper,12pt]{book}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}
%\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{latexsym}
\usepackage{epstopdf}
\usepackage[pdftex]{graphicx}
\DeclareGraphicsExtensions{.jpg,.pdf}
\usepackage{epsfig}
\usepackage[margin=2cm]{geometry}
\usepackage{graphicx}
\usepackage{float}
\usepackage{array}
%\usepackage[sectionbib]{chapterbib}
\tolerance=1000  % all 3 of these commands make LaTeX less fussy about what
\hbadness=10000  % is a ``good'' length/width/height of a page
\raggedbottom
\def\bra#1{\mathinner{\langle{#1}|}}
\def\ket#1{\mathinner{|{#1}\rangle}}
\def\braket#1{\mathinner{\langle{#1}\rangle}}
\def\Bra#1{\left<#1\right|}
\def\Ket#1{\left|#1\right>}
{\catcode`\|=\active
  \gdef\Braket#1{\left<\mathcode`\|"8000\let|\bravert {#1}\right>}}
\def\bravert{\egroup\,\vrule\,\bgroup}
\setcounter{tocdepth}{4} \setlength{\parindent}{3cm}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{multirow}
\usepackage[toc,page]{appendix}
\newlength{\plarg}
\setlength{\plarg}{14cm}
\newlength{\glarg}
\setlength{\glarg}{17cm}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage[margin=10pt,font=sl,labelsep=endash]{caption}

\usepackage{lipsum}
\makeatletter
\renewcommand\chapter{%
                    \thispagestyle{plain}%
                    \global\@topnum\z@
                    \@afterindentfalse
                    \secdef\@chapter\@schapter}
\makeatother
\makeatletter
\renewcommand{\@chapapp}{}
\makeatother
\usepackage{hyperref}
\hypersetup{
unicode=true, % essais ne change rien
encap=true, % essais ne change rien
backref=true,
pagebackref=true,
hyperindex=true,
colorlinks=true, %colorise les liens
breaklinks=true, %permet le retour  la ligne dans les liens trop longs
urlcolor= blue, %couleur des hyperliens
linkcolor= red, %couleur des liens internes
bookmarks=true, %cre des signets pour Acrobat
bookmarksopen=true,
pdftitle={Thèse}, %informations apparaissant dans
pdfauthor={}, %dans les informations du document
pdfsubject={QCL MIR} %sous Acrobat.
}


Et voila un exemple dans le .bbl qui marche, suivi par un qui ne marche pas. ATTENTION ne pas marcher signifie que les liens hyperref sont statiques, pas que la bilbio ne s'affiche pas.
Marche:
Code: Tout sélectionner
\bibitem[Belkin~2007]{belkin2007terahertz}
MA~Belkin, F~Capasso, A~Belyanin, DL~Sivco, AY~Cho, DC~Oakley, CJ~Vineis et
  GW~Turner.
\newblock {\em Terahertz quantum-cascade-laser source based on intracavity
  difference-frequency generation}.
\newblock Nature Photonics, vol.~1, no.~5, pages 288--292, 2007.



Marche pas...
Code: Tout sélectionner
\bibitem[Bai~2010]{Bai:2010p308}
Y~Bai, S~Slivken, S~Kuboya, SR~Darvish et M~Razeghi.
\newblock {\em Quantum cascade lasers that emit more light than heat}.
\newblock Nature Photonics, 2010.


Voila ca fait beaucoup merci à ceux qui prennent le temps de se pencher dessus, moi je continue à googler mais c'est comme si j'étais le seul à avoir ce problème...
ATTENTION je suis en UTF8 il semblerais que passer en ISO LAtin 1 resolve ca, mais Papers reste en UTF8...

Merci bcp
Dejeante
Utilisateur
 
Messages: 3
Inscription: Mardi 07 Septembre 2010, 19:07
Statut actuel: Post-bac | Doctorat

Re: Problème babel-french et bibtopic

Messagepar pg » Mercredi 08 Septembre 2010, 11:23

Le problème vient des \bibitem, pas des \cite, donc c'est normal que ça ne marchait pas. Si le ":" n'est jamais utilisé dans la biblio dans un contexte où il faut qu'il produise des espacements automatiques, le plus simple est de le désactiver pour toute la bibliographie avec "\shorthandoff{:}" (sinon, il faudra redéfinir \bibitem de la même manière que \cite) :

Code: Tout sélectionner
\documentclass{book}
\usepackage[french]{babel}
\usepackage{hyperref}

\begin{document}

\cite{belkin2007terahertz}

\cite{Bai:2010p308}

\shorthandoff{:}
\begin{thebibliography}{Belkin~2007}
\bibitem[Belkin~2007]{belkin2007terahertz}
MA~Belkin, F~Capasso, A~Belyanin, DL~Sivco, AY~Cho, DC~Oakley, CJ~Vineis et
  GW~Turner.
\newblock {\em Terahertz quantum-cascade-laser source based on intracavity
  difference-frequency generation}.
\newblock Nature Photonics, vol.~1, no.~5, pages 288--292, 2007.

\bibitem[Bai~2010]{Bai:2010p308}
Y~Bai, S~Slivken, S~Kuboya, SR~Darvish et M~Razeghi.
\newblock {\em Quantum cascade lasers that emit more light than heat}.
\newblock Nature Photonics, 2010.
\end{thebibliography}

\end{document}
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Problème babel-french et bibtopic

Messagepar Dejeante » Mercredi 08 Septembre 2010, 13:26

Génial merci ca marche, il suffit de mettre "\shorthandoff{:} en début de bbl et pfiou... pg 1 :boxing: Hyperref 0
Merci beaucoup pg pour cette résolution simple et efficace :clapping: .
Longue vie à ce forum et à toi.
A+
Dejeante
Utilisateur
 
Messages: 3
Inscription: Mardi 07 Septembre 2010, 19:07
Statut actuel: Post-bac | Doctorat


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Yandex [Bot] et 7 invités