図表を散りばめたエントリを書くときに、挿入した図表ごとに図表番号(Fig.1、Fig.2、...)を順に振ることがありますが、途中で図表を追加挿入してしまった時などには、図表番号をまた振りなおさなければなりません。そこで、エントリに挿入した図表番号を自動的に振ってくれる MovableType プラグインを書いてみました。図表番号を振るだけでなく、それらの図表を参照している箇所についても、適切にハイパーリンクを埋め込んでくれます。
エントリ内の本文および追記に、HTML に似た構文の文句を挿入することで、構築時に処理されます。
図表を埋め込む箇所を以下の例のように記述してください。図表番号を示す箇所にある <figure name="XXX">
という文句に注意してください。
<p> <img src="result.png" alt="実験結果 その1" /><br /> <figure name="result_hogehoge"> 実験結果のグラフ その1 </p> <p> <img src="result.png" alt="実験結果 その2" /><br /> <figure name="result_fugafuga"> 実験結果のグラフ その2 </p>
これを保存、再構築すると以下のような結果が得られます。変換された図表番号にはアンカーが設定されています。
<p> <img src="result.png" alt="実験結果 その1" /><br /> Fig.1 実験結果のグラフ その1 </p> <p> <img src="result.png" alt="実験結果 その2/><br /> Fig.2 実験結果のグラフ その2 </p>
<figure name="XXX">
を埋め込んだ箇所が、図表番号を表す文字列に置き換えられています。また、図表番号は <figure name="XXX">
が出現した順番に 1 から順に振られます。
埋め込まれた図表を参照するには、以下の例のように記述してください。参照を行う箇所に書かれている <figure href="XXX">
という文句に注意してください。
実験の結果、濃度の時間変化を表すグラフ (<figure href="result_fugafuga">) と温度の時間変化を表すグラフ (<figure href="result_hogehoge">) を得た。<figure href="result_hogehoge"> は、30%濃度の溶液について行った結果である。
これを保存、再構築すると以下のような結果が得られます。変換された図表番号は href
で指定した図表へのリンクになります。
実験の結果、濃度の時間変化を表すグラフ (Fig.2) と温度の時間変化を表すグラフ (Fig.1) を得た。Fig.1 は、30%濃度の溶液について行った結果である。
このように、図表を result_hogehoge
といった名前で識別することができるので、既存の図表と図表の間に、新しい図表が挿入されたとしても、この関係は崩れません。ですので、編集に関係なく、常に目的の図表を参照することができます。
このプラグインは、グローバル フィルタとして実装されており、フィルタに与える引数が、図表番号の書式指定を兼ねています。
<MTEntryBody figure="Fig.%d"> → Fig.1、Fig.2、Fig.3、... <MTEntryBody figure="図.%d"> → 図.1、図.2、図.3、...
このプラグインは、figure
、table
、picture
のそれぞれ名前の異なる 3 つのグローバル フィルタを提供しており、それらの中で振られる番号は一意になります。名前が違うだけで、機能は何れも同じです。
そんなことはありません。図表より先に <figure href="XXX">
を書いて、その後に図表を <figure name="XXX">
で挿入しても正しく動作します。これは、プラグインが先立って <figure name="XXX">
を処理して図表番号を振った後に、改めて <figure href="XXX">
の処理をしているからです。
一度も参照されない図表を設置することは可能ですが、不明な名前の href
が指定された参照は図表番号 0 を指します。
master
) ... バグ修正や機能追加など開発途中のバージョンです。開発中の新機能などをいち早く利用できますが、新しいバグが生まれていたり、テストが不十分な場合があります。