[Résolu] Saut de ligne trop important avant lstlisting

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.

[Résolu] Saut de ligne trop important avant lstlisting

Messagepar tize » Vendredi 21 Novembre 2014, 19:15

Bonjour,
J'ai un petit souci pour taper des documents, j'utilise un script.tex (qui n'est pas de moi, je l'ai récupéré sur le site de l'APHEC) pour afficher du code Scilab (tout beau avec les couleurs) dans un document Latex. Le voici :
Code: Tout sélectionner
 \usepackage{listings}
    \lstset{
          backgroundcolor=\color{gris},
          frame=L,
         showstringspaces=false,
          upquote=true,
            columns=flexible,
            keepspaces=true,
            breaklines,
            breakindent=0pt,
            basicstyle=\ttfamily,
            commentstyle=\color{vert},
            language=Scilab,
            alsoletter=\),
            %numbers=left,
         numbersep=8pt,
         numberstyle=\tiny\color{gray},
         title=\lstname
            }
    \lstset{classoffset=0,
            keywordstyle=\color{violet!75},
            deletekeywords={zeros,disp,eye,ones},
            classoffset=1,%redefinition des couleurs de mots clés
            keywordstyle=\color{cyan},
            morekeywords={zeros,disp,eye,ones},
            }
    \lstset{extendedchars=true,
            literate={0}{{\color{brown!95}0}}1
                     {1}{{\color{brown!95}1}}1
                     {2}{{\color{brown!95}2}}1
                     {3}{{\color{brown!95}3}}1
                     {4}{{\color{brown!95}4}}1
                     {5}{{\color{brown!95}5}}1
                     {6}{{\color{brown!95}6}}1
                     {7}{{\color{brown!95}7}}1
                     {8}{{\color{brown!95}8}}1
                     {9}{{\color{brown!95}9}}1
                     {(}{{\color{red!75}(}}1
                     {)}{{\color{red!75})}}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}{{\oe}}1
                     {ù}{{\`u}}1
                     {É}{{\'E}}1
                     {È}{{\`E}}1
                     {À}{{\`A}}1
                     {Ç}{{\c{C}}}1
                     {OE}{{\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

Tout marche très bien, mon seul problème est qu'avant d'afficher le code Scilab sur le PDF (en utilisant les balises \begin{lstlisting} \end{lstlisting}) , j'ai un espace vertical trop grand (environ 2cm) et c'est un peu bizarre... Surtout quand j'écris :
"Exemple :
\begin{lstlisting}
\end{lstlisting}
"
Et le code apparait 2 cm en dessous du mot "Exemple"... c'est trop.
Savez-vous comment remédier à cela ?
Merci aux âmes charitables.
P. S. : je ne suis pas un pro du Latex...
Dernière édition par tize le Vendredi 21 Novembre 2014, 22:00, édité 1 fois.
Mes leçons d'agreg : http://agregorio.net
tize
Hecto-utilisateur
 
Messages: 61
Inscription: Mardi 14 Septembre 2010, 19:48
Statut actuel: Actif et salarié

Publicité

Re: Saut de ligne trop important avant lstlisting

Messagepar touhami » Vendredi 21 Novembre 2014, 19:28

Bonjour. Merci de poster un exemple complet minimal.
touhami
Méga-utilisateur
 
Messages: 431
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: Saut de ligne trop important avant lstlisting

Messagepar tize » Vendredi 21 Novembre 2014, 20:45

Bonsoir,
merci pour la réponse, voici un exemple tout simple, test.tex:
Code: Tout sélectionner
%%%%%%%%%%%%%%%%%%%%%% PAQUETS-LIBRAIRIES... %%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper,11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage{xcolor}
\definecolor{vert}{rgb}{0,0.4,0}
\definecolor{gris}{rgb}{0.95,0.95,0.95}
\input script.tex

%%%%%%%%%%%%%%%% DOCUMENT %%%%%%%%%%%%%%%%%%%%
\begin{document}

\begin{center}
   Exemple :
\end{center}

\begin{lstlisting}
--> eye(2,2)
  1.  0.
  0.  1.
\end{lstlisting}

\end{document}

il se trouve dans le même dossier que le fichier script.tex dont j'ai mis le code dans mon premier message.
La compilation se passe bien, pas de warning... mais je trouve que, dans le PDF généré, l'espace vertical entre "exemple" et le code scilab est trop grand et je voudrais savoir s'il est possible de le diminuer.
Mes leçons d'agreg : http://agregorio.net
tize
Hecto-utilisateur
 
Messages: 61
Inscription: Mardi 14 Septembre 2010, 19:48
Statut actuel: Actif et salarié

Re: Saut de ligne trop important avant lstlisting

Messagepar pg » Vendredi 21 Novembre 2014, 20:55

Enlever la ligne avec "title=\lstname"
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Saut de ligne trop important avant lstlisting

Messagepar touhami » Vendredi 21 Novembre 2014, 21:07

Ici il y à deux espaces, parce qu’il y à deux environnements : center et lstlisting
pourquoi tu ne fait pas
Code: Tout sélectionner
\begin{center}
Exemple :
\begin{lstlisting}
--> eye(2,2)
  1.  0.
  0.  1.
\end{lstlisting}treza
\end{center}

si tu trouve l'espace toujours indésirable ajouter un espace négatif
Code: Tout sélectionner
\let\oldlstlisting\lstlisting
\renewcommand{\lstlisting}{\vspace*{-0.5cm}\oldlstlisting}
touhami
Méga-utilisateur
 
Messages: 431
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: Saut de ligne trop important avant lstlisting

Messagepar touhami » Vendredi 21 Novembre 2014, 21:11

pg a écrit:Enlever la ligne avec "title=\lstname"

C'est professionnel. Je n'ai pas vu ce message.
touhami
Méga-utilisateur
 
Messages: 431
Inscription: Dimanche 11 Février 2007, 11:45
Statut actuel: Post-bac

Re: Saut de ligne trop important avant lstlisting

Messagepar tize » Vendredi 21 Novembre 2014, 21:18

Merci à vous deux PG et Touhami.
J'ai commenté la ligne avec "title=\lstname" et ça marche très bien. Mais à quoi sert-elle ? Afficher un titre de fichier ?
Mes leçons d'agreg : http://agregorio.net
tize
Hecto-utilisateur
 
Messages: 61
Inscription: Mardi 14 Septembre 2010, 19:48
Statut actuel: Actif et salarié

Re: Saut de ligne trop important avant lstlisting

Messagepar pg » Vendredi 21 Novembre 2014, 21:24

La fonction "titre=..." met un titre au listing. Exemple :

Code: Tout sélectionner
\begin{lstlisting}[title={Titre du code}]
--> eye(2,2)
  1.  0.
  0.  1.
\end{lstlisting}

Ici, le titre était vide donc occupait inutilement de la place sans apparaître.
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Saut de ligne trop important avant lstlisting

Messagepar tize » Vendredi 21 Novembre 2014, 22:00

OK, c'est très clair maintenant. Merci beaucoup PG.
Bonne soirée.
Mes leçons d'agreg : http://agregorio.net
tize
Hecto-utilisateur
 
Messages: 61
Inscription: Mardi 14 Septembre 2010, 19:48
Statut actuel: Actif et salarié


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Proximic [Spider] et 7 invités