Ce forum est en partie financé par l’affichage de publicités. Merci de désactiver votre bloqueur de publicités pour nous permettre de continuer à fournir ce service.

Convertir un document TeXShop (LaTeX) de MacOSRoman à UTF8

Discussion dans 'AppleScript et Automator' créé par pim, 11 Juin 2017.

  1. pim

    pim Membre d’élite
    Club MacG

    Inscrit:
    19 Avril 2004
    Messages:
    3 850
    J'aime reçus:
    655
    Bonjour à tous,

    Quand je suis arrivé sous Mac en 2003, sous TeXShop j'ai laissé l'encodage par défaut, MacOSRoman. Je venais de Windows 98 avec des centaines de fichiers LaTeX en ASCII, j'ai à l'époque remplacé les accents qui sortaient sous forme cabalistique à la main, directement dans le document.

    L'encodage UTF8 permet de partager bien plus facilement les documents .tex, j'ai donc entrepris d'abandonner MacOSRoman pour n'utiliser que UTF8. Mais comment convertir « à la chaîne » des milliers de documents accumulés pendant des années ? J'ai cherché, c'est un problème classique, et comme je n'ai trouvé que des solutions partielles, j'ai créé un petit quelque chose « sur mesure » pour moi, en espérant que cela aide d'autres utilisateurs de TeXShop.

    J'ai d'abord créé un script sous Automator qui me recherche automatiquement tous mes documents LaTeX dans mon dossier de départ :

    [​IMG]

    Lien vers le script Automator : liste.workflow.zip

    Cela créé un fichier texte comprenant tous les fichiers .tex, avec leur chemin d'accès, séparés par des retour chariot. J'ai édité ce fichier pour remplacer les retours chariots par des espaces et pour encadrer chaque nom de fichier de doubles apostrophes "/mondossier/monfichier.tex". Ainsi, les fichiers qui comportent des espaces vont passer à la moulinette sans souci.

    Ensuite, comme je ne sais rien faire en programmation, j'ai trouvé une introduction aux scripts bash :

    https://openclassrooms.com/courses/...-aide-de-linux/introduction-aux-scripts-shell

    En lisant cela j'ai créé un petit script qui utilise la commande iconv insérée dans une boucle.

    [​IMG]

    Lien direct vers le script bash : conversion.sh.zip

    Pour lancer le script il suffit de taper ./conversion.sh "mon fichier.tex". On peut lui fournir des centaines de fichiers, il suffit qu'ils soient entre doubles apostrophes et séparés par un espace, le script va les faire un par un. Attention, le script ne teste pas si l'encodage de départ est MacOSRoman, et il ne teste pas non plus si le fichier existe vraiment, et pour finir, comble de l'horreur, il écrase le fichier d'origine par le nouveau fichier converti ! Mais cela a fonctionné pour moi, il m'a fait la conversion de mes 7812 fichiers, que j'ai prudemment passé à la moulinette 500 par 500. Autant de fichiers modifiés d'un coup a rendu fou Dropbox, mais pour le reste tout va bien.

    Il y a sans doute de bien meilleures manières de faire cela, mais à cours de solution, voilà ce que j'ai trouvé en quelques heures. En espérant pouvoir être utile à d'autres qui auraient le même problème.
     
Chargement...