#!/usr/bin/env ruby # # Usage: texcat ... # def process_file(filename) contents = File.readlines(filename).join contents.gsub(/\\(include|input)\{(.*?)\}/) do process_file("#{$2}.tex") end end for file in ARGV puts process_file(file) end