サイトの再構築にあたって,数式を整形するために使うプラグインを見直すことにした.ネットで調べると「このプラグインを使うと数式が組み込める」という紹介記事はたくさん見当たるのだが,数あるプラグインを比較している記事が見つからず,結局ひとつずつドキュメントを見たりインストールしたりして最適なプラグインを探すことになった.せっかくなので,いろいろ検討した結果をこの記事にまとめておく.
Lua の識別子に日本語を使う
Lua の変数名や関数名として,日本語を使えるようにしようという話. Lua 5.2.2 のソースに次のパッチを当てると,UTF-8 や EUC-JP で書かれた日本語を使えるようになる.残念ながら ShiftJIS はこれではダメ.
行列の成分座標と配列のインデックス番号の関係
行列やグラフを扱うプログラムを書いていると,M x N 行列の成分座標を表す整数の組 (i, j) と,要素の通し番号 t の変換をする場合がしばしばある.たとえば,C プログラム中で行列を1次元配列として扱う場合,(i, j) 成分にアクセスするためにはこれをインデックス番号に変換する必要があるし,その逆もときどき必要になったりする.
MacOSX Lion 上の Inkscape で libxml2 がロードされない
EqTeXSvg のようなエクステンションを使おうとすると,「このエクステンションを実行するには libxml2 用のステキな lxml ラッパーが必要です。」”The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension” と表示される問題.次のページがすべてを解決してくれた.感謝. Mac OS X 10.7 (Lion) で Inkscape 0.48.2 r9819 の エクステンションが使えない – GoingMyWay
このページにも書いてあるが,パッチを当てるより bin/inkscape をエディタで開いて1行打ち込む方が早い.
Java + JDBC + MySQL5 の文字コード
よく混乱するのでメモ.Java + MySQL5 の環境で,Java から出力される文字列が文字列する場合の対処方法.
Lincity-NG を MacOSX Lion にインストール
なんとなく遊びたくなったので,手元の MacOSX に Lincity-NG 2.0 をインストール.Lincity-NG はシムシティのクローンゲームで,街を発展させつつ技術力を上げ,ロケットを打ち上げるゲーム.
iPad 上 iCal からの Google アカウントアクセスで「不正なパスワード」
Google アカウントのパスワードを変えたら,iPad に「不正なパスワード」のポップアップが表示された.メールとカレンダーを同期しているのでこれ自体は当たり前だが,新しいパスワードを入力したら,一度閉じた後に再び同じダイアログが表示される.どうやら正しいパスワードでも認証されていない模様.
R で PDF 出力した図を Inkscape で開くとプロット点が q になる
R + Inkscape で PDF を扱うときの有名?な問題に,「プロット点の丸が q になる」というのがある.プロットに使われる ZapfDingbats フォントがロードされないというのが直接の原因なのだが,いろいろ試したところどうも問題は少し複雑なようだ.
LaTeX で png のバウンディングボックスが読み込まれない
latexでpng画像を使う場合,xbbなどのツールを使ってバウンディングボックスを生成する必要がある.platexを実行したときに自動的にxbbを実行するには-shell-escapeを指定すればよいが,これをつけてもエラーになる場合があることがわかった.ディレクトリを見てみると,xbbから出力されるxxx.xbbは正しく生成されている.
$ platex -shell-escape xxx.tex ... ! LaTeX Error: Cannot determine size of graphic in xxx.png (no BoundingBox). ...
結論を言うと,pngのファイル名にドットが含まれる場合に,xbbファイルが読み込まれないようだ.ファイル名に含まれるドットをハイフンなどの別の文字に変えると,問題なく読み込むことができた.texが古いシステムであることを実感した気分.
hyperref を使うと右と下の余白が切り詰められる
hyperrefをインポートしていると,右と下の余白が切り詰められるのを発見. 原因を調べてみると,余白が切り詰められているのではなく,用紙サイズが変わっているのでした. TeX で PDF 作成の注意点 – Iranoan
hyperrefの内部指定はdvipdfmxの用紙サイズ指定オプションより優先されるので,パッケージのインポート後に設定を上書きするしかない模様.
\usepackage[dvipdfmx]{hyperref} \special{papersize=210mm,297mm}