見出し画像

ローマ数字とローマン体

数字の79を「七十」「九」のように比較的合理的に数えられる日本語という言語から見ると、79に「六十たす十たす九」とか、「四」と「五と十」と「三倍の二十」とか、「四倍の二十より一少ない」などという79のためだけにあるような単語が存在する言語は頭がおかしいとしか思えないかも知れないけれど、まぁ、こういうものもいろいろな歴史と伝統と事情によってこうなっているということはあるので、こういうエスニックジョーク的な軽口を偉い人があまり公の場で言ったりするのはちょっと昔ですら国際問題になったりしたこともあるので、それなりに注意は必要だ。

で、このあたりのことは五世紀頃にインド人によって位取り記数法という無限に大きな数から果てしなく小さな数までを一貫して扱うことが可能な数値システムが発見される以前までのレガシーな表記法の影響があったりもするわけなのだけれども、そうはいってもインド以外の方法にもそれなりに合理性はあり、数値計算のある側面によってはヒンドゥー・アラビア方式よりも手早く計算できて有利だったりするというところもあったりはした……らしいのだけれど、ただまぁ、汎用性やら一貫性やら普通に考えればインドのやりかたのほうが遥かに優秀だったので、数多とあったそれ以外の方法はその殆どが駆逐され、現代ではその方法の多くがロストテクノロジーと化している……というわけで、まぁ今回の枕はそのロストテクノロジーをフォントに組み込むというおはなしから。

さて、ロストテクノロジーといっても、まぁあまりマニアックなモノに関しては手に余るので、今回は現代でもそこそこ需用のある、ローマ数字のシステムに関してのはなしをしよう。

ローマ数字は……まぁ説明するまでも無いだろうけど、時計の文字盤の数値表現などに使われていたりするVとかXとかって、文字で数字を表記する仕組みのこと。少しまわりくどい言い方をすると十進法に基づき10の累乗を単項とする基底記号を文字の中から選択しその字を複数個並べることにより加法数字表記として表して絶対値を示すという方法だ。取り得る絶対値の範囲は最小値から導入された基底記号で表現可能な最大値の全てを加算した値までの正の整数値のみで、これは現代の記数法から見ると恐ろしく冗長かつ制限の多い表現という感じには見えるのだろうけれど、実はコンピュータの中でやってる計算もこれと似たような感じの仕組みだったりもするので、まぁ、こういうやりかたにもそれなりに理屈と合理性と有用性は存在する。また最小単位より小さな値、まぁこっちの世界の人間の言うところの1以下の値のことなんだけど、それを表記するようなケースの場合、あっちの世界では12を基数として分割するという、また別のシステムを導入してしまってもいたので、まぁこのあたりもさらに複雑になっている。この二つを一緒にしてローマ数字システムと呼ぶ場合もあるけど、通常は1から3999までの整数値の表記法として認識されているはず……だよね?

ローマ数字システムの分数。12分の1を示す点は数さえ合っていれば位置に関してははわりとルーズ


それで、この記数法は教科書的には旧石器時代に発達した、子供もやるような棒を書いて数える的なタリースティック集計法から進化して、古代エジプト文明に直接の起源を持つとされている……ということだけど、そのエジプト方式が北や東に伝わっていくにつれ改良が加えられ累乗の半分を意味する記号が追加されて二・五進法という十進法表記となり……ただ、表現可能な絶対値の幅はエジプト型の単純加法原理と比較すると半分にはなるんだけど、まぁこれでも概ね実用には問題が無いと判断されたのだろう。またさらに、これをすると表現可能な限界数値はさらに下がるのだが4と9の減算表記を追加して表記の冗長性を緩和するなどの工夫が行われ、それがローマより前に存在した系統不明の超古代文明エトルリアで完成し、そこからローマに伝わったものがローマ数字となった……ということらしい。

まぁエトルリアのことに関しては実はエトルリア文明自体のことが、わかっていることよりわからないことのほうが遥かに多いからあれなんだけど、その文化文明に一目置いていたギリシアの人達からも「テュレニア人のことはチョーリスペクトするけど女の扱いだけは頭おかしい」とかと上から目線で言われるくらいには女性の社会的地位や権利が現代社会並みかそれ以上に高かったということは知られている。その後はまぁマッチョを標榜するローマにやっつけられたので、エトルリア文明崩壊後にイタリア半島の女性達が再度その権利を当時と同じ程度にまで回復するのに約二千年の時を経る必要はあったのだけれど、前世紀に死人や逮捕者、拷問を受けた女性などを大勢出すほどの多くの騒乱の結果やっと回復したというその地位も、またぞろイスラム主義の台頭にLGBT、寝起きの頭で考えましたというボケた思想なんかの流行りのせいで今やあっちからもこっちからも脅かされているというのだから、まぁ、なんか元の木阿弥でえらいことになりかけているという……いや、まぁ今はそういう雑談はいいので……何のおはなしだったっけ? あ、そうそう、それで、そのエトルリア数字の基底記号をローマンアルファベットに置き換えたのがそのローマ式表記というわけで、これがローマの支配した全ヨーロッパに伝わって国際常識と化したので、その後の欧州では帝国崩壊後バーバリアンキングダムの世紀を過ぎルネッサンス時代にアラブ式が伝わって以降のエポックにおいてすらも長く一般的な数の表記法としての位置に留まり続けていたという次第。

ただ、まぁ現代の10進位取り法になれた身からすると、こういう表記はかなり厄介でCMXCIXとかLMVLIVとかXMIXとかVMIVとかVMIIIIとかCMICとかIMとかDCCCLXXXXVIIIIとかCMLXXXXIXとかCMXCVIIIIとか……まぁまだいろいろと思いつく組み合わせはあるかもしれないけど、そういうことをされても、文字は判読できてもその表記の表す量が幾つなのかとか、どっちがどれだけ大きいのかの判断すら即座には困難だ……え? 真剣に数えたら全部一緒じゃねぇかって?…………まぁ、そこはともかく、そういう感じでローマ文明亡き後バーバリアン共が好き勝手やらかしてくれちゃったおかげもあってか、表記方法にも正式を自認する表記方法とは別に、略式表記やら最初は間違いか勘違いだったものがプロダクトと一緒に大量生産されるようになると何故か最初からそうであったかのように慣習的に使われ続けることによって逆に今度はそっちのほうが正しいのではないかというグロタンディーク素数のようなことになってしまっていったり、或いは何かの語呂合わせになっているものもあるのでイレギュラー的にこう使う……とかよくわからないケースも多数あるので、よくわからないけどすぐに求められるからといってExcelの関数で(=ROMAN)ってすれば全てが簡単に片が付く……というものでもない。それでもあまりに自由すぎるのも何なので一応正式と呼ばれる仕組みはあって、今度はそれに沿っていない表現を使うとアメリカなんかでは記載ミスとして扱われ権利が無効にされたりするみたいなとんでもないことになったりすることもあるらしいから、そういうところもホント厄介は厄介なんだけれど、そこまでのはなしの全てに対応させる……というのもあまりにもあまりなので、やれることにも限度はあるから……まぁ、そういうわけで今回もホント碌なコトをしてないので、いつも言うけどまともな話はまともなところで……良い子のお約束だよ。ホント。

