Garder couleurs et mise en forme d'un code Scilab dans Latex

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Garder couleurs et mise en forme d'un code Scilab dans Latex

Messagepar blabla » Lundi 22 Avril 2013, 01:06

Bonjour,

Je suis étudiant et débutant sur Latex. Je dois faire un rapport sur des cours de Scilab et j'ai l'obligation d'utiliser Latex. Seulement voilà après des heures de recherche j'ai seulement réussi à mettre du bleu(pour les mots clés) et du vert (pour les commentaires) dans mes codes scilab. Je suis désespéré car j'y passe beaucoup de temps pour un piètre résultat.
Mon but c'est de conserver la belle mise en forme de Scilab et surtout les couleurs du code. Pourriez-vous m'aider s'il vous plaît ?

Cordialement
Voici ce que j'ai écrit dans Latex

Code: Tout sélectionner
\documentclass[11pt,a4paper]{report}
\usepackage[latin1]{inputenc}
\usepackage[francais]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{moreverb}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{verbatim}
\usepackage[T1]{fontenc}
\usepackage{lmodern}




\begin{document}



\lstset{language=scilab}

  \lstset{emphstyle=\color{blue},
  basicstyle=\ttfamily,
  breaklines=true,
  columns=flexible,
  keywordstyle=\bf\color{blue},
  commentstyle=\color{green},
  stringstyle=\color{pink},
  numberstyle=\tiny\color{black},
  numbers=left,
  numbersep=10pt,
  lineskip=0.7pt,
  showstringspaces=false}
       
          \newcommand{\FSource}[1]{%
          \lstinputlisting[texcl=true]{#1}
          }

\begin{lstlisting}

 ICI JAI MIS MON CODE

\end{lstlisting}


\end{document}
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Publicité

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar OG » Lundi 22 Avril 2013, 20:00

Bonsoir

Si je comprends bien, deux choses ne te conviennent pas : mise en forme et couleur.
Pour la mise en forme qu'est-ce qui ne te convient pas ?
Pour les couleurs, il ne semble pas y avoir de variation, les commandes sont reconnues et c'est tout.
Si tu veux des variations selon les mots clefs, il faut se plonger dans la doc de listings et faire ses propres
ajouts (mais c'est possible), à moins que quelqu'un ne l'ait déjà fait.

O.G.
OG
Modérateur
 
Messages: 2181
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Mardi 23 Avril 2013, 11:33

Pour la mise en forme ça va en fait. C'est surtout les couleurs qui me dérangent. Ce que j’aimerais c'est que les couleurs soient exactement comme dans mon code Scilab. Dans Scilab on peut régler les couleurs en fonction du type de mots clefs tapés, ça je ne l'ai pas changé les couleurs standards sont déjà bien je trouve. Moi je voudrais reproduire exactement ces même "normes" de couleurs. Et comme tu l'as dis il faut se plonger dans les docs. Cependant moi je ne les trouve pas ces docs ou en tout cas ceux que je trouve ne permettent pas de faire ce que je veux. Donc si vous en avez trouvé pouvez-vous me faire un lien svp ? Ou mieux encore si quelqu'un a déjà réaliser ces commandes je suis preneur !

voici ce que moi j'ai trouvé :

http://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings
http://www.ukonline.be/programmation/la ... /page4.php
http://www.ukonline.be/programmation/la ... /page3.php
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar Léonard » Mardi 23 Avril 2013, 15:57

La doc de listings est facilement trouvable sur le site du CTAN : http://www.ctan.org/tex-archive/macros/latex/contrib/listings/. Pour ce qui est des couleurs des différents éléments du code, regarde au paragraphe 4.6.
Léonard
Déca-utilisateur
 
Messages: 28
Inscription: Mercredi 27 Avril 2011, 19:00
Statut actuel: Post-bac | Licence

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Mardi 23 Avril 2013, 17:58

Merci pour ce précieux lien ! J'ai bien compris que ça devait se jouer entre keywordstyle ndkeywordstyle et classoffset. Mais, pour moi, la doc est pas très claire, je n'arrive pas à bien écrire la commande qui va me mettre tous les for en violet par exemple.
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar pg » Mardi 23 Avril 2013, 21:07

Si on avait un exemple de code Scilab et du résultat voulu, ce serait plus simple pour aider.
pg
Modérateur
 
Messages: 2581
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Mercredi 24 Avril 2013, 15:25

Voici un code Scilab qui donne quelque nombres de la suite de Fibonacci. Le fichier est sur dropbox et joint au message, c'est un PDF avec le code en couleur. Et c'est ça que je veux faire exactement. Sauf que la j'ai juste enregistré mon code sous un format PDF et ça c'est fait tout seul.

https://www.dropbox.com/sh/kvewzb0cmjaujd7/Z4KjmXsYyz
Fichiers joints
1.pdf
Code Scilab Fibonacci
(5.25 Kio) Téléchargé 78 fois
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar pg » Mercredi 24 Avril 2013, 17:08

Voici quelque chose qui devrait donner ce qu'il faut. Il faudra bien sûr rentrer un à un les mots-clefs à mettre en cyan au lieu de violet.

listings_scilab.png
listings_scilab.png (7.77 Kio) Vu 2963 fois


Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage{xcolor}

\usepackage{listings}

\lstset{upquote=true,
        columns=flexible,
        keepspaces=true,
        breaklines,
        breakindent=0pt,
        basicstyle=\ttfamily,
        commentstyle=\color{gray},
        language=Scilab,
        alsoletter=\),
        }

\lstset{classoffset=0,
        keywordstyle=\color{violet!75},
        deletekeywords={zeros,disp},
        classoffset=1,
        keywordstyle=\color{cyan},
        morekeywords={zeros,disp},
        }

\lstset{literate={0}{{\color{brown!75}1}}1
                 {1}{{\color{brown!75}1}}1
                 {2}{{\color{brown!75}2}}1
                 {3}{{\color{brown!75}3}}1
                 {4}{{\color{brown!75}4}}1
                 {5}{{\color{brown!75}5}}1
                 {6}{{\color{brown!75}6}}1
                 {7}{{\color{brown!75}7}}1
                 {8}{{\color{brown!75}8}}1
                 {9}{{\color{brown!75}9}}1
                 {(}{{\color{blue!50}(}}1
                 {)}{{\color{blue!50})}}1
                 {[}{{\color{blue!50}[}}1
                 {]}{{\color{blue!50}]}}1
                 {-}{{\color{gray}-}}1
                 {+}{{\color{gray}+}}1
                 {=}{{\color{gray}=}}1
                 {:}{{\color{orange!50!yellow}:}}1
        }

\usepackage{etoolbox}

\makeatletter
% patch pour le bug concernant les parenthèses fermantes
% d'après http://tex.stackexchange.com/q/69472
\patchcmd{\lsthk@SelectCharTable}{%
  \lst@ifbreaklines\lst@Def{`)}{\lst@breakProcessOther)}\fi}{}{}{}

\makeatother

\begin{document}

\begin{lstlisting}
n=10;

u = zeros(n,1);
u(1:2) = [1;1];

for i = 1 : n-2;
  u(i+2) = u(i+1) + u(i);
end

disp(u)
\end{lstlisting}

\end{document}
pg
Modérateur
 
Messages: 2581
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Mercredi 24 Avril 2013, 18:18

Ok c'est super, merci beaucoup ! Par contre avec classoffset je peux faire que deux nuances entre les mots clés ? Parce que maintenant mettons que je veuilles aller un peu plus loin, car j'ai des programmes qui font appel à d'autres mots clés et des fonctions toutes faites. Je peux mettre que deux couleurs différentes ? A moins que dans classoffset=0 j'exclus tous les mots clefs que je veux mettre dans une autre couleur et qu'ensuite je les remette dans un classoffset=2 (si ça existe) ?

Et aussi si je veux en souligner certains, c'est faisable ?
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Mercredi 24 Avril 2013, 18:31

ah ouai ça marche avec classoffset =2 ! j'ai pris un exemple bidon où je dis que "u" est un mot clef et que je le veux en rouge:

Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage{xcolor}

\usepackage{listings}

\lstset{upquote=true,
        columns=flexible,
        keepspaces=true,
        breaklines,
        breakindent=0pt,
        basicstyle=\ttfamily,
        commentstyle=\color{gray},
        language=Scilab,
        alsoletter=\),
        }

\lstset{classoffset=0,
        keywordstyle=\color{violet!75},
        deletekeywords={zeros,disp,u},
        classoffset=1,
        keywordstyle=\color{cyan},
        morekeywords={zeros,disp},
        classoffset=2,
        keywordstyle=\color{red},
        morekeywords={u},
        }

\lstset{literate={0}{{\color{brown!75}1}}1
                 {1}{{\color{brown!75}1}}1
                 {2}{{\color{brown!75}2}}1
                 {3}{{\color{brown!75}3}}1
                 {4}{{\color{brown!75}4}}1
                 {5}{{\color{brown!75}5}}1
                 {6}{{\color{brown!75}6}}1
                 {7}{{\color{brown!75}7}}1
                 {8}{{\color{brown!75}8}}1
                 {9}{{\color{brown!75}9}}1
                 {(}{{\color{blue!50}(}}1
                 {)}{{\color{blue!50})}}1
                 {[}{{\color{blue!50}[}}1
                 {]}{{\color{blue!50}]}}1
                 {-}{{\color{gray}-}}1
                 {+}{{\color{gray}+}}1
                 {=}{{\color{gray}=}}1
                 {:}{{\color{orange!50!yellow}:}}1
        }

\usepackage{etoolbox}

\makeatletter
% patch pour le bug concernant les parenthèses fermantes
% d'après http://tex.stackexchange.com/q/69472
\patchcmd{\lsthk@SelectCharTable}{%
  \lst@ifbreaklines\lst@Def{`)}{\lst@breakProcessOther)}\fi}{}{}{}

