Script de compilation LaTeX en Ruby
Mon manuscrit de thèse sera rédigé en LaTeX (le premier qui me parle de Word se fera frapper avec violence
) et histoire d'automatiser les choses, j'ai écrit un script de compilation en Ruby.
J'aurai pu utiliser un Makefile, un des scripts existants (il y en a un très bien en Perl dont j'ai oublié le nom), du Python, du Groovy... mais ce script là me va très bien !
#!/usr/bin/env ruby require 'optparse' require 'fileutils' MAIN_FILE = "phd-thesis" PDFLATEX = "pdflatex #{MAIN_FILE}.tex" BIBTEX = "bibtex #{MAIN_FILE}.aux" def build_pdf return unless system PDFLATEX return unless system BIBTEX callcc do |stop_build| 3.times do status = system PDFLATEX stop_build.call unless status end end end def single_compilation system PDFLATEX end def clean_artifacts extensions = %w[blg log pdf aux bbl lof lot out toc tps] files = extensions.map { |ext| "#{MAIN_FILE}.#{ext}" } FileUtils::Verbose::rm files, { :force => true } end def open_pdf(how) system "#{how} #{MAIN_FILE}.pdf" end def run options = { :command => :pdf } OptionParser.new do |opts| opts.banner = "Usage: build.rb [options]" opts.on("--pdf", "Build the PDF output (default)") do |pdf| options[:command] = :pdf end opts.on("--oneshot", "Single LaTeX compilation") do |oneshot| options[:command] = :oneshot end opts.on("--clean", "Clean the build artifacts") do |clean| options[:command] = :clean end opts.on("--open-pdf [HOW]", "Open the generated PDF with HOW)") do |how| options[:openpdf] = how end opts.on_tail("-h", "--help", "Show this message") do puts opts exit end end.parse! case options[:command] when :pdf build_pdf open_pdf(options[:openpdf]) if options[:openpdf] when :oneshot single_compilation open_pdf(options[:openpdf]) if options[:openpdf] when :clean clean_artifacts end end run
Je ne garanti pas que le code soit parfait, alors n'hésitez pas à émettre des critiques constructives !
Preview of the next GlassFish installer

The next release of the IzPack-based GlassFish installer will bring the following enhancements:
- Solaris (x86, sparc) support
- ability to tweak the default domain creation (uses UserInputPanel, see the screenshot above)
- ability to start the created domain and open a web browser on the administration console
- support for creating the domain with the cluster script.
Note: the data entered on the above panel is validated
I have yet to test it on other platforms than Mac OS X (Tiger), so feel free to try it from http://izpack.org/showcases/glassfish-v2/experimental-glassfish-install.jar and report issues! (as the name suggests, this is highly experimental)
Two new developers for IzPack
I'm glad to announce that following our tradition of meritocracy and open development, the project has now 2 new developers: Piotr Skowronek and Jeff Gordon.
Welcome on board guys
Update: Matthew Fudge has now joined the project as well!
OpenOffice et les images
OpenOffice Draw est un bon outil pour construire des figures scientifiques. On peut sans aucun doute faire mieux (OmniGraffle est un bijou sous Mac OS X), mais en tant qu'outil opensource, multi-plateformes, avec un éditeur de formules mathématiques et disponible gratuitement, il est plus que respectable
Il y a néanmoins une chose qui m'agace plus que les autres (au hasard devoir retailler les pages pour avoir un PDF à la taille de la figure ...) : l'inclusion d'une image externe se fait par défaut en liaison. Dit plus simplement, si je fait un drag&drop d'une image externe dans ma figure, OpenOffice la lie au document au lieu de l'importer dans le fichier du document.
La subtilité est de taille : le chemin de l'image est stocké en dur dans le fichier, si bien que lorsque l'on ouvre le fichier depuis une autre machine, l'image est manquante
Bien évidemment il y a la possibilité de passer par le menu insérer et ne pas cocher la case de liaison, mais le drag&drop est quand même bien plus confortable.
J'ai fini par trouver la solution pour que OpenOffice embarque les images :
- utiliser le drag&drop
- finaliser sa figure
- aller dans le ménu Edit > Links puis supprimer tous les liens, ce qui a pour effet d'embarquer les images dans le document !
A mon humble avis, le comportement par défaut devrait être d'embarquer les images plutôt que de les lier. Je suppose en effet que l'utilisateur lambda doit tomber facilement sur ce problème sans jamais trouver la solution.
