Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1300 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Emacs] Générer un beau fichier de code.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Emacs] Générer un beau fichier de code.

n°338463
mexx20
Posté le 13-10-2003 à 10:01:10  profilanswer
 

Bonjour,
 
Est-ce qu'Emacs, à partir d'un fichier de code, peut générer un beau fichier ps avec, par exemple, la coloration syntaxique, la mise en italique des commentaires, la mise en gras des mots réservés, mettre les titres et entêtes avec nom du fichier, rajouter le numéro des lignes, etc.  
 
Parceque imprimer de l'ASCII, c'est pas beau et c'est trop grand.  
 
Ce serait pour du C, C++ et Java.  
 
Merci.

mood
Publicité
Posté le 13-10-2003 à 10:01:10  profilanswer
 

n°338472
arsunik
ma tuxitude me beastifie
Posté le 13-10-2003 à 10:23:21  profilanswer
 

Plusieurs solutions pour trouver de la doc sur Emacs :
- lire le manuel en anglais (je ne sais pas s'il existe une traduction)
- utiliser l'aide d'Emacs. Tu as notamment la commande apropos (F1-a ou ctrl-h a) qui te demandes "Apropos command (regexp):". Tu met "print" et tu as "ps-print-region-with-faces"
- utiliser les menus... "File" "Postscript Print Buffer"
 
Ensuite la configuration de l'impression ne se fait pas de façon très intuitive (c'est souvent le cas avec Emacs...).

n°338477
grosminet
42.
Posté le 13-10-2003 à 10:31:01  profilanswer
 

doxygen powa
et javadoc pour java...

n°338479
kadreg
profil: Utilisateur
Posté le 13-10-2003 à 10:43:47  profilanswer
 

grosminet a écrit :

doxygen powa
et javadoc pour java...


 
T'as rien compris toi, retourne dormir ...


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°338488
arsunik
ma tuxitude me beastifie
Posté le 13-10-2003 à 11:09:25  profilanswer
 

Pour les options, voilà deux tites fonctions que j'utilise qui permettent de créer des fichiers .ps à partir sur tous les fichiers ouverts avec 2 pages par feuille :
 

