Convertir un document TeXShop (LaTeX) de MacOSRoman à UTF8

pim

Membre expert
Club iGen
19 Avril 2004
3 852
650
51
Riom
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 :

Automator.jpg


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.

Script.jpg


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.