TeX

ギリシア語エンコーディング

一般的に使用されているワードプロセッサでのギリシア語のエンコーディング方式と LaTeX(Babel)でのエンコーディング方式の対応表です。この表にない組み合わせをお知らせください。

エンコーディング

エンコーディング(encoding)とは、文字を 1000001 などの列(「バイト列」といいます)で表す方法のことをいいます。

ASCII 文字

「1バイト」とは「8ビット」のことで、0と1の8つの組合せのことです。2通りが8つですから 2の8乗=256 通りの組合せがあります。これでアラビア数字、ローマ字の大文字・小文字と主要な記号は表せます。これで表される文字を「1バイト文字」「半角文字」などといいます。ASCII 文字ともいいます。

日本語のエンコーディング

しかし日本語の場合はひらがな、かたかな、漢字があります。とても256通りでは表せません。2バイトを使うと 256 x 256 = 65536 通り表せますから、漢字まで対応できそうです。これで表される文字を「2バイト文字」「全角文字」といいます。2バイト文字の画面の占有面積は1バイト文字の約2倍なので、直観的に理解できるでしょう*1

ただし、日本語のエンコーディング方式(文字コード)にはいくつかあります。

UNIX
EUC-JP
Macintosh
Shift JIS
Windows
Shift JIS
情報通信
JIS(など)

対応していない文字コードの文書を開けば、当然うまく表示できません(「文字化け*2」)。

UTF-8, UTF-16

話を戻していろいろな言語のエンコーディングを考えてみます。日本語の場合なら2バイトで足りそうですが、それに中国語、韓国語、…などを含めたら2バイトでも足りません。そのような問題を克服するために Unicode が考え出されました。UTF-8 と UTF-16 は Unicode 用のエンコーディングです。多言語を表すために考え出されたので、いろいろな言語を同時に表現できます。今では様々な OS で使えるようになってきています。ただし Unicode には「規定されていない文字については救済不可能」という欠点があり、文字をたくさんもつ国からは批判されています(後で述べるように、古典ギリシア語にも同じ問題があります)。また、Unicode の規格が「ゆるい」ために発生する問題もあります。UTF-8、UTF-16 では文字によってバイト数が異なります。

ISO-8859-7

ギリシア語のエンコーディングは、Unicode で制定される前に ISO の規格がありましたが、こちらは現代ギリシア語用なので古典ギリシア語では使えません。

概要

前節で述べたように、古典ギリシア語のエンコーディング方式は UTF-8 を除いて一定しておらず、基本的には使うフォントごとに決まっていると考えた方がよいようです。論文集を制作するときなどはそれを統一しなければなりませんので、古典ギリシア語のエンコーディングの変換について以下で考察します。なお、「西洋古典学研究室論文集制作システム」の一環ですので、「このシステムで使う LaTeX のエンコーディング」(後で定義します)以外のエンコーディングから「このシステムで使う LaTeX のエンコーディング」への変換を中心に考えます。

さて、古典ギリシア語ではアクセント記号と気息記号、イオタサブスクリプト、分離記号など、様々な記号が使われます。古典学者から見ればそれぞれの記号の意味はまったく違いますが、コンピュータから見れば同じです。むしろ分けてしまうと複雑になりますので、以下では「アクセント記号と気息記号、イオタサブスクリプト、分離記号」をまとめて「アクセント記号等」と呼びます。

複合型

一番網羅的なのは、アクセント記号等のついた文字ごとに別のコードを振ることです。こうすれば、一つのコードと一つの文字(この場合、「字型」や「グリフ」といった方が適切でしょう)が一意に対応します。ここでは、このようなエンコーディングの方式を下の「記号付加型」に対して「複合型」と名付けることにします。ただしこの場合、コードの数が多くなりすぎます。母音に関しては20種類以上の文字を用意しなければならない場合があります。

また、この型の場合、字型ごとに一つのコードが定まるので便利ですが、「未定義の文字は救済不可能」という根本的な問題があります。たとえば「無気息記号のついたΥ」や、「曲アクセントのついたο」は teubner.sty や UTF-8 では定義されていません。さらに古典ギリシア語の中でも、時代によって違う文字が用いられていたりします。

この型の例は以下の通りです。

teubner.sty は Babel(cbgreek)と一緒に使うものですので、Babel(cbgreek)の記法を併用すれば「未定義の文字は救済不可能」という問題に対処できます。

「記号付加型」

ギリシア語のアルファベットはだいたいローマ字と対応していますので、UTF 以前のエンコーディングでは、ローマ字と記号(ASCII 文字)を組み合わせることによって古典ギリシア語のエンコーディングを実現している場合が多いようです。例えばαなら、ローマ字の a と対応させます。αにアクセント記号等がつく場合には、そこに記号を付加します。ここでは、このエンコーディングの方式を「記号付加型」と名付けることにします。記号をローマ字の前に置く型を「前置型」、後ろに置く型を「後置型」と名付けます。

記号はそれぞれで異なりますので、一つ一つ調べていく必要があります。ローマ字転記(transcription)方式もやはり一つ一つ調べていく必要がありますが、転記の基準はおおむね

のどちらか、あるいはそれの組み合わせとなっていますので、全てに注意して調べる必要はありません。これについては「アルファベット」の節で詳しく調べることにします。

前置型

アクセント記号等をつける文字の前に置きます。ただしイオタサブスクリプトに関しては後に置きます。この型の例は以下の通りです。

後置型

アクセント記号等をつける文字の後に置きます。この型の例は以下の通りです。

アルファベット

「記号付加型」の場合、アルファベットの対応を調べる必要があります。既に述べたように一部の文字に限ってエンコーディングの違いが生じますので、注意すべき文字の背景の色を変えてあります。

方式αβγδεζηθικλμνξοπρσ(語尾以外)σ(語尾)τυφχψω
Babel (cbgreek)abgdezhjiklmnxoprs, cs, ctufqyw
teubner.sty
UTF-8

記号

記号はそれぞれのエンコーディングで様々です。

前置型

後置型

エンコーディングの調べ方

ワープロ上でギリシア語フォントを選択して通常通り入力し、それをテキストエディタに張り付けて ASCII 文字とするのが簡単です。

やみくもに入力してもエンコーディングの規則はわかりませんので、一定の文字について調べるようにします。このページの下に見本(grencsample.pdf)を添付しておきました。見本にしたがって入力します。

参考


*1 昔のワープロでの用語です。
*2 ただし、文字化けの原因は他にある場合もあります。機種依存文字など。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS