Foros: 公開討議 (Thread #34530)

Migu1Mで「—」「−」が半角になる (2013-09-25 19:26 by Anónimo #70296)

Migu1Mの「—(ダッシュ、ダーシ)」と「−(マイナス)」がMac OS X Lion/Mountain Linon上で半角表示になってしまいます。
OSX標準のFont book、テキストエディットや、MacVimでも半角になりました。
一応、Fontforgeにて

Open("migu-1m-regular.ttf")
Select(0x2014)
Scale(180, 100)
SetWidth(1024)
CenterInWidth()
SelectNone()
Generate("hoge.ttf")
Close()

というスクリプトをかけたら「—(ダッシュ/u+2014)」は修正できたのですが、知識不足でマイナスのほうは直せず…。
両方とも、本家のほうで対応してもらえたらなと思っています。

Responder al #70296×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar

RE: Migu1Mで「—」「−」が半角になる (2013-09-28 11:48 by itouhiro #70303)

— U+2014 'EM DASH' emダッシュ
− U+2212 'MINUS SIGN' マイナス記号
についてですね。

これはWindowsとそれ以外のOSで、Shift_JIS→Unicode のマッピングが違うという文字です。

> マイクロソフトは同様に EM DASH (U+2014, "—") を HORIZONTAL BAR (U+2015, "―") に、‥‥
> MINUS SIGN (U+2212, "−") を FULLWIDTH HYPHEN-MINUS (U+FF0D, "-") に割り当てており、
> これらの変換時にも問題が起こる。
引用元: 「波ダッシュ・全角チルダ問題 - Unicode - Wikipedia」 http://ja.wikipedia.org/wiki/Unicode#.E6.B3.A2.E3.83.80.E3.83.83.E3.82.B7.E3.83.A5.E3.83.BB.E5.85.A8.E8.A7.92.E3.83.81.E3.83.AB.E3.83.80.E5.95.8F.E9.A1.8C

現在の Migu 1M はWindowsに合わせて、以下の文字は全角になっています。

― U+2015 'HORIZONTAL BAR' 全角ダッシュ
- U+FF0D 'FULLWIDTH HYPHEN-MINUS' 全角(ハイフン)マイナス


U+2212
======

U+2212 について調べると、Macの場合、Shift_JISの0x817C(全角マイナス)→U+2212 という変換マッピングになっているそうですね。しかし U+2212 はUnicode的には「半角」が正しいです。

曖昧幅文字(East asian ambiguous width) で調べると出てくる以下のunicode.orgの公式データでは
http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt

 2212;N # MINUS SIGN

と掲載しています。「東アジアの文字幅 http://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85 」によると

 > Unicode のテキストを東アジアの従来文字コードの文脈で扱う場合
 > 特性値Na(狭)またはN(中立)を持つ文字は、半角の文字 (halfwidth) として扱う。

なので、特性値NのU+2212は半角です。


U+2014
======

U+2014については http://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt に掲載されてませんが「ダッシュ (記号) - Wikipedia」 http://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5_(%E8%A8%98%E5%8F%B7)
見ると

 >東アジアの文字幅 (East Asian Width) では‥emダッシュ(U+2014)はA

つまり

 >Unicode のテキストを東アジアの従来文字コードの文脈で扱う場合
 >特性値A(曖昧)を持つ文字は、全角の文字 (fullwidth) として扱う。
 >
 >Unicode のテキストを東アジア以外の従来文字コードの文脈で扱う場合
 >特性値 A(曖昧)を持つ文字は、幅の狭い文字 (narrow) として扱う。

日本語フォントなら全角、欧文フォントなら半角扱いなのですね。

「U+2015 HORIZONTAL BARとは何か - Mac OS Xの文字コード問題に関するメモ」 http://d.hatena.ne.jp/NAOI/20100128/1264669476
を見ると、Unicode的には U+2014もU+2015と同じような形状でよい、むしろU+2014はU+2015より横に長い。

「Emacs23(以降) と 曖昧幅文字(East asian ambiguous)」 http://d.hatena.ne.jp/khiker/20110327/emacs_cjkamb をやってみると
 U+2014
 (char-width ?—)
 2
Emacsの日本語環境ではU+2014は全角扱いです。

U+2014についてはこだわりのある様子のRictyフォント http://save.sys.t.u-tokyo.ac.jp/~yusa/fonts/ricty.html では
 >en ダッシュ(U+2013)、em ダッシュ(U+2014)が破断線のようになります (LaTeX での入力ミス防止のため)。
と書いてありますが、U+2014が半角幅ですね。日本語フォントとしては全角が正しい気がします‥‥
http://f.hatena.ne.jp/itouhiro/20130928110152


英語ページの http://en.wikipedia.org/wiki/Dash を欧文フォントで見るとen dashとem dashは明確に区別ついてますね。フォントにもよりますがen dashは半角幅、em bashは全角幅に見えます。


結論
====

Migu 1Mの次バージョンでU+2014は全角にしたいと思います。U+2212は半角のままの予定。



回避策
======

U+2015とU+2014、U+FF0DとU+2212を各々同じ形状にしたいなら以下で可能です。

Open("migu-1m-regular.ttf")
Select(0x2015)
Copy()
Select(0x2014)
Paste()
Select(0xFF0D)
Copy()
Select(0x2212)
Paste()
Generate("foo.ttf")
Close()
Responder al #70296

Responder al #70303×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar

RE: Migu1Mで「—」「−」が半角になる (2015-07-12 15:22 by itouhiro #76513)

20150712版で、Migu 1M, Migu 2MのU+2014を全角幅に修正しました。
U+2014は欧文フォントならば半角幅なので、プログラミング向けフォントなら半角幅でもよいと今は考えていますが、小説や文章に使うなら全角幅でよいと思います。
Responder al #70303

Responder al #76513×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar