Coloration syntaxique

0 vue
Accéder directement au premier message non lu

MARTIN Samuel

non lue,
15 janv. 2007, 10:05:0315/01/2007
à
Bonjour,


Etant débutant sur latex depuis peu, j'aimerais savoir si des modules
( ou classes ) sont disponibles directement pour insérer du code (php,
c, ruby, html, js, perl ...) dans un document latex. J'aimerais
rédiger un article avec des portions en couleur correspondant à du
code en tout genre.


Merci d'avance

Damien Wyart

non lue,
15 janv. 2007, 10:14:0815/01/2007
à
* "MARTIN Samuel" <marti...@gmail.com> in fr.comp.text.tex:

> Etant débutant sur latex depuis peu, j'aimerais savoir si des modules
> (ou classes) sont disponibles directement pour insérer du code (php,

> c, ruby, html, js, perl ...) dans un document latex.

Il y a le module listings. Sinon, plusieurs outils tiers (éventuellement
spécialisés dans tel ou tel langage) permettent une sortie réintégrable
dans un document LaTeX. Je pense par exemple à Emacs (pretty-printing de
buffers en Postscript) ou source-highlight
(http://www.gnu.org/software/src-highlite/).

--
DW

Damien Wyart

non lue,
15 janv. 2007, 10:15:2415/01/2007
à
* Damien Wyart <damien...@free.fr> in fr.comp.text.tex:

> Il y a le module listings. Sinon, plusieurs outils tiers
> (éventuellement spécialisés dans tel ou tel langage) permettent une
> sortie réintégrable dans un document LaTeX. Je pense par exemple
> à Emacs (pretty-printing de buffers en Postscript) ou source-highlight
> (http://www.gnu.org/software/src-highlite/).

Ou même a2ps, qui n'évolue plus (donc fichiers de syntaxe pas forcément
à jour) mais donne des sorties assez agréables à lire.

--
DW

Jean-Côme Charpentier

non lue,
15 janv. 2007, 10:37:3715/01/2007
à
MARTIN Samuel a écrit :

listings (avec un s) est votre ami. C'est super méga puissant et
c'est prévu pile poil pour ce type d'application. Quelques exemples (en
espérant que luximono fonctionne chez vous, sinon, virez-le, ce ne sera
pas gravissime) :

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{xcolor,listings}
\usepackage{lmodern}
\usepackage{luximono} % permet d'avoir du tt gras correct
\usepackage[frenchb]{babel}

% Par répport au réglage par défaut, on ne change que la fonte
% générale (tt au lieu du romain)
\lstset{basicstyle=\ttfamily}

\begin{document}
\begin{lstlisting}[language=PHP]
<?php
$bouton = $_POST['send'];
if(!empty($bouton)) {
$nom = trim($_POST['nom']);
$prenom = trim($_POST['prenom']);
if(!empty($nom) && !empty($prenom)) {
echo 'Bonjour, '.$prenom.' '.$nom;
}
else {
echo 'vous n\'avez pas rempli tous les champs';
}
}
?>
\end{lstlisting}

\begin{lstlisting}[language=C, keywordstyle=\color{red}]
#include <stdio.h>
#define TVA 18.6
void main(void)
{
float HT,TTC;
puts ("veuillez entrer le prix H.T.");
scanf("%f",&HT);
TTC=HT*(1+(TVA/100));
printf("prix T.T.C. %f\n",TTC);
}
\end{lstlisting}

\begin{lstlisting}[language=HTML, numbers=left]
<HTML>
<HEAD>
<TITLE>Ma première page HTML</TITLE>

<BODY>
<P>Voici ma première page HTML
\end{lstlisting}

% pour voir ce que cela donne en romain
\begin{lstlisting}[language=Perl, basicstyle=\rmfamily]
#! /bin/perl
open (F, 'monfichier');
$i=0;
while (<F>) {
$i++;
}
close F;
print "Nombre de lignes : $i";
\end{lstlisting}
\end{document}

Heuuu, js, c'est javascript ? Si oui, je suppose que la syntaxe de
javascript n'est pas trop différente de celle de java. Dans ce cas, pas
de problème : le langage java est supportée par listings. De toutes
façons, si un langage n'est pas prévue par listings (faut aller piocher
dans le bizarre ou le très nouveau), il est relativement simple de le
définir.

Jean-Côme Charpentier

--
<Nico> J'ai failli proposer un truc genre [...] mais j'avais pas osé,
je trouvais ça trop crade. Maintenant, j'ose. :-)
<Joss> 'Clair ! Ça ressemble à un poème de Rimbaud à côté de la prose
de Thomas.
-+- in fr.comp.text.tex -+-

MARTIN Samuel

non lue,
15 janv. 2007, 12:31:3115/01/2007
à
Il y a quelques chose à installer ? à télécharger car visiblement
la compilation semble me renvoyer des erreurs ... et par conséquent la
compilation ne fonctionne pas.

j'ai essayé avec :

---------

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{xcolor,listings}
\usepackage{lmodern}
\usepackage{luximono} % permet d'avoir du tt gras correct
\usepackage[frenchb]{babel}

% Par répport au réglage par défaut, on ne change que la fonte
% générale (tt au lieu du romain)
\lstset{basicstyle=\ttfamily}

\begin{document}
\begin{lstlisting}[language=PHP]
<?php
$bouton = $_POST['send'];
if(!empty($bouton)) {
$nom = trim($_POST['nom']);
$prenom = trim($_POST['prenom']);
if(!empty($nom) && !empty($prenom)) {
echo 'Bonjour, '.$prenom.' '.$nom;
}
else {
echo 'vous n\'avez pas rempli tous les champs';
}
}

?>
\end{lstlisting}

\end{document}

----------------

Et ca me renvoi suite à la commande : latex monficher.tex

--------------

This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4)
entering extended mode
(./color.tex
LaTeX2e <2003/12/01>
Babel <v3.8d> and hyphenation patterns for american, french, german,
ngerman, b
ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch,
esperanto, e
stonian, finnish, greek, icelandic, irish, italian, latin, magyar,
norsk, polis
h, portuges, romanian, russian, serbian, slovak, slovene, spanish,
swedish, tur
kish, ukrainian, nohyphenation, loaded.
(/usr/share/texmf-tetex/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/share/texmf-tetex/tex/latex/base/size10.clo))
(/usr/share/texmf-tetex/tex/latex/base/fontenc.sty
(/usr/share/texmf-tetex/tex/latex/base/t1enc.def))
(/usr/share/texmf-tetex/tex/latex/base/inputenc.sty
(/usr/share/texmf-tetex/tex/latex/base/latin1.def))
(/usr/share/texmf-tetex/tex/latex/geometry/geometry.sty
(/usr/share/texmf-tetex/tex/latex/graphics/keyval.sty)
(/usr/share/texmf-tetex/tex/latex/geometry/geometry.cfg))
(/usr/share/texmf-texlive/tex/latex/xcolor/xcolor.sty
(/usr/share/texmf-tetex/tex/latex/graphics/color.cfg)
(/usr/share/texmf-tetex/tex/latex/graphics/dvips.def))
(/usr/share/texmf-tetex/tex/latex/listings/listings.sty
(/usr/share/texmf-tetex/tex/latex/listings/lstpatch.sty)
(/usr/share/texmf-tetex/tex/latex/listings/lstmisc.sty)
(/usr/share/texmf-tetex/tex/latex/listings/listings.cfg))

! LaTeX Error: File `lmodern.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name:

------------
Merci d'avance pour votre précieuse aide

Pascal

non lue,
15 janv. 2007, 12:47:1515/01/2007
à
MARTIN Samuel wrote:
> Il y a quelques chose à installer ? à télécharger car visiblement
> la compilation semble me renvoyer des erreurs ... et par conséquent la
> compilation ne fonctionne pas.
>
> j'ai essayé avec :
>
[...]

>
> ! LaTeX Error: File `lmodern.sty' not found.

Manque la police lmodern, en supprimant la ligne en question ca devrait
passer. Ou alors choisir une autre police.

lmodern n'est pas presente par defaut ?

Pascal

MARTIN Samuel

non lue,
15 janv. 2007, 12:55:3415/01/2007
à
Ah c'est beaucoup mieux, j'ai dû enlever la ligne luximono.. après
compilation est export vers pdf j'ai bien le texte correspondant au
code PHP seulement, tout est en noir ..

Jean-Côme Charpentier

non lue,
15 janv. 2007, 15:54:2315/01/2007
à
MARTIN Samuel a écrit :

> Ah c'est beaucoup mieux, j'ai dû enlever la ligne luximono.

Bon, que luximono ne soit pas entièrement configuré, c'est peut-être
normal. En revanche, le message d'erreur précédent (lmodern.sty non
trouvé) est *extrêmement* bizarre. Comme se l'étonne Pascal, c'est de
l'archi standard : cela *doit* être sur votre système... ou alors
l'installation a merdouillé :-)

> après
> compilation est export vers pdf j'ai bien le texte correspondant au
> code PHP seulement, tout est en noir ..

Là, c'est normal, l'essai de couleur n'a été fait qu'avec l'exemple
en langage C. Il est en couleur celui-là (et uniquement celui-là) ?
Normalement, il doit y avoir les mots-clés du langage en rouge et tout
le reste en noir.

Jean-Côme Charpentier

--
Dire que LaTeX a toujours raison et que Word a tord, c'est ici
considéré comme de l'intégrisme :) (hé oui, parce qu'avec Word, on
peut "mettre en rouge les corrections"...)
-+- JH in fr.comp.text.tex -+-

Denis Bitouzé

non lue,
15 janv. 2007, 16:35:2415/01/2007
à
Le Mon, 15 Jan 2007 21:54:23 +0100
Jean-Côme Charpentier <Jean-Come....@wanadoo.fr> a écrit :

> Bon, que luximono ne soit pas entièrement configuré, c'est
> peut-être normal. En revanche, le message d'erreur précédent
> (lmodern.sty non trouvé) est *extrêmement* bizarre. Comme se l'étonne
> Pascal, c'est de l'archi standard : cela *doit* être sur votre
> système... ou alors l'installation a merdouillé :-)

Non, lmodern n'est pas en standard dans les installations « Large » de
MiKTeX 2.4 par exemple (je m'en suis aperçu un peu tard :().
--
Denis

Jérémy JUST

non lue,
15 janv. 2007, 17:33:0915/01/2007
à
Le Mon, 15 Jan 2007 21:54:23 +0100,

Jean-Côme Charpentier <Jean-Come....@wanadoo.fr> a écrit :

> En revanche, le message d'erreur précédent (lmodern.sty non trouvé)


> est *extrêmement* bizarre. Comme se l'étonne Pascal, c'est de l'archi
> standard : cela *doit* être sur votre système... ou alors
> l'installation a merdouillé :-)

Pas forcément, j'ai encore récemment (il y a deux semaines) dû
installer manuellement lmodern dans mon HOME sur un serveur doté d'une
teTeX 2.0 fraîchement installée (si si).
D'ailleurs, le packaging de lmodern laisse un peu à désirer: j'ai
galéré pendant un bout de temps avant que ça ne tombe en marche.


Sur quelle genre de machine travaille Samuel? Un Linux perso récent,
ou un vénérable serveur?


--
Jérémy JUST <jerem...@netcourrier.com>

Jean-Côme Charpentier

non lue,
15 janv. 2007, 17:50:4215/01/2007
à
Jérémy JUST a écrit :

> Le Mon, 15 Jan 2007 21:54:23 +0100,
> Jean-Côme Charpentier <Jean-Come....@wanadoo.fr> a écrit :
>
>>En revanche, le message d'erreur précédent (lmodern.sty non trouvé)
>>est *extrêmement* bizarre. Comme se l'étonne Pascal, c'est de l'archi
>>standard : cela *doit* être sur votre système... ou alors
>>l'installation a merdouillé :-)
>
> Pas forcément, j'ai encore récemment (il y a deux semaines) dû
> installer manuellement lmodern dans mon HOME sur un serveur doté d'une
> teTeX 2.0 fraîchement installée (si si).
> D'ailleurs, le packaging de lmodern laisse un peu à désirer: j'ai
> galéré pendant un bout de temps avant que ça ne tombe en marche.

Bon. Donc j'en reviens à mon premier mouvement : je suis très étonné.
Il est claironné à tous les carrefours que Latin Modern *doit* devenir
la fonte standard de LaTeX3, ce serait bien qu'on prépare le terrain en
la glissant de façon systématique dans la base de toutes distributions
quand même !
Pour teTeX 2.0, je ne sais pas de quand date sa sortie, pareil pour
la mikTeX 2.4 citée par Denis . Au pif, je dirais moins de deux ans dans
les deux cas. J'ai tort ? Si j'ai raison, je vais continuer à m'étonner.

Je ne sais pas ce que tu as eu comme problème mais, suite à des
modifications successives, les fichiers map de lmodern sont un peu
bizarres et on doit finir par s'y perdre assez facilement. Je ne sais
pas ce qu'en pense Ulrike.
Maintenant, si tu as tout installé à la main, c'est forcément un peu
galère puisqu'il va falloir distribuer différents types de fichiers (et
il y en a *beaucoup*) dans différents répertoires. Je ne pense pas que
ce soit propre à lmodern : ce sera le souk avec n'importe quelle fonte
assez complète.

Jean-Côme Charpentier

--
Si latex a du mal à le faire, il vaut bien mieux ne pas le faire.
-+- Michel B. in fr.comp.text.tex -+-

Jérémy JUST

non lue,
15 janv. 2007, 18:05:5415/01/2007
à
Le Mon, 15 Jan 2007 23:50:42 +0100,

Jean-Côme Charpentier <Jean-Come....@wanadoo.fr> a écrit :

> Pour teTeX 2.0, je ne sais pas de quand date sa sortie, pareil


> pour la mikTeX 2.4 citée par Denis . Au pif, je dirais moins de deux
> ans dans les deux cas. J'ai tort ?

2003 pour la teTeX:
http://news.gmane.org/gmane.comp.tex.tetex.announce

Ton ordre de grandeur est bon.


> Maintenant, si tu as tout installé à la main, c'est forcément un
> peu galère puisqu'il va falloir distribuer différents types de
> fichiers (et il y en a *beaucoup*) dans différents répertoires. Je ne
> pense pas que ce soit propre à lmodern : ce sera le souk avec
> n'importe quelle fonte assez complète.

Disons que ça faisait longtemps que je n'avais pas installé un paquet
où il y avait autant de choses à faire avec aussi peu de doc (c'est
peut-être plus ça qu'on peut lui reprocher).

Pendant l'install, je me suis proposé d'écrire une doc en vue de la
mettre à disposition (ne serait-ce qu'ici), mais plus j'essayais de
trucs, moins je pensais à cette doc. Et finalement, je ne sais pas à
cause de quoi ça s'est mis à marcher (j'ai bidouillé aussi bien
texmf.cnf que updmap.cfg et quelques autres fichiers).


--
Jérémy JUST <jerem...@netcourrier.com>

MARTIN Samuel

non lue,
16 janv. 2007, 05:43:0816/01/2007
à
J'utilise latex sur mon portable avec l'OS Linux Ubuntu 6.10


Quand je dis qu'il n'y aucune coloration syntaxique dans la document
.dvi ou .pdf, ca veut dire rien du tout, nada.. Tout est en noir.? J'ai
pas vraiment compris la manipulation, y a un module à placer à côté
pour que latex comprenne pendant la compilation quelle couleur
attribuer à chaque portion de texte ?


Merci d'avance

Benoit RIVET

non lue,
16 janv. 2007, 06:13:0116/01/2007
à
Jérémy JUST <jerem...@netcourrier.com> wrote:

> Pendant l'install, je me suis proposé d'écrire une doc en vue de la
> mettre à disposition (ne serait-ce qu'ici), mais plus j'essayais de
> trucs, moins je pensais à cette doc. Et finalement, je ne sais pas à
> cause de quoi ça s'est mis à marcher (j'ai bidouillé aussi bien
> texmf.cnf que updmap.cfg et quelques autres fichiers).

Installer les polices lmodern en cinq temps (au plus):
1. Installer les outils Miktex <http://www.miktex.org/unx/>
2. Créer la base de donnée de mpm :
mpm --update-db
3. Installer lmodern :
mpm --install=lm
4. Eventuellement, invoquer texhash et updmap :
texhash
updmap-sys --enable Map lm.map
5. C'est fini.

Qui a dit que les outils Miktex sont inutiles ?

--
Benoît RIVET

Jérémy JUST

non lue,
16 janv. 2007, 07:32:5216/01/2007
à
On Tue, 16 Jan 2007 12:13:01 +0100
benoit...@libre.fr.invalid (Benoit RIVET) wrote:

>1. Installer les outils Miktex <http://www.miktex.org/unx/>

Ça l'air séduisant. Ça fonctionne correctement dans son HOME?
(par « correctement », j'entends notamment que ça ne doit pas réinstaller
ce qui est déjà fourni dans le texmf du système).


--
Jérémy JUST <jerem...@netcourrier.com>

Eric GUIRBAL

non lue,
16 janv. 2007, 12:44:2316/01/2007
à
MARTIN Samuel wrote:

> J'utilise latex sur mon portable avec l'OS Linux Ubuntu 6.10

Dans ce cas, pour les polices lmodern,

$ sudo apt-get install lmodern

devrait - j'utilise Debian - faire l'affaire.

--
Eric


Jean-Côme Charpentier

non lue,
16 janv. 2007, 16:42:3216/01/2007
à
MARTIN Samuel a écrit :

> J'utilise latex sur mon portable avec l'OS Linux Ubuntu 6.10
>
>
> Quand je dis qu'il n'y aucune coloration syntaxique dans la document
> .dvi ou .pdf, ca veut dire rien du tout, nada.. Tout est en noir.?

On ne vois même pas les lettres ??? Rien de rien vraiment ?

> J'ai
> pas vraiment compris la manipulation, y a un module à placer à côté
> pour que latex comprenne pendant la compilation quelle couleur
> attribuer à chaque portion de texte ?

\usepackage{xcolor}
pour pouvoir se servir de la couleur puis fournir les ordres soit dans
l'argument optionnel d'une commande de listings (ici l'environnement
lstlisting), soit, de façon globale, dans la commande \lstset. Ce qui
devait provoquer l'écriture en rouge des mot-clés du langage (et
uniquement d'eux), c'était l'ordre :
keywordstyle=\color{red}
et donc uniquement pour le listing du petit bout de chose en langage C.

> Merci d'avance
>

Bon, avant de recevoir des remerciements, je vous propose de
m'envoyer (en privé), le fichier tex, le fichier log et le fichier dvi
(ou le fichier pdf, je ne suis pas raciste). Avec cela, je devrais
pouvoir cerner plus précisément le problème.

Jean-Côme Charpentier

--
<Jean-Côme> Bon, d'abord, c'est pas pour médire mais Josselin est un
incompétent notoire en PSTricks. Et en plus il en est fier, le
cuistre !
<Joss> Savoir quels sont les bons outils, ce n'est pas de
l'incompétence. Cuisse toi-même d'abord !
<Phil> Si on commence à parler anat je pourrais répondre aux
questions! chic ;-)
<Joss> On parle pas d'anatomie, juste de cuisse et de LaTeX.
-+- in fr.comp.text.tex -+-

Répondre à tous
Répondre à l'auteur
Transférer
0 nouveau message