Latex - Problème avec le package listings

Discutez d'informatique ici !
j_e
Membre Naturel
Messages: 70
Enregistré le: 02 Nov 2008, 13:08

Latex - Problème avec le package listings

par j_e » 10 Déc 2008, 00:25

Bonjour !

Dans le but de taper des codes sources, j'utilise (enfin j'essaye...) le package listings.

Avec ce pack, on peut mettre des bouts de code-source (quasi quel que soit le langage, par exemple Java) de 2 manières différentes :


Mon problème est le suivant : les noms de variables indiquées en mode paragraphe ne sont pas typographiés de la même manière que ceux indiqués en mode ligne : l'espace inter-caractères est différent (grand espace en mode paragraphe et petit espace en mode ligne). Ca m'embête de ne pas avoir la même fonte entre les 2 modes.

Pour illustrer, voici un bout de code :

Code: Tout sélectionner
\begin{lstlisting}
...
private int nomDeMaVariable;
...
\end{lstlisting}

Nous avons dans le code ci-dessus l'instruction \lstinline{private ine nomDeMaVariable;}, ce qui signifie que ...


qui donne (en exagérant un peu ;-) ) :

Code: Tout sélectionner
...
[COLOR=Navy]private int[/COLOR] n o m D e M a V a r i a b l e;
...

Nous avons dans le code ci-dessus l'instruction [COLOR=Navy]private int[/COLOR] nomDeMaVariable; , ce qui signifie que ...


J'aimerai vraiment que le code indiqué en mode paragraphe ou en mode ligne soit formaté de la même manière : même police, même espacement entre caractères, ...

Quelqu'un connait ?

Grand merci d'avance ! ! !



Clembou
Membre Complexe
Messages: 2732
Enregistré le: 03 Aoû 2006, 13:00

par Clembou » 10 Déc 2008, 00:33

j_e a écrit:Bonjour !

Dans le but de taper des codes sources, j'utilise (enfin j'essaye...) le package listings.

Avec ce pack, on peut mettre des bouts de code-source (quasi quel que soit le langage, par exemple Java) de 2 manières différentes :


Mon problème est le suivant : les noms de variables indiquées en mode paragraphe ne sont pas typographiés de la même manière que ceux indiqués en mode ligne : l'espace inter-caractères est différent (grand espace en mode paragraphe et petit espace en mode ligne). Ca m'embête de ne pas avoir la même fonte entre les 2 modes.

Pour illustrer, voici un bout de code :

Code: Tout sélectionner
\begin{lstlisting}
...
private int nomDeMaVariable;
...
\end{lstlisting}

Nous avons dans le code ci-dessus l'instruction \lstinline{private ine nomDeMaVariable;}, ce qui signifie que ...


qui donne (en exagérant un peu ;-) ) :

Code: Tout sélectionner
...
[COLOR=Navy]private int[/COLOR] n o m D e M a V a r i a b l e;
...

Nous avons dans le code ci-dessus l'instruction [COLOR=Navy]private int[/COLOR] nomDeMaVariable; , ce qui signifie que ...


J'aimerai vraiment que le code indiqué en mode paragraphe ou en mode ligne soit formaté de la même manière : même police, même espacement entre caractères, ...

Quelqu'un connait ?

Grand merci d'avance ! ! !


Salut,

Etant utilisateur "avancé" en LaTeX, je n'ai pas eu l'occasion d'utiliser ce package. Néanmoins, j'utilise plus le mode verbatim pour retranscrire des algorithmes simples (par exemple, en PASCAL) ou le package newalg pour des algorithmes plus mathématiques...

Je ne sais pas si ça pourrait t'avancer mais essaies d'utiliser le mode verbatim qui te permet d'avoir les indentations et le style d'un algorithme.

j_e
Membre Naturel
Messages: 70
Enregistré le: 02 Nov 2008, 13:08

par j_e » 10 Déc 2008, 01:07

Merci beaucoup de ta réponse... Après avoir vu sur un autre post que t'étais calé en LaTeX, j'ai espéré que tu connaisses ce package.

J'ai testé (rapidement) les 2 packs que tu proposes ... Visiblement "Verbatim" n'indente pas ... L'autre "newalg" a l'air pas mal, mais ... A nouveau toute une série de commandes ... Or, j'ai envie de faire des "copiers-collers" de mes codes Java dans mon fichier LaTeX. Le pack "listing" permet ça facilement. On lui indique tout un tas de paramètres (commande lstset{...}) pour lui dire quel langage on utilise, comment sont colorés les mots-clés etc. On peut même inclure directement un fichier *.java. Bref, j'aime bien ce pack ... SAUF qu'il ne formate pas les lettres de la même manière selon qu'on soit en mode environnement (paragraphe) ou en mode commande (en ligne).

