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

Posté par (page perso) .
Tags :
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 (page perso) . É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 (page perso) . É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).

      « Un animal d'une atterrante stupidité : il est persuadé que si vous ne le voyez pas, il ne vous voit pas non plus » (H2G2)

      • [^] # Re: Pourquoi ?

        Posté par . Évalué à 1.

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

          Posté par (page perso) . É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}

          « Un animal d'une atterrante stupidité : il est persuadé que si vous ne le voyez pas, il ne vous voit pas non plus » (H2G2)

          • [^] # Re: Pourquoi ?

            Posté par (page perso) . Évalué à 3.

            > \usepackage[francais]{babel}

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

              Posté par (page perso) . É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.

              « Un animal d'une atterrante stupidité : il est persuadé que si vous ne le voyez pas, il ne vous voit pas non plus » (H2G2)

              • [^] # 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 à ceux qui les ont postés. Nous n'en sommes pas responsables.