とりあえず、
を参考に .tex を fontspec 使うように書き換えて試してみたんだが、
coloremoji パッケージなんてものをみつけたので これも試してみたが、upLaTeX でしか使えないとのことで駄目。
upLaTeX 以外でも OK な bxcoloremoji パッケージなる後継があって、これだと行けた。
という事で、とりあえず、Miscellaneous Symbols だったら bxcoloremoji で出力するフィルタ書いてみた。
_build/latex 以下に上記スクリプトと bxcoloremoji の必要ファイル放り込んで、
面倒なのでこれ sphinx に組み込みたいな
そうは言っても Sphinx 本家へのコミットはハードル高そうなので、とりあえずコマンド一発で BXcoloremoji 化した .tex に変換して PDF 化までするコマンドこさえて公開した。
を参考に .tex を fontspec 使うように書き換えて試してみたんだが、
$ make ... ! Fatal Package fontspec Error: The fontspec package requires either XeTeX or (fontspec) LuaTeX. (fontspec) (fontspec) You must change your typesetting engine to, (fontspec) e.g., "xelatex" or "lualatex"instead of (fontspec) "latex" or "pdflatex". Type <return> to continue. ... l.45 \msg_fatal:nn {fontspec} {cannot-use-pdftex} ?とか言われて、sphinx の latex に馴染まない。
coloremoji パッケージなんてものをみつけたので これも試してみたが、upLaTeX でしか使えないとのことで駄目。
upLaTeX 以外でも OK な bxcoloremoji パッケージなる後継があって、これだと行けた。
という事で、とりあえず、Miscellaneous Symbols だったら bxcoloremoji で出力するフィルタ書いてみた。
#!/bin/sh exec ruby -x "$0" "$@" #!ruby # coding: utf-8 require 'unicode/blocks' if ARGF.file == STDIN && !File.pipe?(STDIN) puts "Usage: ${File.basename $0} [<file.tex>]" puts " Use bxcoloremoji for Miscellaneous Symbols" exit end # Replace "Miscellaneous Symbols" to \coloremoji{x} hasemoji = false s = "" ARGF.read.chars.each{|c| if Unicode::Blocks.blocks(c)[0] =~ /Miscellaneous Symbols/ s += '\coloremoji{%c}' % c.ord hasemoji = true else s += c end } # Insert bxcoloremoji style s = s.split("\n").map{|line| line += "\n\\usepackage[dvipdfmx]{graphicx}\n\\usepackage{bxcoloremoji}" if line =~ /^\\documentclass/ line } if hasemoji puts s
make latex ( cd _build/latex for i in *.tex; do [ "$i.orig" -a "$i.orig" -ot "$i" ] || continue mv -v "$i" "$i.orig" ./emojinize.rb "$i.orig" > "$i" touch -r "$i.orig" "$i" done make )ってすれば、とりあえず、emoji 入りの latex を pdf 化できた。
面倒なのでこれ sphinx に組み込みたいな
そうは言っても Sphinx 本家へのコミットはハードル高そうなので、とりあえずコマンド一発で BXcoloremoji 化した .tex に変換して PDF 化までするコマンドこさえて公開した。
タグ
コメントをかく