Problème babel-french et bibtopic

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
ld06
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : mardi 07 septembre 2010, 01:37

Problème babel-french et bibtopic

Message par ld06 »

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 modification par guiguiche le mardi 07 septembre 2010, 07:46, modifié 1 fois.
Raison : balises [code]

pg
Modérateur
Modérateur
Messages : 2600
Inscription : vendredi 15 juin 2007, 00:31

Re: Problème babel-french et bibtopic

Message par pg »

Ç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.

ld06
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : mardi 07 septembre 2010, 01:37

Re: Problème babel-french et bibtopic

Message par ld06 »

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 débutant
Utilisateur débutant
Messages : 5
Inscription : mardi 07 septembre 2010, 01:37

Re: Problème babel-french et bibtopic

Message par ld06 »

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

pg
Modérateur
Modérateur
Messages : 2600
Inscription : vendredi 15 juin 2007, 00:31

Re: Problème babel-french et bibtopic

Message par pg »

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

ld06
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : mardi 07 septembre 2010, 01:37

Re: Problème babel-french et bibtopic

Message par ld06 »

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

pg
Modérateur
Modérateur
Messages : 2600
Inscription : vendredi 15 juin 2007, 00:31

Re: Problème babel-french et bibtopic

Message par pg »

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.

ld06
Utilisateur débutant
Utilisateur débutant
Messages : 5
Inscription : mardi 07 septembre 2010, 01:37

Re: Problème babel-french et bibtopic

Message par ld06 »

Hello,

Ca marche. Merci !
Luc

Dejeante
Utilisateur débutant
Utilisateur débutant
Messages : 3
Inscription : mardi 07 septembre 2010, 20:07

Re: Problème babel-french et bibtopic

Message par Dejeante »

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 ,-)

pg
Modérateur
Modérateur
Messages : 2600
Inscription : vendredi 15 juin 2007, 00:31

Re: Problème babel-french et bibtopic

Message par pg »

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.

Dejeante
Utilisateur débutant
Utilisateur débutant
Messages : 3
Inscription : mardi 07 septembre 2010, 20:07

Re: Problème babel-french et bibtopic

Message par Dejeante »

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

pg
Modérateur
Modérateur
Messages : 2600
Inscription : vendredi 15 juin 2007, 00:31

Re: Problème babel-french et bibtopic

Message par pg »

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}

Dejeante
Utilisateur débutant
Utilisateur débutant
Messages : 3
Inscription : mardi 07 septembre 2010, 20:07

Re: Problème babel-french et bibtopic

Message par Dejeante »

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+