Forums: M+ OUTLINE FONTS (Thread #24043)

Windowsを使用している者です。 (2009-09-26 22:58 by Anonymous #46093)

M+ OUTLINE FONTS を全種類インストールしたのですが、私が持っているどのソフトでも、フォント選択画面には「M+ 1p」とか「M+ 2P」としか表示されません。詳細設定でthinやlight、mediumを選択してもregularに、heavyやblackを選択するとboldになってしまいます。7ウエイトのうちregularとboldしか使用できない状況です。

そこで、フォントファミリーにせず、各ウエイトがそれぞれ単独のフォントとして扱われるファイルの公開をご検討いただけませんか。または、どなたかWindows(XP)で7種のウエイトを扱う方法をご存じの方はいらっしゃいませんか。

Reply to #46093×

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: Windowsを使用している者です。 (2009-09-27 17:27 by coz #46102)

多ウエイトフォントの不具合は Windows の制約のようですね。他からも報告をいただいています。何らかの Windows 特有な仕様があるのかは分かりません。

各ウエイトごとに別個のフォントとして認識させるには、Fontforge などで fontname あたりを変更すれば良いと思います。ぜひお試しください。
Reply to #46093

Reply to #46102×

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

Windows 環境での多ウエイトフォント展開 (2010-11-05 00:07 by mandel59 #53946)

http://mplus-fonts.sourceforge.jp/cgi-bin/blosxom.cgi/mplus_fonts/mplus_fonts-101020-2.html
フォントデータ内の Family 要素と Subfamily 要素の値を修正、PreferredFamily 要素と PreferredSubfamily 要素の記述を追加するパッチをつくりました。

diff --git a/set_fontnames.tmpl b/set_fontnames.tmpl
index abf949d..f40ab54 100644
--- a/set_fontnames.tmpl
+++ b/set_fontnames.tmpl
@@ -21,9 +21,10 @@ i++; endloop

SetFontNames(fontname, family, fullname, weight, copyright, version)
SetOS2Value("VendorID", "M+ ")
-SetTTFName(0x409, 1, Strsub(fullname, 0, Strlen(family)));
-SetTTFName(0x409, 2, weight);
+SetTTFName(0x409, 1, Strsub(fullname, 0, Strlen(family)) + " " + weight);
SetTTFName(0x409, 11, "http://mplus-fonts.sourceforge.jp");
+SetTTFName(0x409, 16, Strsub(fullname, 0, Strlen(family)));
+SetTTFName(0x409, 17, weight);

panose = [2, 11, 0, 2, 2, 2, 3, 2, 2, 7]
SetOS2Value("IBMFamily", 8 * 256 + 6)
@@ -33,31 +34,39 @@ if (weight == "black")
# SetOS2Value("fsSelection", 0x20)
# SetOS2Value("usWeightClass", 900)
SetMacStyle("Bold")
+ SetTTFName(0x409, 2, "Bold");
elseif (weight == "heavy")
panose[2] = 8; panose[3] = 2
# SetOS2Value("usWeightClass", 800)
# SetOS2Value("fsSelection", 0x20)
SetMacStyle("Bold")
+ SetTTFName(0x409, 2, "Bold");
elseif (weight == "bold")
panose[2] = 7; panose[3] = 2
# SetOS2Value("usWeightClass", 700)
# SetOS2Value("fsSelection", 0x20)
SetMacStyle("Bold")
+ SetTTFName(0x409, 2, "Bold");
elseif (weight == "medium")
panose[2] = 6; panose[3] = 2
# SetOS2Value("usWeightClass", 500)
+ SetTTFName(0x409, 2, "Regular");
elseif (weight == "regular")
panose[2] = 5; panose[3] = 2
# SetOS2Value("usWeightClass", 400)
# SetOS2Value("fsSelection", 0x02)
+ SetTTFName(0x409, 2, "Regular");
elseif (weight == "light")
panose[2] = 4; panose[3] = 3
# SetOS2Value("usWeightClass", 300)
+ SetTTFName(0x409, 2, "Regular");
elseif (weight == "thin")
panose[2] = 3; panose[3] = 3
# SetOS2Value("usWeightClass", 100)
+ SetTTFName(0x409, 2, "Regular");
else
panose[2] = 0; panose[3] = 0
+ SetTTFName(0x409, 2, "Regular");
endif

c = Strsub(family, Strlen(family)-1); if (c == "M" || c == 'm')
Reply to #46093

Reply to #53946×

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: Windows 環境での多ウエイトフォント展開 (2010-11-06 18:56 by coz #53967)

パッチのご提供ありがとうございます。
CVS 上で修正してみました。

http://mplus-fonts.sourceforge.jp/cgi-bin/blosxom.cgi/mplus_fonts/mplus_fonts-101106-2.html
Reply to #53946

Reply to #53967×

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

Windows 環境での多ウエイトフォント展開 (2010-11-05 00:07 by mandel59 #53947)

http://mplus-fonts.sourceforge.jp/cgi-bin/blosxom.cgi/mplus_fonts/mplus_fonts-101020-2.html
フォントデータ内の Family 要素と Subfamily 要素の値を修正、PreferredFamily 要素と PreferredSubfamily 要素の記述を追加するパッチをつくりました。

diff --git a/set_fontnames.tmpl b/set_fontnames.tmpl
index abf949d..f40ab54 100644
--- a/set_fontnames.tmpl
+++ b/set_fontnames.tmpl
@@ -21,9 +21,10 @@ i++; endloop

SetFontNames(fontname, family, fullname, weight, copyright, version)
SetOS2Value("VendorID", "M+ ")
-SetTTFName(0x409, 1, Strsub(fullname, 0, Strlen(family)));
-SetTTFName(0x409, 2, weight);
+SetTTFName(0x409, 1, Strsub(fullname, 0, Strlen(family)) + " " + weight);
SetTTFName(0x409, 11, "http://mplus-fonts.sourceforge.jp");
+SetTTFName(0x409, 16, Strsub(fullname, 0, Strlen(family)));
+SetTTFName(0x409, 17, weight);

panose = [2, 11, 0, 2, 2, 2, 3, 2, 2, 7]
SetOS2Value("IBMFamily", 8 * 256 + 6)
@@ -33,31 +34,39 @@ if (weight == "black")
# SetOS2Value("fsSelection", 0x20)
# SetOS2Value("usWeightClass", 900)
SetMacStyle("Bold")
+ SetTTFName(0x409, 2, "Bold");
elseif (weight == "heavy")
panose[2] = 8; panose[3] = 2
# SetOS2Value("usWeightClass", 800)
# SetOS2Value("fsSelection", 0x20)
SetMacStyle("Bold")
+ SetTTFName(0x409, 2, "Bold");
elseif (weight == "bold")
panose[2] = 7; panose[3] = 2
# SetOS2Value("usWeightClass", 700)
# SetOS2Value("fsSelection", 0x20)
SetMacStyle("Bold")
+ SetTTFName(0x409, 2, "Bold");
elseif (weight == "medium")
panose[2] = 6; panose[3] = 2
# SetOS2Value("usWeightClass", 500)
+ SetTTFName(0x409, 2, "Regular");
elseif (weight == "regular")
panose[2] = 5; panose[3] = 2
# SetOS2Value("usWeightClass", 400)
# SetOS2Value("fsSelection", 0x02)
+ SetTTFName(0x409, 2, "Regular");
elseif (weight == "light")
panose[2] = 4; panose[3] = 3
# SetOS2Value("usWeightClass", 300)
+ SetTTFName(0x409, 2, "Regular");
elseif (weight == "thin")
panose[2] = 3; panose[3] = 3
# SetOS2Value("usWeightClass", 100)
+ SetTTFName(0x409, 2, "Regular");
else
panose[2] = 0; panose[3] = 0
+ SetTTFName(0x409, 2, "Regular");
endif

c = Strsub(family, Strlen(family)-1); if (c == "M" || c == 'm')
Reply to #46093

Reply to #53947×

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