V7.10にてテキストとカーソルの位置がずれNo.26661
とね さん 09/06/03 15:16
 
こんにちは〜
秀丸エディタにはたいへんお世話になっています。

今日、気がついたのですが、下記のテキストを編集したとき

-------------------------------------------------------------------
2009,6,3,24001,2,92721,,"                                    ",,,,0,,
2009年06月03日 00時00分00秒
-------------------------------------------------------------------

長い半角空白の後のダブルクォーテーションの後からカーソルの位置が
ずれてしまい、編集に困ってしまいました。

ダブルクォーテーションの後ろに半角の"1"を入れると、治りました。

OSはWINDOWS VISTA HOME PREMIUM SP2 フォントはメイリオ14Pです。

他のMSゴシックは問題ありませんでした。では宜しくお願い申し上げます。

北海道 とね

[ ]
RE:26661 V7.10にてテキストとカーソルのNo.26663
秀丸担当 さん 09/06/03 17:30
 
サンプルの通りにして、再現させることができました。
ご指摘ありがとうございます。

「",」という並びと全角文字が同じ行にあって、一緒に描画するとなぜか違う幅
で描画されてしまいました。
他にも、小文字の「ff」の連続した並びと全角文字を一緒に描画すると違う幅に
なってしまいました。
なぜか非Unicodeアプリケーションだと同様の問題が発生するようです。
将来バージョンで、対策をして修正させていただきます。

現状で回避するには、言われている通りMS ゴシック等にすると回避できまし
た。
または、メイリオでも「,」の1文字を強調表示するととりあえず回避すること
ができるようです。
例えば、[その他]→[ファイルタイプ別の設定]→[デザイン]→[強調表示]に、
「,」という1文字を、大文字小文字の区別=OFF、単語の検索=OFF にして追加
すると回避できました。

[ ]
RE:26663 V7.10にてテキストとカーソルのNo.26667
アルビレオ さん 09/06/03 18:33
 
アルビレオです。

>「",」という並びと全角文字が同じ行にあって、一緒に描画するとなぜか違う幅
>で描画されてしまいました。
>他にも、小文字の「ff」の連続した並びと全角文字を一緒に描画すると違う幅に
>なってしまいました。

それはたぶんWindowsがわざわざそういう処理をしているのだと思います。
たとえばXOという文字の並びの場合、
 \/ /\
 /\ \/
だと
 \/ \/
 /\ /\
よりも隙間が大きく見えるため、字間を詰めて
 \/ /\
 /\ \/
のようにします。
このようにプロポーショナルフォントは単純に1文字ずつの幅の合計で横幅が決
まらず、隣の文字との組み合わせによって字間を調整する場合があるようです。

[ ]
RE:26663 V7.10にてテキストとカーソルのNo.26669
とね さん 09/06/03 21:06
 
 秀丸担当様 とねです。

 早速有り難うございます。m(_ _)m
 
 ご指導いただいた方法も試しましたが、
 MSゴシックで使用することにしました。
 
 再度確認しましたところ、ルーラーとも
 だいぶずれるようですので、等幅フォントで
 使うのが正解なんですね。
 
 もし解決できるようでしたら、お願いします。

[ ]
RE:26667 V7.10にてテキストとカーソルのNo.26677
秀丸担当 さん 09/06/04 11:17
 
>それはたぶんWindowsがわざわざそういう処理をしているのだと思います。

そういうこともあるようですが、この問題は別の問題のようです。
非Unicodeアプリケーションだけでなく、やっぱりUnicodeアプリケーションでも
起きました。

XPにメイリオを入れて、ワードパッドでメイリオ14ptにして、以下のテキストを
入れると、「ffff…」の文字数は同じなのに2行目のfffの幅が狂って全角に食い
込んでしまうようです。

fffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffff全角

同じ行に全角があるか無いかでなぜか関係無いはずの文字が影響を受けてしまう
ようです。
Vistaのワードパッドでは起きませんでしたが、幾つかの他のアプリでも問題が起
きるものがあるようです。

全角の文字列と半角の文字列を別々に計算することで回避できたので、将来バー
ジョンではそのように修正してみようと思います。

[ ]