鈴木メモ

Illustratorの練習メモとか、最近はフォントを作ったり。

*

TTEditとOTEditの連動している文字について


TTEdit・OTEdit for Windows・OTEdit for Macの自作フォント制作では、端から書いて埋めていくと時々すでに埋まっている文字に遭遇します。
1文字ずつ書いてる時は「もう出来てる、ラッキー」で済みますが、この連動している文字はどんなものがあるのか調べてみました。
また、自動化ソフトやマクロで連続処理するときの注意についても書きました。

連動文字

連動する文字は意外とたくさんあります。
1文字ずつ書いてる時は気になりませんし、全文字把握する必要はありませんが、文字一覧パネルごとに内容を見ていきます。この3つは連動の由来がそれぞれ違います。

①TTEdit/OTEdit:文字一覧-シフトJISの連動文字
②OTEdit:文字一覧-Unicodeの連動文字
③OTEdit:文字一覧-CIDの90度回転自動作成文字

文字一覧パネルで表示は切り替えできます。

①TTEdit/OTEdit:文字一覧-シフトJISの連動文字


シフトJISの同一字形が、Windows-31Jの重複登録によって複数のコードに登録されている連動文字です。2重・3重登録があります。
【参考】Wikipedia Windows-31J に重複登録されたコード

●シフトJISの連動文字:396文字
∪∩¬∠⊥≡≒√∵∫ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ№℡㈱纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¦'"
※(このリストはTTEditの新規ファイルからマクロで取得しました。複数のコードの組み合わせはSJIS連動リスト.zipを作ったのでダウンロードして見て下さい。)
※(OTEditの新規ファイルStdフォント(Adobe-Japan1-3)では、上記のリストのうち、﨑(U+FA11)栁(U+6801)隆(U+F9DC)が編集不可文字のため入りません。Pr6Nフォント(Adobe-Japan1-7)では編集OK。)

シフトJISの連動文字を実際に観察してみる

●「纊褜鍈銈蓜………黑」について見てみる
シフトJISの文字一覧の後半、漢字3のブロックを見てみます。EXXX番台の「纊褜鍈銈蓜………黑」に順にテスト用オブジェクトを置いていくと、開いていないFXXX番台の「纊褜鍈銈蓜………黑」にもリアルタイムに同じものが書き込まれます。逆にFXXX番台のグリフを開いて削除すれば、開いていないEXXX番台のものも削除されます。主従関係ではなく一方を編集するともう一方もリアルタイムで連動して更新されます。

●「∵」について見てみる
連動文字は近くで固まっているとは限りません。3重複である「∵」(数学記号なぜならば、BECAUSE)はスライダー位置を見ると分かりやすいんですが、前半すぐ全角数字の前、その後の漢字の前、ずーっと後ろの漢字の最終で3回存在します。1つを開けると3つがオープン中背景色になります。


TTEditで81E6位置・879A位置・FA5B位置の編集画面でそれぞれ上部のコードを見ると、シフトJISは番号が3種類あります。ユニコードは共通です。


OTEditでも文字一覧パネルに3回存在し、中身が連動する挙動はTTEditと同じですが、3つの編集画面上でシフトJIS、ユニコード、CID番号は共通表示になっています。(文字一覧パネルの81E6位置・879A位置・FA5B位置をクリックすると同じ81E6表示が開く)

シフトJISの注意点:TTEditでシフトJISの多重がけ

TTEditのシフトJISで「次の文字」やマクロで連番処理していくと、重複文字は別のコードとして複数回開かれます。これはTTEditが素直にシフトJIS順にすべて処理しているからで、正しく動いているといえますが、コピーやフィルタでは連動文字部分が2回・3回の効果の多重がけになり、見た目に困ったことになります。

《多重がけでも問題ない処理》
・巻き方向を修正・オーバーラップ輪郭を削除・Y極大点を追加・削除・削除してからペースト(置き換え)・スライドショー、検索や文字数カウント系のオブジェクトを変形させないマクロ処理
《多重がけが問題になる処理》
・ペースト(多重貼りになる)・フィルタ(多回転、多太字、多細字、多移動、多変形、など)

多重がけを再現してみます。TTEditにテスト用オブジェクト(1の形)を自動化ソフトを使ってシフトJIS全文字に連続コピーペースト。選択してずらすと多重貼りになっているのが分かる。(ペーストはTTEditの仕様でわずかにズレが付与されて完全同一座標にならない工夫がされています。)

フィルタ処理で回転30度。回転が過剰にかかっている。

⇒【対処法】TTEditでコピーやフィルタの一括処理をする時はシフトJIS並びを使わずに、Unicode表示にして下さい。

※この記事の多重がけ画像はHiMacroEx(自動化ソフト)であえて連続処理して作成しています。

OTEditの「次の文字」はシフトJIS順には動きません

OTEditでは文字一覧パネルをシフトJISにしていても、「次の文字」で移動するとCID順に進んで行きます。=シフトJISの多重がけはおこりません。

 

②OTEdit:文字一覧-Unicodeの連動文字


Unicode自体の重複登録ではなく、複数のUnicodeが同一CIDに集約されているための連動文字です。OTEditはCIDベースなので連動しますが、TTEditでは連動しません。どちらを開いても同じコードの編集画面が開きます。Stdフォント(Adobe-Japan1-3)だと3連動まであります。
【参考】OTEdit公式 和文フォント情報のダウンロードから UnicodeとCIDの対応.xlsをダウンロードできます。

●Unicodeの連動文字:289文字(同一CIDにまとめ)Adobe Japan 1-3、1-4用より抽出
‑̲̀̃’‘∼–∙̧̂̄̊—‾~∥-衣一羽雨臼瓜黄乙音火禾牙貝角革瓦干甘缶鬼亀黍弓牛魚玉巾斤金欠穴血月犬見玄言己戸虎鼓口工行香高黒骨艮皿山士子支止氏糸至歯示而耳自鹿車手首舟十女小色食心臣身辛人水寸生西青斉石赤舌舛鼠走足大辰谷竹虫長鳥爪鼎田斗土刀豆酉二肉日入馬白麦八釆比皮非飛鼻疋父阜風文米頁片母方卜麻又巳民矛面毛木目門矢邑夕用羊里立竜龍力老丶丿亅亠儿兀冂冖冫几凵勹匕匚匸卩厂厶囗夂夊宀尢尸屮巛幺广廴廾弋彑彡彳戈攴攵无旡曰歹殳毋气爻爿癶网耒聿艸虍襾豕豸隶隹韋韭髟鬥鬯鬲鹵麥黹黽齊齒龜龠︙︰丨靑⎪黃𦥑飠𩙿㣺亻覀𧾷𥫗𤴔耂𠘨卉㔾杞丬𦉪艹艹艹乚刂尣彐忄扌氵灬犭疒礻禸罒罓衤辵辶镸阝爫辶
※(このリストは私が公式のAdobe Japan 1-3、1-4用のダウンロードから連動のみ抽出したものです。すべてのコードの組み合わせはUnicode連動_同一CID-複数Unicode一覧.zipを作ったのでダウンロードして見て下さい。)
※Stdフォント(Adobe-Japan1-3)のCID範囲はCID0~9353までです。上記リストCID 8695靑まで。

●Unicodeの連動文字:302文字(同一CIDにまとめ)Adobe Japan 1-7用より抽出
‑̲̀̃’‘∼–∙̧̂̄̊—‾ ~〈〉-衣一羽雨臼瓜黄乙音火禾貝角革瓦干甘缶⻤亀黍弓牛魚玉巾斤金欠穴血月犬見玄言己戸虎鼓口工行香高黒骨艮皿山士子支止氏糸至歯示而耳自鹿車手首舟十女小色食心臣身辛人水寸生西青斉石赤舌舛鼠走足大辰谷竹虫⻑鳥爪鼎田斗土刀豆酉二肉日入馬白麦八釆比皮非飛鼻疋父阜風文米頁片母方卜麻又巳民矛面毛木目門矢邑夕用羊里立竜龍力老丶丿亅亠儿兀冂冖冫几凵勹匕匚匸卩厂厶囗夂夊宀⺐尸屮巛⺓广廴廾弋彑彡彳戈攴攵无旡曰歹殳毋气爻爿癶网耒聿艸虍襾豕豸隶隹韋韭髟鬥鬯鬲鹵麥黹黽齊齒龜龠櫛杓溺屠漣煉冤︙︰牙⮕丨靑⎪黃𦥑𭕄飠𩙿㣺亻覀𧾷𥫗𤴔耂𠘨卉㔾杞丬𦉪艹艹艹乚刂尣彐忄扌氵灬犭疒礻禸⺫罓衤辵辶镸⻏爫辶歺𩿗𣟱
※(このリストは私が公式のAdobe Japan 1-7用のダウンロードから連動のみ抽出したものです。すべてのコードの組み合わせはUnicode連動_同一CID-複数Unicode一覧_1-7.zipを作ったのでダウンロードして見て下さい。)

Unicodeの連動文字を実際に観察してみる

●「(半角スペース)」について見てみる

