Fontes LaTeX
LaTeX est un utilitaire de traitement de texte qui permet d'obtenir des documents de qualité typographique professionnelle. Toutefois, comme il ne s'agit pas d'un traitement de texte WYSIWYG*, mais d'un langage de programation typographique, il souffre de quelques défauts. En particulier lorsqu'on souhaite utiliser des fontes non standards, le changement n'est pas des plus aisés pour le profane. Cette page indique d'une part comment déterminer les fontes disponibles sur un système, d'autre part comment les utiliser sous LaTeX.
*What You See Is What You Get, littéralement ce que vous voyez à l'écran est ce que vous obtenez à l'impression.
Détermination des fontes disponibles
Le fichier texfonts.sh est le script-shell à rendre exécutable.
Il nécessite de disposer des programmes awk, latex et dvips.
|
|
Voici un exemple de fichier postscript obtenu par texfonts.
|
|
Pour utiliser le programme, faire
texfonts.csh <nom_de_répertoire> [print|batch]
L'option print envoie directement les fichiers postscript à l'imprimante. Par défaut, des fenêtres gv sont lancées, qui permettent de visualiser les fichiers.
L'option batch permet de ne pas attendre d'avoir visualisé une fenêtre pour lancer la compilation de la suivante.
Généralement le répertoire TeX contenant les fontes est /usr/lib/texmf/ ou /usr/local/lib/texmf/.
Compiler toutes les fontes prend beaucoup de temps et pas mal de place disque. Si votre installation est bien faite, il y a dans la crontab de root un démon qui nettoiera les fichiers inutilisés du type
# Remove and TeX fonts not used in 25 days
/usr/sbin/tmpwatch 600 /var/lib/texmf
Sinon, penser à libérer /var/lib/texmf.
Utilisation des fontes LaTeX
Pour utiliser les fontes LaTex, utiliser la commande \newfont.
Par exemple
\newfont{\HugeFont}{ptmb at 60pt}
définit la fonte Times-Bold à 60pt. On peut ensuite l'utiliser dans le corps du document de la façon suivante :
{\HugeFont Ceci va s'écrire en énorme}
#! /bin/csh -f
# texfonts Florent Chabaud (chabaud@celar.fr)
set TEXMF=/usr/share/texmf
if ( "$1" == "" ) then
echo "Usage: $0 $TEXMF [print|batch]"
else
set TEXMF="$1"
endif
set TMPNAME=font.$$
set TEXNAME=font$$
set TMPDIR=/tmp
set TMP=$TMPDIR/$TMPNAME
set TEX=$TMPDIR/$TEXNAME
set AWKTMP=$TMPDIR/awk-$$
if ( -f $TMP ) rm $TMP
if ( -f $TEX ) rm $TEX
#echo "Sortie dans $TMP $TEX"
find $TEXMF -name '*.tfm' -print > $TMP
cat > $AWKTMP.1.awk <<EOF
BEGIN{FS="/"; n=0; }
{
s=substr(\$NF,0,length(\$NF)-4);
st="";
for(c=n;c>0;c /= 26)
{
x= c%26;
st=sprintf("%s%c",st,x+65);
c -= x;
}
if((NR <= INIT)&&(NR > INIT-STEP))
printf("\\\\newfont{\\\\mfonte%s}{%s}\\n",st,s);
n++;
}
EOF
cat > $AWKTMP.2.awk <<EOF
BEGIN{FS="/"; n=0; }
{
s=substr(\$NF,0,length(\$NF)-4);
st="";
for(c=n;c>0;c /= 26)
{
x= c%26;
st=sprintf("%s%c",st,x+65);
c -= x;
}
if((NR <= INIT)&&(NR > INIT-STEP))
printf("%s & {\\\\mfonte%s ABCDEF ghijkl 91260 àéîÖÙ} \\\\\\\\ \\\\hline\\n",s,st);
n++;
}
EOF
set nbf=`cat $TMP | wc -l`
echo "$nbf fontes"
set step=35
set pwd=`pwd`
while ($nbf > 0)
cd $pwd
echo "Énumération de $step fontes jusqu'à la $nbf-ième."
cat > $TEX.tex <<EOF
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\documentclass[12pt,a4paper]{article}
\begin{document}
\newfont{\fonteinit}{cmr10}
EOF
awk -f $AWKTMP.1.awk INIT=$nbf STEP=$step < $TMP >> $TEX.tex
cat >> $TEX.tex <<EOF
\begin{center}
\begin{tabular}{|c|c|} \hline
Fonte & Exemple\\\\ \hline
EOF
awk -f $AWKTMP.2.awk INIT=$nbf STEP=$step < $TMP >> $TEX.tex
cat >> $TEX.tex <<EOF
\end{tabular}
\end{center}
\end{document}
EOF
cd /tmp
latex $TEXNAME
if ("$2" == "print") then
dvips $TEXNAME
else
dvips $TEXNAME -o $TEXNAME.postscript
mv $TEXNAME.postscript $TEXNAME-$nbf.ps
if ("$2" == "batch") then
( gv -iconic -scale 3 $TEXNAME-$nbf.ps ; rm $TEXNAME-$nbf.ps) &
else
gv -scale 3 $TEXNAME-$nbf.ps
rm $TEXNAME-$nbf.ps
endif
endif
@ nbf = $nbf - $step
end
rm $TMPNAME $TEXNAME.* $AWKTMP.*
# End of texfonts.csh
Last modified: Aug 17th, 2012 12:41
|