code en LaTex

decoris

Membre expert
Club iGen
3 Novembre 2001
6 536
95
Belgique
bonjour

je souhaiterais écrire du code java dans un document latex, et donc pouvoir mettre mes alinéas ou je le souhaite, etc...

en gros ça devrait donner ça :

<font class="small">Code:</font><hr /><pre>
method test
if (msdlkqfj)
{qmlksdjf
dfqlksdjf
qmlksdjflk}
else{ qsdklf}
end
</pre><hr />

et ça donne ça :

<font class="small">Code:</font><hr /><pre>
method test
if (msdlkqfj)
{qmlksdjf
dfqlksdjf
qmlksdjflk}
else{ qsdklf}
end
</pre><hr />
ce qui est moins lisible...

possible? et en police courrier
 
Regarde du côté de l'environnement verbatim. En gros, tout ce qui est entre \begin{verbatim} et \end{verbatim} ressort sans traitement Latex, exactement comme tu l'as tapé (espaces, retours à la ligne, etc... je crois que ça marche aussi avec les tabulations, à vérifier)

A noter aussi le \verb+Texte à mettre en verbatim+, plus simple à utiliser pour les cas où tu veux mettre juste un mot ou une phrase (faire référence à une des variables de ton code par exemple)

Bob
 
ça ne marche pas avec les tabultation... j'ai toujours le même problème !
frown.gif
 
Domage, je dois dire que je ne me souviens plus bien de ça. Et pourtant j'ai saisi en Latex des manuels entiers de 90 à 92 ... vieux souvenir !
 
Une solution, peut être compliquée mais la plus efficace à mon sens (elle marche sur mon powerbook) :

_______________________________________________________

\begin{tabular}{l l l}
\multicolumn{3}{l}{method test}\\

\multicolumn{1}{l}{} &amp; \multicolumn{2}{l} {if (msdlkqfj)}\\

\multicolumn{1}{l}{} &amp; \multicolumn{1}{l}{} &amp; \multicolumn{1}{l} { $\{$ qmlksdjf}\\

\multicolumn{1}{l}{} &amp; \multicolumn{1}{l}{} &amp; \multicolumn{1}{l} {dfqlksdjf}\\

\multicolumn{1}{l}{} &amp; \multicolumn{1}{l}{} &amp; \multicolumn{1}{l} {qmlksdjflk $\}$ }\\

\multicolumn{1}{l}{} &amp; \multicolumn{2}{l} {else $\{$ qsdklf $\}$ }\\

\multicolumn{3}{l} {end}
\end{tabular}

_______________________________________________________

\multicolumn{x}{l}{texte} te permets de faire tenir le texte {texte} aligné à gauche {l} par rapport à sa première colonne sur {x} colonne.

En espérant t'avoir aidé... Bien évidemment tu peux mettre des caractères en gras, des formules mathématiques dedans...
zen.gif
 
ça a effectivement l'air de fonctionner. ça peut dépanner, merci...
mais si je dois transformer mes centaines de lignes de codes, pas top!

en attendant, je vais me contanter de ça...
 
Si tu es prêt à essayer des solutions aussi compliquées, il y a un petit peu plus simple : transformer les tabulations de ton fichier de départ en un nombre donné d'espaces (4 à 8 à vue de nez), avant de faire le copier coller dans LateX...
smile.gif


c'est du bricolage, mais vu que visiblement tu es pressé...
Pour la modif, je crois que Project Builder permet de faire ça.

Bob
 
Je cherchais aussi une jolie solution depuis qqes semaines, et finalement:
dans l'en-tête:
\usepackage{listings}
À l'endroit du code:
{\scriptsize\lstinputlisting[language=Java]{fichier.java}}
 
J'ai rien installé de plus que teTex et Texshop... D'ailleurs j'en suis à mon deuxième doc latex en tout et pour tout, je saurais même pas installer un package supplémentaire
confused.gif


Pourquoi? Ton programme ne trouve pas le package? Essaie de télécharger la dernière version de teTex alors. Je peux pas t'aider plus. Par contre j'ai trouvé un truc encore mieux, je sais plus où malheureusement:

\documentclass[10pt]{article}
\usepackage{listings}
\usepackage{color}
% (weitere usepackages)

%=================================================================
% Einstellungen f¸r Sourcecode-Listings
%=================================================================
\definecolor{hellgelb}{rgb}{1,1,0.8}
\definecolor{colKeys}{rgb}{0,0,1}
\definecolor{colIdentifier}{rgb}{0,0,0}
\definecolor{colComments}{rgb}{1,0,0}
\definecolor{colString}{rgb}{0,0.5,0}

\lstset{%
language={SQL},%
morekeywords={AND,ASC,avg,CHECK,COMMIT,count,DECODE,DESC,DISTINCT,%
GROUP,IN,LIKE,NUMBER,ROLLBACK,SUBSTR,sum,VARCHAR2}%
}
\lstset{%
float=hbp,%
basicstyle=\ttfamily\small, %
identifierstyle=\color{colIdentifier}, %
keywordstyle=\color{colKeys}, %
stringstyle=\color{colString}, %
commentstyle=\color{colComments}, %
columns=flexible, %
tabsize=2, %
frame=single, %
extendedchars=true, %
showspaces=false, %
showstringspaces=false, %
numbers=left, %
numberstyle=\tiny, %
breaklines=true, %
backgroundcolor=\color{hellgelb}, %
breakautoindent=true, %
captionpos=b%
}
\begin{document}

\begin{lstlisting}[language=SQL,label=sql:label1,caption=caption1]
GROUP = FROM ...
\end{lstlisting}

(Text)

\begin{lstlisting}[language=Java, alsolanguage=SQL,label=sql:label2,caption=caption2]
GROUP = FROM ...
public static void main() {
(...)
}
\end{lstlisting}
\end{document}


Un copain a pas réussi à le compiler dans Solaris (Unix) mais chez moi avec jag tout marche. Ça fait un bel encadré jaune autour du code.

Chose encore plus bizarre, si un pro pouvait m'expliquer: Quand je met juste l'"en-tête" de ce truc au dessus (jusqu'à begin{document}), et que j'insère du code avec la ligne de mon message précédent, ça revient au même. Mais pas besoin de copier-coller le code dans le .tex

J'espère que j'ai été clair, pas facile de parler d'un truc qu'on connaît pas
laugh.gif


Allez, bonne chance avec ton document!
 
Merci ça marche super!!!
J'ai trouvé un programme pour générer un fichier Tex à partir d'un fichier avec du code.
Mais je n'arrive pas encore à compiler le programme qui s'appelle lgrind
 
nouvelle petite question LaTex...
je souhaite mettre une image dans un document, mais que le texte puisse s'écrire à coté... l'image est très étroite et haute (3 sur 7), et c'est très laid un blac comme ça...

comment faire?


merci!
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par decus:</font><hr /> nouvelle petite question LaTex...
je souhaite mettre une image dans un document, mais que le texte puisse s'écrire à coté... l'image est très étroite et haute (3 sur 7), et c'est très laid un blac comme ça...

comment faire?


[/QUOTE]

alors, d'apres ce que je lis dans mon bouquin, il faut ajouter la commande \parpic(largeur,hauteur)(Décal_x, décal_y)[Options][Position]{mon_Objet} au debut du paragraph qui doit "couler" autour de l'image.

mon_Objet etant la commande d'insertion de l'image.
(largeur,hauteur) concerne l'image insérée. ne pas oublier l'unité de mesure.
(Décal_x, décal_y) permet de décaler la position de l'image.

les [Options] sont:
l --&gt; image à gauche
r --&gt; image à droite
f --&gt; encadre simplement l'image.

je te livre les infos brutes, je n'ai pas éssayé. voilà

wink.gif
 
<blockquote><font class="small">Post&eacute; &agrave; l'origine par decus:</font><hr /> merci! mais visiblement il faut un package spécial, la commande \parpic n'est pas reconnue...

[/QUOTE]

heu comme mon bouquin est assez mal fait et pas tres pédagogique....

il semblerai qu'il faille aussi déclarer l'extension \picins (dans le préambule sans doute)....

ça devrait marcher