OVH Cloud OVH Cloud

codage

9 réponses
Avatar
Jacques Vernin
... puisque j'y suis, je pose une question qui ne doit pas être bien
compliquée, mais ....

Je travaille sur imac G5, OS x.4
J'utilise emacs pour latex

Quand j'ai un texte qui provient de n'importe quelle application, sous
Mac, par exemple un .doc, un texte collé dans le web, du .pdf, ..., je
ne peux pas le copier dans son document d'origine et le coller dans
emacs, car j'obtiens un tas d'horreurs, avec les accents notamment.

Pour remédier à cela, je fais un bricolage qui n'est pas d'une rare
élégance:
- j'ai, sous classics, alpha, que j'ouvre
- je colle ce qui est devant être collé dans alpha
- je le sauvegarde: truc.A
- J'ouvre "cyclone"
- je demande à cyclone de décoder truc.A, de Mac à iso et de me nommer
le résultat truc.tex
- je peux alors ouvrir truc.tex avec emacs et travailler dessus


Mais j'imagine qu'un réglage d'emacs doit quelque part exister pour
éviter tout ce b...l. Non?

Samlut

J Vernin

9 réponses

Avatar
Jean Magnan de Bornier
Le 17 décembre à 18:49:45 Jacques Vernin écrit n otamment:

| ... puisque j'y suis, je pose une question qui ne doit pas être bien
| compliquée, mais ....



| Je travaille sur imac G5, OS x.4
| J'utilise emacs pour latex



| Quand j'ai un texte qui provient de n'importe quelle application, sous
| Mac, par exemple un .doc, un texte collé dans le web, du .pdf, ...,
| je ne peux pas le copier dans son document d'origine et le coller dans
| emacs, car j'obtiens un tas d'horreurs, avec les accents notamment.



| Pour remédier à cela, je fais un bricolage qui n'est pas d'une rare
| élégance:
| - j'ai, sous classics, alpha, que j'ouvre
| - je colle ce qui est devant être collé dans alpha
| - je le sauvegarde: truc.A
| - J'ouvre "cyclone"
| - je demande à cyclone de décoder truc.A, de Mac à iso et de me nom mer
| le résultat truc.tex
| - je peux alors ouvrir truc.tex avec emacs et travailler dessus




| Mais j'imagine qu'un réglage d'emacs doit quelque part exister pour
| éviter tout ce b...l. Non?

Voilà ce qu'on peut faire d'assez simple, sous linux (à modifier peut- être
un peu sous mac):

