表示文字設定と文字入力数No.30767
gazania007 さん 12/01/20 17:04
 
[秀丸 64bit Ver.8.12 beta 5]

文字入力については下記設定をしています。
1.ファイル別のタイプの設定(共通)
 a.フォント
  メイリオ 12P
 b.体裁→折り返し
  固定 折り返し文字 74
2.動作環境
 a.ウインドウ→配置
  起動時のウインドウ位置
  サイズを指定する 幅74文字分×高さ22文字分

私の理解では上記設定で、全角文字を入力すると
1行37文字で折り返される
(38文字目は2行目の頭に表示される)

ところが実際に入力すると1行40文字で折り返される
(41文字目は2行目の頭に表示される)

この違いは?

[ ]
RE:30767 表示文字設定と文字入力数No.30768
秀まるお2 さん 12/01/20 17:38
 
 フォントがメイリオの場合ですが、この場合、ご指摘の通り、期待した文字数
でうまく自動折り返ししてくれないです。これはなぜかというとですが…

 実は、メイリオフォントは、いわゆる「プロポーショナルフォント」というこ
とになりまして、文字の幅が、文字の種類によってバラバラになってます。例え
ば典型的な例だと、「i」は狭くて「W」は広いです。

 こういうフォントの場合、折り返し桁数を74桁と指定しても、実は文字の種
類によって折り返し桁数を74にすることが出来ないです。例えば「i」なら1
20文字で折り返すけども「W」なら40文字で折り返すとか、そんな風になっ
てしまいます。

 全角文字の場合も、そういう都合があって、期待した折り返し桁数になってく
ないです。

 これはプロポーショナルフォントであるということでどうしようも無いです。

 正しく固定の文字数で折り返しさせるには、いわゆる固定ピッチフォントを使
っていただくしか無いです。例えば「MSゴシック」とかが固定ピッチフォント
になります。

 メイリオ風の固定ピッチフォントも存在はするようですが、マイクロソフトか
ら標準で提供されている訳では無いようです。

   「メイリオ 固定ピッチフォント」

 とかのキーワードでネット検索すると出てきますけども…。

 ということでお願いします。

[ ]
RE:30768 表示文字設定と文字入力数No.30769
gazania007 さん 12/01/21 09:21
 
秀まるお2さん、おはようございます。

文章は基本的には秀丸で作成しており、そのほとんどが日本語ですので、メイリオが
プロポーショナルフォントであるということをすっかり忘れていました。

それで印刷のときに、時々末尾の文字が次行の頭に移ったりして、何故と思って質問
した次第です。
でも、2バイトの文字でも幅が違うということを初めて知りました。
勉強になりました。

有難うございました。

[ ]
RE:30769 表示文字設定と文字入力数No.30770
秀まるお2 さん 12/01/21 10:44
 
> でも、2バイトの文字でも幅が違うということを初めて知りました。
> 勉強になりました。

 メイリオはプロポーショナルフォントですが、全角の日本語の文字の幅は全部
同じ幅で統一されているようです。ただ、その文字の幅が、折り返し桁数を計算
する用の「1文字の幅」のちょうど2倍になってる訳ではないので、結果として
期待した折り返し桁数で折り返してくれないです。

 秀丸エディタでの折り返し桁数計算の基準の「1文字の幅」は、フォントの情
報として「1文字の平均の幅」(tmAveCharWidth = average character width)
って値があって、それを基準にしてます。

 ちなみにMSゴシックとかの場合も、実は「全角1文字の幅 = average
character widthの2倍」にはなってなくて、微妙に(1ピクセル程度の)狂い
があります。実はそれは秀丸側で補正してたりします。メイリオの場合は1ピク
セル程度の補正では済まないので難しいです。

[ ]
RE:30770 表示文字設定と文字入力数No.30771
gazania007 さん 12/01/22 06:23
 
> ちなみにMSゴシックとかの場合も、実は「全角1文字の幅 = average
>character widthの2倍」にはなってなくて、微妙に(1ピクセル程度の)狂い
>があります。実はそれは秀丸側で補正してたりします。メイリオの場合は1ピク
>セル程度の補正では済まないので難しいです。

パソコンの世界って奥が深いのですね。
ご解説有難うございました。

[ ]