ずいぶん前に inkscape と textext を導入して,Tex の数式を含む図を作成する環境を整えた話をした。
たいてい,論文は英文で書くので,当然図の中の文字も英語なもんで,あまり気付かなかったのだが,何もしないと textext では日本語が通らない。日本語で書いている本の挿絵でも作ろうかな~と思ったもんで,textext で日本語が使えるよう,設定した。
以下,こちらとこちら,およびこちらを参照して,自分が行なった作業を記録として残す(以上の参照サイトに掲載されている以上の情報は何もない。あしからず。)。
[1] Inkscape\share\extensions\textext.py の 54 行目 "import inkex" の下に以下を追加:
import codecs
[2] 735 行目を
#f_tex.write(texwrapper)
とコメントアウトして,その下に以下の 2 行を追加:
sjis_tex = codecs.getwriter('shift_jis')(f_tex)
sjis_tex.write(texwrapper)
これで文字コードを sjis に変換して Tex に渡すことができる。
ちなみに python では行頭の空白も揃えないと正常に動かないので注意(タブなんかを使わないこと。)。
[3] 742 行目を
#exec_command(['pdflatex', self.tmp('tex')] + latexOpts)
とコメントアウトして,以下の 2 行を追加:
exec_command(['platex', self.tmp('tex')] + latexOpts)
exec_command(['dvipdfmx', self.tmp('dvi')])
これは日本語を処理できない pdflatex の代わりに platex と dvipdfmx を用いるための設定。
[4] 863 行目 の "# Exec pstoedit: pdf -> svg" の下に
exec_command(['gswin32c', '-dSAFER', '-q', '-dBATCH', '-dNOPAUSE',
'-sDEVICE=epswrite', '-dEPSCrop', '-r9600',
'-sOutputFile='+self.tmp('eps'), self.tmp('pdf')])
を追加。さらに,その下の3行を以下のように変更:
exec_command(['pstoedit', '-f', 'plot-svg',
self.tmp('eps'), self.tmp('svg')]
+ pstoeditOpts)
ちなみに変更箇所は 2 行目の "self.tmp" の中を 'pdf' から 'eps' にしただけ。これにより,フォントをアウトライン化して eps 形式で吐き出す。
[5] 以上の書き換えを行なった python のスクリプト "textext.py" を別名 "textext-jp.py" として保存。また,この "textext-jp.py" に対応させるため,"textext.inx" をコピーしてファイル名を "textext-jp.inx" とし,中身を適宜書き換え。
これにより,日本語を使いたいときはエクステンションとして textext-jp を,そうでないときは従来通り textext を用いることができる。
これについてはこちらを参照したが,このことでどの程度のご利益があるかは不明。少なくとも日本語を用いない場合は,今回新しく作成した拡張ファイルを使わなくても良いので,これまで安定して動いていた環境のまま,ということにはなる。
以上でおしまい。ちなみに,出力例は下図の通り。
これで教科書の挿絵が作れそうだ(ちなみに,上の例は執筆中の教科書とは何の関係もない。)。
0 件のコメント:
コメントを投稿