縦組みにおける英数字の方向についての議論が活発ですが、どうも議論をしている人たちは、本来別のものとして分けて考えるべき問題を一つにごっちゃにして議論しているのではないかと思います。
その結果、シンプルである問題を複雑にしてしまっているのではないでしょうか。
●現状と課題
Unicodeは文字(Character)の抽象的な形状に基づいてコードポイントを与えており、具体的な形状であるグリフやその方向は定義しないとしています[*1]。そこで、縦組み時に文字の向きを指定しないときの方向(デフォルトの方向)はアプリケーションに任されることになります。
Microsoft Officeを初めとする多くのアプリケーションは、UnicodeのBasic Latin(ASCIIコード、MS IMEでは半角英数で入力、以下「半角文字」)は時計回りに90度回転した状態(横倒し)をデフォルトとし、その全角形(FullWidth Variant、MS IMEでは全角英数で入力。以下「全角文字」)は正立としています。一方、青空文庫のリーダでは半角文字を正立させているものもあります[*2]。このように、特に、半角文字の向きは必ずしもすべてのアプリケーションで同じではありません。
UnicodeのUTR#50という仕様[*3](仕様案)で決めようとしているのは、文字のコードポイント毎のデフォルトの方向です。これが決まって普及するとアプリケーション毎に文字の向きがばらばらになる状態が解消されるものと期待されます。
縦組みは新聞、雑誌を初め文芸書やビジネス・経済書などの書籍では頻繁に使われています。これらの出版物の制作にはプロの編集者・制作者・印刷会社が関与しています。しかし、いままで、オフィスソフトで作成する文書はほとんど横組みです。また、Webでは縦書きがほとんど使われていませんでした。つまり、縦組み制作は専門家のものであり、一般人は縦組み出版物を読むことがあっても作成するドキュメントは横組み中心でした。そこで縦組みの出版物での文字の向きに関する取り扱いは一般人には縁遠いものだったと言えます。
現在、CSS3で縦組みが標準化されてブラウザで読めるようになりつつあります。そうすると縦組みブログも数多く登場するでしょう。また、EPUBでも縦組みを使えるようになります。このように一般人が縦組みで表現する機会が増えるものと予想します。専門家は訓練を受けており、DTPソフトなどのツールを使うことができますが、一般人はそうではありません。そこで、縦組み時に文字がどういう向きになるかでかなりの混乱が生まれることになるでしょう。
このような観点に立つとUTR#50の意義は非常に大きなものがあります。
さて、UTR#50の現在の仕様案(ドラフト5版)には縦組みの行における文字のデフォルト方向としてMVO方式とSVO方式が記述されています。他にHOもありますが、これは横書きなので省略します。
●MVOとSVOはどういうものか?
MVO方式での文字のデフォルト方向の決定方針は複雑であり、個々の文字については様々な意見が出ておりまとまっていません。いま、本ブログで注目している英数字(ラテンアルファベットとアラビア数字)についてだけを見ますと、MVO方式では半角文字を横倒しとし全角文字を正立とします。一方、SVO方式では半角英数、全角英数とも正立です。
・MVOでは、Basic LatinのU+002E … U+005Aは、縦組み時に横倒し、その全角形(全角文字)は正立
・SVOでは、Basic LatinのU+002E … U+005Aと、その全角形は両方とも正立
MVO方式とSVO方式の適用範囲に関する記述は曖昧なのでよく理解できません。Forumで質問したところ、UTR#50のエディタであるEric Muller氏からは、SVOは英語に適用するものであって日本語はMVOを適用すると回答がありました[*4]。しかし、CSSのワーキンググループのfantasaiは別の考えを示しています。このあたりの関係はよくわからないのですが、SVOはCSSのワーキンググループの考えをEric Muller氏が受け入れたものということなので[*5]、fantasaiの考えが及ぶものと見ることもできます。
●MVOとSVOの適用例
ということでUTR#50のSVOが日本語に適用されるものなのかどうかは今の仕様案からは読み取ることができません。今後変わる可能性もあると期待して、とりあえずMVOとSVOを日本語文字列にも適用できるとします。するとMVOとSVOによる英数字のデフォルト方向は次の図のようになります。
図では、MVOとSVOで同じ内容の行がそれぞれ2行ずつペアになっていますが、そのペアの右は英数字と記号を半角文字で入力、左は全角文字で入力したものです。
日本語の縦組みの行に英数字が単独で現れた場合、全角文字・半角文字に如何に関わらず正立させるSVOの方が自然ということが大多数の人が認めると思います。しかし、Twitterの議論では、どうも、SVO方式の支持者は少なく、MVO方式の支持者の方が多いように思います。
●文字単位と文字列の表記の違い
たとえば、強硬なMVO支持者である山本太郎氏は、つぎのような理由で半角文字横倒しを主張しています[*6]。
1.縦組みの日本語文字の中に英文が入る場合、英文は横倒しにするのが一般である。
2. 新聞などの限られた分野では英文やアラビア数字列を正立させているが、新聞では段の文字数が少ないなどの制約がある。また、新聞以外の出版物で英数字が正立するのは頭字語や縦中横などのトリック的な表示に限られる。
3.フォントに縦組み用メトリックス情報がないなど技術的制限があるし、日本語の中で英数字を正立させる慣例が確立されていない。このような理由で縦組みで英数字を正立させると組版結果が醜いものとなる。特に、全角文字ではないラテンアルファベットは横倒しにすべきである。
4. 英数字正立をデフォルトとすると、少なくない人々が、正当な書法では縦書きでは漢数字を使うべきであることを忘れて、アラビア数字を縦書きで使い始めるだろう。そして伝統的な方法を学ぶ機会もなくなる。
5. 縦中横のような方法で英数字を正立させるのは訓練された組版担当者に行なわせるべきであり、このようなトリックをデフォルトにするべきではない。
6. 一部の人は、西欧生まれのラテン文字やアラビア数字の向きを正立をデフォルトとせよ、と主張する。しかし、そういう主張は開発者、ユーザ、組版を誤った方向に導くものであり、信じがたい。
実際には、UTR#50は、1文字単位で、特にマークアップがなければどういう方向を向かせるか(デフォルトの方向)を決めるものです。縦組みの和文中で英語の単語や文章が現れたとき(つまり、組版での和欧混植)どうするかは、英語の単語や文章を縦組みの行の中にどう配置するかという問題なのであり、これはUTR#50で決めることではありません。
山本太郎氏の意見を典型として、Twitterの議論の多くは、このあたりを拡大解釈して、あたかもUTR#50は、和欧混植の組版や混植文字列の表示をどうすべきかという観点から、各文字のデフォルトの向きを議論しているようです。実際には文字は単独で現れるだけではなくて、文字列の中で現れることが多いので、1文字単位の方向を文字列内での方向と同じ向きにしたいという、そういう風な議論になりがちなのはわかります。
しかし、現実には1文字単位の方向と文字列内(和欧混植など)での方向は必ずしも一致しません。
縦組みの行に英数字が1文字だけ現れた場合は正立が自然と述べました。では、2文字以上連続したときの方向は一体どうなるべきでしょうか?
実際の出版物を調べてみますと、アラビア数字は、1文字なら正立、2文字なら縦中横、3文字~4文字なら一文字ずつ正立、などと表記することが多くなります。つまり2文字のときは特殊な配置になりますが、多くの場合正立します。しかし、縦組み参考文献表で参照ページ番号をpp.10-11のように示す場合や、数式の中に現れるアラビア数字は全体を時計回りに90度回転して配置しますので、横倒しにする方が良いでしょう。
一方、ラテンアルファベットについてみますと、たとえば、Nippon Hōsō Kyōkaiは縦組み中では文字列全体を時計周りに90度回転して表示する(文字毎では横倒ししているように見えます)のが綺麗に見えるでしょう。しかし、NHKと表記したときは3文字をそれぞれ正立して表すのが普通です。同じN、H、Kという文字が文脈によって正立にも横倒しにもなりえるのです。
文字の方向は言葉の中で文字がどのように使われているかの役割やその書記方法に基本的に依存します。さらに著者や編集者なりの考えがあった場合、その考えに沿った指定ができることが重要です。
●文字単独と組版問題を分離する
このように英数字が2文字、3文字…と連続するときにどう配置するかは、文字のコードポイントに付随させる属性というよりも、むしろ文字列を行の中にどのように配置するかという組版の問題です。そして、文脈依存で変わりうるものです。したがって、ケースバイケースで外部から指定できることが重要となります。つまり「CSSなり他のアプリケーションで決定するべき問題」ということです。
●全角文字と半角文字で方向の使い分けの問題
MVOでは半角文字を横倒し、全角文字を正立とします。つまり、縦組み時のデフォルトの方向を文字コードで使い分けるという考えです。これは専門的・技術的な問題なので詳しくは別途検討したいと考えますが、ここで結論だけ述べるとこれは不可です。
理由は次のようなことです。①現在までの文字コードとフォントの技術進歩に相反するものである。②文字コードレベルでの使い分けは原テキストの書き直しを必要とするのでコンテンツが縦組み専用となる。③半角文字(文字コードレベル)であっても全角形で表示することができるし、その逆も可能なため、外観だけでは、半角文字なのか全角文字なのかの区別ができない。このため半角文字と全角文字の使い分けを厳密に行なうにはツールの支援が必要となる、など。
[*1] UTR#50(Unicodeの縦書きの文字の向き)の話題
[*2] Unicode仕様書第1章を参照のこと
[*3] http://twitpic.com/a180ys
[*4] Unicode Properties for Horizontal and Vertical Text Layout
[*5] Fundamental questions
[*6] https://twitter.com/kojiishi/status/217421396391899136
[*7] About the MVO, http://blogs.adobe.com/CCJKType/files/2012/07/TaroUTR50SortedList112.pdf
■CASオンラインショップでCAS-UBのユーザー登録をしていただくと、誰でも30日間だけ無償でご利用いただくことができます。
双方前提とするスコープ(適用範囲)が異なるので、議論がすれ違ってしまっているという指摘と理解しました。たしかにそういう面はあるように思います。このエントリでの主張に、ぼくはそれほど違和感は感じませんでした。
どのケースの欧字を正立/転倒させるかの合意をとることは、非常に困難なことであり、腰を据えた議論が必要と思います。
UTR#50はデフォルトであり、マークアップがあればそちらが優先されるものなので、最終的な組版結果をしていするものではないのです。だから、最終的組版結果(可視化)にこだわった議論をするよりも、シンプルでわかりやすいことの方が重要と思いますが、なぜかUTR#50のデフォルトで正立になったら最終組版結果も正立になると思っている人が多いようです。しかし、キャラクタディスプレイ&MS-DOS&シフトJIS&ROMフォント時代の半角・全角という遺産が、縦組み時の文字の向きの相違として定着してしまうのは今後のために良くないと思います。たとえば、キリル文字はシフトJISでは全角扱いですが、Unicodeでは半角なのか全角なのか曖昧な文字になっています。このようにシフトJIS時代の半角・全角という概念はUnicodeではかなり曖昧な概念になっているのですが、まだASCII英数字&記号は半角・全角の区別が亡霊のように生き残っていて混乱をもたらしているのです。そのことにまったく疑問をもたないどころか、使い分けを積極的に推進なんてどうかしているのではないかと思うのですが。