Journal LaTeX : un aide-mémoire et deux scripts bash

Posté par  .
Étiquettes :
16
24
mai
2009

Bonjour à tous !




Tout d'abord, voilà le lien : exemples-latex-v0.2.tar.gz



J'ai écris il y a quelques temps un aide-mémoire pour LaTeX, la particularité c'est que tout se trouve directement dans les fichiers *.tex, le PDF n'est là que pour visualiser ce que chaque commande fait. J'ai mis un maximum de commentaires pour tout expliquer, donc c'est aussi destiné aux débutants.



Concrètement l'aide-mémoire contient :


  • les commandes de bases (listes, tailles et styles des caractères)

  • notes de bas de page

  • faire des références (bibliographie, image, tableau ou équation)

  • inclure des images, les mettre côte à côte avec une ou plusieurs légendes

  • faire des tableaux

  • formules et symboles mathématiques

  • inclure un code source

  • faire des annexes

  • bibliographie

  • en-tête et pied de page personnalisés

  • séparer le document en plusieurs fichiers

  • ...





tab2tex.sh



Au lieu de faire un long discours je copie ici le script (qui se trouve aussi dans l'archive contenant l'aide-mémoire). Pour info, calc2latex, une macro d'OpenOffice.org Calc, permet de faire plus ou moins la même chose.




#!/usr/bin/env bash
# tab2tex.sh
# auteur : Sébastien Wilmet

# Fait plusieurs opérations pour faciliter le passage d'un document écrit avec
# un tableur (OOo Calc, Excell, ...) à LaTeX.
# Il faut d'abord faire un copier/coller du tableur dans un simple fichier texte.
# Les colonnes sont alors séparées par des tabulations normalement. Si ce n'est
# pas le cas, le script ne fonctionnera pas.

# traite le fichier passé en argument, lit l'entrée standard si pas d'argument
# ajoute & entre chaque colonne et \\ après chaque ligne
# option -l : rajoute \hline (ligne horizontale) entre chaque ligne
# option -c : appliquer une commande à la première colonne (mettre en gras p. ex)
# exemple : tab2tex -l -c textbf sample

usage="Usage : $0 [-l] [-c commande] [nomfichier]"

option_c=0
while getopts ":lc:" opt; do
case $opt in
l )
hline=' \\hline'
;;

c )
option_c=1
commande=$OPTARG
;;

\?)
echo $usage
exit 1
;;
esac
done

shift $(($OPTIND - 1))
nomfichier=$1

# 1) & entre chaque colonne
# 2) \\ après chaque ligne
# 3) si option -l, ajoute \hline après chaque ligne

# Si option c
if [ "$option_c" -eq 1 ]; then
sed -e "s/^[^\t]*/\\\\$commande\{&\}/" \
-e 's/\t/\t \& /g' -e 's/^.*$/& \\\\/' -e "s/^.*$/&$hline/" $nomfichier
exit $?
fi
sed -e 's/\t/\t \& /g' -e 's/^.*$/& \\\\/' -e "s/^.*$/&$hline/" $nomfichier



L'autre script, doc2tex.sh n'est pas assez intéressant pour que je le copie ici (il est dans l'archive). En gros ça permet de copier facilement un paragraphe écrit dans OOo Writer ou Word, dans un document LaTeX. Il y a juste certains caractères comme les guillemets « », les caractères œ æ, etc qui sont remplacés par leur équivalent en LaTeX. Et aussi la commande fmt permet de couper les lignes à une certaine largeur. Rien de bien intéressant donc mais il m'a quand même servi quelques fois.



Voilà, toute suggestion d'amélioration est la bienvenue, que se soit pour l'aide-mémoire ou pour les scripts :)



PS : c'est mon premier journal, j'ai trouvé utile de partager tout ça.

  • # ce journal ne sert plus à rien....

    Posté par  . Évalué à 4.

    de toute façon Latex va disparaître car il va être remplacé par une somptueuse suite bureautique :
    http://tech.slashdot.org/article.pl?sid=09/05/19/1556203

    ->[]
  • # Pourquoi ?

    Posté par  (site web personnel) . Évalué à 6.

    > Il y a juste certains caractères comme les guillemets « », les caractères œ æ, etc qui sont
    > remplacés par leur équivalent en LaTeX.

    Pourquoi donc ? Si on a le bon \usepackage[...]{inputenc}, c'est aussi pratique d'avoir les vrais caractères dans le texte source, non ?
    • [^] # Re: Pourquoi ?

      Posté par  . Évalué à 2.

      Bonne remarque. Pour ma part j'ai toujours utilisé :
      \usepackage[utf8]{inputenc}
      \usepackage[francais]{babel}
      \usepackage[T1]{fontenc}

      mais ça ne m'a pas empêché d'avoir certains problèmes avec des caractères spéciaux.

      Il n'empêche aussi que devoir échapper des caractères tels que _ (à écrire \_) ça fait très 1980 (au pif).
      • [^] # Re: Pourquoi ?

        Posté par  . Évalué à 3.

        n'oublie pas \usepackage{lmodern} sinon les polices sont moches
    • [^] # Re: Pourquoi ?

      Posté par  . Évalué à 1.

      Maintenant que tu le dis, j'ai essayé les caractères æœ et «» et ils s'affichent correctement. Donc je sais plus pourquoi je voulais les changer, peut-être qu'avec tetex ça ne fonctionnait pas (maintenant je suis sur texlive).

      Sinon je ne l'ai pas dis mais le script rajoute aussi des ~ (espace insécable) avant : ; ! et ? et supprime les retours charriot (\r).
      • [^] # Re: Pourquoi ?

        Posté par  . Évalué à 1.

        peut etre que cela merdouille avec UTF8
        • [^] # Re: Pourquoi ?

          Posté par  . Évalué à 1.

          Non non, je suis en utf-8.
          Dans le préambule j'ai :
          \usepackage[T1]{fontenc}
          \usepackage[utf8]{inputenc}
          \usepackage[francais]{babel}
          \usepackage{lmodern}
          • [^] # Re: Pourquoi ?

            Posté par  (site web personnel) . Évalué à 3.

            > \usepackage[francais]{babel}

            Mais du coup les espaces insécables devant les !, :, ; sont inutiles aussi.
            • [^] # Re: Pourquoi ?

              Posté par  . Évalué à 1.

              Eh ben j'en apprends des choses ! Je ne connaissais pas non plus.
              En plus si on oublie de mettre un espace devant il le rajoute tout seul.
              • [^] # Re: Pourquoi ?

                Posté par  . Évalué à 7.

                En plus si on oublie de mettre un espace devant il le rajoute tout seul.

                \begin{integriste_latex}

                Une espace !

                \end{integriste_latex}
    • [^] # Re: Pourquoi ?

      Posté par  . Évalué à 1.

      \og \fg gèrent mieux les espaces avant/après les guillements:
      il y a des solutions pour convertir les «» en \og \fg:
      http://groups.google.com/group/fr.comp.text.tex/browse_threa(...)\og+\fg+ou+«»#fbbc064592745789
      (mais je sais pas comment éviter que mon lien ne soit bouffé ...)

      sinon la lecture de la doc est hautement recommandé, on y découvre toujours des choses intéressantes: http://daniel.flipo.free.fr/frenchb/

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.