Changer les préfixes et les suffixes de fichiers situés dans un
répertoire
On a souvent beoin de renommer des fichiers en masse à l'intérieur
d'un répertoire. Voici deux petits scripts shell pour chaque cas :
- Changement de suffixe
sh
for i in *$1;do mv $i ${i%$1}$2 ;done
Par exemple, renom_suffix.sh txt mpl
renommera tous les
fichiers finissant par txt
: ils finiront alors par mpl
- Changement de préfixe
sh
for i in $1*;do mv $i $2${i#$1} ;done
Par exemple, renom_prefix.sh essai try
renommera tous les
fichiers commençant par essai
: ils commenceront alors par try
MiKTeX package manager pour linux
Ce scripts devient inutile si vous avez une version de TeXLive
postérieure à 2008 grâce à tlmgr
Suite à un fil sur fctt, j'ai installé mpm (MiKTeX package manager)
disponible maintenant pour linux et ça marche ! Cela simplifie pas mal
l'installation de paquets disponibles sur CTAN.
J'ai dû régler quelques détails, donc voici quelques conseils
pour ubuntu/debian et il n'ya aucune raison que ça ne marche pas pour
les autres (changer les apt-get). Voici un script shell :
sh
sudo apt-get install g++;
sudo apt-get install libcurl4-openssl-dev;
sudo apt-get install cmake;
sudo apt-get install lynx;
wget http://downloads.sourceforge.net/miktex/miktex-2.7.2960.tar.bz2?modtime=1202505732\&big_mirror=1;
tar jxvf miktex-2.7.2960.tar.bz2;
cd ./miktex-2.7.2960/ ;
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=${HOME} -DMIKTEX_INSTALLROOT=${HOME}/texmf;
make ;
make install;
echo export LD_LIBRARY_PATH=${HOME}/lib >> ~/.bashrc;
echo export PATH=${PATH}:${HOME}/bin >> ~/.bashrc;
initexmf -u;
Il faut relancer X11 pour tenir compte du changement de path.
Puis un petit script pour installer des fontes (il y a sinon des problèmes
de dépôts)
sh
read -p "Quel est le nom des fontes à installer ? " font
mpm --verbose --repository=ftp://ftp.inria.fr/pub/TeX/CTAN/systems/win32/miktex/tm/packages/ --install=$font;
sudo updmap --enable Map $font.map;
updmap;
et pour un paquet normal
sh
read -p "Quel est le nom du paquet à installer ? " pac
mpm --verbose --repository=ftp://ftp.inria.fr/pub/TeX/CTAN/systems/win32/miktex/tm/packages/ --install=$pac;
Pour une mise à jour, on crée un script
majmpm
:
sh
export LD_LIBRARY_PATH=${HOME}/lib;
read -p "Quel est le nom du paquet à mettre à jour ? " pac
mpm --verbose --repository=ftp://ftp.inria.fr/pub/TeX/CTAN/systems/win32/miktex/tm/packages/ --update=$pac;
Pour obtenir la doc d'un paquet, on crée le script
docmpm
:
sh
export LD_LIBRARY_PATH=${HOME}/lib;
read -p "Quel est le nom du paquet dont tu veux la doc ? " pac
mthelp $pac;
Scripts MetaPOST -> images png dans un site
Voici comment automatiser la conversion de figures MetaPOST en
vignettes png avec les balises html qui vont bien pour une inclusion
dans ce site. Merci à Philippe IVALDI. D'abord un script de conversion proprement dit :
sh
if [ "\$1.mp" -nt "\$1.eps" ]; then
for fic in *.dvi; do rm -f $fic; done;
for fic in *.log; do rm -f $fic; done;
for fic in *rr.tex; do rm -f $fic; done;
for fic in *.aux; do rm -f $fic; done;
for fic in $1.*[0-9]; do rm -f $fic; done;
mpost -interaction nonstopmode $1
fi
cat>$1.tex<<EOF
\documentclass{article}
\usepackage{preambule}
\usepackage{multido}
\thispagestyle{empty}
\begin{document}
\begin{TeXtoEPS}
\includegraphics{\$1.\$2}
\end{TeXtoEPS}
\end{document}
EOF
latex $1
dvips -o $1.eps -E $1.dvi
for fic in *.mpx; do rm -f $fic; done;
convert -density 200 -resample 96 -quality 75 -depth 8 -strip $1.eps $1$2.png;
rm -f $1.eps;
mv $1$2.png /home/moi/$3/ ;
cat>>/home/moi/$3/index.php<<EOF
<h5 class="hidden"><a class="hidden" name="fig\$1\$2" id="fig\$1\$2"></a>phantom</h5>
<div class="code-contener">
<table class="code-img">
<caption align="bottom">
<span class="legend">Figure $1$2: <a href="fig\$1\$2.mp">fig\$1\$2.mp</a></span>
</caption>
<tr>
<td>
<img class="imgborder" src="\$1\$2.png" alt="Figure \$1\$2" />
<br />
</td>
</tr>
</table>
<div class="code">
<pre>
</pre>
</div>
EOF
Puis un autre qui permet de dialoguer avec l'utilisateur :
sh
clear
read -p "Quel est le préfixe des fichiers ? " pre
clear
read -p "Quel est le numéro de la première figure ? " deb
clear
read -p "Quel est le numéro de la dernière figure ? " fin
clear
read -p "Quel est le pas ? " pas
clear
read -p "Où veux-tu l'envoyer ? /home/moi/" rep
for i in $(seq $deb $pas $fin); do ~/bin/convert-mp-png.sh $pre $i $rep; done;
Il suffit ensuite de mettre
mp2png
dans le PATH et de
le lancer dans le répertoire où se trouvent les figures.
Conversion midi -> wav, Lilypond et Emacs
Lilypond crée des fichiers midi. Pour les envoyer à des personnes ne
lisant pas le midi, on peut les convertir en ayant installé timidity
sudo apt-get install timidity
on lance le script
shtimidity $1.midi $1-*.midi -Ow -o $1.wav
en tapant
midi2wav préfixe_du_fichier_midi
En fait, j'utilise cette commande à partir d'emacs grâce à quelques
lignes de lisp rajoutées dans lilypond-mode.el :
(defvar guillaume-midi2wav-command "midi2wav %s")
(defun guillaume-midi2wav () (interactive)
(save-buffer)
(shell-command (format guillaume-midi2wav-command
(file-name-sans-extension(buffer-file-name))))
)
(add-hook 'LilyPond-mode-hook
'(lambda nil
(define-key LilyPond-mode-map [(super c) (super w)] 'guillaume-midi2wav)))
Après avoir compilé le fichier .ly, on tape donc sur S-c S-w pour
avoir la conversion .wav dans le répertoire courant.
J'ai même rajouté la commande dans le menu de lilypond en rajoutant
dans lilypond-mode.el vers la ligne 1030 :
(easy-menu-define LilyPond-command-menu
LilyPond-mode-map
"Menu used in LilyPond mode."
(append '("Command")
'([ "Midi2wav" guillaume-midi2wav t])
))
Linux sur un Dell dimension e521
La souris et le clavier
J'utilise kubuntu sur un dell dimension e521. Premier problème : la
souris et le clavier ne fonctionneront que si on les branche via un
hub usb.
xorg.conf avec écran panoramique
Je tourne sur un écran panoramique 1680x1050. J'ai chargé un pilote
nvidia et voici le
xorg.conf
qui va avec.