Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Programmation.python : Insérer du code source Python dans un fichier LaTeX

Posté par ploum (page perso, ) le 14 août 2006
Bonjour,



Je cherche à insérer du code source python dans un fichier LaTeX. Pas besoin que ce soit beau, personne ne va le lire mais il chez nous est obligatoire de mettre en annexe du mémoire le code source réalisé.



En fait, ce que je cherche exactement serait donc une commande du type :



\input{python/main.py}



avec la particularité que le contenu du texte serait affiché en verbatim (et non interprété) en respectant les indentations.



Connaissez-vous une solution pour faire ce genre de choses ?



Merci d'avance.

> Lire le message (5 commentaires, moyenne: 2,8).  

Vous avez demandé le commentaire #742927.

listings

Posté par Antoine Reilles (Jabber id, page perso, ) le 14/08/2006 à 12:44. (lien). Évalué à 5.

Il te faut utiliser le package listings pour ça.

Tu peut aussi regarder du coté de moreverb, qui doit contenir une commande \inputverbatim{fichier}

Mais bon, listings te permettra en plus d'avoir quelque chose de joli pour pas cher, et de pouvoir mettre des choses en valeur, par ex souligner un certian mot clé et tout. Python est supporté, il suffit de coller dnas l'en tête
\lstset{language={Python}}

Et bien sûr, tu pourra fiare
\lstincludelisting{fichier}

La doc est par exemple là :
http://www.math.ntnu.no/~berland/latex/docs/listings.pdf

  • [^]Re: listings

    Posté par ploum (page perso, ) le 14/08/2006 à 13:12. (lien). Évalué à 2.

    terrible, c'est pile poil ce que je cherchais ! Merci !

    Pour info, la commande exacte est :

    \lstinputlisting{fichier.py}

    Je dois juste encore comprendre pourquoi il me met des

    Package inputenc Error: Unicode char \u8:�expandafter not set up for use with LaTeX.

    Alors que je suis en utf-8 partout

    • [^]Re: listings

      Posté par Antoine Reilles (Jabber id, page perso, ) le 14/08/2006 à 13:23. (lien). Évalué à 3.

      Argh !

      En fait, listings ne sait pas traiter correctement les caractères accentués, même avec inputenc, et en utilisant l'option extendedchard de listings.
      Pour ça, le mieux c'est encore d'oublier les accents dnas le source python ;-)

      Sinon, il faut jouer avec le package examplep, qui permet d'utiliser des entrées utf-8 pour listings, mais ce n'est pas dans la distribution tetex, et je ne connais pas bien :

      http://www.ctan.org/tex-archive/macros/latex/contrib/example(...)

      • [^]Re: listings

        Posté par ploum (page perso, ) le 14/08/2006 à 13:50. (lien). Évalué à 2.

        j'ai effectivement viré les accents de mes commentaires et ça a suffit. Finalement, c'était peu de choses.

        Un tout grand merci en tout cas.

      [^]Re: listings

      Posté par ploum (page perso, ) le 14/08/2006 à 13:40. (lien). Évalué à 2.


      L'extension Listings, pour formater des programmes, est quant à elle totalement incompatible avec UTF-8: sitôt qu'elle trouve des caractères accentués dans un programme, elle affiche des messages d'erreur. Je n'ai pu trouver aucun autre contournement que reconvertir tout le manuscrit en Latin 1 ou omettre les accents dans les programmes. C'est très dommage, car Listings est sans doute le meilleur système, voire le seul système viable, de formatage de programmes disponible sous LaTeX. Il faudra sans doute attendre une version complètement Unicode de TeX, par exemple Omega TeX, pour enfin avoir une compatibilité parfaite avec UTF-8.


      http://www-etud.iro.umontreal.ca/~buisteri/udemthese/index.h(...)

      Arrrrrgh ! C'était si parfait !

      Tant pis, même avec plein d'erreurs, le document à l'air correct.