小さいUFOって何だ!?というのはあるが...
複数の Range を結合する - Qiitaを参考にRangeオブジェクトの結合を利用して、
$ tx -ufo -g `ruby -e 'print [".notdef","space",*"A".."Z",*"a".."z"].join(",")'` -o font.shrinked.ufo font.ufo && vfb2ufo font.shrinked.ufo
なんてやるとくっそ便利www
通常のアルファベットの大文字と小文字だけのUFOが瞬殺で出来てしまう。Range強すぎ!
確認にはFontLab Studio 5からデモ版を回収するなどしておくと何かと便利。
Source Sans Proのfeaturesを加工するために一旦全部include命令を展開したものがあると便利。ということでrubyでやってしまう:
#! /usr/bin/env ruby -Ku INCLUDE_PATTERN = %r"^\s*include\s*\(\s*(\S+)\s*\)" path = ARGV[0] dirname = File.dirname(path) File.open(path) { |f| while line = f.gets if line =~ /#{INCLUDE_PATTERN}/ print File.read(File.join(dirname, $1)) else print end end }