U+0020(半角スペース SPACE) とU+00A0(ノーブレークスペース、改行禁止のスペース no-break space)はCID 1として連動します。Wikipedia:スペース
2つの編集画面が共通なのでU+0020をクリックして開けてもU+00A0をクリックして開けてもU+0020の編集画面が開きます。U+0000~U+001Fもオープン中背景扱いになりますがここは連動しません。スペースは空欄のグリフですが、連動テスト用にCID1と書込み。

 

●「〜(波ダッシュ)」について見てみる

U+301C(波ダッシュ WAVE DASH)とU+FF5E(全角チルダ FULLWIDTH TILDE)もCID665として連動します。Wikipedia:波ダッシュ


※フォント自作としてはCIDにまとめられて連動するので、片側の作り忘れがないメリットがあります。逆にCIDベースではないTTEditでは連動しないので、U+301C(波ダッシュ、シフトJIS範囲外)とU+FF5E(全角チルダ、シフトJIS8160)の2つのグリフを作成しないと一方が表示されません。
波ダッシュの扱いの違い:
・MacのキーボードでA〜Bと打つとU+301C(波ダッシュ)が出ます。
・WindowsのキーボードでA~Bと打つとU+FF5E(全角チルダ)が出ます。

●「∥(平行記号)」について見てみる

U+2016(‖ 双柱 DOUBLE VERTICAL LINE)と U+2225 (∥ 平行記号 PARALLEL TO)もCID 666として連動します。Wikipedia:平行記号
JIS2004対応フォントでは連動せず、U+2016(‖ DOUBLE VERTICAL LINE)の垂直の縦線・U+2225 (∥ PARALLEL TO)の斜めの書き分けができる。


○Stdフォント(Adobe-Japan1-3)、Proフォント(Adobe-Japan1-4)
⇒U+2016(‖ )と U+2225(∥)は 連動する(つまり両方縦線で収録することになる)。U+2226 (∦ NOT PARALLEL TO)は収録できない。
○Pr6Nフォント(Adobe-Japan1-7)※JIS2004対応フォント
⇒U+2016(‖ )と U+2225(∥)は 連動しない(縦とななめの書き分けが出来る)。U+2226 (∦ NOT PARALLEL TO)も収録できる。
※TTEditではU+2225 (∥ PARALLEL TO)、U+2226 (∦ NOT PARALLEL TO)は収録可能。U+2016(‖ 双柱 DOUBLE VERTICAL LINE)は収録できない。

●「鬼」について見てみる

U+2EE4、U+2FC1、U+9B3CがCID 1614「鬼」としてまとめられており、3連動しています。U+9B3Cの同一編集画面になっています。よく使う漢字はCJK統合漢字にまとまっていますが、連動文字はCJK部首補助ブロック、康熙部首ブロックにあります。

・U+2E80–U+2EF3 のCJK部首補助ブロック116文字についてwikipedia CJK部首補助(Oteditでは未収録グリフがあります。)
・U+2F00–U+2FD5 の康熙部首ブロック214文字についてwikipedia 康熙部首

OTEditの「次の文字」はUnicode順には動きません

OTEditでは文字一覧パネルをUnicodeにしていても、「次の文字」で移動するとCID順に進んで行きます。=Unicodeの多重がけはおこりません。

 

③OTEdit:文字一覧-CIDの90度回転自動生成文字


縦書き文字の90度回転自動作成文字です。
CIDから紐づけられたCIDへ、オブジェクトがコピー回転され自動作成されます。
この連動だけはコピー元/自動作成が主従関係になっており、自動作成側を編集してもコピー元へ逆反映できません。
リアルタイム更新ではなく、編集後ファイルを保存したタイミングで自動作成されます。

【参考】Adobe-Japan1-7の資料の中に記載があります。回転グリフ
【参考】OTEdit公式Q&Aに記載があります。Q22の「自動作成文字一覧」

Q22 CID=1の文字を作成して保存すると、CID=8720の文字が自動で作成されるが、そのように自動で作成される文字の一覧を知りたい。

自動作成文字一覧(ZIP圧縮)をダウンロード後解凍してご参照ください。Excelファイルです。Excelファイル中の「コピー元CID」をコピーして90°回転し、「自動作成CID」を作成しています。Adobe-Japan1-7の範囲で記載してあります。

●OTEdit公式から自動作成文字一覧をダウンロードすると、CIDのリストは1,504文字ありました。データをソートし、連番ブロックで整形しました。
《コピー元CID 連番ブロック一覧》
1~632、8718~8719、9354~9778、12063~12087、15456~15461、15464~15516、15725~15975、20317~20426
《自動作成CID 連番ブロック一覧》—※編集できるけど多分触らないほうが良いかも。
8720~9353、12870~13319、16469~16778、20961~21070