さて、ローマ数字ということもあって、今回はローマンな書体のおでまし。オールドローマンセリフ体で、わかりやすくいうとTrajanと同じスタイルのフォントだ。実はこのフォント完成にはまだセリフの先端を弄らないといけないので、細部が決まっていないとか、いろいろなところが終わっていないというア・バオア・クーのジオングな状態なのだけど、あんなものは飾りですと言い切ってしまえばプロポーションだけはほぼ確定しているので普通に使用するには問題は無いはず……多分……まぁ、偉い人にはわからないだろうけど……そこはともかく、それで、まぁ、この書体は、見ようと考えようによっては古代文明の文字をトレースしている……ようなモノなので、一応アルファベットはローマ帝国版図に向けた多言語対応。ギリシア文字とアラビア文字が無いのが残念なところなのだけど欧州アルファベット以外にもアフリカで使われる特殊な字形のアルファベットやマグレブのベルベル人の文字にも対応しているからグリフの多彩さで異世界転生で使用するのに雰囲気だけは便利なフォントにはなっている……はず。多分。まぁモノタイプによると最近のフォントのトレンドではサンセリフ的なモノの流行が一周回ってオールドスタイルなセリフへと回帰していっている傾向が……的なことも言ってはいるのでトレンドと言えばトレンドかもしれないのだが、フォントの開発には何年もかかるので、フォントメーカーがそれをいうと、いや、もう、それ、新しい商品売りたいだけやないのか〜い、と突っこみたくはなるが、まぁ、それはそれとして、そういうことらしいので、最近の流行りに乗ってのこの書体……というわけでもないんだけれどね。まぁ、こういうことなので、詳細諸元に関しては、いつものとおり文末を参照してください。

作ったフォントを例のあの有名なローマの碑文にオーバーラップするとこんな具合。だいたい合ってる……よね? っていう感じ。LAとかEAとかの合字をつくったりしておくと、よりそれっぽくなるような気はするけど今回は見送った。また、ローマ数字の上に引いた線、ヴィンキュラムというのだけど、それは必ずしも必要というワケでもない上に別の意味が出てしまう場合もあるのだが、まぁトラヤヌスもこうしているので敢えてのこの仕様。ただ、だいたい合ってるとはいえ細部でアレなのと、一番下の真ん中辺りに不穏な空気は感じとっては頂けるかとは思うのだけど……


ということでフォントを用意したので、ここに追加してローマ数字化のトリックを開始する。要は算用数字が打たれたらそれを自動的にローマ数字に置き換えるというだけのトリックだ。このフォントがあればタイトル画像のようなレトロフューチャーでスチームパンクなデザインのデジタルメーターが簡単に作成できるという代物だ。まぁ、そういう需用があればだけれど……それはおいておいて、仕組みは単純。この手の変換はプログラミング演習のための教科書にレッスンのお題として取り上げられるくらいには有名な問題なので、解決方法のアルゴリズムもいろいろあるとは思うけど、道具として使える機能が検索置換しかないOpentypeFeatureでは、たいしたことが出来るわけではないので逆にある意味もっと簡単。今回も自分で適当に書いているだけなんだけど、多分誰でも思いつくことしかしていないのでオリジナリティを主張するつもりもさらさらない……単純な置き換えしかしていないからね。ホントはちゃんとする場合は間違いを呼び込まない仕組みを考えておく必要がある。まぁそのあたりもどこまでするかということもあるにはあるけれど……そのはなしも、また前置きが長くなるので、そこはいいので早速、今月のレシピ。

それで、仕組みをを絵にすると以下のような感じになる。Opentypeフューチャーに関しては以前の記事と被るので、そちらを参照ということで細かいあれこれはすっ飛ばすけど……まぁ、そこはいいよね?

スロットマシンをガチャってやって必要な絵面を盤面に揃えるイメージ。数字の桁それぞれに対応するリールにアルファベットで構成される記号が描かれている。ただ、記号の並びはこれが推奨されているとはいえ必ずしもこれで正解ということを主張したいわけではない。まぁ、そのあたりも用途と目的によってスロットのリールを入れ替えればいいだけなのだけど。

この仕組みでローマ数字を出力する場合、フォントの大文字を呼び出して再利用しても良いけど、今回はユニコードでローマ数字用に予約されているグリフを埋めていく感じに作業しているので上の図に示したように9×3+3個分の30個のグリフを追加、これだけでも合計でアルファベット26文字を超えるのだけれど、可能であれば小文字を含めてその倍の60個分を別に用意する。まぁ、そっちのほうが後で面倒がないからね。ローマ数字用のグリフはユニコードではIとVとXを使った1から10までの符号と、JIS X 0213との互換のために11と12のローマ数字、さらに、50,100,500,1000を意味するL、C、D、Mのグリフがそれぞれ大文字分と小文字分とで場所が決まっていて、さらにMacOSの独自仕様の名残でUnicodeの私用領域……まぁシステム固有の外字だね。これは今もかも知れないけど大昔は特にこのあたりがMacとWindowsで文字コードに互換性が無かったためMojibakeと呼ばれるいろいろと無体なことにもなっていたという、例のあれで、そういうところの外字コードの位置へ設置されている13、14、15のローマ数字と、そこにも居場所のない……たとえば3000のMMMとか80を意味するLXXXとかというものは全て合字として作成する。さらにちょっと特殊なラテン文字にない文字なんかもあって……これはUnicodeではちゃんと居場所が決まっているのだけれど、それらを追加すると3,999の能力しかないローマ数字の演算処理力が399,999と約百倍に爆上がりする……さらにこれをもっと爆上げしようと思ったら括線法などというまた別の方法もあるにはあるのだけれど……まぁ、普通はそんなには桁数を必要とはしないよね? 

一番上からスラッシュを用いた分数、図案化したペルシャ=トルコ数字、現在のインド=アラビア数字とそのオールドスタイル数字、その下はローマ数字のバリエーションで一番上以外は全て同じ値を表示している……はずだよね? まぁ、ともかく、そういうわけで一番下の理屈で言えば無限にCとリバースCを連ねられれば非現実的ではあるけれど表記可能な数の値もまた無限にはなる……まぁ、そういうわけだかどうかは知らないけどIをCとリバースCで挟んだ1000を意味するローマ数字の記号が無限を表すインフィニティマークの起源になったということはよく言われてはいる。あと、あまりにも横長のグリフを作ったため一番下は環境によっては表示エラーが発生する。

とにかく、まぁ5桁以上の数字をなんとかしようと思うとやりかたはいろいろあってインフィニティを超えてしまうので、このあたり大混乱の極みなんだけれど、括線法であれ、アポストロフィ法であれ、ローマ数字で巨大数を書く場合、基本はリールを増やしていけばいいだけなので、フューチャーのプログラムに関して言えば仕組みとしては単純だ。もちろん当然こうやってグリフを増やしてしまうと管理しないといけないデータもそれに比例して増加するからあれなことはアレなんだけど、今回のようなスタイルのフォントの場合だと実質大文字しかないというトレイジャンスタイルなので、小文字の数字を造る必要もないから手数と手間は半分で済むはず……ただ、ローマ数字の演算処理能力を嵩上げする必要は無くても普通の本文書体を設計するつもりの場合ではローマ数字の小文字はやっぱり必ず必要になることはあるので無視するわけにもいかないということもあるけど……まぁ、なくてもアルファベットで代用できるしローマ数字のシステム自体がレガシーだと言うご主張をされるのであれば、そこもどうでもいいかもしれないのだが……。

困ったことにイラストレーターではグリフの横幅が十倍、つまりUPMが1000のフォントでひとつのグリフがX方向に10000ユニットを超えてしまうと、その文字だけ超えた分の表示が消えてしまう。まぁ、一番下みたいにアウトラインを取ってしまえば大丈夫と言えば大丈夫だけど。

さて、それで、上のようにトリックの仕込みのために有効桁数に表れる数字のための記号を全て合字で作ってしまうのは、ノットエレガントな力業に見えるかも知れないけど、合字を用意しないとOpentypeFeatureでは単一置換のGSUB LookupType 1と複数置換のType 2が混在してしまうため、置換のためのルールがより複雑になり下手をするとフォントの処理能力に影響を与えるような組み合わせアルゴリズムになってしまう可能性もあるため、それよりはフォントのプログラムを単純化できるので、多少グリフのデータ量が増えてもこちらのほうが安心だからだ。ただ、上の様にあまりにも横長のグリフを作成するとそれはそれで別の問題が発生するうえ、システム的には安全でも管理するデータが増えすぎるのも問題で、俺の頭のネジのほうが先に飛んでしまいそうなのだけど。

まぁ、そこはいいとして、それと、ローマ数字にゼロがないので、ゼロが出てきたら表示しないというそのためのトリックに、いわゆる文字幅ゼロのゼロセパレーターというものを用意してアラビア数字のゼロが出てきた場合はそれと置換する。LookupのType 1では置換先のグリフに予約済みワードのNULLを指定しておけばそのシーケンスでは入力グリフを削除してしまうはずなのでその方法でもいいのだけれど、今回はここをUnicodeの200Dの位置に存在するzero width joiner……通称ZWJに肩代わりして貰っている。別にZWJでなくても、コードの中の空白文字のお仲間から、ワイドスペースがゼロになるwhite space character……まぁ、ここはNB-Spaceだろうがzero width spaceだろうがどうでもいいけど……ただ、それぞれその後の振る舞いには若干の差が出るので、使用するOSやアプリによってはこれが期待通りに踊ってくれるのかどうかというのもまたケースバイケースによる。今回に関してはこんな感じにしているけど、上手くいかなければ……まぁ、役割は同じようなモノだから、それらから都合の良い物のどれか選択しておくか、NULLで置換してしまえば問題は無いはず……多分。

さて、準備が整ったので以下のようなクラス……つまり配列を用意する。ゼロにzero width joiner、ローマ数字の四千以上の値は一般のローマ数字のルール的にはエラーということになるので、その場合表記が無効ということを示すためにバッテンのグリフも用意しておく。

コレで準備は完了。後は
sub @NUMBER' @NUMBER @NUMBER @NUMBER by @ROMAN4;
sub @NUMBER' @NUMBER @NUMBER by @ROMAN3;
sub @NUMBER' @NUMBER by @ROMAN2;
sub @NUMBER by @ROMAN1;
ってすれば基本は完成だけど、4桁以上の数字を打ち込んでしまった場合のエラー処理のためにこのスクリプトより前に、
sub @NUMBER' @NUMBER @NUMBER @NUMBER @NUMBER by エラー;
を書いておけば、5桁以上の数字が書かれていても下4桁分でしかローマ数字変換が有効にならないようには処理される。このエラー処置をどういうふうにするのかは、例えば5桁以上の数字が入力されたら全て#VALUE!の文字列と置換するとか、入力される下の桁を無視するとかというように、まぁ、いろいろとあるだろうから好みによるとは思うけど、どうせ雰囲気だけの問題だからということでエラー処理をまったくしないという選択肢だって……まぁ、ないこともない。


という感じ。まぁあまり面倒なことを考えなければ簡単は簡単だよね? あとはこれの応用的なコトをすればいいだけなので……ということで、上の方の図で示したように他にもいろいろとやってはいるから、まぁそのあたりに関しては以下参照。そして、これも、毎回言うけど、いつものとおり自己責任で、お願いしますよ、ホント。



フォント仕様

font name klaudus
例のフォントがトラヤヌスなので、対抗するわけではないけど、こっちのフォントはこのネーミング。ただ、Claudusだとコッホ親子の作ったゴシック書体と名前が被るのでイニシャルのCをKに替えている。五賢帝の一人たる偉大なトラヤヌスと比較するとクラウディウスはそれほどセレブリティが無いので、暴君カリギュラと後妻の連れ子だった暴君ネロの間の傀儡皇帝で、そのネロの母親にキノコで毒殺されたことくらいにしか印象ないかも知れないけれど、博学な皇帝だったので、エトルリア史を残したりもしていた。まぁ、残ってないんだけど……文字について言えば、ローマ水道が完成し帝国ローマが最大版図に達するような帝国華やかしき時代でもあったので、その所為で世界中で使われるようになった帝国の文字にもあちこちで不備が見つかっていた。そこで帝国公用語たるラテンアルファベットの改革をして、発音の不足分に文字……これはクラウディウス文字と呼ばれるのだけれど、それを追加したり、当時のアルファベットは分かち書きを殆どしなかったので、文章をわかりやすくするために中点での単語の分割表記を提案したりなどそういうことをするのだが、その悉くが皇帝在任期間中ですら多くの人たちに無視され続けて没後には……まぁこのあたりは暴君ネロの所為もあるのだけれど、このアルファベット改革案の多くが廃れてしまって使用されなくなっていく……というようなところが個人的にはフェイバリットなのでこの名前の由来にしている。

This is an OpenType/CFF font with 681 characters. 1182 Glyphs
License 
SIL OPEN FONT LICENSE Version 1.1
Language support 200 Over Latin (Afrikaans, Albanian, Azerbaijani, Basque, Bosnian, Catalan, Croatian, Czech, Danish, Dutch, English, Estonian, Faroese, Filipino, Finnish, French, Galician, German, Hungarian, Icelandic, Indonesian, Irish, Italian, Latvian, Lithuanian, Malay, Norwegian Bokmål, Polish, Portuguese, Romanian, Slovak, Slovenian, Spanish, Swahili, Swedish, Turkish, Welsh, Zulu…)and Tifinagh Letter
38 Layout features
Filename 
K(C)LAUDIUS_oldstyle.otf


small letter & small capital 普通はTrajanのようなHumanist minuscule以前のAncient Romanに大文字小文字のセットを作ったりはしないのだけど、こんな地の果てでそれをしたからといって別に文句を言われる筋合いも無いだろうからこうしている。Humanist minusculeというのはカタカナでヒューマニストミナスキュールで無理矢理日本語にすると人文短調……つまり人文主義時代の小文字体くらいの意味になる。まぁ何かでlitterae antiquaeがごっちゃにされていたりもしているけど、それはいいとして、これはルネッサンスの時期にCaroline minusculeことカロリング朝のころの文字と古代ローマの文字を合体させて作ったスクリプトでこれが現代のアルファベット書体字形のおおよその源流になっている。その後Nicolas JensonやAldus Manutiusなんかのお仕事の結果、ほぼほぼこれでアルファベットの原型が決定したというわけなので、現代ではその原型に近い、いわゆる古いタイプのセリフ書体をHumanist Serifと名付けて分類したりもする。ルネッサンスの時代のものとはいえ、今でも使える立派なスタイルで、これを代表する書体はJensonとかGaramondとか、まぁ、多分多少フォントに興味があれば名前でスタイルくらいはわかると思うけど、ああいう感じの良くも悪くもちゃんとした書体。こっちは……まぁ、ちゃんともしていないし、どうしたら良いかもよくわかっていないので、こういうことになっているのだけれど。まぁ、それはともかく……で、一般的にまともでちゃんとした書体に小文字を作る場合そのx-height、つまり小文字の高さは大文字のカタチのまま,小さめに作った字形のスモールキャピタルよりは低くなるという不文律がある……というか、スモールキャップを小文字より若干高めに設計するというのが実際のところなんだけれど、このフォントでは小文字をアンシャル体由来の字形で設計してしまっている都合上……ここを言い訳すると長くなるのでアレだから、まぁ、いろいろあって、スモールキャップと同じ高さのx-heightになっている。そのためなんだったら小文字のほうがスモールキャップよりでかく見えるなどという本末転倒なことになっているから、いつも言うけど、良い子のみんなは真似しちゃダメだよ。

Language いつもそうなんだけど、チョロっとのつもりで始めても、あっというまにグリフが1000を超えるのは、まぁホントどうにかしたい。言語サポートは今回はUnderwareのLatin Plusをフルカバーしている以外にも、気分が北アフリカ推しだったので、そちらで使えそうなものを見繕っている。決してアフリカのフォントを作っただけでカンヌで賞を貰っていたMicrosoftを羨望したということではないからね! まぁ、そこはともかく……アフリカの話は前にもしたけど、今回は生ける古代文字ことティファナグ文字を追加している。北アフリカのいわゆるマグレブ地域はイスラムの武力的宗教的侵掠の結果アラブ=イスラム社会の影響下に組み込まれてしまって、日本からは商社の人間か自分探しに行くぐらいにしか用事がないかもしれないからアラブの発展途上国程度の認識しかないかもしれないけれど、もともとアラブとは繋がりの殆ど無い別の文化圏に所属していた。そういうわけでクルド人全員が全員とも日本でジハードしようなどと考えているわけではないのと同様にアラブと完全に一体化しているというわけでも無い。アラブなものへの反発もあり都市部を見れば、まぁイスラム主義の拡大によりアラブ化した未来のヨーロッパの姿に見えなくもなくもない……などとか適当なことを言っていると、また、あちこちから怒られるかもしれないのだけど。さて、ティファナグは北アフリカのベルベル人のコミュニティで古くから使われていたものなのだが、マグレブの男共はアラビア文字に傾倒しメインストリームからは長く外れていたので、宗教の所為で家庭に縛り付けられてしまっていた女性達によって脈々と伝え続けられていたといわれる近所の国でも聞いたことのありそうなエピソードを持つ公的な地位のない文字ということになる。なので、コミュニケーションに使用するのにはいろいろと多様性に恵まれてしまっていて、男共が今更ながらこのままだと文化存亡の危機である。専制統一が必要だ! ということを言い出したため前世紀の末頃にイナルコの先生によって新ティフィナグ文字が提案された。ユニコード化されているものはこの新しいタイプのものでアルファベットと同様、左から右への書字方向で決まりなのだけれど、ティファナグは上から下へ書かれたり、アラビア文字同様右から左へも書かれることもあってその場合大抵はヒエログリフと同様に字形が左右反転したり、バリエーションには事欠かず、まぁ、いろいろ始めると、ここのはなしもこれはこれで1本記事が書けるほど長くなるからあれなんだけど……ただ、このあたりの知識はほぼ、世界で初めてベルベル語の辞書を作ったと誇る創価大の日本人の先生が日本語で書いた最近の本にほとんどあるので、興味があるなら専門的なおはなしはそちらがお薦め。

アフリカで使用されるラテンアルファベットの字形
Tifinagh文字、まぁ独自解釈が過ぎるので問題が無いことも無いのだが……


Opentype features

frac スラッシュを用いた分数。後でも説明するけど、ローマ数字の分数機能が有効な場合、そちらが優先する。

smcp 小文字が碌でもないことになっているので、普通に使うのに不便だからということもあり、小文字をスモールキャップで置換する機能を追加している。

c2sc 大文字をスモールキャピタルに置換する。

onum 普通の数字をオールドスタイル数字に置換する。ただ、このフォントx-heightが高いので遠目にはあまり変わり映えはしていないかも。

pnum 数字のプロポーショナル字形。グリフを追加するのが面倒になったのでGPOSで詰めているだけだから、イラレの日本語版では機能しない。

ss01-02 異体字。理由を話すと長くなるから、まぁ、やめておくけど、よく考えたらそのはなしを除くと、とくに説明することは何もない。

ss03 標準的なローマ数字変換、まぁ通常はこれだけで十分なので他を気にする必要は無い。

ss04 5桁以上のローマ数字の場合。普通の人は使わない。

