Mise en forme d'un code Scilab dans Latex

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
ck123
Utilisateur débutant
Utilisateur débutant
Messages : 3
Inscription : jeudi 22 octobre 2020, 18:07
Statut actuel : Enseignant

[Résolu] Mise en forme d'un code Scilab dans Latex

Message par ck123 »

Bonjour,

je dois taper du code Scilab en tex et j'aimerais garder la mise en forme comme dans les fichiers Scilab.

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}  
\usepackage[french]{babel}
\usepackage{listings}
\usepackage{xcolor}

\lstset{upquote=true,
       columns=flexible,
       keepspaces=true,
       breaklines,
       breakindent=0pt,
       basicstyle=\ttfamily,
       commentstyle=\color{green!60!black},
       language=Scilab,
       alsoletter=\),
 }
\lstset{classoffset=0,
       keywordstyle=\color{violet!75},
       deletekeywords={zeros,disp,plot2d,clf},
       classoffset=1,
       keywordstyle=\color{cyan},
       morekeywords={zeros,disp,plot2d},
       classoffset=2,
       keywordstyle=\color{violet!75},
       morekeywords={clf, clc},
       classoffset=3,
       keywordstyle=\color{magenta!70!pink!50!},
       morekeywords={\%f, \%t, \%pi},
}
\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}:}}1
                 {à}{{\`a}}1
                 {À}{{\`A}}1
                 {é}{{\'e}}1
                 {è}{{\`e}}1
}

\begin{document}
\begin{lstlisting}
disp("Nombre de boucles nécessaires")
%f
\end{lstlisting}
\end{document}
J'ai deux problèmes :
- lorsque j'écris "disp("Nombre de boucles nécessaires")", ce code m'affiche des espèces de petites cases en dessous des espaces. Comment puis-je les enlever ? Je m'arrache les cheveux dessus depuis un moment...
- j'aimerais afficher les %f, %e, %t, %f en couleur, mais forcément latex et les %... J'ai rajouté un \ avant le %, mais cela ne semble pas fonctionner non plus. Une idée ?

Code : Tout sélectionner

       keywordstyle=\color{magenta!70!pink!50!},
       morekeywords={\%f, \%t, \%pi},
Merci pour votre aide. Bonne soirée.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 889
Inscription : jeudi 25 novembre 2010, 22:10

Re: Mise en forme d'un code Scilab dans Latex

Message par marco56 »

Pour les espaces, c'est assez simple : showstringspaces=false, :

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}  
\usepackage[french]{babel}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{textcomp}

\lstset{upquote=true,
columns=flexible,
keepspaces=true,
breaklines,
breakindent=0pt,
basicstyle=\ttfamily,
commentstyle=\color{green!60!black},
language=Scilab,
alsoletter=\),
classoffset=0,
keywordstyle=\color{violet!75},
deletekeywords={zeros,disp,plot2d,clf},
classoffset=1,
keywordstyle=\color{cyan},
morekeywords={zeros,disp,plot2d},
classoffset=2,
keywordstyle=\color{violet!75},
morekeywords={clf, clc},
classoffset=3,
keywordstyle=\color{magenta!70!pink!50!},
morekeywords={\%f, \%t, \%pi},
extendedchars=true,
showstringspaces=false,
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}:}}1
{à}{{\`a}}1
{À}{{\`A}}1
{é}{{\'e}}1
{è}{{\`e}}1
}

\begin{document}
\begin{lstlisting}
disp("Nombre de boucles nécessaires")
%f
\end{lstlisting}
\end{document}
J'ai ajouté le package textcomp suite à une erreur de compilation
Par contre, je pense que tes lstset successifs sont une mauvaise idée.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 889
Inscription : jeudi 25 novembre 2010, 22:10

Re: Mise en forme d'un code Scilab dans Latex

Message par marco56 »

Je crois que j'ai trouvé :

Code : Tout sélectionner

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}  
\usepackage[french]{babel}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{textcomp}

\lstset{upquote=true,
columns=flexible,
keepspaces=true,
breaklines,
breakindent=0pt,
basicstyle=\ttfamily,
commentstyle=\color{green!60!black},
language=Scilab,
alsoletter=\),
classoffset=0,
keywordstyle=\color{violet!75},
deletekeywords={zeros,disp,plot2d,clf},
classoffset=1,
keywordstyle=\color{cyan},
morekeywords={zeros,disp,plot2d},
classoffset=2,
keywordstyle=\color{violet!75},
morekeywords={clf, clc},
classoffset=3,
keywordstyle=\color{magenta!70!pink!50!},
morekeywords={\%f, \%t, \%pi},
extendedchars=true,
showstringspaces=false,
otherkeywords={\%f, \}, \{, \&, \|},
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}:}}1
{à}{{\`a}}1
{À}{{\`A}}1
{é}{{\'e}}1
{è}{{\`e}}1
}

\begin{document}
\begin{lstlisting}
disp("Nombre de boucles nécessaires")
%f
\end{lstlisting}
\end{document}
ck123
Utilisateur débutant
Utilisateur débutant
Messages : 3
Inscription : jeudi 22 octobre 2020, 18:07
Statut actuel : Enseignant

Re: Mise en forme d'un code Scilab dans Latex

Message par ck123 »

Super, c'est parfait ! Merci beaucoup.
marco56
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 889
Inscription : jeudi 25 novembre 2010, 22:10

Re: Mise en forme d'un code Scilab dans Latex

Message par marco56 »

Si tu as l'occasion de mettre ton lstset complet à un moment donné, cela m'intéresse pour mettre à jour mon poly sur scilab. :)