[Résolu] Encodage avec Texmaker sous Windows

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.

[Résolu] Encodage avec Texmaker sous Windows

Messagepar tnnico » Vendredi 29 Juin 2018, 15:52

Bonjour à tous,

J'utilise sous windows la dernière version de Texmaker (je viens de réinstaller mon ordinateur et j'ai perdu pas mal de paramétrages).
Pour pouvoir continuer avec mes fichiers existants j'ai paramétré l'encodage de l'éditeur en ISO-8859-1.
Tout fonctionne avec mes anciens fichiers mais j'ai un problème en faisant la suite de manipulations suivante :
- je crée un nouveau document puis que je l'enregistre (dans Texmaker) ;
- je le ferme ;
- je l'ouvre.
Et j'ai ce message de Texmaker :
"Il semble que ce document ne puisse pas être décodé correctement avec l'encodage défini par défaut (ISO-8859-1)."
Utiliser cet encodage : UTF-8

J'ai réessayé plusieurs fois, rien à faire !

Quelqu'un sait-il comment résoudre ce problème ?

Du coup, j'ai une question annexe, sachant quelques fichiers (c'est un doux euphémisme), est-il possible de basculer en utf-8 ?

Merci d'avance,
Nicolas
Dernière édition par tnnico le Mardi 03 Juillet 2018, 11:23, édité 1 fois.
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Encodage avec Texmaker sous Windows

Messagepar balf » Vendredi 29 Juin 2018, 16:32