CIDの回転自動生成を実際に観察してみる

●「CID 1~632 、8718~8719」について見てみる

コピー元文字がどのあたりにあるか確認します。Stdフォント(Adobe-Japan1-3)の場合、全文字のCID範囲はCID0~9353までです。コピー元はそのうちのCID1~632、8718~8719の水色でチェックした部分です。文字一覧パネルの最初の部分が、パネルの最後グレーの部分にコピーされます。(CID1~632はひとかたまりではなく、混ざった順番でコピーされます。)

実験用に水色のコピー元に縦長の楕円を連続コピーで配置して保存。保存後にパネル下部に90度回転したオブジェクトが自動生成されました。その後にコピー元に変更と保存があれば、その都度自動生成内容は更新されます。
(※実験で、グリフ枠から大幅にはみ出すオブジェクトがあると自動生成がされなかったです。)

●「CID 243、245」について見てみる

Adobe-Japan1-7の資料の中で解説がある、特記事項で併せデザインが推奨されているグリフです。OTEditでは回転自動生成なので併せになります。半角内で中央揃えにすると見た目がいいよ、というアドバイスなのでコピー元のグリフで位置揃えを確認。
追補 3:Adobe-Japan1-3

CID 番号 8962 と 8964 のグリフについては、追補 0 に実装されている CID 番号 243 と 245(CID 番号 8962 と 8964 の非回転形)と併せてデザインすることを推奨します。これらのグリフを半角(500 単位)幅内で中央揃いとなるようにデザインすることで、数字と数字の間に組んだ場合により良い体裁が得られます。

 

●1-3 StdN(N付きフォント)にする時に必要:ユーロ記号
1-3 Stdフォントを1-3 StdNフォントにするための追加の145字の中に入っている記号の確認です。新規作成のPr6Nフォント(Adobe-Japan1-7)を使用します。CID 9354(プロポーショナル欧文ユーロ記号、U+20AC)が12870(縦書き用ユーロ記号)として回転自動生成されます。近くにあるCID 9779(全角ユーロ記号)は連動も回転自動生成もされません。

JIS2004 基準の OpenType/CFF フォント

 

CIDの連動しそうなのに連動してない重複文字

●「匕󠄀」、「喩󠄀」、「渣󠄀」について見てみる

CIDが異なるが内容が重複した漢字グリフです。同じ内容を入れてね、ということだと思いますが連動でも回転自動生成文字でもないので、自分でコピペして入れます。
重複した漢字グリフ

重複した漢字グリフ
これまでの経緯や JIS90 準拠の理由により、追補 0 に含まれる以下の3対の漢字グリフは、完全に重複したものです。また、対応する追補 4 内の JIS83(別名、JIS X 0208-1983)の CID 番号は、比較のために示したものです。

最初のグリフ 重複グリフ JIS83 のグリフ
4301—匕󠄀 7983—匕󠄁 13523—𠤎󠄀
4411—喩󠄀 7984—喩󠄁 13526—喩󠄂
5459—渣󠄀 7994—渣󠄁 13558—渣󠄂

CIDの注意点:自動作成エリアの内容を編集しないこと

自動作成エリアの文字も開いて編集・保存できますが、逆反映ができないため2つのグリフの内容の整合性が取れなくなります。内容を修正したければコピー元のグリフを編集後保存して下さい。

CIDの自分用覚書:自動作成エリアを連番処理でフリーズする時は

OTEdit for Macでフォント自作中に、自動作成エリアにY極大点の追加処理をしようとしてフリーズし強制終了やフォントが壊れて開けなくなることがあったので、その代わりの縦書きのズレ対策として、自作フォントは回転前のコピー元に左辺のX極小点にポイントを手作業で追加しました。(O0などの左辺に曲線のあるグリフを探す。この時頂点のポイントの有無ではなくハンドルが超えていることがNGなので、オブジェクトによっては実体の頂点だけでなく付近もチェックする。)

再検証はしていませんが、もし自動作成エリアにY極大点の追加ができるならそれで良いと思うのでとりあえずの覚書です。

 

あとがき

自作のTTEditマクロを作ってる時に、ユニコード・シフトJIS両対応で範囲入力出来たほうが便利でいいよねと思って作り始めたんですが、シフトJISはそういえば連動があったな、ということでコピー・フィルタ系の多重がけがおこるものはシフトJIS対応を外しました。
他にも何かあるか調べておくか、とはじめたら長い記事になってしまいました。