Qtユーザ/開発者さま,
TeX界より参りました黒木と申します. 複数のOS上で動くTeX用エディタに,TeXworksというものがあり, 日本語のLaTeX入門書のベストセラーである,『LaTeX2e 美文書作成入門』 シリーズ http://oku.edu.mie-u.ac.jp/~okumura/bibun6/ でも,最近は TeXworks を Windows の標準エディタとして解説しております.
ですが,テキストエリアでかな漢字変換 MS-IME を利用したとき, 添付ファイル(1input.png→2change.png→3box.png)のようになり, 変換中の文字列が薄灰色地に白文字となってしまって見えず, ほとんど使い物になりません.Linux でも同様の現象が見られるそうです. 比較対象として,メモ帳での様子を 9notepad.png に付けました. メモ帳と同じようになってくれれば十分です.
TeXworksの開発元に改修をお願いするとしたら,どのように伝えれば 理解してもらえるでしょうか? ちなみに,開発元のサイトは https://code.google.com/p/texworks/ になります.
たすくです。
黒木さん、はじめまして。
TeXworks のテキスト入力には QTextEdit の派生クラスが使われているようですので、 まず、QTextEdit 自体でその問題が再現するか確認してはいかがでしょう?
QTextEdit でも再現する場合は Qt 4 の問題ですので https://bugreports.qt-project.org/ へバグ報告をお願いします。
QTextEdit で再現しない場合には、詳細な再現手順と QTextEdit では再現しない旨を TeXworks に伝えて修正してもらうのがいいと思います。 https://code.google.com/p/texworks/source/browse/trunk/src/CompletingEdit.cp... void CompletingEdit::updateColors() で色まわりを変更しているのでこの辺のような気がしますが、 Qt4 のデバッグ環境はもう手元に無いのでこれ以上は調べていません。
ちなみに Gentoo Linux amd64 の環境で最新の texworks (r1391) をビルドして qimsys という日本語入力ソフトで入力したところ Windows よりは若干いいですが意図しない動作(IM 側で指定している色と描画が異なる) になりますね。 参考のため画像を添付します。
r1391 をビルドするとエラーになったのでそれを修正するためのパッチも添付します。
よろしくお願いします。
たすくさん,
黒木です.
ご丁寧にありがとうございます.ソースコードにも目を通していただいて, 色の変更を行っているところをご指摘いただきましてありがとうございます. 他のOS/IMEでも意図しない動作が再現することと,怪しそうな ソースコードの場所が提示できれば,このままひとまず上流に報告 できそうな気がするので,挑戦してみます.
# Qt を使ったプログラミングに慣れていないもので,怪しいとにらんで # おられるところの値をちょっと変更して試してみようかと, # https://code.google.com/p/texworks/wiki/BuildingOnWindowsMinGW # を参考にコンパイルしてみたのですが,__cxa_throw_bad_array_new_length # が見つからないという実行時エラーを食らってしまいまして,立ち往生して # います;お恥ずかしい限りです.
2015年1月5日 11:57 Tasuku Suzuki stasuku@gmail.com:
たすくです。
黒木さん、はじめまして。
TeXworks のテキスト入力には QTextEdit の派生クラスが使われているようですので、 まず、QTextEdit 自体でその問題が再現するか確認してはいかがでしょう?
QTextEdit でも再現する場合は Qt 4 の問題ですので https://bugreports.qt-project.org/ へバグ報告をお願いします。
QTextEdit で再現しない場合には、詳細な再現手順と QTextEdit では再現しない旨を TeXworks に伝えて修正してもらうのがいいと思います。 https://code.google.com/p/texworks/source/browse/trunk/src/CompletingEdit.cp... void CompletingEdit::updateColors() で色まわりを変更しているのでこの辺のような気がしますが、 Qt4 のデバッグ環境はもう手元に無いのでこれ以上は調べていません。
ちなみに Gentoo Linux amd64 の環境で最新の texworks (r1391) をビルドして qimsys という日本語入力ソフトで入力したところ Windows よりは若干いいですが意図しない動作(IM 側で指定している色と描画が異なる) になりますね。 参考のため画像を添付します。
r1391 をビルドするとエラーになったのでそれを修正するためのパッチも添付します。
よろしくお願いします。
黒木さん、
たすくです。
qmake は Qt 4 にしか対応していないようですが、 cmake の方は Qt 5 でもビルドできるようになっていたんですね。
というわけで手元の Qt 5 の環境でビルドしたところ変換中に文字が白くなる同じような現象になりました。 Gentoo Linux amd64, Qt 5(5.4 branch), poppler(master branch), texworks(trunk) だいたい自分でビルドした、かなり最新に近い環境です。
Windows でその環境を整えてビルドするのは結構骨が折れそうですが頑張ってやってみてください。
私の方でも暇を見つけて原因を探ってみたいと思います。
たすくさん,
黒木です.
早速コンパイルを試してくださってありがとうございます.Qt のバージョンに よって色味が変わるというのはそれはそれで気持ち悪い気もします(※)が, とにかく再現するというのは,報告するのに有益な情報です.
(※)Windows用のバイナリでも 4 年くらい前までは,灰地に白字という,この どうしようもない状態ではなくて,もう少し字が見えました.Qt のバージョン アップによる影響にも言及しておいた方が,TeXworksの上流としては報告を 受け入れやすいでしょうね.
... 原因を探ってみたいと思います。
私が確信を得るためにやってみようと思っていた実験は,ソース上の
.75 * bgR + .25 * fgR, .75 * bgG + .25 * fgG, .75 * bgB + .25 * fgB
といった係数を,異なる配分にしたり,合計が1ではないようにしてみて, 変化を見るといったことでした.
2015年1月7日 1:58 Tasuku Suzuki stasuku@gmail.com:
黒木さん、
たすくです。
qmake は Qt 4 にしか対応していないようですが、 cmake の方は Qt 5 でもビルドできるようになっていたんですね。
というわけで手元の Qt 5 の環境でビルドしたところ変換中に文字が白くなる同じような現象になりました。 Gentoo Linux amd64, Qt 5(5.4 branch), poppler(master branch), texworks(trunk) だいたい自分でビルドした、かなり最新に近い環境です。
Windows でその環境を整えてビルドするのは結構骨が折れそうですが頑張ってやってみてください。
私の方でも暇を見つけて原因を探ってみたいと思います。
黒木さん、
たすくです。
http://doc.qt.io/qt-5/qtextedit.html#setExtraSelections QTextEdit::setExtraSelections() を使用し、QTextFormat::FullWidthSelection で 現在の行の背景のフォーマットを指定した場合に、 日本語入力などが指定する変換のハイライト用の背景色の設定が適用されずに 変換中の文字が読みにくくなる現象になるということが分かりました。
この現象は Qt 側のバグだと思いますので、とりあえずバグを報告しておきました。 https://bugreports.qt.io/browse/QTBUG-43756 余裕があったら修正もしたいと思いますが、あまり期待しないでください。
TeXworks では「設定」の「エディタ」の「現在カーソルのある行をハイライトする」のチェックを外すことで とりあえず問題は回避できると思うので試してもらえますか?
よろしくお願いします。
たすくさん,
黒木です.
この現象は Qt 側のバグだと思いますので、とりあえずバグを報告しておきました。
原因究明,ありがとうございます. まさかそこまで波及してくるとは,と驚いたところですが,すっきりしました.
TeXworks では「設定」の「エディタ」の「現在カーソルのある行をハイライトする」のチェックを外すことで とりあえず問題は回避できると思うので試してもらえますか?
おっしゃるとおりで直りました.ありがとうございます. (非常に遠い記憶に,そういう対処法があったような気がするのですが, すっかり忘れていました.)
2015年1月11日 1:27 Tasuku Suzuki stasuku@gmail.com:
黒木さん、
たすくです。
http://doc.qt.io/qt-5/qtextedit.html#setExtraSelections QTextEdit::setExtraSelections() を使用し、QTextFormat::FullWidthSelection で 現在の行の背景のフォーマットを指定した場合に、 日本語入力などが指定する変換のハイライト用の背景色の設定が適用されずに 変換中の文字が読みにくくなる現象になるということが分かりました。
この現象は Qt 側のバグだと思いますので、とりあえずバグを報告しておきました。 https://bugreports.qt.io/browse/QTBUG-43756 余裕があったら修正もしたいと思いますが、あまり期待しないでください。
TeXworks では「設定」の「エディタ」の「現在カーソルのある行をハイライトする」のチェックを外すことで とりあえず問題は回避できると思うので試してもらえますか?
よろしくお願いします。