#1 Le 02/03/2011, à 17:11
- jéjéeuh
[résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Bonjour,
Je viens de découvrir comment créer des formulaires pdf avec LaTeX (chouette!) via le package hyperref et l'environnement Form.
Seulement, dès que je souhaite utiliser le package babel avec french ou francais en option, impossible d'utiliser le formulaire... et pourtant la compilation se passe bien!
En remplaçant french par english: le problème n'est plus là...!
j'ai créé un exemple simple pour illustrer:
\documentclass{report}
%\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[pdftex]{hyperref}
\begin{document}
\begin{Form}
\TextField[name=radius,width=10em]{rayon}%
~m
\PushButton[name=start,onclick={
var radius=0.0 + this.getField("radius").value;
this.getField("areacircle").value= Math.PI * Math.pow(radius, 2);
}]{Calculer}
\TextField[name=areacircle,width=10em,%
readonly=true]{aire}~m $^2$
\end{Form}
\end{document}
Avez-vous déjà eu ce problème?
Je précise que le viewer pdf utilisé est acroread (Acrobat Reader), car d'après mes essais, ni xpdf ni evince ne gère les formulaires...
Question subsidiaire: Connaissez-vous un viewer libre qui ferait ça?
Merci d'avance pour vos réponses,
Jérémie
Dernière modification par jéjéeuh (Le 07/03/2011, à 12:30)
Hors ligne
#2 Le 03/03/2011, à 09:19
- gl38
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Cette page donne une liste de conflits entre packages.
Le problème que tu montres se passe avec d'autres langues que le français d'après mes essais. En espagnol, c'est pire, la compilation ne marche pas du tout.
Comme babel rend actifs des caractères comme ?;:! pour le français, ce n'est pas très étonnant puisque hyperref a besoin du : dans http: par exemple.
Cordialement,
Guy
Hors ligne
#3 Le 03/03/2011, à 11:57
- gigiair
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Tu peux peut être englober ton \begin{Form} \end{Form} dans un { \selectlanguage{english} \begin{Form} \end{Form}}
--
JJR.
Hors ligne
#4 Le 03/03/2011, à 12:20
- gl38
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Bonne idée gigiair !
Si on met
\usepackage[french,english]{babel}
au début
et après le Form on passe au français avec
\selectlanguage{french}
le questionnaire marche.
Cordialement,
Guy
Hors ligne
#5 Le 03/03/2011, à 12:26
- jéjéeuh
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Merci pour ces deux réponses,
effectivement cette solution marche.
Avec quelques essais supplémentaires, seules les commandes spécifiques (\TextField, PushButton...) ont besoin d'être en mode "babel english" (c-à-d. encadrés par \selectlanguage{english}). On peut donc faire un formulaire en français si sa mise en page l'exige.
Je serais tenté de noter ce post comme "résolu" mais un détail me chifonne tout de même:
d'où vient exactement le problème?
Y-a-t'il une manière de le régler plus "propre" (j'entends par plus propre, une solution qui reste bien sagement dans le préambule, et qui ne nécessite pas des ajouts au sein du document.)
Jérémie
Hors ligne
#6 Le 03/03/2011, à 12:54
- gl38
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Si tu ouvres le fichier hyperref.sty, tu verras dans le début
\@makeother\|%
\@makeother\:%
\@makeother\(%
\@makeother\)%
\@makeother\[%
\@makeother\]%
\@makeother\/%
\@makeother\!%
\@makeother\<%
\@makeother\>%
\@makeother\.%
\@makeother\;%
\@makeother\+%
\@makeother\-%
\@makeother\"%
\@makeother\'%
et si tu cherches ce qu'il fait des signes de ponctuations dans la suite, tu verras que le mariage de babel en français ne peut pas se faire correctement sans réécrire ce fichier et comme il fait 4818 lignes, c'est assez décourageant.
Cordialement,
Guy
Hors ligne
#7 Le 03/03/2011, à 13:51
- gigiair
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
d'où vient exactement le problème?
Y-a-t'il une manière de le régler plus "propre" (j'entends par plus propre, une solution qui reste bien sagement dans le préambule, et qui ne nécessite pas des ajouts au sein du document.)
Le problème vient de ce que frenchb rend certains caractères «actifs», C'est souvent le caractère «:» qui est fautif.
On peut y remédier en désactivant temporairement avec un \shorthandoff.
Voir la documentation de frenchb
texdoc frenchb
Je pense que si tu ajoute dans le préambule
\frenchbsetup{AutoSpacePunctuation=false}
Le problème devrait disparaître, mais par contre tu sera contraint de placer un espace devant les caractères ;:?! pour que l'espacement soit conforme à la typographie française (il sera remplaçé par un demi-espace). Je n'ai pas essayé, je l'ai lu dans la doc précitée.
Dernière modification par gigiair (Le 03/03/2011, à 14:27)
--
JJR.
Hors ligne
#8 Le 03/03/2011, à 16:49
- gl38
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Avec xelatex et polyglossia, ça a l'air de bien se passer, voir cette page
\documentclass{report}
%\usepackage[T1]{fontenc}
%\usepackage[utf8]{inputenc}
%\usepackage[french,english]{babel}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\usepackage[pdftex]{hyperref}
\begin{document}
\begin{Form}
\TextField[name=radius,width=10em]{rayon}%
~m
\PushButton[name=start,onclick={
var radius=0.0 + this.getField("radius").value;
this.getField("areacircle").value= Math.PI * Math.pow(radius, 2);
}]{Calculer}
\TextField[name=areacircle,width=10em,%
readonly=true]{aire}~m $^2$
\end{Form}
quel bel été!
\end{document}
et ça met un blanc avant le ! final.
Cordialement,
Guy
Dernière modification par gl38 (Le 03/03/2011, à 16:53)
Hors ligne
#9 Le 04/03/2011, à 09:55
- jéjéeuh
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Tiens, je n'avais jamais utilisé xetex (ou xelatex), effectivement ça marche plutôt bien. D'après la doc que Guy propose, il y aurait cependant des incompatibilités avec certains packages ou certaines commandes latex "classiques". Je vais donc garder de coté les autres solutions plus "artisanales" qui serviront en cas de conflits xetatex/latex.
J'en profite pour réitérer ma question du premier post:
Je précise que le viewer pdf utilisé est acroread (Acrobat Reader), car d'après mes essais, ni xpdf ni evince ne gère les formulaires...
Question subsidiaire: Connaissez-vous un viewer libre qui ferait ça?
Jérémie
Hors ligne
#10 Le 04/03/2011, à 10:24
- gl38
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
Il se pourrait que pdftk réponde à la question.
Mais je n'ai pas le courage d'essayer !
Cordialement,
Guy
Hors ligne
#11 Le 04/03/2011, à 11:19
- jéjéeuh
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
pdftk est un éditeur en ligne de commande, très bien pour éditer un pdf (ou même pré-remplir un formulaire) mais il ne fais pas office de viewer, on ne peut donc pas --en tout cas pas aussi aisément qu'avec acrobat reader-- consulter un pdf et interagir avec dans le même temps, malheureusement...
merci quand même pour l'idée,
je pense que malgré ce point de détail, mon problème est résolu... (euh... comment puis-je éditer le titre du post? Je ne vois sur la page qu'un moyen d'éditer mes messages, mais pas le titre...)
Jérémie
Hors ligne
#12 Le 04/03/2011, à 13:34
- Sultan Rahi
Re : [résolu] Latex: incompatibilité babel french et formulaires (hyperref)
je pense que malgré ce point de détail, mon problème est résolu... (euh... comment puis-je éditer le titre du post? Je ne vois sur la page qu'un moyen d'éditer mes messages, mais pas le titre...)
Normalement c'est possible si tu modifie ton premier message.
Il faut adapter la ville à l'automobile.
Hors ligne