Je crois que c'est plus sage en effet de convertir en utf8. D'abord c'est le seul format universel avec l'ascii, et il n'y a pas de problème à travailler dessus sur Mac, LinUx ou Windows.
Texmaker, dans le menu Outils a pour dernier sous-menu Convertir en unicode qui marche bien, à condition d'être sûr de l'encodage initial. Dans le pire des cas (s'il y a eu des problèmes avec un fichier qui aurait subi divers systèmes d'exploitation), une recherche et remplacement des caractères bizarres résiduels par le « vrai » caractère (qui en général n'est pas trop difficile à reconstituer) suffit a régler les problèmes.
À tout hasard, faire tout de mêmE une sauvegarde préalable des hiers dans leur mouture d'origine.

B. A.
balf
Zetta-utilisateur
 
Messages: 3761
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Encodage avec Texmaker sous Windows

Messagepar tnnico » Vendredi 29 Juin 2018, 16:45

Merci pour l'idée, mais je viens de regarder le menu "Convertir en unicode" et il semble qu'il faille convertir chaque fichier...
J'en ai beaucoup !
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar balf » Vendredi 29 Juin 2018, 16:58

Pour chaque fichier, c'est quasi-instantané. Il suffit de faire ça par petits bouts. Et puis, les vacances arrivent, faut bien s'occuper… :mrgreen:
Plus sérieusement, peut-être poser la question d'un traitement par lots sur les fora (comment disent les Anglais) ou demander à l'auteur ?

B. A.
balf
Zetta-utilisateur
 
Messages: 3761
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Encodage avec Texmaker sous Windows

Messagepar MB » Vendredi 29 Juin 2018, 19:07

Bonjour, ça date un peu mais à l'époque où j'avais dû basculer tous mes fichiers vers utf8, j'avais fabriqué un petit script.

post109813.html

Ca marche sous linux mais peut-être que ça peut fonctionner sous windows 10 également (il parait qu'on peut avoir accès à un terminal linux).
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6868
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar touhami » Vendredi 29 Juin 2018, 19:14

Bon jour.
Il est préférable de commencer par définir l'UTF-8 comme encodage par défaut de TeXmaker :
Options-->Configurer TeXmaker-->Editeur-->Encodage
comme ça les nouveaux fichiers seront en utf8, ensuite vous pouvez convertir les anciens fichiers, qui sont encodés en ISO-8859-1, au fur et à mesure.
touhami
Méga-utilisateur
 
Messages: 396
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: Encodage avec Texmaker sous Windows

Messagepar tnnico » Vendredi 29 Juin 2018, 21:05

Je viens de tester le script de MB, mais comme je n'avais pas de Linux sous le coude j'ai installé CygWin qui me permet d'avoir un terminal linux sous windows.
Le script m'a permis de comprendre un peu mieux d'où vient le problème.
En fait, les nouveaux fichiers que je crée avec texmaker sont tous au format "us-ascii" (quand je tape la commande file --mime-encoding ...).
Et je ne comprends pas du tout comment ça se fait !
Du coup le script de MB ne fonctionne plus puisque ces fichiers là ne sont pas recherchés.
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar marco56 » Samedi 30 Juin 2018, 11:01

Pour ma part, j'avais cela en python.
Je peux le poster si cela intéresse.

[Edit] Le voilà, ce sera plus simple :
Code: Tout sélectionner
# -*- coding: utf-8 -*-

"""
Permet de convertir tous les fichiers en utf-8 dans le dossier
et sous-dossiers
Il est alors possible d'effacer les anciens fichiers
#############     attention !!!!!!! #################
Faire une sauvegarde sur une clé (ou disque) extérieure et
la débrancher avant de faire ces manoeuvres risquées !!!
"""

liste_ext = ['.tex', '.csv']
import os      # Permet d'exécuter des commandes shell
import chardet # Permet de déterminer l'encodage d'un fichier

def typecode(dossier,fichier): # détermine l'encodage du fichier
    d = os.path.join(dossier, fichier)
    fich = open(d,'rb')
    contenu=fich.read()
    fich.close()
    codage=chardet.detect(contenu)['encoding']
    return codage

def conversion(dossier,fichier): # conversion en utf-8
    fichiertemp="utf-"+fichier
    conv = "iconv -f " + 'latin1' + " -t utf-8 "+ fichier + " > " + fichiertemp
    os.system(conv)

def suppression(dossier,fichier):
    ## je sais que c'est étrange mais sinon, le changement
    ## de nom fait apparaître des caractères non conformes
    source="utf-"+fichier
    destination=fichier
    temporaire = "temp-"+fichier
    os.rename(source,temporaire)
    retour = source + " renommé en " + destination
    os.remove(fichier)
    os.rename(temporaire,destination)
    print(retour)

def convertir(dossier,fichier): # conversion des fichiers
    chemin=os.path.join(dossier, fichier)
    if os.path.splitext(chemin)[1] in liste_ext:
        code=typecode(dossier,fichier)
        if code =='windows-1251' or code == 'ISO-8859-2' \
        or code == 'ISO-8859-2' or code == 'latin1' \
        or code == 'windows-1255':
            conversion(dossier,fichier)
            retour = fichier + ' converti de ' + code + ' en utf-8'                 
        elif code == 'utf-8' or code == 'UTF-8':
            retour = fichier + ' déjà au format ' + code
        else:
            try:
                retour = fichier + ' au format ' + code
            except:
                retour=None
                pass
        print(retour)
   

curdir='/media/marco3/Données 1,9To/dossier/'

for dossier, sous_dossiers, fichiers in os.walk(curdir):
    if fichiers !=[]:
        print("Sous dossiers : %s" % sous_dossiers)             
        for fichier in fichiers:
            try:
                convertir(dossier,fichier)
            except:
                continue
   
############# suppression  ?????? #############################"         
rep = input("""On efface les fichiers non codés en utf-8 et on les renomme ? (O / N)
ATTENTION : plus de fichiers ISO ensuite !
""")
if rep == 'O':
    for dossier, sous_dossiers, fichiers in os.walk(curdir):
        if fichiers !=[]:
            for fichier in fichiers:
                if os.path.exists(fichier) and os.path.exists("utf-"+fichier):
                    suppression(dossier,fichier)
                else:
                    if os.path.exists(fichier):
                        print(fichier, "intact")


Si besoin, j'ai d'autres versions (pour 1 seul fichier ou pour plusieurs dossiers).
marco56
Giga-utilisateur
 
Messages: 723
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar MB » Dimanche 01 Juillet 2018, 09:42

Je ne sais pas pourquoi les fichiers sont en us-ascii (je suppose qu'il doit s'agir d'un réglage à effectuer dans texmaker, et peut-être que tu n'as pas un version française de windows). En tout cas, le script doit pouvoir s'adapter.

Code: Tout sélectionner
    #!/usr/bin/env bash
    echo "Traitement (conversion latin1 vers utf8) des fichiers suivants :"
    find . -name *.tex | while read f
    do
       utf=$(file --mime-encoding "$f" | grep utf)
       old=$(file --mime-encoding "$f" | grep us-ascii)

       if test -n "$utf"
       then
          echo "$f : déjà en utf-8"
       fi

       if test -n "$old"
       then
          echo "$f : conversion vers utf8"
          if test -f "$f.old"
          then
             cp "$f.old" "$f.old.bak"
          fi
          mv "$f" "$f.old"
          iconv -f us-ascii -t utf8 "$f.old" > "$f"     
       fi
    done
    echo "Fin du traitement."
    read
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6868
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar tnnico » Dimanche 01 Juillet 2018, 18:45

Merci à tous !

Pour l'instant je n'ai pas de solution. Mais je continue de chercher !
J'ai testé vos scripts et les ai modifiés pour faire quelques essais.

Le problème étant que même si j'ouvre (avec texmaker ou notepad ++) un fichier dans un format donné (utf8 ou ISO-8859-1), à l'enregistrement il change (parfois !!!) de format et se retrouve en us-ascii.
Du coup, vu que ça ne dépend pas de l'éditeur, je pense que le problème vient bien de windows, mais pour l'instant je n'ai rien trouvé pour corriger ce problème !
J'ai installé un windows acheté en France et marqué "Win 8.1 64Bit FR".
C'est le windows que j'avais sur mon disque précédent sauf que pour celui là j'avais pu bénéficier d'une mise à jour vers windows 10...
À laquelle je n'ai plus droit !

Bref je cherche, mais je suis preneur de toute piste !

Encore merci...
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar marco56 » Lundi 02 Juillet 2018, 06:44

2 options :
- tu mets en PJ qqs fichiers que l'on puisse tester : je ne vois pas pourquoi ma solution ne fonctionnerait pas ?
- tu essaies avec texstudio : c'est plus facile de changer d'encodage, mais ce sera 1 fichier à la fois.
[edit] Question bête : tu sais utiliser un script python ?
marco56
Giga-utilisateur
 
Messages: 723
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar MB » Lundi 02 Juillet 2018, 11:11

tnnico a écrit:Du coup, vu que ça ne dépend pas de l'éditeur, je pense que le problème vient bien de windows, mais pour l'instant je n'ai rien trouvé pour corriger ce problème !


Ne plus utiliser Windows ... :crash: ... et travailler sous Linux ? :mrgreen:
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6868
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar tnnico » Lundi 02 Juillet 2018, 19:29

Bon, je continue à chercher...
Oui, je sais utiliser un script Python mais je n'ai pas testé le tien (marco56) vu qu'il me faudrait un vrai Linux (je n'arrive pas à avoir le module chardet dans cygwin).
Le script bash fonctionne pour transformer les fichiers iso-8859-1 en utf8 mais pas les fichiers us-ascii...
Je pense que l'option -f us-ascii n'est pas reconnue.
De toute façon, ça ne résoudrait pas mon problème, en effet quelque soit le paramétrage de TexMaker (ISO-... ou UTF8), le type de fichier en sortie est parfois modifié (toujours en us-ascii)...
Il faut donc que j'arrive à corriger cela avant de me préoccuper de modifier les types de mes fichiers.

Je vous ai mis trois fichiers https://www.dropbox.com/sh/inri8ht8kpen2qb/AAC3gkYD546jERfxQku3loATa?dl=0

Le premier, "exercices.tex" est l'original encore au format "ISO-8859-1".
Le deuxième, "exercices.utf8.tex" est la conversion avec iconv du premier en utf8.
Pour le troisième, "exercices.utf8.modif.tex", j'ai simplement :
1) copié le deuxième avec mon nouveau nom ;
2) ouvert le troisième avec TexMaker ;
3) supprimé les lignes 31 à 35 puis les lignes 55 à 77 ;
4) enregistré et quitté TexMaker.