\makeatother

\begin{document}

\begin{lstlisting}
n=10;

u = zeros(n,1);
u(1:2) = [1;1];

for i = 1 : n-2;
  u(i+2) = u(i+1) + u(i);
end

disp(u)
\end{lstlisting}

\end{document}
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Dimanche 02 Juin 2013, 19:13

Bonjour,

J'ai une autre question concernant la mise en forme dans Latex, d'un code scilab : comment puis-je faire pour conservé les "é" e accent aigu qui se trouvent dans mes commentaires de code? J'ai déjà essayé avec \'{e} ...

Voici un petit exemple d'un code scilab avec des commentaires:
Code: Tout sélectionner
 clear;

    N=100000;// nombre d'itérations

    p=3; // nombre de transformations différentes

    x=zeros(2,N);

   

    A=[1/2 0;0 1/2];// matrice qui découpe par moitié chaque segment en abscisse et  en ordonnées.

    b=[0 1/2 1/4 ; 0 0 1/2];// matrice qui permet de placer les points des nouveaux triangle

   

    for i=1:N-1

        u=floor (1+p*rand(1,1,'def'));// on choisit un nombre aléatoire (1,1 signifie que c'est une matrice 1ligne 1 colonne) entre 0 et 1 que l'on multiplie par 3 ainsi ce nombre est <= 3 et on lui rajoute un pour être sûr de pouvoir obtenir un 3 car floor prend l'entier inférieur au nombre. ex floor(3.1)=3

       

          x(:,i+1)= A*x(:,i) + b(:,u); // ici on effectue les opérations géométriques au hasard grâce à ""u". On stock les points dans x. La première ligne de x contient les abscisses et la deuxième les ordonnées.

       

    end

   