Tu as une solution pour transformer par exemple du pdf en texte (en .tex
je ne crois pas qu'il existe quelque chose?), par exemple pdftotext, puis
renommer ton fichier avec un.tex à la fin, et tu as un écrit un script
exécutant toutes ces commandes qui s'appellerait "jv".

Tu ouvres le mode "dired" de ton emacs (M-x D), tu positionnes le curseur
sur le fichier pdf que tu veux transformer, puis tu tapes "!", et dans le
mini-tampon tu réponds à la question que te pose emacs par "jv". Bien sûr
sans les guillemets.

Miracle! (si ton script est correct bien sûr)
Mais pour emacs le miracle est d'une banalité!

à+,
--
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87
Avatar
frangi
Jean Magnan de Bornier writes:

Le 17 décembre à 18:49:45 Jacques Vernin écrit notamment:

| ... puisque j'y suis, je pose une question qui ne doit pas être bien
| compliquée, mais ....



| Je travaille sur imac G5, OS x.4
| J'utilise emacs pour latex



| Quand j'ai un texte qui provient de n'importe quelle application, sous
| Mac, par exemple un .doc, un texte collé dans le web, du .pdf, ...,
| je ne peux pas le copier dans son document d'origine et le coller dans
| emacs, car j'obtiens un tas d'horreurs, avec les accents notamment.



| Pour remédier à cela, je fais un bricolage qui n'est pas d'une rare
| élégance:
| - j'ai, sous classics, alpha, que j'ouvre
| - je colle ce qui est devant être collé dans alpha
| - je le sauvegarde: truc.A
| - J'ouvre "cyclone"
| - je demande à cyclone de décoder truc.A, de Mac à iso et de me nommer
| le résultat truc.tex
| - je peux alors ouvrir truc.tex avec emacs et travailler dessus




| Mais j'imagine qu'un réglage d'emacs doit quelque part exister pour
| éviter tout ce b...l. Non?

Voilà ce qu'on peut faire d'assez simple, sous linux (à modifier peut-être
un peu sous mac):

Tu as une solution pour transformer par exemple du pdf en texte (en .tex
je ne crois pas qu'il existe quelque chose?), par exemple pdftotext, puis
renommer ton fichier avec un.tex à la fin, et tu as un écrit un script
exécutant toutes ces commandes qui s'appellerait "jv".

Tu ouvres le mode "dired" de ton emacs (M-x D), tu positionnes le curseur
sur le fichier pdf que tu veux transformer, puis tu tapes "!", et dans le
mini-tampon tu réponds à la question que te pose emacs par "jv". Bien sûr
sans les guillemets.

Miracle! (si ton script est correct bien sûr)
Mais pour emacs le miracle est d'une banalité!

à+,



Il existe également l'utilitaire iconv, et il est facile là aussi
d'écrire un script. Il s'utilise comme ceci:

$ iconv -f L1 -t MACROMAN source.txt > cible.txt

Voir dans le man les formats supportés.
Pour ce qui est des .doc, c'est plus compliqué, parce que n'obtiens
jamais avec ce format du texte pur; il y a toujours des résidus de
formatage propres à .doc. Le mieux que j'ai trouvé pour l'instant,
c'est d'enregistrer comme texte à partir de Word -> Enregistrer sous,
puis dans Emacs, *M-% caractère à modifier RET caractère de
substitution !*. Mais il y a sûrement mieux.
--
====================================================
François GIRON -- Mac OS X 10.4.3 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html

====================================================
Avatar
Jean Magnan de Bornier
Le 18 décembre à 10:50:41 (François Giron) écrit notamment:

| Pour ce qui est des .doc, c'est plus compliqué, parce que n'obtiens
| jamais avec ce format du texte pur; il y a toujours des résidus de
| formatage propres à .doc. Le mieux que j'ai trouvé pour l'instant,
| c'est d'enregistrer comme texte à partir de Word -> Enregistrer sous,
| puis dans Emacs, *M-% caractère à modifier RET caractère de
| substitution !*. Mais il y a sûrement mieux.

*antiword*, s'il est disponible sous mac; selon la technique que je prône
(sans exclusive!), faire en mode dired "!", puis "antiword", on a un
fichier texte, il suffit de l'enregistrer sous "toto.tex".

à+,
--
Jean Magnan de Bornier | Cours Victor Hugo
e-mots: jean at bornier.net | 13980 Alleins France
T 08 70 39 34 03 | P 06 09 17 35 87
Avatar
Sébastien Kirche
Le 17 décembre 2005 à 18:12, Jacques Vernin vraute :

Quand j'ai un texte qui provient de n'importe quelle application, sous
Mac, par exemple un .doc, un texte collé dans le web, du .pdf, ...,
je ne peux pas le copier dans son document d'origine et le coller dans
emacs, car j'obtiens un tas d'horreurs, avec les accents notamment.



J'ai une autre solution en plus de celles évoquées par les autres
contributeurs et qui a l'avantage de ne nécessiter aucun intermédiaire.

Un gros soucis sur mac pour l'interopérabilité des documents c'est que
les concepteurs du mac on choisi un codage propre à macos : mac-roman.
C'est surtout problématique avec les accents et quelques caractères
comme l'euro ou des caractères comme 1/2 1/4.

Dans pas mal de cas quand on ouvre un document ou en cas de
glisser-déposer ou copier-scotcher Emacs arrive à deviner le bon codage
des caractères. Parfois non. Surtout en cas d'ouverture d'un document
provenant d'un windows ou en glisser-déposer ou copier-scotcher.

Mais on peut souffler le bon codage à Emacs si on le connaît (ou on peut
faire différents essais si on n'est pas sûr) avec C-x RET c. Ça indique
le codage à utiliser pour la prochaine opération (ouverture d'un
fichier, glisser, scotcher ou encore autre chose). On peut aussi relire
un document après ouverture en changeant de codage avec C-x RET r

- pour les documents venant d'unix, iso-8859-1 et iso-8859-15 sont
généralement la solution.

- pour les documents «windows» cp1251 (ou les windows-125x
principalement 1251 et 1252) également les iso-8859-1 et 15

- pour les documents mac, c'est mac-roman (pour les relire sur un Emacs
Unix ou Win)

Le nom de l'encodage est parfois aussi de -dos -unix ou -mac qui servent
à indiquer la convention de terminaison des lignes qui est *aussi*
différente :) (On le remarque parfois en ouvrant un document win/dos
quand il y a des ^M à la fin des lignes. Ou sous win en ouvrant un
document unix quand toutes les lignes sont collées les unes à la suite
des autres). Normalement on n'a pas besoin de le préciser mais il des
cas où ça peut servir de l'indiquer explicitement.

Il faut aussi savoir que du côté d'Emacs on peut paramétrer l'éditeur
pour générer par défaut les documents dans l'encodage de son choix
indépendamment de la plate-forme avec prefer-coding-system. Ainsi sous
mac je suis quand même en latin-9 (synonyme d'iso-8859-15) par défaut.

Donc au final mon conseil est d'essayer de coller dans Emacs avec la
commande C-x RET c windows-1252 RET C-y (en essayant de varier le
codage).

De même pour ouvrir un document ça donne C-x RET c cp1521 RET C-x C-f
lefichier RET

Pour le glisser, il suffit juste du C-x RET c cp1251 et emacs prendra le
glisser pour la prochaine commande.

Les encodages de texte sont une plaie en informatique. Heureusement
qu'Emacs tient du couteau suisse pour ne pas être pris au dépourvu :)

HTH.
--
Sébastien Kirche
Avatar
Eric Marsden
"jv" == Jacques Vernin writes:











jv> Quand j'ai un texte qui provient de n'importe quelle application, sous
jv> Mac, par exemple un .doc, un texte collé dans le web, du .pdf, ...,
jv> je ne peux pas le copier dans son document d'origine et le coller dans
jv> emacs, car j'obtiens un tas d'horreurs, avec les accents notamment.

solution probable (dépend de la version d'Emacs utilisée) : rajouter
à ton fichier ~/.emacs.el la ligne

(set-selection-coding-system 'mac-roman)

ce qui indique à Emacs d'utiliser un système d'encodage compatible
avec les autres applications MacOS pour les éléments transférés par
copier/coller.

--
Eric Marsden
Avatar
Jacques Vernin
Eric Marsden a écrit :

"jv" == Jacques Vernin writes:












jv> Quand j'ai un texte qui provient de n'importe quelle application, sous
jv> Mac, par exemple un .doc, un texte collé dans le web, du .pdf, ...,
jv> je ne peux pas le copier dans son document d'origine et le coller dans
jv> emacs, car j'obtiens un tas d'horreurs, avec les accents notamment.

solution probable (dépend de la version d'Emacs utilisée) : rajouter
à ton fichier ~/.emacs.el la ligne

(set-selection-coding-system 'mac-roman)

ce qui indique à Emacs d'utiliser un système d'encodage compatible
avec les autres applications MacOS pour les éléments transférés par
copier/coller.





Oui, mais alors, dans mon latex, je continue à mettre:
usepackage[latin1]{inputenc}
ou bien
usepackage[?]{applemac}

Salut

JV
Avatar
Denis Bitouzé
Le 18 déc 2005 à 18h22
Jacques Vernin a écrit :

usepackage[latin1]{inputenc}
ou bien
usepackage[?]{applemac}



Je croyais que, sous Mac, c'est :

usepackage[applemac]{inputenc}

qu'il fallait insérer...
--
Denis
Avatar
Eric Marsden
"jv" == Jacques Vernin writes:











ecm> (set-selection-coding-system 'mac-roman)

jv> Oui, mais alors, dans mon latex, je continue à mettre:
jv> usepackage[latin1]{inputenc}
jv> ou bien
jv> usepackage[?]{applemac}

l'effet du selection-coding-system ne porte que sur les données qui
sont transférées par copier/coller ou via le clipboard ; il est
indépendent du codage utilisé dans tes fichiers source. Emacs
convertit automatiquement entre les deux codages lorsque c'est
nécessaire.

Le choix d'encodage des sources LaTeX dépend d'autres paramètres:
est-il plus utile de pouvoir facilement transférer les fichiers vers
des machines avec d'autres systèmes d'exploitation (préférer le
latin1 ou utf8), ou de pouvoir les exploiter dans d'autres
applications natives MacOS (préférer le MacRoman, voire peut-être
le utf8 de nos jours).

--
Eric Marsden
Avatar
frangi
Denis Bitouzé writes:

Le 18 déc 2005 à 18h22
Jacques Vernin a écrit :

usepackage[latin1]{inputenc}
ou bien
usepackage[?]{applemac}



Je croyais que, sous Mac, c'est :

usepackage[applemac]{inputenc}

qu'il fallait insérer...


Si on 'échange qu'entre Mac. Chez moi, l'encodage du Terminal et
d'emacs (que j'utilise dans Terminal, est latin9 et dans mes LaTeX,
c'est :
usepackage[latin9]{inputenc}
--
====================================================
François GIRON -- Mac OS X 10.4.3 -- Tiger
http://homepage.mac.com/fgiron/fgaccueil/index.html

====================================================