IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en forme Discussion :

Retour à la ligne automatique avec le package listings


Sujet :

Mise en forme

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Retour à la ligne automatique avec le package listings
    Bonjour à tous,
    En se premier jour de 2009, j'aurai voulu pouvoir inserer du code dans un rapport. Pour cela j'utilise listings.
    Malgré la doc que j'ai lue et relue je n'ai pas trouvé d'option permettant à une ligne trop longue de ne pas sortir de la feuille et de revenir automatiquement à la ligne.

    Est-ce que qqun aurait resolu ce problème ? (car j'ai de gros fichiers et les reprendre ligne par ligne est tres tres fastidieux)

    PB n°2 : est-il possible d'inclure un fichier dans sa totalité avec une commande du style \include{mon-fichier-a-inclure} pour en faire un listing ?

    Par avance un grand merci
    Et Bonne année à tous

    Kévin

  2. #2
    Membre du Club Avatar de Xilov
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Points : 59
    Points
    59
    Par défaut
    Salut !

    Citation Envoyé par ska38 Voir le message
    je n'ai pas trouvé d'option permettant à une ligne trop longue de ne pas sortir de la feuille et de revenir automatiquement à la ligne.
    Il s'agit de l'option breaklines. Il suffit de mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \lstset{breaklines=true}
    dans le préambule de ton fichier .tex et les lignes de codes trop longues ne déborderont plus.
    PB n°2 : est-il possible d'inclure un fichier dans sa totalité avec une commande du style \include{mon-fichier-a-inclure} pour en faire un listing ?
    Oui, en utilisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \lstinputlisting{nom_du_fichier}
    si le fichier « nom_du_fichier » à inclure est situé dans le même répertoire que ton fichier .tex.
    On peut aussi ajouter un titre et préciser le langage de programmation utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \lstinputlisting[caption=Mon super programme,language=C]{super_programme.c}

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    un grand merci, je vais tester ça de suite
    bonne soirée

    edit :
    Alors j'ai testé et ça marche super bien mais etant donné qua j'utilise le package suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    \usepackage[utf8]{inputenc}
    Malgré le fait que mes fichiers source soient en UTF8, j'ai cette erreur à la compilation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dossier.tex:39:Package inputenc Error: Unicode char \u8:�\expandafter not set up for use with LaTeX. Put_Line("Désirez
    dossier.tex:39:Package inputenc Error: Keyboard character used is undefined(inputenc) in inputencoding `utf8'. Put_Line("Désirez
    Aurais tu une idee pour que je puisse conserver mes accents dans mon fichier tex car sans l'utilisation du package inputenc, la compilation se passe sans aucun souci

    PS : je ne comprend pas pourquoi la caractère cité pose pb etant donné qu'il s'agit d'un espace....

    PS2 : je te joins le fichier source en question, pour que tu puisses voir quel caractère pose soucis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    with Es_Simples; use Es_Simples;
    with ADA.IO_EXCEPTIONS;
    
    
    package body P_liste_gen is
    
       function Est_Vide(L : T_Liste_Gen) return Boolean is
       begin
          return L = null;
       end Est_Vide;
    
       --****************************************
       -- Ajout en tete
       --****************************************
    
       function Ajout_Tete (L : in T_Liste_Gen ; N : in T) return T_Liste_Gen is
       begin
          return new Doublet'(Val=>N,Suiv=>L);
       end Ajout_Tete;
    
       --****************************************
       -- Creation de la liste
       --****************************************
    
       function Creation_Liste return T_Liste_Gen is
          L : T_Liste_Gen:=null;
          Val : T;
          Saisie_terminee:exception;
          Val2 : character;
          stop : boolean :=false;
       begin
          while not stop loop
    --         begin
             begin
                Put_Line ("Veuillez saisir une valeur");
                Get(Val);
                L:=Ajout_Tete(L,Val);
                loop
                   Put_Line("Désirez vous continuer ? O/N");
                   Get(Val2);
                   if Val2='N' then stop:=true; end if;
                   exit when Val2='N' or Val2='O';
                   Put_Line("Veuillez saisir O ou N en fonction de votre souhait");
                end loop;
                exception
                   when ADA.IO_EXCEPTIONS.DATA_ERROR => Put ("Erreur de saisie, type de données saisi incorrect : ");Skip_Line;
                end;
          end loop;
    
          Put_Line("Saisie terminée");
          return L;
    
       end Creation_Liste;
    
       --****************************************
       -- procedures d'affichage
       --****************************************
    
       procedure Affichage_Classique (L : in T_Liste_Gen) is
          L2 : T_Liste_Gen :=L;
       begin
    
          While not Est_Vide (L2) loop
             Put (' ');Put(L2.Val);
             L2:=L2.Suiv;
          end loop;
          Put_Line("Fin de l'affichage");
          New_Line;
    
       end Affichage_Classique;
    
    
       procedure Affichage_Joli (L : in T_Liste_Gen) is
          L2:T_Liste_Gen :=L;
          Nb_Elem : Integer:=0;
       begin
          while not Est_Vide(L2) loop
             Nb_Elem:=Nb_Elem+1;
             L2:=L2.suiv;
          end loop;
    
          for I in 1..Nb_Elem loop
             Ecrire_Ligne1;
          end loop;
          New_Line;
          L2:=L;
          while not Est_Vide(L2) loop
             Ecrire_Ligne2(L2);
             L2:=L2.Suiv;
          end loop;
          Put("NULL");
          New_Line;
          for I in 1..Nb_Elem loop
             Ecrire_Ligne1;
          end loop;
          New_Line;
       end Affichage_Joli;
       --****************************************
       -- fonctions necessaires a Affichage_Joli
       --****************************************
       procedure Ecrire_Ligne1 is
       begin
          Put("##################   ");
       end Ecrire_Ligne1;
    
       procedure Ecrire_Ligne2(L:T_Liste_Gen) is
       begin
          Put('#');
          Put(L.Val);
          Put(" # --#-> ");
       end Ecrire_Ligne2;
       --***************************************
    
       --****************************************
       -- procedures d'ajout en fin de liste
       --****************************************
       procedure Ajout_Fin (L : in out T_Liste_Gen ; N : in T) is
       begin
          if Est_Vide(L) then
             L:=Ajout_Tete(null,N);
          else
             Ajout_Fin (L.Suiv,N);
          end if;
       end Ajout_Fin;
    
    
       procedure Ajout_Fin_Copie (L : in T_Liste_Gen ; L2 : out T_Liste_Gen ; N : in T) is
          P : T_Liste_Gen:=L;
          P2,P3 : T_Liste_Gen;
       begin
          if Est_Vide(P) then
             L2 := Ajout_Tete(null,N);
          else
             P2:=Ajout_Tete(null,P.val);
             P3:=P2;
             while not Est_Vide(P.suiv) loop
                P:=P.suiv;
                P2.suiv:=Ajout_Tete(null,P.val);
                P2:=P2.suiv;
             end loop;
             P2.suiv:=Ajout_tete(null,N);
             L2:=P3;
          end if;
    
       end Ajout_Fin_Copie;
       --****************************************
       -- procedures d'inversion de l'ordre de la liste
       --****************************************
       procedure Inversion_Iterative (L : in out T_Liste_Gen ) is
          P:T_Liste_Gen:=L;
          Suivant : T_Liste_Gen;
          Precedent: T_Liste_Gen;
       begin
          while not Est_Vide(P) loop
             Suivant:=P.suiv;
             P.suiv:=Precedent;
             Precedent:=P;
             P:=Suivant;
          end loop;
          L:=Precedent;
       end Inversion_Iterative;
    
    
       procedure Inversion_Recursive (L : in out T_Liste_Gen;P : in  T_Liste_Gen ) is
          Save : T_Liste_Gen;
       begin
          if not Est_Vide(L) then
             Inversion_Recursive(L.Suiv, L);
             Save:=L.suiv;
             L.Suiv:=P;
             L:=Save;
          else
             L:=P;
          end if;
       end Inversion_Recursive;
       --****************************************
       -- procedures de recherche de sous liste
       --****************************************
    
       procedure Recherche_Sous_Liste_Proc (L1 : in T_Liste_Gen ;L2 : T_Liste_Gen; Ok : out  Boolean) is
          PP1: T_Liste_Gen :=L1;
          P1 : T_Liste_Gen :=L1;
          P2 : T_Liste_Gen :=L2;
       begin
          ok:=false;
          while (not Est_Vide(P1)) and (not Est_Vide(P2)) loop
             if P1.Val = P2.Val then
                P1:=P1.Suiv;
                P2:=P2.Suiv;
             else
                PP1:=PP1.Suiv;
                P1:=PP1;
                P2:=L2;
             end if;
          end loop;
          Ok := Est_Vide(P2);
       end Recherche_Sous_Liste_Proc;
    
    
       function Recherche_Sous_Liste_Fonc (L1, L2 : in T_Liste_Gen) return boolean is
    
         function Est_Au_Debut (L1, L2 : T_Liste_Gen) return boolean is
            -- renvoie vrai si L2 est au debut de L1
         begin
            return (L2 = null) or else ((L1 /= null) and then (L1.val = L2.val) and then Est_Au_Debut(L1.suiv, L2.suiv));
         end Est_Au_Debut;
    
       begin
          return Est_Au_Debut(L1,L2) or else ((L1 /= null) and then Recherche_Sous_Liste_Fonc(L1.suiv,L2));
       end Recherche_Sous_Liste_Fonc;
    
    end P_liste_gen;
    Merci encore et à bientot

  4. #4
    Membre du Club Avatar de Xilov
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par ska38 Voir le message
    Aurais tu une idee pour que je puisse conserver mes accents dans mon fichier tex car sans l'utilisation du package inputenc, la compilation se passe sans aucun souci
    Apparemment le package listings a un problème avec l'UTF-8...

    Si tu n'as pas trop de fichiers à inclure tu peux les réencoder en latin1 puis préciser que tu utilises cet encodage grâce à l'option inputencoding :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    %Fichier test_listings.tex (encodé en UTF-8)
    \documentclass[11pt,a4paper]{article}
     
     
    % inputencoding recquiert le package inputenc
    % fichier .tex encodé en UTF-8
    \usepackage[utf8]{inputenc} 
     
    \usepackage{listings}
     
    \title{Quelques essais avec \LaTeX}
    \date{}
    \author{Flyingsquirrel}
     
    \lstset{breaklines=true, inputencoding=latin1}
     
    \begin{document}
    \maketitle
     
    % fichier à inclure encodé en latin1
    \lstinputlisting{fichier_latin1}
     
    \end{document}
    Si tu ne veux pas convertir toi même les fichiers à inclure, tu peux utiliser le package listingsutf8 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    %Fichier test_listings_2.tex (encodé en UTF-8)
    \documentclass[11pt,a4paper]{article}
     
     
    % inputencoding recquiert le package inputenc
    % fichier .tex encodé en UTF-8
    \usepackage[utf8]{inputenc}
    \usepackage{listings}
    \usepackage{listingsutf8}
     
    \title{Quelques essais avec \LaTeX}
    \date{}
    \author{Flyingsquirrel}
     
    \lstset{breaklines=true, inputencoding=utf8/latin1}
     
    \begin{document}
    \maketitle
     
    % fichier à inclure encodé en UTF-8
    \lstinputlisting{fichier_utf8}
     
    \end{document}
    L'option inputencoding=utf8/latin1 précise que le fichier à inclure est encodé en UTF-8 et que l'on souhaite le convertir en latin1.

    PS : je ne comprend pas pourquoi la caractère cité pose pb etant donné qu'il s'agit d'un espace....
    Il me semble que le premier caractère à poser problème est le « é » de « Désirez », pas un espace.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Alors j'ai tout testé !
    changer l'encodage à la main, cela fonctionne niquel (avec un petit script trouvé sur le net ça se fait tout seul !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/bash
    mkdir converti
    for i in $(ls)
    do if test -f $i
    then iconv -f utf-8 -t iso-8859-1 $i -o news/$i
    fi
    done
    Par contre pour ce qui est du package listingsutf8 c'est une autre histoire !
    Déjà pour l'installer c'est la galère car il a besoin de bcp de dépendance du package oberdiek mais ça c'est réglé !
    Apres lors de la compile j'ai une erreur sur le package stringenc (je ne sais pas à quoi elle est due....)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    dossier.tex:55: Encoding file `se-utf8.def'(stringenc) not found on input line 55. Encoding file `se-utf8.def'(stringenc) not found
    dossier.tex:55:Package stringenc Error: Conversion from encoding `utf8'(stringenc) is not supported. \lstinputlisting{temp.adb}
    dossier.tex:55: Encoding file `se-iso-8859-1.def'(stringenc) not found on input line 55. Encoding file `se-iso-8859-1.def'(stringenc) not found
    je n'ai aucune idee de ce qu'est le fichier se-iso-8859-1.def, ni ou le trouver.
    Si jamais tu ne sais pas ne te casse pas la tete, j'ai une solution qui marche, c'est l'essentiel !
    un grand merci



    EDIT : rectification , j'avais oublié de copier tous les fichiers de definition d'encodage dans le dossier approprié donc maintenant tout marche super super bien, je met resolu dans le titre !
    Et un grand merci à toi

  6. #6
    Membre confirmé Avatar de Fox213
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Bonjour

    Tu as un bouton résolu en bas!!

    Pas la peine de modifier ton titre

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    merci je prends note pour la prochaine fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Retour à la ligne automatique avec un viewbox
    Par Oberown dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 06/07/2011, 21h10
  2. retour à la ligne automatique avec la balise <pre>
    Par Jiyuu dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 25/04/2010, 18h08
  3. Retour à la ligne automatique avec reportlab
    Par Jiyuu dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 22/06/2009, 18h08
  4. Liste ul>li - Retour à la ligne automatique d'un grand mot
    Par bdaboah dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 25/02/2009, 13h40
  5. [JOptionPane]retour à la ligne automatique ?
    Par Pill_S dans le forum Composants
    Réponses: 5
    Dernier message: 01/12/2004, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo