[Résolu][listing] Nouveau langage et coloration personnelle

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][listing] Nouveau langage et coloration personnelle

Messagepar projetmbc » Vendredi 12 Décembre 2008, 19:17

Bonjour,
quelqu'un aurait-il déjà utilisé ce package pour un langage de programmation non présent dans ceux gérés par défaut ? Je serais intéressé par des infos sur la démarche à suivre. Plus précisément comment se passe la définition de mot clés, de commentaires... ?

Par avance merci.
Dernière édition par projetmbc le Dimanche 11 Janvier 2009, 00:56, édité 6 fois.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: A propos du package LISTING

Messagepar rebouxo » Vendredi 12 Décembre 2008, 19:32

Je suppose que tu es déjà allé voir la doc, mais cela manque d'un exemple. Il suffit probablement d'aller voir la structure des drivers pour les différents langage.

Sinon, sur fctt, il y a eu une discussion il y a quelques temps. Voilà ce que JCC avait commencé à faire pour Mapple.

Code: Tout sélectionner
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{lmodern}
\usepackage{listings}
\usepackage{xcolor}
\usepackage[frenchb]{babel}

\lstdefinelanguage{Maple}{%
  morekeywords={%
    %%% KEYWORDS
    and, assuming, break, by, catch, description, do, done, elif,
    else, end, error, export, fi, finally, for, from, global, if,
    implies, in, intersect, local, minus, mod, module, next, not, od,
    option, options, or, proc, quit, read, return, save, stop, subset,
    then, to, try, union, use, uses, while, xor,
    %%% ???
    sqrt, exp, ln, log, sin, cos, tan, sum, Sum, int, Int, diff, Diff,
    solve, fsolve, rsolve, with, arcsin, arccos, arctan,
    %%% CONSTANTS
    Catalan, constants, Digits, FAIL, false, gamma, I, index,
    infinity, integrate, lasterror, libname, mod, newtable,
    Normalizer, NULL, NumericEventHandlers, Order, Pi, printlevel,
    Rounding, Testzero, true, undefined, UseHardwareFloats,
    %%% BUILTIN FUNCTIONS
%    ASSERT, Array, ArrayOptions, CopySign, DEBUG, Default0,
%    DefaultOverflow, DefaultUnderflow, ERROR, EqualEntries,
%    EqualStructure, FromInert, Im, MPFloat, MorrBrilCull, NextAfter,
%    Normalizer, NumericClass, NumericEvent, NumericEventHandler,
%    NumericStatus, OrderedNE, RETURN, Re, SDMPolynom, SFloatExponent,
%    SFloatMantissa, Scale10, Scale2, SearchText, TRACE, ToInert,
%    Unordered, UpdateSource, \_jvm, \_maplet, \_treeMatch, \_unify,
%    \_xml, abs, add, addressof, alias, anames, and, andmap, appendto,
%    array, assemble, assigned, attributes, bind, call\_external,
%    callback, cat, coeff, coeffs, conjugate, convert, crinterp,
%    debugopts, define\_external, degree, denom, diff, disassemble,
%    divide, dlclose, done, entries, eval, evalb, evalf, evalf,
%    hypergeom, kernel, evalgf1, evalhf, evaln, expand, exports,
%    factorial, frem, frontend, gc, genpoly, gmp\_isprime, goto, has,
%    hastype, hfarray, icontent, if, igcd, ilog10, ilog2, implies,
%    indets, indices, inner, int, series, intersect, iolib, iquo, irem,
%    is\_gmp, isqrt, kernel, transpose, kernelopts, lcoeff, ldegree,
%    length, lexorder, lhs, lprint, macro, map, map2, max, maxnorm,
%    member, min, minus, mod, modp, modp1, modp2, mods, mul,
%    mvMultiply, negate, nops, normal, not, numboccur, numer, op, or,
%    order, ormap, overload, parse, piecewise, pointto, print, quit,
%    readlib, reduce\_opr, remove, rhs, rtable, rtableInfo,
%    rtable\_convolution, rtable\_eval, rtable\_histogram,
%    rtable\_indfns, rtable\_is\_zero, rtable\_normalize\_index,
%    rtable\_num\_dims, rtable\_num\_elems, rtable\_options,
%    rtable\_redim, rtable\_scale, rtable\_scanblock,
%    rtable\_sort\_indices, rtable\_zip, savelib, searchtext, select,
%    selectremove, seq, series, setattribute, sign, sort, ssystem,
%    stop, streamcall, subs, subset, subsop, substring, system, table,
%    taylor, tcoeff, time, timelimit, traperror, trunc, type,
%    typematch, unames, unbind, union, userinfo, writeto, xor,
  },
  sensitive=true,
  morecomment=[l]{\#},
  morestring=[b]`,

}

\lstset{language=Maple, keywordstyle=\color{red}}
\begin{document}
Qu'il est zouli mon zouli listing !
\begin{lstlisting}[caption=zouli listing]
maxi:=1000:
s:=0:
# fin des initialisations, on boucle !
for n to maxi do
  s:= s+1./n;
  if (n mod 100)=0 then print(n, `--> `, evalf(s-ln(n))) fi;
od:
n:='n':
\end{lstlisting}
\end{document}


Si cela peut aider.

Olivier
rebouxo
Modérateur
 
Messages: 6870
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: A propos du package LISTING

Messagepar projetmbc » Vendredi 12 Décembre 2008, 21:39

rebouxo a écrit:Je suppose que tu es déjà allé voir la doc, mais cela manque d'un exemple.

Oui effectivement.

rebouxo a écrit:Il suffit probablement d'aller voir la structure des drivers pour les différents langage.

En tant que débutant, il y a certaines choses que je n'ose pas encore faire.

Merci pour l'exemple, il est très parlant.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu][listing] Définir un nouveau langage

Messagepar projetmbc » Vendredi 19 Décembre 2008, 20:17

Finalement j'ai eu le temps de tester l'exemple ci dessus et cela ne marche pas chez moi, j'ai le problème suivant :

Code: Tout sélectionner
This is pdfTeX, Version 3.141592-1.40.7 (MiKTeX 2.7) (preloaded format=pdflatex 2008.12.6)  19 DEC 2008 20:13
entering extended mode
**C:/Documents*and*Settings/Christophe/Mes*documents/2,pyBaNaMa/CodeSource/x-ut
ile-Latex/CODE-colorSyntax/ColSyntaxe-Perso*[imprime].tex

("C:/Documents and Settings/Christophe/Mes documents/2,pyBaNaMa/CodeSource/x-ut
ile-Latex/CODE-colorSyntax/ColSyntaxe-Perso [imprime].tex"
LaTeX2e <2005/12/01>
Babel <v3.8h> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman, ngerman, french, loaded.
("C:\Program Files\MiKTeX 2.7\tex\latex\base\article.cls"
Document Class: article 2005/09/16 v1.4f Standard LaTeX document class
("C:\Program Files\MiKTeX 2.7\tex\latex\base\size10.clo"
File: size10.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
)
\c@part=\count79
\c@section=\count80
\c@subsection=\count81
\c@subsubsection=\count82
\c@paragraph=\count83
\c@subparagraph=\count84
\c@figure=\count85
\c@table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
)
("C:\Program Files\MiKTeX 2.7\tex\latex\base\fontenc.sty"
Package: fontenc 2005/09/27 v1.99g Standard LaTeX package

("C:\Program Files\MiKTeX 2.7\tex\latex\base\t1enc.def"
File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
))
("C:\Program Files\MiKTeX 2.7\tex\latex\base\inputenc.sty"
Package: inputenc 2006/05/05 v1.1b Input encoding file
\inpenc@prehook=\toks14
\inpenc@posthook=\toks15

("C:\Program Files\MiKTeX 2.7\tex\latex\base\latin1.def"
File: latin1.def 2006/05/05 v1.1b Input encoding file
))
("C:\Program Files\MiKTeX 2.7\tex\latex\geometry\geometry.sty"
Package: geometry 2002/07/08 v3.2 Page Geometry

("C:\Program Files\MiKTeX 2.7\tex\latex\graphics\keyval.sty"
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
\KV@toks@=\toks16
)
\Gm@cnth=\count87
\Gm@cntv=\count88
\c@Gm@tempcnt=\count89
\Gm@bindingoffset=\dimen103
\Gm@wd@mp=\dimen104
\Gm@odd@mp=\dimen105
\Gm@even@mp=\dimen106
\Gm@dimlist=\toks17

("C:\Program Files\MiKTeX 2.7\tex\latex\geometry\geometry.cfg"))
("C:\Program Files\MiKTeX 2.7\tex\latex\lm\lmodern.sty"
Package: lmodern 2007/01/14 v1.3 Latin Modern Fonts
LaTeX Font Info:    Overwriting symbol font `operators' in version `normal'
(Font)                  OT1/cmr/m/n --> OT1/lmr/m/n on input line 13.
LaTeX Font Info:    Overwriting symbol font `letters' in version `normal'
(Font)                  OML/cmm/m/it --> OML/lmm/m/it on input line 14.
LaTeX Font Info:    Overwriting symbol font `symbols' in version `normal'
(Font)                  OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 15.
LaTeX Font Info:    Overwriting symbol font `largesymbols' in version `normal'
(Font)                  OMX/cmex/m/n --> OMX/lmex/m/n on input line 16.
LaTeX Font Info:    Overwriting symbol font `operators' in version `bold'
(Font)                  OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 17.
LaTeX Font Info:    Overwriting symbol font `letters' in version `bold'
(Font)                  OML/cmm/b/it --> OML/lmm/b/it on input line 18.
LaTeX Font Info:    Overwriting symbol font `symbols' in version `bold'
(Font)                  OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 19.
LaTeX Font Info:    Overwriting symbol font `largesymbols' in version `bold'
(Font)                  OMX/cmex/m/n --> OMX/lmex/m/n on input line 20.
LaTeX Font Info:    Overwriting math alphabet `\mathbf' in version `normal'
(Font)                  OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 22.
LaTeX Font Info:    Overwriting math alphabet `\mathsf' in version `normal'
(Font)                  OT1/cmss/m/n --> OT1/lmss/m/n on input line 23.
LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `normal'
(Font)                  OT1/cmr/m/it --> OT1/lmr/m/it on input line 24.
LaTeX Font Info:    Overwriting math alphabet `\mathtt' in version `normal'
(Font)                  OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 25.
LaTeX Font Info:    Overwriting math alphabet `\mathbf' in version `bold'
(Font)                  OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
LaTeX Font Info:    Overwriting math alphabet `\mathsf' in version `bold'
(Font)                  OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 27.
LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `bold'
(Font)                  OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 28.
LaTeX Font Info:    Overwriting math alphabet `\mathtt' in version `bold'
(Font)                  OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 29.
)
("C:\Program Files\MiKTeX 2.7\tex\latex\listings\listings.sty"
\lst@mode=\count90
\lst@gtempboxa=\box26
\lst@token=\toks18
\lst@length=\count91
\lst@currlwidth=\dimen107
\lst@column=\count92
\lst@pos=\count93
\lst@lostspace=\dimen108
\lst@width=\dimen109
\lst@newlines=\count94
\lst@lineno=\count95
\lst@maxwidth=\dimen110

("C:\Program Files\MiKTeX 2.7\tex\latex\listings\lstmisc.sty"
File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz)
\c@lstnumber=\count96
\lst@skipnumbers=\count97
\lst@framebox=\box27
)
("C:\Program Files\MiKTeX 2.7\tex\latex\listings\listings.cfg"
File: listings.cfg 2007/02/22 1.4 listings configuration
))
Package: listings 2007/02/22 1.4 (Carsten Heinz)

("C:\Program Files\MiKTeX 2.7\tex\latex\xcolor\xcolor.sty"
Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)

("C:\Program Files\MiKTeX 2.7\tex\latex\00miktex\color.cfg"
File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
)
Package xcolor Info: Driver file: pdftex.def on input line 225.

("C:\Program Files\MiKTeX 2.7\tex\latex\graphics\pdftex.def"
File: pdftex.def 2007/06/12 v0.04h Graphics/color for pdfTeX
\Gread@gobject=\count98
)
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
Package xcolor Info: Model `RGB' extended on input line 1353.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
)
("C:\Program Files\MiKTeX 2.7\tex\generic\babel\babel.sty"
Package: babel 2005/11/23 v3.8h The Babel package

*************************************
* Local config file bblopts.cfg used
*
("C:\Program Files\MiKTeX 2.7\tex\latex\00miktex\bblopts.cfg"
File: bblopts.cfg 2006/07/31 v1.0 MiKTeX 'babel' configuration
)
("C:\Program Files\MiKTeX 2.7\tex\generic\babel\frenchb.ldf"
Language: french 2005/02/06 v1.6g French support from the babel system

("C:\Program Files\MiKTeX 2.7\tex\generic\babel\babel.def"
File: babel.def 2005/11/23 v3.8h Babel common definitions
\babel@savecnt=\count99
\U@D=\dimen111
)
Package babel Info: Making : an active character on input line 219.
Package babel Info: Making ; an active character on input line 220.
Package babel Info: Making ! an active character on input line 221.
Package babel Info: Making ? an active character on input line 222.
LaTeX Font Info:    Redeclaring font encoding T1 on input line 299.
\parindentFFN=\dimen112
\std@mcc=\count100
\dec@mcc=\count101

*************************************
* Local config file frenchb.cfg used
*
("C:\Program Files\MiKTeX 2.7\tex\generic\babel\frenchb.cfg")))
Runaway argument?
{morekeywords={and, assuming, break, by, catch, description, do, done\ETC.
! Paragraph ended before \lst@DefDriver@@ was complete.
<to be read again>
                   \par
l.62
     
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Extra }, or forgotten \endgroup.
l.63 }
     
I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

("C:\Program Files\MiKTeX 2.7\tex\latex\listings\lstlang1.sty"
File: lstlang1.sty 2004/09/05 1.3 listings language file
)
("C:\Program Files\MiKTeX 2.7\tex\latex\listings\lstlang2.sty"
File: lstlang2.sty 2004/09/05 1.3 listings language file
)
("C:\Program Files\MiKTeX 2.7\tex\latex\listings\lstlang3.sty"
File: lstlang3.sty 2004/09/05 1.3 listings language file
)

! Package Listings Error: Couldn't load requested language.

See the Listings package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                             
                                                 
l.65 ...{language=Maple, keywordstyle=\color{red}}
                                                 
The following languages weren't loadable:
    ,maple$
This may cause errors in the sequel.


! Package Listings Error: language maple undefined.

See the Listings package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                             
                                                 
l.65 ...{language=Maple, keywordstyle=\color{red}}
                                                 
The language is not loadable. Try typing  <return>  to proceed.
If that doesn't work, type  X <return>  to quit.

("ColSyntaxe-Perso [imprime].aux")
LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 66.
LaTeX Font Info:    ... okay on input line 66.
LaTeX Font Info:    Checking defaults for T1/lmr/m/n on input line 66.
LaTeX Font Info:    Try loading font information for T1+lmr on input line 66.

("C:\Program Files\MiKTeX 2.7\tex\latex\lm\t1lmr.fd"
File: t1lmr.fd 2007/01/14 v1.3 Font defs for Latin Modern
)
LaTeX Font Info:    ... okay on input line 66.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 66.
LaTeX Font Info:    ... okay on input line 66.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 66.
LaTeX Font Info:    ... okay on input line 66.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 66.
LaTeX Font Info:    ... okay on input line 66.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 66.
LaTeX Font Info:    ... okay on input line 66.
-------------------- Geometry parameters
paper: a4paper
landscape: --
twocolumn: --
twoside: --
asymmetric: --
h-parts: 89.62709pt, 0.7\paperwidth , 89.6271pt (default)
v-parts: 101.40665pt, 0.7\paperheight , 152.11pt (default)
hmarginratio: 1:1
vmarginratio: 2:3
lines: --
heightrounded: --
bindingoffset: 0.0pt
truedimen: --
includehead: --
includefoot: --
includemp: --
driver: pdftex
-------------------- Page layout dimensions and switches
\paperwidth  597.50787pt
\paperheight 845.04684pt
\textwidth  418.25368pt
\textheight 591.5302pt
\oddsidemargin  17.3571pt
\evensidemargin 17.3571pt
\topmargin  -7.86334pt
\headheight 12.0pt
\headsep    25.0pt
\footskip   30.0pt
\marginparwidth 65.0pt
\marginparsep   11.0pt
\columnsep  10.0pt
\skip\footins  9.0pt plus 4.0pt minus 2.0pt
\hoffset 0.0pt
\voffset 0.0pt
\mag 1000

(1in=72.27pt, 1cm=28.45pt)
-----------------------
\c@lstlisting=\count102

("C:\Program Files\MiKTeX 2.7\tex\context\base\supp-pdf.tex"
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count103
\scratchdimen=\dimen113
\scratchbox=\box28
\nofMPsegments=\count104
\nofMParguments=\count105
\everyMPshowfont=\toks19
\MPscratchCnt=\count106
\MPscratchDim=\dimen114
\MPnumerator=\count107
\everyMPtoPDFconversion=\toks20
)
LaTeX Info: Redefining \dots on input line 66.
LaTeX Font Info:    Try loading font information for OT1+lmr on input line 74.
 ("C:\Program Files\MiKTeX 2.7\tex\latex\lm\ot1lmr.fd"
File: ot1lmr.fd 2007/01/14 v1.3 Font defs for Latin Modern
)
LaTeX Font Info:    Try loading font information for OML+lmm on input line 74.

("C:\Program Files\MiKTeX 2.7\tex\latex\lm\omllmm.fd"
File: omllmm.fd 2007/01/14 v1.3 Font defs for Latin Modern
)
LaTeX Font Info:    Try loading font information for OMS+lmsy on input line 74.


("C:\Program Files\MiKTeX 2.7\tex\latex\lm\omslmsy.fd"
File: omslmsy.fd 2007/01/14 v1.3 Font defs for Latin Modern
)
LaTeX Font Info:    Try loading font information for OMX+lmex on input line 74.


("C:\Program Files\MiKTeX 2.7\tex\latex\lm\omxlmex.fd"
File: omxlmex.fd 2007/01/14 v1.3 Font defs for Latin Modern
)
LaTeX Font Info:    External font `lmex10' loaded for size
(Font)              <10> on input line 74.
LaTeX Font Info:    External font `lmex10' loaded for size
(Font)              <7> on input line 74.
LaTeX Font Info:    External font `lmex10' loaded for size
(Font)              <5> on input line 74.
 [1

{C:/Documents and Settings/All Users/Application Data/MiKTeX/2.7/pdftex/config/
pdftex.map}]
("ColSyntaxe-Perso [imprime].aux") )
(\end occurred inside a group at level 1)

### semi simple group (level 1) entered at line 10 (\begingroup)
### bottom level
Here is how much of TeX's memory you used:
 4110 strings out of 95337
 52011 string characters out of 1184077
 134775 words of memory out of 1500000
 7283 multiletter control sequences out of 110000
 18403 words of font info for 26 fonts, out of 1200000 for 2000
 14 hyphenation exceptions out of 8191
 27i,5n,41p,329b,1961s stack positions out of 5000i,500n,10000p,200000b,5000s
{C:/Program Files/MiKTeX 2.7/fonts/enc/dvips/lm/lm-mathsy.enc}{
C:/Program Files/MiKTeX 2.7/fonts/enc/dvips/lm/lm-ec.enc}<C:/Program Files/MiKT
eX 2.7/fonts/type1/public/lm/lmr10.pfb><C:/Program Files/MiKTeX 2.7/fonts/type1
/public/lm/lmsy10.pfb>
Output written on "ColSyntaxe-Perso [imprime].pdf" (1 page, 33743 bytes).
PDF statistics:
 16 PDF objects out of 1000 (max. 8388607)
 0 named destinations out of 1000 (max. 131072)
 1 words of extra memory for PDF output out of 10000 (max. 10000000)


Sinon je viens au détour de mes lectures de faire connaissance avec Highlight qui est pas mal du tout (il est utilisbale en ligne de commande ou via une interface) : http://www.andre-simon.de/index.html. Comme les définitions des formats HTML/XHTML se font via une feuille CSS et celles pour LaTeX/TeX via un fichier STY, on peut se lancer dans des mises en forme très personnelles.

Par contre les accents ne semblent pas être pris en compte (au premier coup d'oeil mais cela reste à vérifier).
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [Gros PB avec listing] Définir un nouveau langage

Messagepar projetmbc » Mercredi 07 Janvier 2009, 19:05

Quelqu'un verrait-il la raison de mon problème ?
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [Gros PB avec listing] Définir un nouveau langage

Messagepar GMaths » Mercredi 07 Janvier 2009, 21:13

projetmbc a écrit:Quelqu'un verrait-il la raison de mon problème ?

Ton message d'erreur te le dit
Code: Tout sélectionner
l.62
     
I suspect you've forgotten a `}',

Il se trouve qu'au numéro de ligne en question... on trouve une accolade précédée d'une ligne vide.
Supprime cette dernière.
GMaths
Exa-utilisateur
 
Messages: 2031
Inscription: Lundi 01 Octobre 2007, 09:20
Statut actuel: Actif et salarié | Enseignant

Re: [RESOLU] [listing] Définir un nouveau langage

Messagepar projetmbc » Jeudi 08 Janvier 2009, 00:21

Quel imbécile je fais... Merci, je vais pouvoir explorer l'utilisation de listings pour des langages persos.

Pour ceux que cela intéresse, pygments permet via le langage Python de produire un code TeX pour colorer du code dans pas mal de langage (le problème est que le code généré n'est pas lisible directement dans le source).
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: [Résolu][listing] Définir un nouveau langage

Messagepar projetmbc » Dimanche 11 Janvier 2009, 00:55

Je viens à titre de test de voir comment faire de la coloration syntaxique "évoluée" dans LaTeX. Voici un bout de code qui permet d'avoir l'essentiel de ce que l'on peut attendre d'une coloration syntaxique.

En espérant que cela puisse servir à d'autres.

Code: Tout sélectionner
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[a4paper]{geometry}
\usepackage{lmodern}
\usepackage{listings}
\usepackage{xcolor}
\usepackage[frenchb]{babel}

\lstdefinelanguage{test}{%
   morekeywords={%
    %%% BOUCLE, TEST & Co.
      if, elif, then, else, and, or,
    %%% IMPORT & Co.
      import, from,
    %%% MODULES
      mod_1, mod_2,
    %%% FONCTIONS NUMERIQUES
      cos, sin, tan, acos, asin, atan,
    %%% CONSTANTES
      pi, True, False,
  },
  sensitive=true,
  morecomment=[l]{\#},
  morestring=[b]',
}
% On va pouvoir définir différents types de mises en forme suivant le type de mots-clés.
% La méthode est fastidieuse mais pas compliquée.
\lstset{language=test,
    %%% BOUCLE, TEST & Co.
      emph={if, elif, then, else, and, or},
      emphstyle=\color{blue},
    %%% IMPORT & Co.
      emph={[2]import, from},
      emphstyle=[2]\color{red},
    %%% MODULES
      emph={[3]mod_1, mod_2},
      emphstyle=[3]\color{red!50!green},
    %%% FONCTIONS NUMERIQUES
      emph={[4]cos, sin, tan, acos, asin, atan},
      emphstyle=[4]\color{gray},
    %%% CONSTANTES
      emph={[5]pi, True, False},
      emphstyle=[5]\color{orange}
}

\begin{document}
Un langage fictif pour des applications bien réelles...
\begin{lstlisting}[caption=Sympa ce package listings]
# Un programme quelque peu fictif...
import mod_1
from mod_2 import inconnu

if a==True or b==False then c=pi

if b==True :
    c=sin(4)
elif :
    c=tan(sin(4))
else:
    print 'Hum, Hum'
\end{lstlisting}
\end{document}


Il ne reste plus qu'à nourrir la liste des mots-clés, le mieux étant sûrement de s'aider d'un mini-prog qui se chargera de créer les lignes de déclaration pour chaque type de présentation.

S'il existe une méthode un peu moins brutale qui évite une double déclaration des mots-clés, je suis preneur.
projetmbc
Péta-utilisateur
 
Messages: 1895
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], Yandex [Bot] et 10 invités