2016.11.23 Wednesday
libpngを使ってみる
自作ツールtex2pngパワーアップのためlibpngに挑戦してみる。
最終的にはwindowsで動かす必要があるがとりあえずLinuxで。
CentOS6.8には既に入ってました。
適当に拾ったサンプルをg++ main.cpp -lpngでコンパイル、実行出来ましたとさ。このお手軽さこそLinuxよのぅ。
技術系サラリーマン、ジャジャガッチの駄文です。
姉妹サイト「ジャジャガッチの勉強ノート」もよろしくお願いします。
ブログ中の回路等そのまま真似して事故になっても責任は負いませんのであしからず。
2016.11.23 Wednesday
自作ツールtex2pngパワーアップのためlibpngに挑戦してみる。
最終的にはwindowsで動かす必要があるがとりあえずLinuxで。
CentOS6.8には既に入ってました。
適当に拾ったサンプルをg++ main.cpp -lpngでコンパイル、実行出来ましたとさ。このお手軽さこそLinuxよのぅ。
2016.11.23 Wednesday
皆さんPowerPoint等に数式入れるときどうしてますか?僕は付属の数式エディタは使いたくないのでTeXClipというwebサービスを使って、TeXソースから数式画像を生成して貼り付けてます。これのいいところは背景がちゃんと透明になるところ。でもこの前二日間くらいサービス停止しててとっても困った。
じゃあ自分で作ろうということで作ってみた。これで安心だね!
あ、ちなみにこれ自動的に画像ファイルがクリップボードに格納されるのでそのままパワポに貼り付けられます。
どうやって作ったか種明かしをすると、なぁーんだ、簡単じゃんって思われていやだけどまあいいや。
単にバックグラウンドでplatex.exeとdvipng.exeを呼び出しているだけです。テキストボックス内ではTeXソースとして完結してないので、文字列整形で完結したソースにし、それをdvi、pngに順次変換するだけ。つなみにUIはC#で作ったのであっという間です。2時間くらいでベースは作れてしまいます。
そっから細々とした問題を潰していった。例えばコマンド部の色変え。これはテキストが変更される度に全文字列を読み込み、検索して行っている。ただ全領域書き換えると画面がちらついて仕方がないので、win32apiのお力で一時的に描画停止して一気に書き換えて解決している。あとは、TeX文法的に間違った数式を入れた場合、platex.exeがループ状態に入ってしまって処理が戻ってこないので、platex.exeの標準出力を監視してerrorメッセージがあればplatex.exeを終了するようにしてます。
TeXClipもほぼ同じ仕組みだと思われる。TeXClipよりも優れた点は解像度が任意であることくらいか。あとローカルのTeX環境をそのまま使うので任意のパッケージが使える。まだまだ改良したいけど、とりあえず使える。
改良すべき点
・Ctrl-y, zへの対応
・現在のカーソル位置がどの括弧の中なのかマーカか何かで明示
・再編集を可能にする→pngはヘッダにテキスト情報入れられるみたいなのでそこにtexソース入れとけば再編集可能になりそう。libpngかなんかでツールつくらないかんが。