BACK
C.V.S
Emacs
Euro
Fontes
FreeADSL
Index
Logiciels
Portable

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. .CSH
Voici un exemple de fichier postscript obtenu par texfonts. .PS.GZ

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
BACK
C.V.S
Emacs
Euro
Fontes
FreeADSL
Index
Logiciels
Portable

Florent Chabaud
E-mail : florent.chabaud@m4x.org
Clé GPG : CLÉ