plot(x(1,:),x(2,:),'.','markersize',1);
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar balf » Dimanche 02 Juin 2013, 20:02

Peut-être avec \usepackage{latin1]{inputenc} , plutôt qu'utf8 ? Il semble que les problèmes viennent des encodages sur plusieurs octets.

B.A.
balf
Zetta-utilisateur
 
Messages: 3582
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Dimanche 02 Juin 2013, 21:31

Le problème c'est que si je me mets en latin je suis obligé de mettre \'{e} dans tous le reste de mon rapport, c'est à dire quand j'explique ce que je vais faire avant de placer le code. En fait au début j'étais en latin1 et après je suis passé en utf8 parce que c'était insupportable de mettre \'{e} à chaque fois. Et j'ai réessayer avec latin1 et ça ne marche pas. =(
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar pg » Dimanche 02 Juin 2013, 21:49

latin1 permet tout à fait d'écrire "é" au lieu de "\'e", mais ça ne vaut pas le coup de se passer d'utf8 pour ça, il suffit de rajouter les lettres en question dans la liste des literate avec un coup de "extendedchars=true" :

Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage{xcolor}

\usepackage{listings}

\lstset{upquote=true,
        columns=flexible,
        keepspaces=true,
        breaklines,
        breakindent=0pt,
        basicstyle=\ttfamily,
        commentstyle=\color{gray},
        language=Scilab,
        alsoletter=\),
        }

