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

Erreurs - Avertissements Discussion :

Package listings, erreur de compilation. Code trop long ?


Sujet :

Erreurs - Avertissements

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut Package listings, erreur de compilation. Code trop long ?
    Bonsoir,

    J'essaye d'insérer du code C++ dans mon doc latex mais j'ai des erreurs de compilation que je ne comprend pas.

    Le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    \lstset{language=C++, basicstyle=\footnotesize ,frame=single }
    \begin{document}
    \lstinputlisting{dossier/source.cpp}
    \end{document}

    J'iai des erreurs du genre:
    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
     
    [25] (source.cpp [26
    ! Incomplete \iffalse; all text was ignored after line 23.
    <inserted text> 
                    \fi 
    l.23         return 
                        m_composantes[1];
    A forbidden control sequence occurred in skipped text.
    This kind of error happens when you say `\if...' and forget
    the matching `\fi'. I've inserted a `\fi'; this might work.
     
    ! Incomplete \iffalse; all text was ignored after line 23.
    <inserted text> 
                    \fi 
    l.23         return 
                        m_composantes[1];
    A forbidden control sequence occurred in skipped text.
    This kind of error happens when you say `\if...' and forget
    the matching `\fi'. I've inserted a `\fi'; this might work.


    Alors j'ai essayé en copiant directement le code dans le doc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    \begin{lstlisting}
    du code...
    \end{lstlisting}
    Mais lorsque le code devient trop gros (environ 30 lignes) ça compie plus et j'obtiens le même genre d'erreurs.



    Merci pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 245
    Points : 323
    Points
    323
    Par défaut
    poste ton code C++ et un ECM, de plus, comment compile tu ? avec pdflatex ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Mr Mi Voir le message
    poste ton code C++ et un ECM, de plus, comment compile tu ? avec pdflatex ?
    Compilation latex simple. (idem avec pdflatex de toute façon)

    code qui compile:
    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
     
    \begin{lstlisting}
    #include "Vecteur.h"
     
    Vecteur::Vecteur()
    {
        for(unsigned int i=0; i<2; i++)
            m_composantes[i]=0.0;
    }
     
    Vecteur::Vecteur(float const x, float const y)
    {
        m_composantes[0]=x;
        m_composantes[1]=y;
    }
     
    float Vecteur::operator(unsigned int i) const
    {  
        if(i<1)
            return m_composantes[i];
        else
            return m_composantes[1];
     
    }
    \end{lstlisting}
    Une ligne de plus et ça compile plus:

    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
    \begin{lstlisting}
    #include "Vecteur.h"
     
    Vecteur::Vecteur()
    {
        for(unsigned int i=0; i<2; i++)
            m_composantes[i]=0.0;
    }
     
    Vecteur::Vecteur(float const x, float const y)
    {
        m_composantes[0]=x;
        m_composantes[1]=y;
    }
     
    float Vecteur::operator(unsigned int i) const
    {  
        if(i<1)
            return m_composantes[i];
        else
            return m_composantes[1];
     
    }
     
    int a;
    \end{lstlisting}

    Les erreurs:
    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
     
    [25] [26
    ! Incomplete \iffalse; all text was ignored after line 1278.
    <inserted text> 
                    \fi 
    l.1278 int 
               a;
    A forbidden control sequence occurred in skipped text.
    This kind of error happens when you say `\if...' and forget
    the matching `\fi'. I've inserted a `\fi'; this might work.
     
    ! Incomplete \iffalse; all text was ignored after line 1278.
    <inserted text> 
                    \fi 
    l.1278 int 
               a;
    A forbidden control sequence occurred in skipped text.
    This kind of error happens when you say `\if...' and forget
    the matching `\fi'. I've inserted a `\fi'; this might work.
     
    Runaway text?
    \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces \ETC.
    ! Forbidden control sequence found while scanning text of \write.
    <inserted text> 
                    }
    l.1278 int 
               a;
    I suspect you have forgotten a `}', causing me
    to read past where you wanted me to stop.
    I'll try to recover; but if the error is serious,
    you'd better type `E' or `X' now and fix your file.
     
    Runaway text?
    \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces \ETC.
    ! Forbidden control sequence found while scanning text of \write.
    <inserted text> 
                    }
    l.1278 int 
               a;
    I suspect you have forgotten a `}', causing me
    to read past where you wanted me to stop.
    I'll try to recover; but if the error is serious,
    you'd better type `E' or `X' now and fix your file.
     
    Runaway text?
    \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces \ETC.
    ! Forbidden control sequence found while scanning text of \write.
    <inserted text> 
                    }
    l.1278 int 
               a;
    I suspect you have forgotten a `}', causing me
    to read past where you wanted me to stop.
    I'll try to recover; but if the error is serious,
    you'd better type `E' or `X' now and fix your file.
     
    Runaway text?
    \@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces \ETC.
    ! Forbidden control sequence found while scanning text of \write.
    <inserted text> 
                    }
    l.1278 int 
               a;
    I suspect you have forgotten a `}', causing me
    to read past where you wanted me to stop.
    I'll try to recover; but if the error is serious,
    you'd better type `E' or `X' now and fix your file.
    Merci encore.

  4. #4
    Invité
    Invité(e)
    Par défaut
    On t'avait demande de poster un ECM ce que tu n'a pas fait. C'est pourtant le minimum pour donner un tant soit peu l'envie aux autres de t'aider...

    Pour ma part, j'attends l'ECM avant de me poser la moindre question sur ton problème...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par unbonpetit Voir le message
    On t'avait demande de poster un ECM ce que tu n'a pas fait. C'est pourtant le minimum pour donner un tant soit peu l'envie aux autres de t'aider...

    Pour ma part, j'attends l'ECM avant de me poser la moindre question sur ton problème...
    Pardon c'était pas complet.
    J'ai fait un exemple complet et minimal, ça compile parfaitement.

    Du coup est-ce que cela peut venir de l’interaction avec d'autres packages ?
    Si oui, vu le nombre que j'utilise, je me vois mal tester les packages un par un en enlevant les portions de code considérées

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Cpowa Voir le message
    Du coup est-ce que cela peut venir de l’interaction avec d'autres packages ?
    Oui, mais cela peut aussi provenir d'autre chose. Tu as une erreur des plus difficiles à trouver, bon courage car je ne vois pas comment on pourrait t'aider.
    Citation Envoyé par Cpowa Voir le message
    Si oui, vu le nombre que j'utilise, je me vois mal tester les packages un par un en enlevant les portions de code considérées
    Pourtant, c'est bien ce qu'il faudra se résigner à faire... Je commencerais par babel, à tout hasard

    Ceci dit, tu peux toujours essayer de compiler avec xelatex pour voir si l'embrouille ne vient pas de utf8 (si ton encodage est celui-ci, évidemment).

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    J'essayerais xelatex demain.

    Par contre est-ce que ça vaut le coup de chercher quel(s) package peut en être la cause, car même si je le trouve y aura pas moyen d'utiliser les deux en même temps ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Cpowa Voir le message
    Par contre est-ce que ça vaut le coup de chercher quel(s) package peut en être la cause, car même si je le trouve y aura pas moyen d'utiliser les deux en même temps ?
    il faut déboguer efficacement :
    1. enlever tout le code entre \begin{document}...\end{document} sauf l'environnement lstlisting qui donne une erreur. Compiler et voir. Si ça passe, passer à l'étape suivante :
    2. enlever tous les chapitres sauf celui où est l'environnement qui pose problème
    3. etc

    Il faut resserrer le plus possible de façon à avoir un code de longueur minimale qui plante (sic). Ensuite, il faut s'attaquer aux packages, les éliminer un par un. Tu trouveras bien ce qui ne va pas en un temps assez raisonnable et le cas échéant, tu circonscriras suffisamment le problème pour avoir un code assez court que tu pourras peut être poster ici.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    J'ai isolé la portion de code qui fait planter.
    Environ 80% du doc, et j'arrive pas à la fractionner en plusieurs parties.....

    La portion commence par un subsubsection (si je l’inclus dans le code à compiler ça plante) et se termine par un subsection (si je l'inclus dans le code à compiler ça plante...)


    Listings qui plante à cause de certain titres ? (en fait non car même si je les inclus pas mais que j'inclus la ligne d'après ça plante)
    Bref c'est absolument incompréhensible.


    Y a pas une autre alternative à listings ?

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    J'ai trouvé le problème mais je ne sais pas comment le contourner.

    En fait c'est du à \usepackage[utf8]{inputenc}:

    Si j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    \documentclass[a4paper,11pt]{article}
    \usepackage[francais]{babel}
    \usepackage[T1]{fontenc}      
    \usepackage{listings}
    \usepackage{lmodern}
    \lstset{language=C++, basicstyle=\footnotesize ,frame=single }
    Ça fonctionne, j'ai les accents dans mon code C++. Par contre si j’écris des accents en dehors de listings ils sont mal interprétés.

    Mais si je rajoute \usepackage[utf8]{inputenc}, ça compile plus.
    J'ai aussi essayé avec \usepackage{listingsutf8} mais c'est pareil.

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 245
    Points : 323
    Points
    323
    Par défaut
    j'ai résolu ces soucis avec XeLaTeX et LuaLaTeX.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par Mr Mi Voir le message
    j'ai résolu ces soucis avec XeLaTeX et LuaLaTeX.
    Je suis pas bien sûr d'avoir compris ce qu'était LuaLatex mais ça a l'air puissant. (Devrais-je dire moins prise de tête ? )

    Par contre j'ai des figures en pstricks et actuellement je suis le schéma de compilation suivant: Latex, DVI->PS, PS->PDF.

    Vais-je être capable de compiler avec LuaLatex ?
    Je viens de voir que Xetex a été ajouté en 2007 à MikTex, et LuaTex en 2010 (est-ce la même chose que LuaLatex ?).

    Donc comment je compile avec ça parce que dans mon IDE (TexMaker) je trouve rien.


    Merci.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    359
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 359
    Points : 493
    Points
    493
    Par défaut
    Bonsoir
    Dans TeXmaker Options Compilation rapide ; cocher Utilisateur et dans le champ
    xelatex --no-pdf %.tex | xdvipdfmx %.xdv | evince %.pdf
    xelatex peut être remplacé par luatex et evince par acroread
    La compilation, transformation puis visualisation se lance par F1
    Bonne continuation.

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 245
    Points : 323
    Points
    323
    Par défaut
    cherche Lua(La)TeX sur le net et tu verra ce que c'est, effectivement, c'est très puissant, surement bien plus que Xe(La)TeX ! Mais les deux moteurs évolue encore pas mal.

    Avec XeLaTeX tu devrais être en mesure de compiler avec t'es dessins pstriks.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par yves04 Voir le message
    Bonsoir
    Dans TeXmaker Options Compilation rapide ; cocher Utilisateur et dans le champ
    xelatex --no-pdf %.tex | xdvipdfmx %.xdv | evince %.pdf
    xelatex peut être remplacé par luatex et evince par acroread
    La compilation, transformation puis visualisation se lance par F1
    Bonne continuation.

    Merci mais maintenant je n'ai plus d'accent dans les environnements listings.


    Y a-t-il juste ces deux packages à inclure ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    \usepackage{xltxtra}
    \usepackage[frenchb]{babel}
    Et pouvez vous me dire à quoi correspond l'option xelatex -interaction=nonstopmode %.tex ?

  16. #16
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 245
    Points : 323
    Points
    323
    Par défaut
    l'option "-interaction=nonstopmode" bah... c'est dis dedans... aucun arrêt lors de la compilation même s'il y a des erreurs.

Discussions similaires

  1. Code trop long
    Par Chris 81 dans le forum VBA Access
    Réponses: 13
    Dernier message: 02/06/2008, 13h15
  2. code trop long
    Par popi182 dans le forum Langage
    Réponses: 4
    Dernier message: 04/09/2006, 07h58
  3. [VBA-E]Combobox et code trop long!! (debutante)
    Par legend dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/03/2006, 14h23

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