#!/usr/bin/ruby # ESTE PROGRAMA NECESITA LA GEMA 'syntax' y el conversor a LaTeX # Resalta código Ruby en fuentes LaTeX. El código se escribe en bloques # comentados, y el programa hace de filtro, devolviendo el código original # comentado y la salida LaTeX resaltada, sin comentar. # Para poder usarlo hay que declarar las órdenes \synXXX, como se hace en el # fichero de ejemplo rubysyntax.sty (p.ej. cargando ese fichero desde el fuente # LaTeX) # Se recomienda meter los bloques de código entre marcas especiales, p.ej.: # # %code # % class Programmer < Human # % def initialize(lang); @lang = lang.to_sym; end # % end # %endcode # # Para luego actualizar la versión resaltada con una orden de VIM como ésta: # # g/^%code/+1,/^%endcode/-1 !ruby-latex-highlighter $LOAD_PATH.unshift '~/lib/ruby' require 'rubygems' require 'syntax/convertors/latex' MARCA_FUENTES = /^% / conv = Syntax::Convertors::LaTeX.for_syntax "ruby" entrada = $stdin.readlines.grep(MARCA_FUENTES).join salida_resaltada = conv.convert(entrada.gsub(MARCA_FUENTES, '')) puts entrada + salida_resaltada