Mozilla innovations

Mozilla has publicized a  lot of fun projects recently, the most recent being Mozilla Bespin.

It’s nice too see so much efforts put into innovation, especially since it’s based on open standards and open source software. It also makes the browser and the web itself more and more interesting which is a good reason for big web companies to support them (like Google’s funding1 ). Anyway with so much openness also in the research projects, it must be fun to be a developper at Mozilla Labs.

On a side note, with the prospect of integrating Ubiquity into Bespin IDE , I guess I’ve been right to set Ubiquity’s keybinding to Alt+x (aka M-x) right from the begining :D

  1. and also Microsoft’s cooking ;) []

Rédaction…

En ce moment je suis pas mal occupé dans la rédaction d’un mémoire et c’est l’occasion pour moi d’explorer un peu plus de fonctionnalités d’Emacs/AucTeX et certaines limitations aussi.

Du coup, je rajoute des petits bouts de code dans mes fichiers de configurations et en attendant de mettre à jour ceux qui sont à disposition dans la section “code” de ce site, en voici un extrait:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
(defun LaTeX-compile ()
  "An interface to `compile'.
It calls `compile' and define the compile command depending on
the presence of a makefile. Takes into account the master-file
system as defined by AucTeX for multiple file documents."
  (interactive)
  (let ((master-name (expand-file-name (TeX-master-file)))
        (makefile-candidate_u 
          (concat
            (file-name-directory 
              (expand-file-name (TeX-master-file))) 
              "Makefile"))
	(makefile-candidate_l 
          (concat 
            (file-name-directory 
             (expand-file-name (TeX-master-file))) 
             "Makefile"))
	(use-tex-command nil)
	)
 
    (if (not master-name)(error "cannot get master's filename."))
 
    (cond
     ;; Makefile ?
     ((file-readable-p makefile-candidate_u)
      (set (make-local-variable 'compile-command)
	   (concat "cd `dirname " makefile-candidate_u "`; make ref"))
      )
 
     ;; makefile ?
     ((file-readable-p makefile-candidate_u)
      (set (make-local-variable 'compile-command)
	   (concat "cd `dirname " makefile-candidate_u "`; make ref"))
     )
 
     ;; else
     (t
      (if (and (local-variable-p 'compile-command)
	       compile-command)
	    (setq use-tex-command t))
      )
     )
     ;; compile
    (if (not use-tex-command)
	(call-interactively 'compile)
      (TeX-command-master)
      )
    )
  )

La fonction que l’on crée ainsi est toute bête en fait, elle permet d’utiliser un Makefile, s’il existe, pour compiler le document courant et si le makefile n’existe pas on lance la commande par défaut (et configurée au niveau de AucTeX).

Grâce à AucTeX justement ça marche comme un charme pour des documents constitué de plusieurs fichiers .tex, où l’on fait juste la supposition que le Makefile (toujours s’il existe) est dans le même répertoire que le document maître.

Très pratique…