Code :
  1. ;;; ### autoload
  2. (defun psprint (arg)
  3.   "Print the current buffer in nom_buffer.ps.
  4. With a prefix argument, print it directly"
  5.   (interactive "P" )
  6.   (require 'ps-print)
  7.   (let ((ps-paper-type 'a4)
  8.  ;; marges                        cm
  9.  (ps-left-margin   (/ (* 72   .7) 2.54))
  10.  (ps-right-margin  (/ (* 72   .7) 2.54))
  11.  (ps-bottom-margin (/ (* 72   .7) 2.54))
  12.  (ps-top-margin    (/ (* 72  1.5) 2.54))
  13.  (ps-inter-column  (/ (* 72  1.0) 2.54))
  14.  (ps-header-offset (/ (* 72   .5) 2.54))
  15.  (ps-font-size 8)
  16.  (ps-landscape-mode t)
  17.  (ps-number-of-columns 2))
  18.     (ps-print-buffer-with-faces
  19.       (if arg
  20. nil
  21. (concat (file-name-nondirectory (buffer-file-name)) ".ps" )))))
  22. ;;; ### autoload
  23. (defun psprint-all (arg)
  24.   "Print all buffers in buffer_name.ps
  25. Don't print buffer which aren't files like \"*scratch*\".
  26. With a prefix argument, print it directly"
  27.   (interactive "P" )
  28.   (save-excursion
  29.     (let ((l (buffer-list)))
  30.       (while l
  31. (switch-to-buffer (car l))
  32. (if (not (string-match "\\*" (buffer-name (current-buffer))))
  33.     (psprint arg))
  34. (setq l (cdr l))))))


 
Pour ce qui est de la config :
entete :

Code :
  1. ;; Affiche un cadre pour l'entête (t) ou non (nil)
  2. ;(setq ps-print-header-frame t)
  3. ;;; Nombre de ligne de l'entête
  4. ;(setq-default ps-header-lines 1)
  5. ; Entête : Partie Gauche    Partie droite
  6. ;; Pour afficher du texte : le mettre entre parenthéses
  7. ;;                          ex: "(TD de Scheme)"
  8. ;;                              "()" ; ligne vide
  9. ;; Pour afficher le nombre de page : "/pagenumberstring load"
  10. ;; Pour afficher le nom du buffer : 'buffer-name
  11. ;; Pour afficher la date : 'time-stamp-dd-mon-yy
  12. ;; (setq ps-left-header
  13. ;;       (list 'buffer-name
  14. ;;      ))
  15. ;; (setq ps-right-header
  16. ;;   (list "/pagenumberstring load"
  17. ;;  'time-stamp-dd-mon-yy
  18. ;;  ))


 
Créer une police d'impression :

Code :
  1. ;; Rajout d'une famille de police
  2. (setq ps-font-info-database
  3.        (append
  4.         '((Sun   ; nom de la famille
  5.    (fonts
  6.     (normal . "Courier" )
  7.     (bold . "Courier-Bold" )
  8.     (italic . "ZapfChancery-MediumItalic" )
  9.     (bold-italic . "Courier-BoldOblique" ))
  10.    (size . 10.0)
  11.    (line-height . 10.55)
  12.    (space-width . 6.0)
  13.    (avg-char-width . 6.0)))
  14.         ps-font-info-database))
  15. ;; Modification de la police d'impression
  16. ;; Pour voir toute les polices: Voir la variable `ps-font-info-database'
  17. ;; La seule police non proportionnelle est Courier ...
  18. ;(setq ps-font-family 'Sun)
  19. ;(setq ps-font-family 'Courier)


 
Impression sur une page :

Code :
  1. ;; marges
  2.   (setq ps-left-margin   (/ (* 72  3.0) 2.54)) ;   3 cm
  3.   (setq ps-right-margin  (/ (* 72  1.5) 2.54)) ;   2 cm
  4.   (setq ps-bottom-margin (/ (* 72  2.0) 2.54)) ; 2.5 cm
  5.   (setq ps-top-margin    (/ (* 72  3.0) 2.54)) ; 3.5 cm
  6.   ;; Taille de la police (en point)
  7.   (setq ps-font-size 9.5)
  8.   (setq ps-landscape-mode nil)
  9.   (setq ps-number-of-columns 1)


 
sur 2 pages :

Code :
  1. (setq ps-left-margin   (/ (* 72   .7) 2.54))
  2.   (setq ps-right-margin  (/ (* 72   .7) 2.54))
  3.   (setq ps-bottom-margin (/ (* 72   .5) 2.54))
  4.   (setq ps-top-margin    (/ (* 72  1.5) 2.54))
  5.   (setq ps-inter-column  (/ (* 72  1.0) 2.54))
  6.   (setq ps-header-offset (/ (* 72   .5) 2.54))
  7.   ;; Taille de la police (en point)
  8.   (setq ps-font-size 8)
  9.   (setq ps-landscape-mode t)
  10.   (setq ps-number-of-columns 2))


 
Tu peux aussi utiliser les buffers cutomize pour configurer tout ça.
 
Pour ce qui est de l'affichage du numéro des lignes :

Code :
  1. ;; Line Number
  2. ;; -----------
  3. ;;
  4. ;; The variable `ps-line-number' specifies whether to number each line;
  5. ;; non-nil means do so.  The default is nil (don't number each line).
  6. ;;
  7. ;; The variable `ps-line-number-color' specifies the color for line number.
  8. ;; See `ps-zebra-color' for documentation.  The default is "black" (or 0.0, or
  9. ;; '(0.0 0.0 0.0)).
  10. ;;
  11. ;; The variable `ps-line-number-font' specifies the font for line number.
  12. ;; The default is "Times-Italic".
  13. ;;
  14. ;; The variable `ps-line-number-font-size' specifies the font size in points
  15. ;; for line number.  See `ps-font-size' for documentation.  The default is 6.
  16. ;;
  17. ;; The variable `ps-line-number-step' specifies the interval that line number
  18. ;; is printed.  For example, if `ps-line-number-step' is set to 2, the printing
  19. ;; will look like:
  20. [...]
  21. (voir le fichier ps-print.el ou la doc associé)

n°338492
grosminet
42.
Posté le 13-10-2003 à 11:15:24  profilanswer
 

dis donc pépère kadreg, calme toi, on demande un truc pour foutre du code en couleur etc. dans le but de l'imprimer.
alors oui, doxygen le fait tres bien, il ne fait pas que s'occuper des commentaires.
alors même si ça ne génère pas de fichier ps je pense que ça peut être une solution

n°338502
arsunik
ma tuxitude me beastifie
Posté le 13-10-2003 à 11:30:22  profilanswer
 

Je suis sur que c'est moins beau qu'avec Emacs ;)
Par contre c'est ptet plus rapide et plus simple à utiliser... :/

n°338525
kadreg
profil: Utilisateur
Posté le 13-10-2003 à 12:06:56  profilanswer
 

grosminet a écrit :

dis donc pépère kadreg, calme toi, on demande un truc pour foutre du code en couleur etc. dans le but de l'imprimer.


 
Sauf que doxygen et javadoc ne servent pas à ça espèce de crétin. Ils extraient des infos du code pour en permettre la documentation. Avec doxygen, tu obtient ça : http://xml.apache.org/xerces-c/api [...] ndler.html , ce qui n'est pas exactement du pretty-print.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°338538
grosminet
42.
Posté le 13-10-2003 à 12:17:05  profilanswer
 

PUTAIN MAIS TU RENDS OUF
je dis pas que c la meilleur solution bordel je dis quoi ? je dis que ça te met le code en couleur si tu as besoin de l'imprimer et c'est tout
--> solution rapide et pratique qd on a pas envie de se plonger dans la conf de emacs en lisp
je dis pas non plus que doxygen et javadoc sont des trucs voués à faire ça, mais que qd tu regarde ce que génère doxygen et bien tu as ton code en couleur dans une page html
 
alors tais toi et arrête d'agresser les gens, t'est ptet tres bon, mais pas franchement constructif, tu proposes quoi toi ? rien.
 
Arsumik: en effet, je suppose que c moins bô qu'avec emacs.

n°338540
kadreg
profil: Utilisateur
Posté le 13-10-2003 à 12:17:57  profilanswer
 

grosminet a écrit :


je dis que ça te met le code en couleur si tu as besoin de l'imprimer et c'est tout


 
Depuis quand ? Tu as un exemple ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le 13-10-2003 à 12:17:57  profilanswer
 

n°338550
grosminet
42.
Posté le 13-10-2003 à 12:32:17  profilanswer
 

oui tu vas dans n'importe quel index.html généré par doxygen tu regardes la section 'file list' en haut
tu as une liste de fichiers qui apparaissent alors si j'ai bonne mémoire et tu peux cliquer sur le mot [code] qui apparait à côté du fichier.
tous les fichiers n'auront ptet pas ce lien il me semble qu'il faut le dire à doxygen.
je crois si je me souviens bien que tu peux donner des règles à doxygen pour qu'il mette les commentaires etc d'une certaine couleur et tout.
si tu veux un exemple:
http://www.lrde.epita.fr/~akim/com [...] ource.html

n°338553
Taz
bisounours-codeur
Posté le 13-10-2003 à 12:34:05  profilanswer
 

a2ps peut etre ?
 
edit kadreg, fais nous un tar stp


Message édité par Taz le 13-10-2003 à 12:35:35
n°338555
kadreg
profil: Utilisateur
Posté le 13-10-2003 à 12:36:01  profilanswer
 


 
fake :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°338559
grosminet
42.
Posté le 13-10-2003 à 12:39:12  profilanswer
 

?

n°344242
mexx20
Posté le 25-10-2003 à 15:22:48  profilanswer
 

ArSuniK >>  :jap:  :jap:  :jap:  :jap:  
 
Trop bon !! Je vais tester tout ça ... Un très grand merci à toi !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Emacs] Générer un beau fichier de code.

 

Sujets relatifs
Recuperer un fichier apres un rm ?[htdig] générer la base de recherche sur des répertoires protégés
Pb de page de code*** KWrite, Emacs, etc ... Console ???
[.ram] Lire un fichier .ramComment couper un fichier ?
[Debian] Mozilla plante :( Code erreur 11 a priori.Limite de taille de fichier avec Samba
[mdk9.1][mplayer][.mov] pb. à la lecture d'un fichier [résolu]emacs vs. vi
Plus de sujets relatifs à : [Emacs] Générer un beau fichier de code.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR