プログラム

TeXで漢文組版するためのメモ

TeXで漢文を組版する準備としてメモ。現時点では,JIS第2水準(多分)に収まらない漢字はユニコードの16進表示で \UTF{****} などと入力しないとTeXが処理できない。ユニコードに対応したpTeXの拡張版も試作されているみたいではあるが。

また,訓読のために,一つ一つの漢字に対して \Kundoku{漢字}{振り仮名}{送り仮名}{返り点}{なんかかんか} というマクロを書くのも手間である。これらを一括して処理したい。マクロは何とかなると思うが,問題はUnicode表示の部分。次のページで配布されているPerlスクリプトが参考になると思うのでメモ。

kcode – 各種文字コードを表示する

適当な関数が分かれば全体は難しくない。

while (まだファイルが終わってない) do
begin
 1文字読み込む。
 if (それが第2水準までにある) then 
    「\Kundoku{漢字}{}{}{}{}{}」 みたいに出力。
 else
 begin
    漢字に対するユニコード(UTF8)を調べて16進に変換。
    「\Kundoku{\UTF{****}}{}{}{}{}{} %元の漢字をコメント」みたいに出力。
 end
end

HTML要素にアクセスするには getElementById

JavaScriptメモ。documentオブジェクトにはgetElementById()というメソッドがあり、これでHTML内に書かれた内容を参照できる。例えば、チェスの棋譜が、1. e4 e5 2. Nf3 Nc6 などとなっているとする。次のようにすれば、これをJavaScriptプログラムに渡せる。

1. e4 e5 2. Nf3 Nc6
...

こうすれば、pgnという変数に棋譜の文字列が代入される。

[追記] pgnに文字列が入るというのは間違いだった。中身本体は pgn.innerHTML としなければならない。

JavaScriptではローカルのファイルにアクセスできない?

JavaScript関連メモ。某所から囲碁の棋譜再現JavaScriptを入手して、ローカルで再現しようとしたのだが、何故か画像が表示されない。うーむ・・・。画像へのパスなどもちゃんとチェックしたのだが。

ふと、セキュリティの関係かな、と思い、全体をMAMPサーバーに放り込んでみたところ、ちゃんと表示された。サーバー上とローカルで何が違うのか?ファイルの場所を表すURLの書き方とかの問題だろうか。それとも、安全上の理由か。依然として謎。もっとも、MAMP上で実験すれば良いことが分かったので、一件落着ではあるが。

JavaScriptによる囲碁の棋譜再生

チェスがあるなら囲碁もあるだろうと探してみたが、多くはJAVA Appletであり、JavaScriptは少なかった。いくつか試してみたのだが、チェスのPGNViewerのように洗練されてない。表示に関してもだが、実装についても。とある新聞社などは、棋譜再生のページ毎に、JavaScriptコードが全部埋め込んであったりする。 😯 いや、ソースコードを研究するには便利なんだが。 :mrgreen:

という状況なので、WordPress用のプラグインなど望むべくもない。うーむ、勉強を兼ねて作ってみるか?いやいや、そんな暇がどこにあろうか。 👿

PGNViewerメモ(1)

PGNとはPortable Game Notationの略で,チェスの棋譜を記録する一般的な記法。PGNViewerはこれを解析して,JavaScriptを用いて棋譜再生を実現している。WordPress用のプラグイン pgnviewer.php は次のようなHTMLを生成して制御をJavaScriptプログラム jsPgnViewer.js に任せる。



適当に書き直した所もあるが,基本的には,PGNはid付きのdivブロックで囲むことにより JavaScript に渡されるようだ。このブロックはCSSにより表示されないよう設定されている。上の例では id=”9999″ なので,JavaScriptがこれを読めるように,Board(9999, options) と書かれている。JavaScriptはこのようにid付きのブロックの内容にアクセスできる。Board関数はもう一つの引数をもっているが,ここでは駒の画像が置いてあるURLをimagePrefixという名前でJavaScriptに渡している。optionsという引数はこのように連想配列(ハッシュ)になっていて,必要な情報を簡単に渡すことができる。