Il n'est plus en utf8...

Quand à la solution plus de windows, passer à Linux, elle me pose quelques problèmes à la maison...
Notamment le mécontentement de mes enfants :-(
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar marco56 » Lundi 02 Juillet 2018, 22:46

J'ai du mal à tout saisir.
Pour le premier fichier, tu l'ouvres avec texstudio, tu fais :
Code: Tout sélectionner
Edition -> Codage d'entrée -> Changer pour
et c'est réglé.

Pour le script python, je ne vois pas pourquoi cela ne fonctionnerait pas sous Windows.
Si tu le souhaites, tu installes la dernière version de spyder par exemple mais il y a sans doute moyen de passer cette étape.
Il faut chercher le fichier pip3.
Chez moi, avec spyder, il est dans C:\Winpython-64bits.........\python.........\scripts (à adapter)
Tu tapes ensuite sur la touche de Windows (je ne sais pas comment on l'appelle) et tu tapes cmd
Une fenêtre dos s'ouvre.
Enduite, avec :
Code: Tout sélectionner
cd C:\Winpython-64bits.........\python.........\scripts
tu vas à l'endroit où se trouve ton fichier pip3 et tu tapes :
Code: Tout sélectionner
pip3 install chardet
C'est installé.
Tu peux le vérifier en tapant :
Code: Tout sélectionner
help('modules')
dans la console Python.
Je n'ai pas tout mis les chemins car je tape sous linux et j'ai allumé pour l'occasion le Windows d'à côté du boulot...
marco56
Giga-utilisateur
 
Messages: 723
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar MB » Mardi 03 Juillet 2018, 08:35

tnnico a écrit:Le script bash fonctionne pour transformer les fichiers iso-8859-1 en utf8 mais pas les fichiers us-ascii...
Je pense que l'option -f us-ascii n'est pas reconnue.


En fait, après quelques recherches, la table us-ascii est inscrite dans la table utf-8, donc la conversion ne sert à rien en fait.
En ayant rapidement regardé le contenu de ton fichier, il ne semble contenir aucun caractère accentué. C'est peut-être pour ça qu'il est détecté comme du ascii et pas du utf-8. A confirmer.
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6868
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar tnnico » Mardi 03 Juillet 2018, 11:23

And ths winner is...

Bonjour et un grand merci à tous !

MB a trouvé la solution : s'il n'y a aucun caractère accentué, le type de fichier est modifié...
Je ne vois pas trop pourquoi...
Mais en tout cas, je vais commencer tous mes fichiers par % é à ô ...

Marco56, le script Python ne peut pas tourner directement sous windows car la commande iconv n'existe pas sous windows.
C'est pour ça que j'ai essayé de le testé sous cygwin, mais je n'ai toujours pas réussi à installer chardet...
Pourtant, j'ai installé le module principal, il y en a peut-être un qui lui est lié et que je n'ai pas coché !
ça n'est plus très grave maintenant... Je vais pouvoir repréparer mes cours pour la prochaine rentrée !

Encore merci à tous !
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Encodage avec Texmaker sous Windows

Messagepar marco56 » Mardi 03 Juillet 2018, 12:18

Cool ! Parfait alors.
Je n'avais pas tilté pour iconv.
marco56
Giga-utilisateur
 
Messages: 723
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Encodage avec Texmaker sous Windows

Messagepar MB » Mardi 03 Juillet 2018, 17:39

tnnico a écrit:s'il n'y a aucun caractère accentué, le type de fichier est modifié...
Je ne vois pas trop pourquoi...


En fait, le type d'encodage utilisé dans un fichier texte n'est généralement pas renseigné dans le fichier. Les différents programmes permettant d'identifier cet encodage tentent en fait de le 'deviner' à partir de son contenu. La norme UTF8 est en fait une extension de l'ASCII, c'est-à-dire que les caractères classiques (de la langue anglaise et donc non accentués) sont codés de la même façon en ASCII et en UTF8. De ce fait, les algorithmes de détection de l'encodage ne peuvent pas faire la différence entre un fichier ASCII et un fichier UTF8 si ce dernier ne contient aucun caractère spécial.

Il n'y a donc pas de problème à ce qu'un fichier ne contenant aucun caractère spécial soit identifié comme du ASCII, cela ne signifie pas que le logiciel utilisé pour la création de ce fichier n'est pas configuré pour produire de l'UTF8 et il n'est donc pas nécessaire d'ajouter volontairement des caractères accentués.
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6868
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Encodage avec Texmaker sous Windows

Messagepar tnnico » Mardi 03 Juillet 2018, 18:23

MB a écrit:Il n'y a donc pas de problème à ce qu'un fichier ne contenant aucun caractère spécial soit identifié comme du ASCII

Si ce n'est que TexMaker m'affichait un message d'erreur qui m'a fait "paniquer"...
tnnico
Hecto-utilisateur
 
Messages: 66
Inscription: Jeudi 25 Juin 2009, 13:06
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu] Encodage avec Texmaker sous Windows

Messagepar MB » Mercredi 04 Juillet 2018, 09:32

Il disait quoi ce message ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6868
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Suivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 12 invités