Forums: M+ OUTLINE FONTS (Thread #34824)

一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-14 13:01 by MM. #71044)

こんにちは。

今回のバージョンでIllustratorでの縦組みの対応が一気に改善されましたが、
まだ一部のアプリで、縦書きグリフにならない問題が残っています。
(こちらで確認したアプリ…LibreOffice Writer、Microsoft Publisher 2013、一太郎2013、
ComicStudio、CLIP STUDIO PAINT などなど…すべてWindows環境)

これの解決策が見つかりましたので、フィードバックさせていただきたく思います。

1. ホームディレクトリにある ./fontforge/prefs をエディタで開き、
「CoverageFormatsAllowed:」の値を「1」にする。(デフォルトは「3」のようです?)

2. FontForge の GUI で生成済みのファイルを開いて保存し直すか、
フォントを生成するためのスクリプトの一番最初に
「fontfotge.loadPrefs()」(.py の場合) もしくは 「LoadPrefs()」(.pe の場合) を書く。

※生成済みのフォントファイルに対して修正したい場合は、次のスクリプトを実行する
------- vfix.pe
LoadPrefs()
Open($1)
Generate("fixed/" + $1)
-------
fontforge -script vfix.pe mplus-2c-thin.ttf

これで、確認できる限り全てのアプリケーションで、縦書き時のグリフが正常になりました。
M+ FONTSの生成スクリプトに対しては、FontForge の prefs を変更したうえで、
build-ttf.py の import 群のあとに「FontForge.loadPrefs()」、
build-ttf.pe の 2行目に「LoadPrefs()」
を追加するとうまくいきそうです。

よろしければ、次の TESTFLIGHT に取り入れていただけますと嬉しく思います。
よろしくお願いします。

Reply to #71044×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-14 14:15 by MM. #71045)

追記させていただきます。

生成済みのフォントを開いて保存すると、cmap テーブルのエンコーディングの設定が
変な値に変わってしまい、この影響で Web フォントとして認識されないなどの
弊害が出てしまうようなので、あまりやらない方が良さそうです。

build-ttf のスクリプトを変更する方法は今試しにビルド中ですが、
今のところ問題なさそうに見受けられます。
Reply to #71044

Reply to #71045×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-14 17:09 by MM. #71046)

ビルドが完了したので確認したところ、うまくいきました。
左が TESTFILGHT-057、右が今回ビルドしたものです。
http://i.imgur.com/RDERDb0.png

ビルドしたフォントファイル一式を以下にアップロードしてみました。
(2013年11月16日の「髙」まで収録、unofficial fontforge-cygwin 20131007 でビルド)
https://drive.google.com/file/d/0B5ofAkcx0d7uY05TZjBrT0tJdFU/edit?usp=sharing

参考になりましたら幸いです。
Reply to #71044

Reply to #71046×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-14 18:15 by coz #71047)

縦組みの検証と解決策のご提案ありがとうございました。さっそく手元の環境で試させていただきます。
Reply to #71046

Reply to #71047×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-14 18:47 by MM. #71048)

ご返信ありがとうございます。
お役に立てましたら幸いです。

ここのところM+FONTSにはまってまして、ことあるごとに使っています。
最近では個人にとどまらず大企業(先般のドコモの発表会や、テレ東の公式サイト、
ドワンゴの新卒採用ページなど)でも使われていているのを見かけるので
ついニヤついてしてしまいます。
今後のさらなるご発展を期待しています。
Reply to #71047

Reply to #71048×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-18 15:32 by coz #71091)

~/.FontForge/prefs 内の CoverageFormatsAllowed を「1」に変更、
build-ttf.py の import 群のあとに「FontForge.loadPrefs()」を追加、
build-ttf.pe の 2行目に「LoadPrefs()」を追加して make してみたところ、

Traceback (most recent call last):
File "build-ttf.py", line 9, in <module>
FontForge.loadPrefs()
NameError: name 'FontForge' is not defined
make[4]: *** [mplus-1k-thin.ttf] Error 1
make[3]: *** [all] Error 2
make[2]: *** [mplus-1k] Error 2
make[2]: *** Waiting for unfinished jobs....Traceback (most recent call last):
File "build-ttf.py", line 9, in <module>
FontForge.loadPrefs()
NameError: name 'FontForge' is not defined
make[4]: *** [mplus-2k-thin.ttf] Error 1
make[3]: *** [all] Error 2
make[2]: *** [mplus-2k] Error 2
make[1]: *** [rebuild-ttf] Error 2
make: *** [all] Error 2

上記のエラーメッセージが 7 ウエイト分表示された後に停止しました。
何かお分かりになりますでしょうか。
fontforge --version は

Copyright (c) 2000-2012 by George Williams.
Executable based on sources from 14:57 GMT 31-Jul-2012.
Library based on sources from 14:57 GMT 31-Jul-2012.
fontforge 20120731
libfontforge 20120731

となっています。
Reply to #71046

Reply to #71091×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-18 19:04 by MM. #71092)

すいません、誤りがありました。
py の方に追加する一行は正しくは「fontforge.loadPrefs()」です。
「fontforge」部分が全て小文字が正しいです。
よろしくお願いします。
Reply to #71091

Reply to #71092×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-18 19:38 by coz #71093)

早々にありがとうございました、無事に make が終了しました。
Reply to #71092

Reply to #71093×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-20 15:54 by aktado #71108)

MM. さん,
フィードバックありがとうございます。私は Windows のテスト環境を持っていないので,
非常に参考になります。

> (こちらで確認したアプリ…LibreOffice Writer、Microsoft Publisher 2013、一太郎2013、
> ComicStudio、CLIP STUDIO PAINT などなど…すべてWindows環境)

すみません,念のため確認なのですが,OS のバージョンは Windows 8 で, 8月の更新
プログラム http://support.microsoft.com/kb/2862768 は適用済み,ということでよいで
しょうか。

Windows 8 でテキスト描画アルゴリズムが変更になったため,標準フォントでも一部の
アプリケーションで縦書きに不具合が出ていたが,上記更新で標準フォントについては
修正された,という認識なのですが合ってますでしょうか。

また, Windows Vista や Windows 7 での動作確認をされた方がいらっしゃれば,
ご報告いただけると助かります。
Reply to #71044

Reply to #71108×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2013-12-20 17:15 by MM. #71110)

私の方ではすべてWindows 7で確認しています。
過去のWindows 8にあった縦書きのバグとはおそらく特に関連がありません。
この原因としては、FontForgeのデフォルト設定では、
縦書きに関わる一部データが、Windowsでは認識していない形式で
出力されるからのようです。(LoadPrefs() はスクリプトでの設定内容反映に必要)

M+の開発においては、WordとIllustratorのみで検証が行われていましたが、
実際には、よりWindowsの仕様に依存していると思われる多くのアプリにおいて、
縦書きの不具合が発生していました。
これらのアプリでは、FontFongeで生成されたフォントの多くで
同様の問題が見られるようです。

また、Illustratorでも全角スペースが幅ゼロになってしまう不具合がありましたが
これもこの設定で一緒に解消されたようです。
Reply to #71108

Reply to #71110×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2014-01-10 13:52 by aktado #71253)

ご返信が遅くなってすみません。

Windows 7 で確認されたとのこと,承知いたしました。

FontForge のソースコードのコメントを見ていると,過去の Windows では
coverage format 2 のみが使われていた?というような記述がありましたので,
Windows のバージョンによっては不具合が出る可能性を懸念いたしました。
実際のところ,これは2003年頃の話だったようで,現在ではあまり心配する
必要はなかったのかもしれません。

ところで,
fontforge.loadPrefs()
の代わりに,
fontforge.setPrefs('CoverageFormatsAllowed', 1)
とした場合でもうまくいくでしょうか。FontForge 全体の設定ファイルを変更
する必要がなく,他の設定項目の影響を受けることもなくなるので,こちらの
方がよいかなと考えているのですが。
Reply to #71110

Reply to #71253×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2014-02-21 12:48 by mm-rounded #71940)

今返信に気づきました。申し訳ありません。
setPrefs について教えて頂きありがとうございます。
これでうまくいくかどうかは、後ほど試してみたいと思います。
Reply to #71253

Reply to #71940×

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.) Login

Re: 一部のアプリで縦書きが不完全な件と、その解決策 (2014-02-21 21:10 by mm-rounded #71945)

実際にビルドしてみたところ、loadPrefs() のかわりに
fontforge.setPrefs('CoverageFormatsAllowed', 1) で有効でした。
これで FontForge の設定を書き換える必要がなくなりました。
ご指摘頂きありがとうございます。

先日 coz 氏よりお誘いを頂きまして、プロジェクトメンバーとなりましたので、
のちほど、build-ttf.py と build-ttf.pe を修正して CVS にコミットさせていただきます。
Reply to #71253

Reply to #71945×

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.) Login