#! /usr/local/bin/perl # Retire certains caractèrs (souligné, circonflexe) des labels en les # remplaçant par des tirets. À utiliser avec un fichier .tex en # argument, et le résultat sort sur la sortie standard # (donc typiquement faire: # ./renommage-labels.pl truc.tex > truc.tex.new && mv truc.tex.new truc.tex # ). sub changeul { my $s = shift; $s =~ s/[\_\^\:]/\-/g; return $s; } while (<>) { s/\\(label|ref|refext\{.*?\})\{(.*?)\}/sprintf("\\%s{%s}",$1,changeul($2))/ge; print; }