ss05 スペースを中黒に置換してより古代ローマ風な感じにするというだけの機能。まぁ、余計と言えば余計だけど。

ss06 時計に限るわけでは無いのだけれど、特に時計に関しては一家言も二家言もあるような詳しい人が多いのであんまり安本丹なことを言うと怒られそうなんだけど、ビッグベンとかプリンスこと銀座村松皇室御用達とかの一部例外もあるにはあるけど、ディスカウントストアで売っているようなバッタ物を除けばローマ数字の描かれた九割九分九厘の時計において文字盤の数字の4は加算法で表示される。何でかは知らないけど、これは徳川家康の持っていた時計ですらそうなので、まぁ、ずっと昔からそういうことには決まっていた。ただし、どの時代、どの場合においても数字の9に加算則が使われるということはない……ハズだよね? 多分。まぁ、ともかくそういうわけで、デザイン的にはIとVとXの3文字で円の内部の領域を3つに分割するという意味もあって、見た目にも収まりもいいのでこういうことをしている……というふうな説明をする人はいる。そういうわけなので、このフォントでも4を加算法に変更するという仕組みが追加されていてローマ数字が有効な場合のみ機能する。ただ、時計の文字盤などに使うには字詰めが出来なくなるので合字でグリフを作ってしまうことに意味があるのかどうかはわからないのだけれど、まぁ、ここは後でバリアブルフォントに拡張するときにはなんとかするつもりでもいたので……今のところはこの仕様。

ss07 ss04が有効な場合のみ機能する5桁以上のローマ数字をさらに頓珍漢にする機能。

ss08-09 アルファベットに余計な飾りを付けるフューチャー。ss09のほうはアフリカで使うような特殊なアルファベットへのリンクにもなっているので、そういう形の文字を探す場合だけには有効に機能する……多分。

ss10 ローマ数字の1以下の数字。スラッシュを用いた分数を入力すると対応するものがあれば反応する。ローマ数字は概ね12を分母としているので11/12から1/12と、その半分とか、さらに半分みたいな……あと幾つかの小さい数が反応するだけだけど、約分はしてあるので1/3や1/4でも強制的に4/12や3/12のローマ数字になるという有り難迷惑な機能を設置している。おまけにスラッシュを用いた分数の機能が有効な場合でもこちらが優先するというさらに面倒な仕様となっている。

ss11 数字が並んでいれば何桁でも強制的にローマ数字化するので、その場合正しい数値が示されるかは運次第という事になる。見た目だけが大事という雰囲気重視派はこちらでお願いします。

ss12 普通の数字をトルコ数字に置換。ただ、図案化が中途半端なので時計に使うにははまだ少し問題もある。検討中。

ss13 ローマ数字化、アポストロフィ法を使うとMがインフィニティマークになってしまうし、かといって4桁のローマ数字では、数値がエラーになったりならなかったりするのが不便だったりしたので、後からこの機能を追加した。こちらは9999までに対応していて3999を超える場合括線法という数字の上に横棒を引っ張って記号が意味する数値の桁数を繰り上げるというシステムを利用している。間に合わせなので10000以上には対応していない。

ss14 その他、どうでもいい余計なグリフも追加している。

ss15 ついでなので、ローマ数字の小文字化……まぁ、スモールキャップスだけだけど、それ用の文字を追加。


issue

イシューどころかプロムレブだらけで、どこをどうするつもりかはワケがわからなくてあれだろうけど、一応頭の中の計画だけは下の図のような感じで進んでいる。

ただ、まぁ、遠目にたいした違いはないし、並べても違いもわからないだろうから説明されないとアレだろうけど……まぁ、このあたりの話も長くなるので……というか、今回はホントはここからのはなしが本題で、この話をしようと思ってたんだけど、ビックリするぐらい枕の部分が長くなってしまったので続きはまたそのうち……まぁ、ホント駄目だよね……。













この記事が気に入ったらサポートをしてみませんか?