[サンスクリットページ雑感集・技術情報]

まんどぅーかネットで使っている技術(1)

Since 2004/7/22 Last Updated 2004/7/30


     これからいくつかにわけて、 私がこのサイトで使用しているいろいろな技術についてまとめてみる。 必ずしもこの方法が最善だと思っているわけではないが、 よりよい方法を模索するために現段階の技術をまとめてみようと思う。
     ……なあに、しばらくメンテナンスをしないでいると、 自分自身でも「これってどうやったんだっけ?」てな感じで、 私自身が忘れちゃうもんで、こうやって書いておかないといけないってわけさ。

  1. 画像表示主義
  2.  インドの言語のように特殊な文字を使う言語を扱うサイトを作るとなると、 それをどうやって表示するかが問題になる。 普通なら文字コードをどうするか、フォントをどうするかと考えるところだが、 とりあえず今のところは、 「ヘンなものはすべて画像で表示する」ことにしている。
     Unicodeを使えばすべて問題は解決するかというとそういうわけでもない。 ローマ字サンスクリットとデーヴァナーガリーだけならまだいいのだが、 ウルドゥー語のあの流れるようなペルシア文字(アラビア文字のナスターリーク体)は無理。 いや、ローマ字だけでも実は問題があり、 ヒンディー語の鼻母音表記では、長音記号と〜が同居したり、 aiやau全体に〜をかけたり…というのが出てくる。 前者は重ね打ち補助記号コードを駆使すれば解決できそうだが、 後者はUnicodeでは無理だろう。 ヘンに独自のローマナイズ方式を作ったとしても、 「お前のサイトのローマ字はヘンだ」とクレームが来そうだ (初心者は意外にこういう下らんことにこだわるからね)。
     さらに、こちらに書いたとおり、 現段階ではMS-IEでUnicodeの「ラテン拡張追加」部分が正常に表示できず、 上や下に点をつけたローマ字がみんなアウトになる。 Netscapeを使えば問題は解決するのだが、 まさか「MS-IEお断り。うちに来るならNetscapeを使って」なんていえない。
     かりにこれらの問題が解決したとしても、 使うのに特別のおまじないが必要だというのでは困る。 こういうサイトを見る人というのは、技術にくらい人が多く、 手取り足取り「このフォントをインストールして…、コントロールパネルを開いて…」なんてアドバイスをしなきゃならんのでは疲れてしまう。 以前に某韓国大衆文化関係のサイトを運営していたときも、 韓国語の部分が見えないとか、登録してあるデータが文字化けする (って、韓国語フォントをインストールしてないとかいう話かと思っていたら、 よくよく聞いたら、ZIP圧縮ファイルを強引にWORDで開いていた!)とか、 毎日毎日この手の質問への応対に明け暮れてほとほと弱ったことがあった。 そのくせ邪険な応対をすると「初心者なんだから丁寧に教えろ」って威張るんだよな。 まあそんなわけで、つまずきそうなハードルは事前になくしておくに限る。
     画像表示というのは原始的だけど、原始的なるがゆえの強みがある。 特別なおまじないなしに絶対に正しく表示されるわけだから。 文字化けのしようがないのだ。 もっとも、ふだん日本語しか使っていないと、 「文字コードどうする? フォントどうする?」という考えにとらわれて、 なかなか「画像表示」という選択肢を思い至らないんじゃないかな。 いまだに画像表示のほうが一般的なウルドゥー語に接しているから、 すぐに画像表示というのが頭に浮かぶのかもしれない。
     欠点は、見た目が悪いこと (ブラウザの文字の大きさを変えても変わってくれないし、 そもそも普通の文字とのバランスをあわせにくい)であるが、 正しい表示のためには目をつぶろう。 それから、画像だと文字列検索ができなくなるので、 サイト検索機能をつけようというときに問題になるが、 そもそも文字コードの問題が解決しないと検索も何もできないし、 技術にくらい初心者は、あまり検索などということをしないのではと思うので、 まあいいかなと思っている。

  3. 活字を作る
  4.  さて、画像表示となると活字を作らねばならない。
     最初は記号つき文字だけ画像表示にしようかと思ったのだが、 普通の文字とのバランスがどうしてもとりにくいので、 半角英数字に入っている普通のローマ字もすべて画像にすることにした。 記号類なども含めて約90種類。 これを活字方式で、字母ごとにファイルにした。 当サイトのローマ字を使った部分を最初にアクセスをすると、 遅い環境ではパラパラと字母が現れてくるのが見えると思うが、 それはこのように活字方式で、一字一字画像ファイルを読んでいるからである。 もっとも、各ファイルは1Kバイト程度で、 いったん読んでしまうとしばらくはキャッシュされるので、 次からは早く表示されると思う。
     ローマ字の活字は、Microsoft Wordの上にTimes New Romanないし、 鈴木晃信さんのSuzBudRU (仏教文化情報 エーヴァムで配布されているフォント。 フォントのダウンロードページはこちら)で表示した上で、 PrintScreenキーを押して画面を画像としてスナップし、 画像ソフトにはりつけて、おのおのの文字部分を切り取ってファイル化している。 SuzBudRUを用いても出せないような記号つき文字は、画像ソフト上で合成して作る。
     このとき注意するのは、Wordの上では単に文字を入力するのではなく、 必ず表組みを作り(もちろん罫線も表示させます)、 しかも表の行の高さを固定した上で文字を打ち、 画像ソフト上ではこの罫線を頼りにして切り取り作業をする、ということだ。 これをしないと、文字のベースラインが合わず、 単語の中で各文字が上下に踊ってしまう。 要するに縦方向の高さはできる限り統一するということ。 横方向の幅は統一する必要はない。 むしろ統一せず、実際の文字の幅ぎりぎりで切り出したほうが、 プロポーショナルフォント的できれいになる。 縦方向の高さは具体的には60ピクセルにしている。 Word上で12ptで打ち、 表示倍率300%の状態でスナップするとちょうどこのくらいになる。
     文字の背景はもちろん透過色にする。 透過色を使うのでJPEGではダメでGIFにする。 また、赤い文字はもちろん画像ソフト上で、 黒文字で作ったファイルの色を変換して作っている。
     画像ソフトはできるだけ軽快な動作ができるものを使う。 多機能は不要だが、このような画像切り取り→ファイル化が楽にできねばならない。 当サイトを作る上ではこの作業が頻発する。 梵字沿革の表(→こちら)を作ったときは、 もとの表をスキャンして、 そこから758個のGIFファイルを切り出すという作業になってしまった。 へたにファイリング機能なんかがある「初心者にやさしい」画像ソフトなんかでこんなことをするとたちまち身動きがとれなくなる。 機能は貧弱でもともかく軽快に使えるものでなければならない。 具体的には、 Microsoft Officeに付属していたアドインソフトMicrosoft Photo Editor(PhotoED)を使っている。 「付属していた」というのは、Office2003ではこのソフトが削除されてしまい、 他の「多機能で初心者にやさしい」=「動作が重くこの作業には使えない」ソフトに変えられてしまったからだ。 しかもOfficeを2003にアップグレードしたらなんとインストーラがこのPhotoEDを削除してしまったので (Microsoftのサイトのこちらによれば、確信犯的にそうしたようだ)、 わざわざ旧版OfficeのCD-ROMをひっぱりだしてPhotoEDだけインストールしなおした次第。

  5. デーヴァナーガリーとペルシア文字は?
  6.  デーヴァナーガリーも同様の手法で活字化できそうだが、 シロレーカー(文字の上の線)というやっかいなものがあり、 よっぽどうまくベースラインをあわせないと、 1ピクセルのズレでも目立ってしまう。 また横幅もうまくやらないと、微妙に間があいてしまって汚くなる。 目下のところは活字化をあきらめ、 語単位あるいは文単位で画像ファイルを作っている。 ただ、語単位のファイルをつないで文を作ると、 やっぱり語どうしでシロレーカーの位置が合わずに汚いので、 語単位のファイルはあくまで語を表示するだけ。 文として表示するときはそのつどそのつど画像ファイルを作るようにしている。 将来ヒンディー語の語彙集を作るときなどのために、 一度使った単語は画像ファイル化してためておくようにはしている。
     ウルドゥー語のペルシア文字はそもそも活字化できるしろものではないので、  やはり語単位、文単位で画像ファイル化している。
     デーヴァナーガリーは、以前はヴェーダ天文研究所のDVLSを使っていた (日梵エディタぶらふましは、Windows 2000/XPに対応していない)が、 フォントの大きさがうまく変えられないこと、 KH一括入力の完成度が低くてしょっちゅうエラーが起きること、 ヒンディー語の点つき文字やチャンドラビンドゥ(サンスクリットのアヌナーシカね)が打てないことなどが困りものだった。 サンスクリットはまだいいのだが、 ヒンディー語のときはいちいち画像ソフト上で点をコピーしてつけねばならず、 つけ忘れも多発し、ほとほと疲れてしまった。 Microsoft Officeを2003にバージョンアップしてからは、Wordを使っている。 Word2000はデーヴァナーガリーにうまく対応しておらずいろいろ不都合があったが、 XP以降は問題ないようだ。 キーボードから直接打ってもいいのだが、 当サイトではサンスクリットページもヒンディーページも、 必ずローマ字を併用することにしているので、 まずはローマ字で打ち、 ローマ字からUnicodeのデーヴァナーガリーに変換するプログラムを作ってそれで変換してWordなりメモ帳なりで表示させ、 あとはローマ字同様に「PrintScreenキーで画面スナップ→画像ソフトで切り取り」をしている。 これなら二度手間にならないし、ミスタイプも防げる。 ローマ字とデーヴァナーガリーの内容が違うぞ、なんて恥ずかしいからね。 ローマ字とデーヴァナーガリーが フォントはArial Unicode MSの18pt。 18ptというのは上記DVLSのデフォルトで、DVLSを使っていたことのなごりだ。
     ついでながら、DVLSで用いているデーヴァナーガリーフォントでは、 インド式数字の8がになるが、 Arial Unicode MSではになる。 だから8の書体を見れば、どちらを用いて作ったかがわかる。
     ペルシア文字はInPageを用いて24ptで打ち、 あとは上記同様に「PrintScreenキーで画面スナップ→画像ソフトで切り取り」をしている。 InPageにはGIFファイルで書き出す機能もあるのでそれを用いることもあるが、画面スナップのほうが手っ取り早い。
     ローマ字や漢字やかなやハングルの18ptだの24ptだのは馬鹿でっかくてしょうがないが、 アジア系の文字はポイント数を大きくしないと、小さくて見られたものではない。 特に上下に踊るペルシア文字はそうだ。 ま、慣れの問題かもしれないけどね。
     あとは、文全体を1つの画像ファイルにして表示する方法なら問題はないのだが、 語ごとに画像ファイルをきりわけて並べて表示する場合、 ペルシア文字のほうは要注意である。 ペルシア文字は右から左に書くので、 そのつもりで並べねばならないのはもちろんだが、 途中で絶対に改行されないような工夫をしなければならない。 改行が入った瞬間、あとの語が上の行に表示されてしまうのだから!
     <TABLE>系のタグを使って目に見えない表にしてしまうのが確実だが、 ペルシア文字部分の直前直後で強制的に改行させてしまい、 途中で改行が入りにくくするというのも、 さしあたりの緊急避難としてはいいかもしれない。

  7. 活字を表示する
  8.  最初はこのサイトはこんなに大掛かりにするつもりはなく、 単にゴンダ文法の解答を載せることだけしか考えていなかったので、 上記で作った活字を表示するのは、単にIMG SRCタグを並べて書いていた。 が、その入力の面倒さと保守性の悪さですぐに挫折、直接HTMLファイルを書くのではなく、 KH法など何かローマ字で書いて、それをIMG SRCタグに変換することを考えるようになった。 つまり、ソースを別に書いて、 それをプログラムを用いてHTMLファイルにしようというわけだ。
     ところで、こういうことを考え付くということからお気づきのように、 私はFrontPageだのホームページビルダーだのといったホームページ作成ソフトは全然用いておらず、いきなりHTMLファイルをエディタで書いている。 その昔、ホームページ作成を始めたころは、 FrontPageだったかFrontPageExpressだったかを使っていたが、 いつの間にか、HTMLソースのページとプレビューページしか見なくなってしまっている自分に気づき、 ならば直接書いたほうが早いやと思うようになったわけだ。
     ローマ字で書いたものをIMG SRCタグの羅列にする話は、 書くと長くなるので別に書くことにする。
     このローマ字活字の見栄えはどうだろうか。 印刷するとかなりきれいに見えると思うが、画面で見るといまいちきれいではないようだ。 もともと60ピクセルあるものを20ピクセルに縮小して表示しているのが問題なのかもしれないが、 原寸大表示すると印刷時にギザギザになってしまうので、印刷時の見栄えを優先している。
     あとは、このローマ字活字を使っているページは壁紙に気を使っている。 もともと私は、ざらざらした質感の壁紙を好んでいたのだが (どんな感じかというと、たとえば掲示板の壁紙のようなもの)、 そういう壁紙とローマ字活字との相性が悪く、特に上下の記号が見えなくなってしまう。 そんなわけで壁紙は淡い色の単色にしている。 それなら壁紙でなく色指定をしたほうがいいかもしれないが、 将来的に色の変更をするのに、 壁紙方式ならば壁紙ファイルを変更すればいいだけなのでこうしている。 スタイルシート方式でもいいんだけどね。
     なお、不要とは思うが、当サイトで使用しているこのローマ字活字画像ファイルは、 友の会ページで公開している。


※ご意見、ご教示などは、に戻り、掲示板あるいはメールで賜るとありがたく思います。