\lstset{classoffset=0,
        keywordstyle=\color{violet!75},
        deletekeywords={zeros,disp},
        classoffset=1,
        keywordstyle=\color{cyan},
        morekeywords={zeros,disp},
        }

\lstset{extendedchars=true,
        literate={0}{{\color{brown!75}1}}1
                 {1}{{\color{brown!75}1}}1
                 {2}{{\color{brown!75}2}}1
                 {3}{{\color{brown!75}3}}1
                 {4}{{\color{brown!75}4}}1
                 {5}{{\color{brown!75}5}}1
                 {6}{{\color{brown!75}6}}1
                 {7}{{\color{brown!75}7}}1
                 {8}{{\color{brown!75}8}}1
                 {9}{{\color{brown!75}9}}1
                 {(}{{\color{blue!50}(}}1
                 {)}{{\color{blue!50})}}1
                 {[}{{\color{blue!50}[}}1
                 {]}{{\color{blue!50}]}}1
                 {-}{{\color{gray}-}}1
                 {+}{{\color{gray}+}}1
                 {=}{{\color{gray}=}}1
                 {:}{{\color{orange!50!yellow}:}}1
                 {é}{{\'e}}1
                 {è}{{\`e}}1
                 {à}{{\`a}}1
                 {ç}{{\c{c}}}1
                 {œ}{{\oe}}1
                 {ù}{{\`u}}1
                 {É}{{\'E}}1
                 {È}{{\`E}}1
                 {À}{{\`A}}1
                 {Ç}{{\c{C}}}1
                 {Œ}{{\OE}}1
                 {Ê}{{\^E}}1
                 {ê}{{\^e}}1
                 {î}{{\^i}}1
                 {ô}{{\^o}}1
                 {û}{{\^u}}1
        }

\usepackage{etoolbox}

\makeatletter
% patch pour le bug concernant les parenthèses fermantes
% d'après http://tex.stackexchange.com/q/69472
\patchcmd{\lsthk@SelectCharTable}{%
  \lst@ifbreaklines\lst@Def{`)}{\lst@breakProcessOther)}\fi}{}{}{}

\makeatother

\begin{document}

\begin{lstlisting}
n=10;

u = zeros(n,1);
u(1:2) = [1;1];

for i = 1 : n-2;
  u(i+2) = u(i+1) + u(i); // itération
end

disp(u)
\end{lstlisting}

\end{document}
pg
Modérateur
 
Messages: 2581
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar blabla » Lundi 03 Juin 2013, 00:51

Alors la je vous remercie infiniment, car j'allais y passer la nuit!! En revanche vous avez juste fait une petite erreur car là les 0 deviennent des uns ^^ je le corrige pour ceux que cela pourra aussi aider. Encore merci beaucoup !

Code: Tout sélectionner
    \documentclass{article}

    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage{textcomp}

    \usepackage{xcolor}

    \usepackage{listings}

    \lstset{upquote=true,
            columns=flexible,
            keepspaces=true,
            breaklines,
            breakindent=0pt,
            basicstyle=\ttfamily,
            commentstyle=\color{gray},
            language=Scilab,
            alsoletter=\),
            }

    \lstset{classoffset=0,
            keywordstyle=\color{violet!75},
            deletekeywords={zeros,disp},
            classoffset=1,
            keywordstyle=\color{cyan},
            morekeywords={zeros,disp},
            }

    \lstset{extendedchars=true,
            literate={0}{{\color{brown!75}0}}1
                     {1}{{\color{brown!75}1}}1
                     {2}{{\color{brown!75}2}}1
                     {3}{{\color{brown!75}3}}1
                     {4}{{\color{brown!75}4}}1
                     {5}{{\color{brown!75}5}}1
                     {6}{{\color{brown!75}6}}1
                     {7}{{\color{brown!75}7}}1
                     {8}{{\color{brown!75}8}}1
                     {9}{{\color{brown!75}9}}1
                     {(}{{\color{blue!50}(}}1
                     {)}{{\color{blue!50})}}1
                     {[}{{\color{blue!50}[}}1
                     {]}{{\color{blue!50}]}}1
                     {-}{{\color{gray}-}}1
                     {+}{{\color{gray}+}}1
                     {=}{{\color{gray}=}}1
                     {:}{{\color{orange!50!yellow}:}}1
                     {é}{{\'e}}1
                     {è}{{\`e}}1
                     {à}{{\`a}}1
                     {ç}{{\c{c}}}1
                     {œ}{{\oe}}1
                     {ù}{{\`u}}1
                     {É}{{\'E}}1
                     {È}{{\`E}}1
                     {À}{{\`A}}1
                     {Ç}{{\c{C}}}1
                     {Œ}{{\OE}}1
                     {Ê}{{\^E}}1
                     {ê}{{\^e}}1
                     {î}{{\^i}}1
                     {ô}{{\^o}}1
                     {û}{{\^u}}1
            }

    \usepackage{etoolbox}

    \makeatletter
    % patch pour le bug concernant les parenthèses fermantes
    % d'après http://tex.stackexchange.com/q/69472
    \patchcmd{\lsthk@SelectCharTable}{%
      \lst@ifbreaklines\lst@Def{`)}{\lst@breakProcessOther)}\fi}{}{}{}

    \makeatother

    \begin{document}

    \begin{lstlisting}
    n=10;

    u = zeros(n,1);
    u(1:2) = [1;1];

    for i = 1 : n-2;
      u(i+2) = u(i+1) + u(i); // itération
    end

    disp(u)
    \end{lstlisting}

    \end{document}
blabla
Utilisateur
 
Messages: 9
Inscription: Lundi 22 Avril 2013, 00:52
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar marco56 » Jeudi 13 Février 2014, 23:16

Bonsoir,
De mon côté, j'ai un problème avec la couleur des commentaires (qui commencent par //).
Je souhaiterais les mettre par exemple en vert.
J'ai essayé le code suivant en lisant la doc de listings mais sans succès...

Code: Tout sélectionner
\colorlet{commentcolour}{green!80}
...
commentstyle=\color{commentcolour}\bfseries,
morecomment=[l]//,

Quelqu'un a une idée ?
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar pg » Vendredi 14 Février 2014, 07:39

Il faudra donner le code complet utilisé car en remplaçant dans mon code précédent le "commentstyle=\color{gray}" par "commentstyle=\color{green}" on obtient bien les commentaires en vert.
pg
Modérateur
 
Messages: 2581
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar marco56 » Samedi 15 Février 2014, 11:06

Merci pg : c'est bien ce que je pensais.
C'est donc un problème de packages chez moi.
Comme j'ai modifié certains fichiers .sty et que j'ai plusieurs listings, il doit y en avoir un qui écrase celui qui contient les instructions pour scilab.
Oui, je sais, c'est de la bricole !
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar pg » Samedi 15 Février 2014, 11:22

Listings possède une commande \lstnewenvironment qui permet de définir des environnements différents (par exemple {scilabcode}) pour chaque type de listings, ce qui évite tout problème de ce genre. Exemple :

Code: Tout sélectionner
\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{textcomp}

\usepackage{xcolor}

\usepackage{listings}

\lstset{upquote=true,
        columns=flexible,
        keepspaces=true,
        breaklines,
        breakindent=0pt,
        basicstyle=\ttfamily
        }

\lstset{extendedchars=true,
        literate={é}{{\'e}}1
                 {è}{{\`e}}1
                 {à}{{\`a}}1
                 {ç}{{\c{c}}}1
                 {œ}{{\oe}}1
                 {ù}{{\`u}}1
                 {É}{{\'E}}1
                 {È}{{\`E}}1
                 {À}{{\`A}}1
                 {Ç}{{\c{C}}}1
                 {Œ}{{\OE}}1
                 {Ê}{{\^E}}1
                 {ê}{{\^e}}1
                 {î}{{\^i}}1
                 {ô}{{\^o}}1
                 {û}{{\^u}}1
        }

\lstdefinestyle{Scilab}{%
        commentstyle=\color{green},
        language=Scilab,
        alsoletter=\),
        classoffset=0,
        keywordstyle=\color{violet!75},
        deletekeywords={zeros,disp},
        classoffset=1,
        keywordstyle=\color{cyan},
        morekeywords={zeros,disp},
        extendedchars=true,
        literate={0}{{\color{brown!75}0}}1
                 {1}{{\color{brown!75}1}}1
                 {2}{{\color{brown!75}2}}1
                 {3}{{\color{brown!75}3}}1
                 {4}{{\color{brown!75}4}}1
                 {5}{{\color{brown!75}5}}1
                 {6}{{\color{brown!75}6}}1
                 {7}{{\color{brown!75}7}}1
                 {8}{{\color{brown!75}8}}1
                 {9}{{\color{brown!75}9}}1
                 {(}{{\color{blue!50}(}}1
                 {)}{{\color{blue!50})}}1
                 {[}{{\color{blue!50}[}}1
                 {]}{{\color{blue!50}]}}1
                 {-}{{\color{gray}-}}1
                 {+}{{\color{gray}+}}1
                 {=}{{\color{gray}=}}1
                 {:}{{\color{orange!50!yellow}:}}1
                 {é}{{\'e}}1
                 {è}{{\`e}}1
                 {à}{{\`a}}1
                 {ç}{{\c{c}}}1
                 {œ}{{\oe}}1
                 {ù}{{\`u}}1
                 {É}{{\'E}}1
                 {È}{{\`E}}1
                 {À}{{\`A}}1
                 {Ç}{{\c{C}}}1
                 {Œ}{{\OE}}1
                 {Ê}{{\^E}}1
                 {ê}{{\^e}}1
                 {î}{{\^i}}1
                 {ô}{{\^o}}1
                 {û}{{\^u}}1
        }

\lstnewenvironment{scilabcode}[1][]{\lstset{style=Scilab,#1}}{}

\usepackage{etoolbox}

\makeatletter
% patch pour le bug concernant les parenthèses fermantes
% d'après http://tex.stackexchange.com/q/69472
\patchcmd{\lsthk@SelectCharTable}{%
  \lst@ifbreaklines\lst@Def{`)}{\lst@breakProcessOther)}\fi}{}{}{}

\makeatother

\begin{document}

Avec coloration :
\begin{scilabcode}
n=10;

u = zeros(n,1);
u(1:2) = [1;1];

for i = 1 : n-2;
  u(i+2) = u(i+1) + u(i); // itération
end

disp(u)
\end{scilabcode}

Sans coloration :
\begin{lstlisting}
n=10;

u = zeros(n,1);
u(1:2) = [1;1];

for i = 1 : n-2;
  u(i+2) = u(i+1) + u(i); // itération
end

disp(u)
\end{lstlisting}

\end{document}
pg
Modérateur
 
Messages: 2581
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Garder couleurs et mise en forme d'un code Scilab dans L

Messagepar marco56 » Dimanche 16 Février 2014, 17:12

Merci pg pour ces éclaircissements.
En fait, j'ai plusieurs colorations (algorithme, python, scilab) dans mes documents et je me demande si je n'ai pas tout mélangé.
Il va falloir que je fasse le ménage.
marco56
Giga-utilisateur
 
Messages: 663
Inscription: Jeudi 25 Novembre 2010, 22:10
Statut actuel: Actif et salarié | Enseignant

Suivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot] et 4 invités