En tous cas, merci à toi de prêter un peu d'attention à mon problème ... (et ... il faut dire que je débute avec LaTeX ;-) )

A bientôt!

Clembou
Membre Complexe
Messages: 2732
Enregistré le: 03 Aoû 2006, 13:00

par Clembou » 10 Déc 2008, 01:30

j_e a écrit:Merci beaucoup de ta réponse... Après avoir vu sur un autre post que t'étais calé en LaTeX, j'ai espéré que tu connaisses ce package.

J'ai testé (rapidement) les 2 packs que tu proposes ... Visiblement "Verbatim" n'indente pas ... L'autre "newalg" a l'air pas mal, mais ... A nouveau toute une série de commandes ... Or, j'ai envie de faire des "copiers-collers" de mes codes Java dans mon fichier LaTeX. Le pack "listing" permet ça facilement. On lui indique tout un tas de paramètres (commande lstset{...}) pour lui dire quel langage on utilise, comment sont colorés les mots-clés etc. On peut même inclure directement un fichier *.java. Bref, j'aime bien ce pack ... SAUF qu'il ne formate pas les lettres de la même manière selon qu'on soit en mode environnement (paragraphe) ou en mode commande (en ligne).

En tous cas, merci à toi de prêter un peu d'attention à mon problème ... (et ... il faut dire que je débute avec LaTeX ;-) )

A bientôt!


Quoi ??? Le verbatim n'indente pas ???

Essaie ce bout de code :

Code: Tout sélectionner
\begin{verbatim}
   p_1 = sqrt(d_1)
   Pour i = 1 à n-1
      q_i = (e_i)/(p_i)
      p_{i+1} = sqrt(d_{i+1}-q_i^2)
   fin{POUR}
\end{verbatim}


Tu verras que verbatim considère les espaces donnés.

Sinon, si tu veux vraiment utilisé le package listings, regarde la documentation du package qui se trouve dans le dossier d'installation ou sinon regarde ici : http://www.pvv.ntnu.no/~berland/latex/docs/listings.pdf (il faut comprendre l'anglais aussi)...

Ou si tu veux pas lire de l'anglais, recherche Google : http://www.google.fr/search?client=firefox-a&rls=org.mozilla%3Afr%3Aofficial&channel=s&hl=fr&q=listings+latex&meta=&btnG=Recherche+Google

Désolé de pas pouvoir t'aider plus mais il est vrai que j'utilise rarement LaTeX pour mettre des algorithmes...

Bon courage et bonne continuation en LaTeX.

j_e
Membre Naturel
Messages: 70
Enregistré le: 02 Nov 2008, 13:08

par j_e » 10 Déc 2008, 11:03

Salut !

Merci à nouveau de tes réponses !

Effectivement, verbatim conserve les espaces... mais pas les tabulations, et lors de mes copiers-collers provenant de mes codes sources, ce sont des tabulations qui arrivent.

J'ai néanmoins continué mes recherches et suis tombé (dans des conversations sur Google groupes consacré à LaTeX (ici ) sur un paramètre qui règle mon problème :
Code: Tout sélectionner
columns=flexible


Je n'ai pas étudié réellement comment marche le paramètre columns, mais il permet d'avoir la même fonte dans lstlisting et dans lstinline, c'est ce que je voulais.

Au cas où ça intéresse quelqu'un, voici un bout de code à tester :

Code: Tout sélectionner
%...
\usepackage{listings}
% ...
\lstset{   breaklines=true,language=Java,numbers=left,tabsize=4
   , basicstyle=\small\ttfamily
   , keywordstyle=\color{blue}
   , commentstyle=\color{green}
   , stringstyle=\color{red}
   , identifierstyle=\ttfamily
   , columns=flexible
}   %paramétrage des commandes 'lst'
% ...
\begin{lstlisting}
public class MaClasse{
   private int nomDeMaVariable ;
   public MaClasse(){
      //constructeur à compléter...
   }
        // Classe a compléter
}
\end{lstlisting}
Nous trouvons dans ce code la variable \lstinline{int nomDeMaVariable} qui ...


qui donne :

Image

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 15 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite