Miyamiyaの『★MMエディタ』掲示板1 2008年03/19
戻る
>re:re:MMエディタでの改行コードについて返答 投稿者:田中
|
2008年3月19日(水)18時49分
ご返信有り難うございます。判りました。
私の環境の問題化もしれませんので、もう一度試してみます。
LINUXで作ったテキストをWINDOWSで開いて編集することがよくあるため、
改行コードがいろいろ入り組んでいるのかもしれません。
こちらで、改行コードを整えてから試用するようにしたいと想います。
迅速な対応有り難うございました。
それでは、失礼します。
>re:MMエディタでの改行コードについて返答 投稿者:Miyamiya
|
2008年3月19日(水)13時16分
田中さんへ。
こちらで、改行コードがCRLFで保存してあるテキスト(Windowsでは普通はCRLFです)を読み込んで
検索キーワードに「^\t*[ −+ー*=]*\-*\+*\t*[ −+*=ー]*\-*\+*\n」と書い
て、置換キーワードを空欄にして個別の置換処理をしてみましたが、
1回の置換処理に対して、タブやスペースと記号だけの行の、CRLFを含んだ1行全体が
削除されますので、特に問題はないようです。
LFやCRだけの改行の読みについては、改善するようにしておきます。
>re:MMエディタでの改行コードについて返答 投稿者:田中
|
2008年3月18日(火)13時30分
ご返信有り難うございます。
私の説明不足で申し訳ありません。
正規表現での改行コードの処理の問題なのですが、テキストファイル中のタブやスペースと記号だけの行を削除しようと思い、
検索キーワードに「^\t*[ −+ー*=]*\-*\+*\t*[ −+*=ー]*\-*\+*\n」と書いて、置換キーワードを空欄にして置換処理をしたとき、
改行コードがCRLFのテキストでは、一度で置換されない行が出てしまい何度か同じ置換を繰り返すと希望する通りになります。
改行コードがLFだけのテキストでは、この様なことは起きず、一回の置換で全ての置換が出来るようです。
以上、一度お確かめ下さい。
後もう一つ、ショートカットから改行文字の文字コードを読ませた場合、CRLFでもLFやCRだけの物でも全て、「0d0a」と読み上げるようです。
>re:MMエディタでの改行コードについて 投稿者:Miyamiya
|
2008年3月18日(火)10時53分
田中さんへ。
MMエディタのデフォルトの改行コードは、CRLFです。
正規表現置換を実行するとき、キーワードに「¥n」を入れて実行すると
改行コードが「LF」のみになってしまうようです。
ということですが、具体的に、検索文字列、置換文字列に、どのような文字列を
指定されて実行された時のことでしょうか。
「\d」と「\s」を正規表現で使えるように、については、今後検討してみます。
>MMエディタでの改行コードについて 投稿者:田中
|
2008年3月17日(月)10時39分
MMエディタを最近試しに使わせてもらっています。
そこで一つ質問なのですが、MMエディタのデフォルトの改行コードは、
何なのかお教え願います。
私の環境だけかは判りませんが、文章をCRLFで保存してから、正規表現置換を実行するとき、キーワードに「¥n」を入れて実行すると
改行コードが「LF」のみになってしまうようです。
正規表現で改行コードを入れるときは、「\r\n」で実行しなければいけないのでしょうか?
文章全てを「LF」の改行コードで保存してから置換を実行すると、正常に希望通りの結果が出ます。
それと、希望なのですが、「\d」と「\s」を正規表現で使えるようにしてもらえないでしょうか?
数字の検索は結構頻繁に使用すると想うのですが
それでは、よろしくお願いします。
>GREPの実行後の表示について 投稿者:satoru
|
2008年2月27日(水)13時06分
宮崎様
早速のご回答、ありがとうございます。
確かに、<高速モードで実行する> のチェックをはずすと、
何度実行しても、表示の不具合は起きませんでした。
(チェックを入れると、まともだったり、おかしかったり…と
その時によってマチマチでした)
このまま、様子をみながら使用していきたいと思います。
この度は、ありがとうございました。
>re:GREPの実行後の表示について 投稿者:Miyamiya
|
2008年2月27日(水)12時04分
satoruさんへ。
こちらでは、同じモードで試してみましたが、再現しないです。
表示は若番行から順番に表示されます。
もしかしたら、<高速モードで実行する>では、表示を最後にまとめてしますので
これをチェックしないとうまく表示するかもしれません。
>GREPの実行後の表示について 投稿者:satoru
|
2008年2月26日(火)18時06分
宮崎様 お世話様でございます。
GREPの実行後の表示について、お伺いします。
<現在編集中のテキストを対象とする>
<正規表現で検索>
<行頭へ行番号を表示する>
<一致した行数を表示する>
<高速モードで実行する>
以上にチェックを入れ、たとえば 半角数字の1が20行ある状態で
[^2]
を実行すると、GREPの結果が
( 6) 1
( 7) 1
( 8) 1
( 9) 1
( 10) 1
( 11) 1
( 12) 1
( 13) 1
( 14) 1
( 15) 1
( 16) 1
( 17) 1
( 18) 1
( 19) 1
( 20) 1
: 一致した行数は 20 行です。
----- 無題 2 -----
( 1) 1
( 2) 1
( 3) 1
( 4) 1
( 5) 1
と、1桁の行の1〜5行目の表示が、下のほうに来てしまうのですが、
どうしたものでしょうか。
抽出結果としては、間違いないのですが、
表示が若番行からしっかり表示されると助かるのですが……
この現象、再現されますでしょうか。
何卒よろしくお願いいたします。
2008年1月25日(金)13時45分
ご返答ありがとうございました。
再度、昨日のメールを送信してみました。
ご確認いただけませんでしょうか。
2008年1月25日(金)10時35分
ろういちさんへ。
メールの送信先は、
miyamiya@am-corp2.com
で、間違いないです。
エラーが出たのは、メールアドレスが間違っているのではなくて、何か別の問題
ではないでしょうか。再度送信されてみてください。
2008年1月24日(木)18時39分
宮崎様
ご返答ありがとうございました。
早速、資料となるファイルをメールで送信しようと思ったのですが、トップページにある「miyamiya@am-corp2.com」に送ったところ、エラーになって返ってきてしまいました。
この書き込みフォームの下にある「メール」をクリックして出てくるメルアド(mailto:miyamiya-corp2.com)には、「@」がなく、送れません。
どのアドレスに送信すればよろしいでしょうか?
2008年1月24日(木)18時35分
宮崎様
ご返答ありがとうございました。
早速、資料となるファイルをメールで送信しようと思ったのですが、トップページにある「miyamiya@am-corp2.com」に送ったところ、エラーになって返ってきてしまいました。
この書き込みフォームの下にある「メール」をクリックして出てくるメルアド(mailto:miyamiya-corp2.com)には、「@」がなく、送れません。
どのアドレスに送信すればよろしいでしょうか?
>re: 途中が飛んで印刷されます 投稿者:Miyamiya
|
2008年1月24日(木)17時22分
ろういち さん
途中が飛んで印刷される文章例があるとのことですが、
必ずおきるのであれば、
その印刷書式ファイルと、文章の例文を
メールで送ってもらえばテストできると思います。
また、その場合、印刷プレビューでも途中が飛んで表示されていますか。
よろしくお願いします。
2008年1月24日(木)16時18分
宮崎様
数年にわたって、MMエディタを利用しておりますが、時々、文書の途中が飛んで印刷されることがあります。
長い文章・短い文章、ともに起こり、バージョンも問わないようです。
なかなかサンプルが採れなかったのですが、つい先ほど、ちょうどいいサンプルができましたので、必要でしたらお送りいたします。
今行った作業は、1行文字数91に設定して、本来10行になるテキストを印刷したところ、1行目と最終行のみ続けて印刷され、途中がスッカリ抜けてしまっています。つまり、2行のテキストとして出てきました。
こういう症状に対する、対処の方法を教えていただけないでしょうか。
よろしくお願いいたします。
2008年1月21日(月)22時18分
宮崎さん、こんばんは、ヒョンです。
早速対応して頂き有難うございました。
助かります。これで、また、一段と、省力化が進みました。
メニュー表示につきましては、ご指摘のように、分割するようにしました。
保存コマンドについては、SaveAs(fname)のところに、たとえば、SaveAs(I:\tex\****.tex)のように使ってみたく思います。一度やってみます。初歩的な質問で済みませんでした。
それでは、また、これからも宜しくお願いします。
>re:ファイル出力マクロについて 投稿者:Miyamiya
|
2008年1月21日(月)16時06分
ヒョンさんへ。
メニュー項目が100を超える頃になって表示が奇怪しくなり、ということは
そのあたりが同時に表示できるメニュー項目の限界なのでしょう。
一度に表示するメニュー項目の数を100迄に抑えるようなマクロにする
しかないです。メニュー項目が200あるなら、100項目づつ2組に分けるように
してです。
>re:マクロ変更のお願い 投稿者:Miyamiya
|
2008年1月21日(月)15時55分
ヒョンさんへ。
Save();は、現在編集中のファイル内容に変更が有れば、上書き保存する関数です。
SaveAs();は、現在編集中のテキストを、SaveAs(fname);のようにファイル名 fname
を指定して保存します。すでに同じファイルが存在する場合は上書きして保存します。
これらはともに、現在編集中のテキストを保存する関数です。
>re:マクロ変更のお願い 投稿者:Miyamiya
|
2008年1月21日(月)15時40分
ヒョンさんへ。
以下のマクロを使ってみてください。
範囲が選択されていればその範囲内が、選択されていなければ
テキスト全体が対象となります。
------------------------------------------------------------------
main()
{
int endln;
if(Block() == 1 || Block() == 2)
{ // 範囲選択モード
endln = Line() + 1; // 最終行
GoBlok();
Select(0);
}
else
{
Top();
endln = 999999; // 最終行
}
while(Line() < endln)
{
if(Tcode() == 1) // 空行
{
PutStr("\\smallskip");
Ret();
endln++;
}
if(Tcode() == 0) // [EOF]
break;
if(KbHit() == 0x1b) // [ESC]が押されたら中断する
break;
Down();
}
DispOn();
}
------------------------------------------------------------------
2008年1月19日(土)16時53分
以下のマクロを使いまして、ファイルを出力させて、便利に利用させて頂いておりました。ところが、ファイルの数が多くなり、100を超える頃になって、表示が奇怪しくなり、ファイルを出力出来ないようになりました。限界があるのかな、と思うのですが、何か解決策があれば、ご教授願えれば幸いです。説明不足でしたらご指摘願います。
#include
#define MAXMENU 107
main()
{
char *s[MAXMENU];
char str[1060];
int ans;
s[0] = "";
s[1] = "";
PostMessage(Handle(), 0x100, 0x28, 0);
ans = MenuXY(s, MAXMENU, 700, 0);
if ( ans == 1 )
{
Open("C:\\MMEDITOR\\TEX\\書籍リスト.TEX");
}
else if ( ans == 2 )
{
Open("C:\\MMEDITOR\\TEX\\カレンダー.TEX");
}
}
では、宜しくお願いします。
2008年1月18日(金)23時48分
宮崎さん、こんばんは、ヒョンです。いつもお世話になります。
今年も宜しくお願いします。
前回作成して頂きました以下のマクロなんですが、少し使いにくいので、変更して頂けると幸いです。空白行にコマンドを挿入するマクロです。
main()
{
Top();
while(1)
{
if(Tcode() == 1) // 空行
{
PutStr("\\smallskip");
Ret();
}
Down();
if(Tcode() == 0) // [EOF]
break;
if(KbHit() == 0x1b) // [ESC]が押されたら中断する
break;
}
}
このマクロは、無限ループを利用して、文書全体に対して一括してコマンドを挿入するプログラムになっています。これで、確かに一定の利便性を得たのですが、やはり、範囲を指定して、その間にある空白行にコマンドを挿入するマクロが欲しいです。
たとえば、以下のような文字列があった場合に、(行頭の数字は無視して下さい)
@●●●●●●●●●●●●●●●●●●●●
A
B●●●●●●●●●●●●●●●●●●●●
C●●●●●●●●●●●●●●●●●●●●
D
E●●●●●●●●●●●●●●●●●●●●
F●●●●●●●●●●●●●●●●●●●●
G●●●●●●●●●●●●●●●●●●●●
H
I●●●●●●●●●●●●●●●●●●●●
J●●●●●●●●●●●●●●●●●●●●
K●●●●●●●●●●●●●●●●●●●●
L●●●●●●●●●●●●●●●●●●●●
@からLまでを範囲選択して、あるマクロを実行させてやりますと、以下のような結果が得られればいいわけです。
@●●●●●●●●●●●●●●●●●●●●
A\smallskip
B
C●●●●●●●●●●●●●●●●●●●●
D●●●●●●●●●●●●●●●●●●●●
E\smallskip
F
G●●●●●●●●●●●●●●●●●●●●
H●●●●●●●●●●●●●●●●●●●●
I●●●●●●●●●●●●●●●●●●●●
J\smallskip
K
L●●●●●●●●●●●●●●●●●●●●
M●●●●●●●●●●●●●●●●●●●●
N●●●●●●●●●●●●●●●●●●●●
O●●●●●●●●●●●●●●●●●●●●
可能でしたらお願いします。
それから、次に、SaveAs();というコマンドですが、これの使い方が分かりません。
私は、MmEditorを利用しまして、ある場所にあるファイルをある場所にコピーしたいのです。Save();コマンドでは、これを実現できないようなのですが、使い方がもひとつ分かりません。教えていただけると幸いです。
以上、相変わらずですが、宜しくご検討頂ければ幸いです。
>マウスでのスクロール時の、行番号色の不安定について 投稿者:satoru
|
2007年12月28日(金)15時56分
宮崎様
早速の改訂版ありがとうございました。
色の不安定さが、見事に解消されましたことをご報告いたします。
この度は、大変お世話になりました。
今後とも、何卒よろしくお願いいたします。
>re:マウスでのスクロール時の、行番号色の不安定について 投稿者:Miyamiya
|
2007年12月28日(金)12時30分
satoruさんへ。
お送りいただいた書式ファイルで、こちらでも再現しました。
この掲示板の下のほうへ、ベータ版が置いてありますので、それをダウンロードして
使われてみてください。
ファイル名は、mm729b1.lzh で、実行ファイル(mmeditor.exe)のみが入っています。
>マウスでのスクロール時の、行番号色の不安定について 投稿者:satoru
|
2007年12月27日(木)06時43分
宮崎様
ご理解いただきまして、誠にありがとうございました。
私個人のみの現象となりますと、
もしかしたら使用しているマウスとの相性なのかもしれませんね。
ウインドウのサイズの変更をしてみましたが、
複数行白くなってしまった行番号はそのまま白く、
キーボードの上下キーでの行移動で、やっと白色が消えて行きます。
異なるPCとマウスでは? ということでノートPCにて試してみましたが、
やはり同じ現象でした。
もしかして、私の<表示設定>の環境に問題があるのでしょうか……?
念のため、私が使用している<表示設定ファイル>をお送りいたしますので
調査のほど、よろしくお願いいたします。
>re:マウスでのスクロール時の、行番号色の不安定について 投稿者:Miyamiya
|
2007年12月26日(水)12時32分
satoruさんへ。
症状はわかりましたか、こちらではちょっと再現できないです。
ウインドウのタテ幅を少し伸ばすか縮めるかして、編集画面のタテ幅を
少し変更したらどうでしょうか。
>マウスでのスクロール時の、行番号色の不安定について 投稿者:satoru
|
2007年12月25日(火)16時29分
宮崎様
説明がうまくなくて申し訳ありません。
カーソルのある行のみが白色ならいいのですが、
カーソルにてスクロールしますと、範囲選択などしていないのにもかかわらず、
カーソルが通過した行番号はすべて白色になってしまうのです。
例えば、10行カーソルを上下させると、カーソルが通過した10行分の行番号が
すべて白色になってしまうのです。
カーソル行のある行番号が白色になり、上、または下の行にカーソルが移動すれば
それまであったカーソル行番号は、元の色(私の場合、ミドリ)に元るのなら納得なのですが、
白色のまま。まるで白の履歴が残っている感じです。
すみません、これで現象が伝わったでしょうか?
>マウスでのスクロール時の、行番号色の不安定について 投稿者:satoru
|
2007年12月25日(火)15時48分
宮崎様
説明がうまくなくて申し訳ありません。
カーソルのある行のみが白色ならいいのですが、
カーソルにてスクロールしますと、範囲選択などしていないのにもかかわらず、
カーソルが通過した行番号はすべて白色になってしまうのです。
例えば、10行カーソルを上下させると、カーソルが通過した10行分の行番号が
すべて白色になってしまうのです。
カーソル行のある行番号が白色になり、上、または下の行にカーソルが移動すれば
それまであったカーソル行番号は、元の色(私の場合、ミドリ)に元るのなら納得なのですが、
白色のまま。まるで白の履歴が残っている感じです。
すみません、これで現象が伝わったでしょうか?
>re:マウスでのスクロール時の、行番号色の不安定について 投稿者:Miyamiya
|
2007年12月25日(火)13時06分
satoruさんへ。
カーソル行の表示モード を 文字列をカラー表示する の場合は、
行番号色をミドリ色にしていても、テキストの文字色を白色にしていれば、
カーソル行の行番号色も白色になりますが、そういうこととはちがいますか。
>マウスでのスクロール時の、行番号色の不安定について 投稿者:satoru
|
2007年12月24日(月)18時02分
宮崎様
いつもお世話になっております。
スクロール・マウスで画面を上下スクロールさせると、
カーソルのある行番号の色が白色になり、
行番号色が不安定になってしまうのです。
通常、行番号色をミドリ色にしているのですが、
赤にしても黄色にしても、同じようにマウススクロールで白色になってしまいます。
ちなみに、MM7.28(Win XP) を使用しております。
キーボードでの上下スクロールでは、何の問題もないのですが……。
これは私だけの環境でしょうか?
ご教示の程、何卒よろしくお願いいたします。
>re:空白行に文字列を入力したい 投稿者:ヒョン
|
2007年11月13日(火)22時05分
宮崎さん、こんばんは、ヒョンです。
早速に有難うございました。
今度は大変分かりやすいマクロのようで、私でも、少し応用が効きそうです。
いろいろ工夫してみたく思います。
いつも、お世話になり有難うございます。
なかなか自分ではマクロを組めなくて、宮崎さんにはお時間ばかり頂き恐縮に思います。
今後とも宜しくお願い致します。
>re:空白行に文字列を入力したい 投稿者:Miyamiya
|
2007年11月13日(火)17時36分
ヒョンさんへ。
以下のマクロを使ってみてください。
テキスト全体が対象となります。
------------------------------------------------------------------
main()
{
Top();
while(1)
{
if(Tcode() == 1) // 空行
{
PutStr("\\smallskip");
Ret();
}
Down();
if(Tcode() == 0) // [EOF]
break;
if(KbHit() == 0x1b) // [ESC]が押されたら中断する
break;
}
}
------------------------------------------------------------------
2007年11月12日(月)16時29分
宮崎さん、こんにちは、ヒョンです。いつもお世話になります。
今回は空行に文字列を入力したいのでご教授賜ればと思います。
Find();を使って空行を見いだし、そこへカーソルを移動させ、PutStr();で文字列
を挿入したく思います。それを、文章の全てに渡って一括して行いたいたく思います。
図式しますと、以下のようになります。以下のような文字列配列があったとします。
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
で、マクロを作成しまして、結果として、以下のような文字列配列が得られれば
有り難いです。
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
\smallskip
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
\smallskip
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●
理解して頂けたでしょうか?
MAMHELPを検索してみましたが、空行を示すキーワードが見当たらず、Find();は
使えないような気がしました。私の乏しい知識の中ではマクロを組む事は出来ない
ようで、またまたお時間を頂くようになるかもしれませんが、書類の編集の省力化
に大いに貢献しますので、宜しくお願い出来ればと思います。
2007年10月15日(月)22時30分
宮崎さん、こんばんは、ヒョンです。いつもお世話になります。
またまた、お時間を割いて頂きまして有難うございました。
内容を見ますと、やはり、今までの私の知識では無理な注文だったようで、
助かりました。これで、編集作業が随分楽になります。
有難うございました。今後とも宜しくお願い致します。
>re:まとめて同じコマンドを入力 投稿者:Miyamiya
|
2007年10月15日(月)16時35分
ヒョンさんへ。
以下のマクロを使ってみてください。
範囲選択してから実行してください。
------------------------------------------------------------------
main()
{
int endln;
int sIns = Ins();
int sInd = Indent();
InsMode(1);
AIndent(0);
if(Block() == 0)
return;
endln = Line(); // 最終行
GoBlok();
Select(0);
while(Line() < endln - 1)
{
Down();
PutStr("\\smallskip\n");
Ret();
if(KbHit() == 0x1b) // [ESC]が押されたら中断する
break;
endln += 2; // 最終行+2
}
InsMode(sIns);
AIndent(sInd);
}
------------------------------------------------------------------
>re:まとめて同じコマンドを入力 投稿者:ヒョン
|
2007年10月14日(日)02時28分
宮崎さん、こんばんは、ヒョンです。いつもお世話になります。
努力もしないで失礼しました。今まで、沢山のマクロを作ってきましたので、それを
参考にして、以下のマクロを作ってみましたが、目的は達成されませんでした。
コメント頂けると幸いです。範囲選択した後の処理マクロです。
main()
{
char str[1010];
GetSelText(str, sizeof(str) - 10);
Delete();
sprintf(str, "%s\\smallskip\n\n", str);
PutStr(str);
}
結果以下のようになります。
ととととととととととととととととととととと
ととととととととととととととととととととと
ととととととととととととととととととととと
ととととととととととととととととととととと
\smallskip
これでは、こまる訳でして、以下のようにしたい訳です。
ととととととととととととととととととととと
\smallskip
ととととととととととととととととととととと
\smallskip
ととととととととととととととととととととと
\smallskip
ととととととととととととととととととととと
>re:複数ファイルの連結マクロについて 投稿者:Miyamiya
|
2007年10月11日(木)12時55分
satoruさんへ。
拡張子の付いていないファイルも閲覧・選択できるようにするには、
ファイル選択のリストビューのエディットボックス(初期状態で *.txt となっている所)
に *.* と指定すればよいです。
>複数ファイルの連結マクロについて 投稿者:satoru
|
2007年10月10日(水)16時47分
宮崎様 いつもお世話になっております。
<複数ファイルの連結マクロ>についてご相談なのですが、
ファイルを選択する際、拡張子の付いていないファイルも
閲覧・選択できるようになるのは可能でしょうか?
MAC側から来るテキストファイルが、しょっちゅう拡張子が付いていないことが多いので、
拡張子無しの複数ファイルも連結できたら非常に作業効率があがるのですが。
可能かどうか、ご検討の程、何卒よろしくお願いいたします。
>re:まとめて同じコマンドを入力 投稿者:ヒョン
|
2007年10月4日(木)17時52分
宮崎さん、こんばんは、ヒョンです。いつもお世話になります。
説明が足りませんでした。
範囲指定してやって、一挙に、コマンドなり空行なりを挿入してやりたいのです。
そうしないと、私の意図は実現しません。範囲指定した全行に渡って、同じ作業
をしたい訳です。宜しくお願い致します。
>re:まとめて同じコマンドを入力 投稿者:Miyamiya
|
2007年10月1日(月)16時34分
ヒョンさんへ。
これくらいのテキストの変更でしたら、キーボードマクロで簡単に行えます。
マクロメニューの キーボードマクロの記録開始、終了 で操作を記録します。
記録した後は、キーボードマクロの保存 で保存しておけば、後で
キーボードマクロの読み込み で読み込んで使えます。
2007年9月30日(日)10時52分
宮崎さん、こんにちは、今日はお休みでしょうが、書いておきますね。月曜日お願い
します。
最近頻繁にエディタを使うようになりまして、TeXのコマンドを入力する事が多くな
りました。で、以下のような場合に、何か、方法がないものでしょうか?
●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●
こういう文字列が続いた場合に、この文字列同士の間に、以下のように、TeXのコマ
ンドを挿入したいのです。それが、結構大変な作業なので、自動化出来ないか、
いう、厚かましい希望なんです。
●●●●●●●●●●●●●●●●
\medskip
●●●●●●●●●●●●●●●●
\medskip
●●●●●●●●●●●●●●●●
それから、同じような希望なんですが、以下のような文字列が続いた場合に、
●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●
この空行の間に、TeXのコマンドである「\medskip」を入れたいのです。
●●●●●●●●●●●●●●●●
\medskip
●●●●●●●●●●●●●●●●
\medskip
●●●●●●●●●●●●●●●●
どちらの場合も結果は同じなんですが、前者の場合は、空行がなく、後者の場合は
、空行が予め入っています。
難しければ結構です。頻繁に使うもので、出来れば、という事です。宜しくお願い
します。いつもお世話になり有難うございます。
2007年9月29日(土)11時23分
宮崎さん、こんにちは、ヒョンです。有難うございました。
ショーカットキー設定の機能グループ→ラインエディットで、キーを割りつけたところ
うまく機能しまして、希望の作業が終了しました。助かりました。
今後とも宜しくお願い致します。
2007年9月28日(金)12時35分
ヒョンさんへ。
矩形選択モードに入るには、ショーカットキー設定の機能グループ→ラインエディット
の 矩形選択モード に指定されているキーを使えばいいです。
標準では、Shift+F6 と Ctrl+K, B が指定されています。
このどちらかのキーを押せば、矩形選択モードに入れます。
Ctrl+K, B は、Ctrlキーを押したままKキーを押した後に、Kキーを離した後に、
Bキーを押してください。矩形切り取りのマクロは、MMエディタに標準で付いている
マクロです。
2007年9月27日(木)11時30分
宮崎さん、こんにちは、ヒョンです。いつもお世話になります。
やってみましたが、実現出来ませんでした。既に利用している私のマクロが邪魔して
うまくいかないのです。
それで、そのマクロを外してみたのですが、「Ctrl+k」は出来るのですが、次に、「b」を押しますと、カーソル先頭に「b」または「ひらがな(私の場合は、は)」が出ます。ので、範囲選択モードに入りません。困りました。
で、宮崎さんに作っていただいたマクロがありますので、
その使い方を教えて頂けないでしょうか?どうもうまくいかなくてイライラします。
// MMマムマクロ[矩形ブロックの切り取り]
// blokcut.mam
// (C) y.miyazaki, 1999/06/23
//
main()
{
int xx, n, xb;
if(Block() != 3) // 矩形ブロックモードでなければ
{ // 行、文字ブロックの切り取り を呼ぶ
BlokCut();
return;
}
DispOff2();
xb = Selcolm();
xx = -1;
if(Selcolm() < DCol())
xx = DCol();
n = Line();
GoBlok();
if(Line() < n)
{
n = Line();
GoBlok();
}
Global1 = 0;
Select(0);
while(Line() > n)
{
Up();
GotoX(xb);
Select(2);
if(xx < 0)
REdge();
else
GotoX(xx);
BlokCut();
Global1++;
}
DispOn();
}
>re:ユーザーIDについて 投稿者:Miyamiya
|
2007年9月25日(火)11時59分
魚住守さんへ。
この掲示板では、ユーザー登録ID関連の内容を書くことは、禁止されていますので、
使用されているソフト名を書いて、個人メールにて、直接お問い合わせください。
2007年9月24日(月)11時34分
PCを交換したため新規に前のIDを入力しましたが
受け付けてくれません!
何かやり方があるもでしょうか?
m-uozumi@sf.stercat.ne.jp
2007年9月19日(水)15時15分
ヒョンさんへ。
矩形切り取りマクロは最初からMMエディタにセットされていて、シォートカットキーも
セットされていますので、簡単に使えます。
まず選択したい矩形ブロック位置へカーソルを移動して、Ctrl+K B(Ctrl+K
を押した後に Bを押します)で範囲選択します。
そして、範囲選択したい行の分だけカーソルを下へ移動します。
そして、範囲選択したい桁の分だけカーソルを右へ移動します。
これで、範囲選択作業は完了です。
切り取りは Ctrl+K Y (矩形ブロックの切り取り のマクロの実行)
コピーは Ctrl+K K (矩形ブロックのコピー のマクロの実行)
貼り付けは Ctrl+K J (矩形ブロックの挿入 のマクロの実行)
です。
2007年9月18日(火)15時42分
宮崎さん、こんにちは、ヒョンです。
あはは、違うのです。結果として、ああいう部分だけを得たいが出来ないので、
ヒントを教えていただきたいという事なんです。マクロがうまく機能しないので、
困っているんです。マクロを作っていただいたんですが、使い方を忘れてしまった
ようなんです。マクロは以下のとおりです。宮崎さんに作っていただきました。
// MMマムマクロ[矩形ブロックの切り取り]
// blokcut.mam
// (C) y.miyazaki, 1999/06/23
//
main()
{
int xx, n, xb;
if(Block() != 3) // 矩形ブロックモードでなければ
{ // 行、文字ブロックの切り取り を呼ぶ
BlokCut();
return;
}
DispOff2();
xb = Selcolm();
xx = -1;
if(Selcolm() < DCol())
xx = DCol();
n = Line();
GoBlok();
if(Line() < n)
{
n = Line();
GoBlok();
}
Global1 = 0;
Select(0);
while(Line() > n)
{
Up();
GotoX(xb);
Select(2);
if(xx < 0)
REdge();
else
GotoX(xx);
BlokCut();
Global1++;
}
DispOn();
}
宜しくお願いします。
2007年9月18日(火)10時19分
ヒョンさんへ。
実行結果をみると、123 234 345 の部分が切り取られていて、0000000000 だけの
文章になっていますので問題ないのではないでしょうか。
矩形切り取りとは、そのような機能です。
2007年9月16日(日)19時06分
宮崎さん、今晩は、また、お世話になります。
矩形切り取りをやりたいのですが、うまく行きません。
123 0000000000
234 0000000000
345 0000000000
このような文章が長く続いた場合に、この、「123 」の部分を取り去って、
「0000000」だけの文章にしたい訳です。結果を表示しますと、以下のようになり
ます。
0000000000
0000000000
0000000000
で、ヘルプを見ますと、いろいろ出てくるのですが、なかなか目当ての項目に到達
しませんです。以前、マクロを作ったのですが、うまく機能しないんですよね。
多分、簡単な事なんでしょうから、ヘルプの何処を見たらいいのかだけでも、教え
て下さいませんか?どうも、なかなかなもので、音を上げてしまって(笑)。
2007年9月15日(土)21時54分
宮崎さん、今晩は、ヒョンです。有難うございました。実現しましたです。
助かります。今後とも宜しくお願い致します。
2007年9月14日(金)12時21分
ヒョンさんへ。
履歴へファイル名がセットされるのは、ファイルを開いたときですから
char fname[300];
GetFileName(fname);
のようにして、ファイルを閉じる前に現在のファイル名を取得しておいて、
そのファイルを閉じた後の、最後の位置で、
以下のようにして、そのファイルを開いて閉じてやると、
結果的に、そのファイル名が履歴の一番上へ来るようになります。
Open(fname);
Close();
2007年9月13日(木)17時20分
宮崎さん、こんにちは、ヒョンです。
レス有難うございました。何回か試してみましたが、なんとなく、偶然に、載る
ようです(笑)。どちらの場合も、確実な保証は無いという事です。
ので、確実に、「ファイル」項目に掲載されるようにするマクロがあれば、いいん
ですけど。それだけで、随分助かるんですよ。ご検討下さると有り難いです。
2007年9月13日(木)16時11分
ヒョンさんへ。
本来は、
main()
{
Save();
Close();
}
のようなマクロで、履歴の内容が更新されることはないですが、
この場合は、タイミングの関係で、偶然に更新されているようです。
同じような動作にするなら、SaveAs();の後の
TimeOutMessage(mess, 1);
での表示を行わないようにすると、同じ動作になるかもしれません。
2007年9月12日(水)18時23分
宮崎さん、今晩は、ヒョンです。いつもお世話になります。
今回は、エディタ左上にあります、「ファイル」項目についてです。この「ファイル」
を押してやりますと、以前使用したファイル名が表示されるようになっております。
で、最近、頻繁に、エディタを使うようになりまして、前回使ったファイルを捜すの
に困っていました所、あるマクロを使ってやりますと、ちゃんと、「ファイル」項目
の一番に、当該ファイルが表示される事を発見致した次第です。
そのマクロとは、私が、勝手に作ったマクロなんですが、簡単なんですよ(笑)。
main()
{
Save();
Close();
}
これだけなんです(笑)。これで、「ファイル」項目の一番に来ます。
でも、私は、バックアップを取って置きたいために、以下のようなマクロを使用しま
して、メモリスティックにも保存するように設定しております。ところが、このマ
クロを使いますと、「ファイル」の一番項目には来ません。行方が分からなくなる
のですよ。なんとか、なるでしょうか?お願いします。
以下マクロを表示します。分かるようでしたら、お願いします。私の勝手で作った
マクロですので、読みづらいかもしれませんが。
#include
struct _TABLE{
char *dir, *bk, *ext;
};
#define ITEM 5
struct _TABLE TABLE[ITEM] = {
{"C:\\MmEditor\\MAM", "I:\\MAM", "MAM"},
{"C:\\MmEditor\\MAM", "I:\\MAM", "H"},
{"C:\\MmEditor\\MAM", "I:\\MAM", "SUB"},
{"C:\\MmEditor\\TEX", "I:\\TEX", "TEX"},
{"C:\\MmEditor\\TXT", "I:\\TXT", "TXT"},
};
#define MAX_PATH 300
main()
{
char orig[MAX_PATH], dir[MAX_PATH], name[MAX_PATH], bkpath[MAX_PATH];
GetFileName(orig);
if(!sep_path(orig, dir, name)) return;
int i;
for(i = 0; i < ITEM; i++){
if(!Strcmpi(dir, TABLE[i].dir) &&
!Strcmpi(Strrchr(name, '.') + 1, TABLE[i].ext))
goto SAVE;
}
PlayWave("c:\\windows\\media\\ding.wav", SND_SYNC);
LoadFile("Fujii.sub");
TimeOutMessage("条件にあわなかったので保存しませんでした。", 2);
return;
SAVE:
sprintf(bkpath, "%s\\%s", TABLE[i].bk, name);
SaveAs(bkpath);
SaveAs(orig);
char mess[600];
sprintf(mess, "%s と\n%s に\n\n保存しました。", orig, bkpath);
PlayWave("c:\\windows\\media\\chimes.wav", SND_SYNC);
LoadFile("Fujii.sub");
TimeOutMessage(mess, 1);
Close();
}
int sep_path(const char *path, char *dir, char *name)
{
strcpy(dir, path);
char *pt = Strrchr(dir, '\\');
if(!pt){return 0;}
Strcpy(name, pt + 1);
*pt = '\0';
return 1;
}
2007年8月20日(月)19時31分
コメント有難うございました。
仰る事を信用しまして、C:\MMEDITOR\TEXというフォルダ内にある、
あるTEXファイルを開いて、TEXCOMP.MAMを起動させました所、見事に処理に成功
しました。パソコンの機嫌が悪かったんですね(笑)。3カ月も使わなかったから、
忘れてしまっていたようです(笑)。
有難うございました。これで、安心して使う事が出来ます。処理速度も早く助かります。
今後とも宜しくご指導お願い致します。
>re:TEXCOMP.MAM 投稿者:Miyamiya
|
2007年8月20日(月)16時02分
ヒョンさんへ。
動作するマクロに関しては、環境設定の実行するマクロの指定でマクロの場所を
指定してやれば、動作させることは可能です。
TeXcomp.mamが c:\mmeditor\tmacro
というフォルダに格納してあれば、その場所を指定すれば、起動できます。
TEXファイルに関しても、TeXcomp.mamで処理する場合は、まずそのファイルを
開く必要がありますので、どのフォルダにあってもguishellは処理できるはずです。
こちらで、MMエディタのある場所の下に tex というフォルダを作って、そのなかの
texファイルをTeXcomp.mamで処理してみましたが、問題なく処理できました。
環境は、WindowsXP です。
したがって、まずは当方が提供しているオリジナルのTeXcomp.mamを使用してみて
ください。そうすれば、texファイルがどのフォルダにあってもTeXcomp.mamで
処理できるはずです。
2007年8月18日(土)23時52分
宮崎さん、こんばんは。ヒョンです。いつもお世話になります。
確認しましたところ、マクロ.mamは、MmEditor本体内に存在する設定によって、
その格納場所を指定する事が出来ます。ですから、宮崎さんが仰るように、
MmEditor.exeが存在する同じフォルダ内に存在しなくても、構わないのです。
ですが、私の場合は、たとえば、「宛名.TEX」というファイルを、MmEditor.exe
が存在するフォルダと同じフォルダに格納してやって、それをMmEditorで開き、
TeXcomp.mamで処理してやった場合には、guishell.exeは作動しますが、私が
やっているように、この「宛名.TEX」ファイルを、異なるフォルダに格納した
場合には、guishell.exeは、処理すべきファイルを見付ける事が出来なくなり、
結局、タイプセットに失敗し、途中でストップしてしまう事になります。
その通りなんですが、実は、私は、この「宛名.TEX」というファイルを、
c:\mmeditor\texというフォルダに格納して、それを呼び出して、タイプセットに
成功していた経験があるのです。
そういう現実があるものですから、大層奇怪に思いますし、不便にも思う訳です。
2007年8月15日(水)21時44分
宮崎さん、こんばんは。
問題が解決しました。
MmEditor.exeと同じフォルダに、TeXcomp.mamが存在し、同時に、タイプセットするべき、TeXファイルも同じフォルダにある場合には、問題無く動作します。
だけど、私は、MmEditor.exeが存在するフォルダ「MmEditor」フォルダの下に、「Mam」というフォルダを作成し、そこに、TeXcomp.mamを格納しておりまし、この下で、このマクロは動作しております。ただ、問題は、TeXファイルを何処に置いていたのか、という点です。私は、MmEditorフォルダの下に「TeX」フォルダを作成し、全てのTexファイルをそこに格納し、それを呼び出して、タイプセットしておりました。それで、今までは、動いていたのです。ところが、なにかしらの変更をしたのでしょう、以前と同じ設定が壊れ、guishell.exeが、処理すべきTeXファイルを見付ける事が出来ず、処理しなかった、という事です。
ご指摘のように、TeXcomp.mamをMmEditor.exeと同じフォルダに存在させる事は可能ですが、それですと、このフォルダが、やけに、混乱します。ですから、私は、マクロはマクロのフォルダに、テフファイルはテフファイルの専用のフォルダに格納していた訳です。
これで、今までは、うまく行っていたのです。多分、私は、宮崎さんがお作りになられたマクロを勝手に変更して使っていたんじゃないかと思います。それでないと、今回の事は説明出来ないような気がするのです。ですから、少し、時間をかけて、その辺のところを調べてみたいと思います。
問題は解決したのですが、私にとっては、不便な解決の仕方なので、もう少し工夫をしようと思います。有難うございました。
2007年8月15日(水)18時39分
宮崎さん、こんにちは。
ご指摘の通りやってみましたが、駄目でした。私、texcomp.mamをmmeditor.exeがあるフォルダの下にある、mamフォルダに置いていました。でも、以前は、これで問題なく動いていたんですよね。だから、今回のご指摘を受けて、mmeditor.exeの存在するフォルダにコピーしてみたのですが、駄目でしたので、再起動させてみましたが、駄目でして、で、仕方なく、コマンドプロンプトで作業をやりましたところ、やはりうまくguishellが作動し、dviファイルが生成されまして、それを、私がtexファイルを置いてあるフォルダにコピーしまして、mmeditorを立ち上げ、当該するtexファイルを開いて、タイプセット処理をさせましたところ、guishellの処理をもう済んでいるので、guisheeは起動せず、その変わりに、dviout.exeが起動し、処理された画像を表示してくれました。
困りました。大層便利に利用してたものですから。
>re:TEXCOMP.MAM 投稿者:Miyamiya
|
2007年8月15日(水)12時39分
ヒョンさんへ。
個人的に使用される場合は、マクロをお友達のTeXユーザーの方に見てもらっても
問題はないです。
しかし、TEXCOM.MAM は WindowsXP では問題なく動作しますので、
TeX環境マクロを新たにダウンロードされて、使ってみるというのも一つの方法です。
2007年8月15日(水)07時55分
宮崎さん、おはようございます。散歩しながら考えたのですが、このマクロ、TeXユーザーに見せてもいいですか?結構Cに詳しい方もいらっしゃるようなので、解析して頂ける可能性もありますので。
でも、著作権は、宮崎さんにありますので、やはり、一応、お願いしておきたく思います。お返事頂ければ幸いです。
2007年8月14日(火)21時52分
宮崎さん、こんばんは。
レス有難うございました。お盆ですのにご苦労様です。
ご指摘の点は、クリアしております。ちゃんと、ご指定の場所に存在しますです。
その上で、guishellとMmEditorとの連携が取れていない、という事だと思います。
不思議なんです(^o^)。
>re:縦書きIME入力中の文字確定後 投稿者:kanda
|
2007年8月14日(火)12時39分
了解です。
青文字の段階は終了して、確定しています。
青から黒に変わるとき、ふつうは瞬間的に切り替わりますが、
(IMEからアプリケーションに渡っているのだと思います)
今回のケースでは、ほんの一瞬秒だけ、MMがもたついて?
字を置いていくような動作に見えています。
先述しましたが、わからないのは、PC、IMEの設定を変えていないのに、
発生するアプリ、発生しないアプリがあったことです。
しばらく、設定をいじって試してみます。
ありがとうございました。
>re:縦書きIME入力中の文字確定後 投稿者:Miyamiya
|
2007年8月14日(火)12時26分
kandaさんへ。
(1)と(2)の間に発生します。
と言うことは、まだ青文字の未確定文字の段階と言うことですね。
ポイントの大きさでなったりならなかったりというのは、どうしてでしょうね。
ちょっとわからないです。
>re:TEXCOMP.MAM 投稿者:Miyamiya
|
2007年8月14日(火)12時21分
ヒョンさんへ。
こちらで確認してみましたが、TEXCOM.MAM は WindowsXP では問題なく動作します。
WindowsXP で動かないということは、
Guishell と Dviout が TEXCOM.MAM で指定されている下記の場所に存在しない
ということはないでしょうか。
char *gui = "c:\\ptex\\bin\\guishell.exe";
char *dvi = "c:\\ptex\\bin\\dviout.exe";
>re:縦書きIME入力中の文字確定後 投稿者:kanda
|
2007年8月14日(火)06時49分
文字間が開くのは、
(1)IMEで確定までの動作をして、「リターン」を押して(私の環境では青文字)、
(2)MMエディタが表示をする?(同、黒文字化する)
(1)と(2)の間に発生します。
@MS明朝だけで、「あいうえおかきくけこさしすせそ」とIMEで入力して
9〜12pで確認してみると、9、12pでは発生せず、10、11pで発生します。
また、ATOK17、MS-IME2007、Japanist2003でもIMEそれぞれの挙動の違いは
ありますが、ほぼ同一でした。
時間があったので、PCとIMEの設定はそのままで、他のエディタ(試用版含む)でも
試してみたのですが、発生するものとしないものがあり、かえってわからなく
なりました……(^^;;;
IMEの設定かもしれないとのことですので、いろいろ試してみます。
2007年8月13日(月)19時36分
宮崎さん、レス有難うございました。
使っているOSはXPです。今まで、動いていたのが動かなくなったので、原因が
分からず、困っています。
コマンドラインで、guishell.exe やdivout.exeを利用する事は出来るんですよ。
ちゃんと動きますです。でも、MmEditorのTexcomp.mamを経由して、タイプセット
しようとするとエラーが出てしまうのです。
>re:縦書きIME入力中の文字確定後 投稿者:Miyamiya
|
2007年8月13日(月)18時08分
kandaさんへ。
一瞬、モニョッと文字間が開き、
と言うのは、編集画面に文字が表示される前の、未確定文字の段階と言うこと
でしょうか。未確定文字の段階であれば、IMEが表示を行っていますので、
はっきりとはわかりませんが、IMEの何かの設定が関係しているかもしれません。
>re:TEXCOM.MAM 投稿者:Miyamiya
|
2007年8月13日(月)18時01分
ヒョンさんへ。
使われているOSは何でしょうか。
こちらで使用しているVistaで試してみましたが、TEXCOM.MAMは、うまく動かないです。
TEXCOM.MAMでは、DDE通信を使ってguishellやDviout.exeを起動していますが、
Vistaでの、DDE通信を使ってのguishellやDviout.exeの実行では、
guishellもDviout.exeもうまく実行できずに、エラーになって終了してしまうようです。
したがって、TEXCOM.MAMが動かない理由は、VistaでのDDE通信にguishellやDviout.exe
が対応できていないためではないかと思われます。
単独で起動した場合は、VistaでもguishellもDviout.exeも、問題なく動作します。
>re:縦書きIME入力中の文字確定後 投稿者:kanda
|
2007年8月13日(月)16時36分
こんにちは。返信ありがとうございます。
現在の状況について補足します。
「ひらがなでにゅうりょく」(IME動作)で、リターンを押すと、
一瞬、モニョッと文字間が開き、
「ひ ら が な で に ゅ う り ょ く」(正しい位置?)となります。
あらためて試しましたが、5文字以下だと現象は小さい、または見られず、
文が長くてひらがなが多いと見られるような状況です。
動き方が一様でない気がします。
こちらの環境IMEも確認してみた方がよさそうですね。
(逆に言うと、IMEで入力中の文字が詰まっているかもしれません)
>re:縦書きIME入力中の文字確定後 投稿者:Miyamiya
|
2007年8月13日(月)15時23分
kandaさんへ。
こちらで試してみましたが、文字間隔0ドットで、縦書き時の@MS明朝11Pや、
もっと大きなフォントでも、特に問題はないです。
MMエディタに表示が移るときに、文字が微妙に動くことがあります。
と言うことですが、これは確定直前に文字間隔が空いてしまうが、確定後の
表示には問題はないということでしょうか。
2007年8月11日(土)18時41分
宮崎さん、こんにちは、お久し振りです。いつもお世話になります。
最近、健康状態が回復しまして、また、パソコンを使うようになりました。で、以前
と同様に、私は、TeXを使ってまして、宮崎さんに作っていただきました、タイトル名
のマクロを利用して、タイプセットしたく思っているのですが、どういう訳か、うまく
動作しなくなりました。で、困りまして、TeX利用仲間のサイトで質問してみました
ところ、乙部さん作のguishellの存在するフォルダに、TeXファイルを移動させ、コ
マンドプロンプトで、guishellを動作させてやれば、という話が出まして、やりまし
たところ、dviファイルが無事生成しました。ですから、guishell.exeや、私の、TeX
環境に原因が無い事が判明した次第です。で、相変わらず、試しているのですが、や
はり動きません。エラー表示が出まして、タイプセットが途中で止まってしまいま
す。
以下のような簡単な文章でさえ、タイプセットに成功しません。
\documentclass[a4p,10pt]{jarticle}
\usepackage{fujii}
\pagestyle{plain}
\begin{document}
おはよう。
\end{document}
宮崎さんに作って頂きましたマクロを以下に掲載しておきます。お忙しいところ大変
申し訳無いのですが、お知恵を拝借出来れば幸いです。
// MMエディタ用[TeXコンパイル&プレビューマクロ]
// TeXComp.mam
// (C) y.miyazaki, 2000/09/16
#define MB_OK 0x00000000L
#define MB_YESNO 0x00000004L
#define MB_ICONQUESTION 0x00000020L
#define MB_ICONEXCLAMATION 0x00000030L
#define IDYES 6
#define SW_SHOW 5
#define WM_SYSCOMMAND 0x0112
#define SC_CLOSE 0xF060
#define SC_MAXIMIZE 0xF030
#define GENERIC_READ (0x80000000L)
#define OPEN_EXISTING 3
#define MenuSelect() PostMessage(Handle(), 0x100, 0x28, 0)
// 関数のプロトタイプ宣言
int Compile(int mode);
void Preview(void);
//
// Guishellのある場所をフルパスで指定して下さい。
char *gui = "c:\\ptex\\bin\\guishell.exe";
// Dvioutのある場所をフルパスで指定して下さい。
char *dvi = "c:\\ptex\\bin\\dviout.exe";
char appname[100], topic[100];
char dfname[300];
main()
{
Preview();
}
// コンパイル
// mode: 1:一回だけ処理, 2:複数処理, 3:Previewよりの
// 戻り値: 0:ERROR, 1:OK, 2:Previewよりでコンパイルなし
int Compile(int mode)
{
static char adname[300]; // アドバイスループで使う配列は static の必要がある
HWND hwnd;
HANDLE shFile, dhFile;
FILETIME sft, dft;
char *p, *p2, s[500], fname[300], efname[300];
int ret;
Save();
GetFileName(fname);
strcpy(dfname, fname);
p = strrchr(dfname, '.');
if(p == NULL || (Strcmpi(p+1, "tex") != 0 && Strcmpi(p+1, "dtx") != 0))
{
Message("このファイルの拡張子は tex ではありません。\n終了します。");
return 0;
}
if(p)
strcpy(p+1, "dvi");
else
strcat(dfname, ".dvi");
shFile = CreateFile(fname, GENERIC_READ, 0,
(void*)NULL, OPEN_EXISTING, 0, (HANDLE)NULL);
if(shFile != -1)
{ // .tex は存在するはず
GetFileTime(shFile, (void*)NULL, (void*)NULL, &sft);
CloseHandle(shFile);
}
dhFile = CreateFile(dfname, GENERIC_READ, 0,
(void*)NULL, OPEN_EXISTING, 0, (HANDLE)NULL);
if(dhFile != -1)
{ // .dvi は存在するなら
GetFileTime(dhFile, (void*)NULL, (void*)NULL, &dft);
CloseHandle(dhFile);
}
if(mode == 1 || mode == 2 ||
dhFile == -1 || CompareFileTime(&sft, &dft) > 0)
{ // .dviは 存在しがないか、更新されていないなら コンパイル
strcpy(appname, "guishell");
strcpy(topic, "guishell");
hwnd = FindWindow("guishell", 0);
if(hwnd == NULL)
{ // guishell を起動
WinExec(gui, SW_SHOW);
hwnd = FindWindow("guishell", 0);
}
if(DdeInitiate(appname, topic) == 0)
{
Message("GUISHELL/DDEサーバが応答しません。");
return 0;
}
adname[0] = '\0'; // Guishell よりの戻り値を得る配列
if(DdeAdvStart("Advise", adname, sizeof(adname)) == 0)
{ // アドバイスループ作成失敗
DdeTerminate();
SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0); // guishellを閉じる
Message("アドバイスループ作成に失敗しました。");
return 0;
}
strcpy(s, "\"--jobname=");
strcat(s, fname);
p = strrchr(s, '.');
*p = '\0';
strcat(s, " ");
strcat(s, fname);
strcat(s, "\"");
if(mode == 1) // 1回だけ
strcat(s, " /ProcessOnce");
else
strcat(s, " /ProcessComplete");
DdeExecute(s);
while(adname[0] == '\0') // Guishellの終了を待つ
DdeAdvWait("Advise", 60000); // MAX 60秒待つ
DdeAdvStop("Advise");
DdeTerminate();
SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Guishellを閉じる
if(mode == 2)
SetFocus(Handle());
if(strcmp(adname, "OK") == 0) // コンパイルOK
ret = 1;
else if(strcmp(adname, "ERROR") == 0) // ERROR ならプレビューはしない
ret = 0;
else
{
if((p = strrchr(adname, ' ')) != 0) // 'e' + [Enter] が押された
{ // adname の形式 => "testlatex.tex 12"
strcpy(efname, fname);
if((p2 = strrchr(efname, '\\')) != 0)
{ // errorファイルが、現ファイルと異なるなら、そのファイルを開く
*p = '\0';
strcpy(p2+1, adname);
//if(Strcmpi(efname, fname) != 0)
{ // そのファイルを開く
Open(efname);
}
}
GoLine(Atoi(p+1)); // エラー行へジャンプ
GotoX(1);
}
}
}
else
{ // .dvi は更新されているなら
ret = 2;
}
return ret; // コンパイル OK = 1, NG = 0, NONE = 2
}
// プレビュー
void Preview(void)
{
int i;
char s[500];
if(Compile(3) == 0) // コンパイルERROR
return;
strcpy(appname, "dviout"); // プレビュー
strcpy(topic, "dviout");
hwnd = FindWindow("dviout", 0);
if(hwnd == NULL)
{ // dviout を起動
WinExec(dvi, SW_SHOW);
hwnd = FindWindow("dviout", 0);
}
for(i = 0; i <= 10; i++)
{ // MAX10回トライ
if(DdeInitiate(appname, topic) == 0)
{ // NG
if(i == 10)
{
Message("DVI/DDEサーバが応答しません。");
return;
}
Sleep(500); // 500ms
}
else // OK
break;
}
// SendMessage(hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0); // 最大化
strcpy(s, "[WinNormal]");
DdeExecute(s);
strcpy(s, "[PageOpen(10000)][FileOpen\(\""); // ページを指定
strcat(s, dfname);
strcat(s, "\"\)]");
DdeExecute(s);
DdeTerminate();
SetFocus(Handle());
SetForegroundWindow(hwnd);
}
それでは、宜しくお願い致します。
>縦書きIME入力中の文字確定後(補足) 投稿者:kanda
|
2007年8月11日(土)17時09分
補足いたします。
「文字間隔」横書き時、縦書き時ともに0ドットです。
>縦書きIME入力中の文字確定後 投稿者:kanda
|
2007年8月11日(土)11時59分
こんにちは! MMエディタ、いつも愛用させていただいてます。
フォントの設定と表示について、気づいたことをお伝えします。
ずっと、9 Pのフォントばかり使っていたのですが、
最近、目の疲れを感じるようになって(^^;
フォントを 11 P にすることが増えました。
特に縦書き時で@MS明朝11P や、10Pなどを使います。
この設定で、IMEでたとえば「ひらがなでにゅうりょく」として、
確定して、MMエディタに表示が移るときに、文字が微妙に動くことがあります。
(もしかすると、私の環境だけでの問題かもしれませんが……)
ちょっと大げさな例ですが、
(1)IME ひらがなでにゅうりょく
(2)表示 ひ ら が な で に ゅ う り ょ く
こんな感じです。
文の長さや文字の混ざり具合によって、動き方は一定ではなく、
私の見ている範囲では、縦書きでしか見られない現象のようです。
長時間入力していると、ちょっと気になってくる現象です。
(横書き時には全く発生しないだけに…)
もし、可能なら、この現象がでなくなるとうれしいと思いました。
以上です。
>re:メール内容を読上げません。 投稿者:MIyamiya
|
2007年7月17日(火)11時39分
梅澤さんへ。
PC起動時にXPリーダーが起動しているのであれば、ツールメニューの全般的な設定の
音声の音声読み上げソフトの設定で、95/98Reader を選択すればリストビューや
メール内容も読むようになります。
MMニュースについても、ニュースメニューメニューの音声の音声読み上げソフトの設定で、
95/98Reader を選択すれば読むようになります。
なお、ここは「MMエディタのサポート掲示板」です。
MMメール2のサポートは、「MMメールのサポート掲示板」で行っていますので、
今後のMMメール2に関する質問はそちらの方へお願いします。
2007年7月16日(月)13時22分
宮崎さん、ご多忙のところ申し訳ございせん。
メール内容を読みあげないので、困っています。
ヘルプを見ても分かりませんでした。サポートをお願いいたします。
MMメール2のユーザーです。
A 音声環境
PC起動時にXPリーダーが起動します。
メール以外ではJAWSを使用することがあります。
B トラブルの内容
1.リストビュ、本文の内容を読みあげません。
2.メールの新規作成時の読上げは、入力するときだけ読上げます。
3.メール作成後に入力した内容を確認したくても、読上げません。
C ニュースはどうしたら読めるようになりますか。何も設定はしていません。
解決方法をご教示ください。よろしくお願いいたします。
2007年6月18日(月)20時50分
宮崎さん、こんばんは。鈴木です。
マクロが動作しました。
ありがとうございました。
これで、文章が読みやすくなりました。
>Re: マクロのお願い 投稿者:Miyamiya
|
2007年6月18日(月)16時21分
鈴木さんへ。
こちらでは問題なく動作しますので、たぶんマクロのコピーが
うまくできていないのでしょう。
最初と最後の行の点線だけの行まで、コピーされていませんか。
もしそうなら、その2行は削除してください。
2007年6月16日(土)19時35分
宮崎さん、こんばんは。鈴木です。
マクロをありがとうございました。
しかし、マクロを実行しても何も変わりませんでした。
マクロの登録方法は間違っていないと思うのですが・・・・・。
>re:マクロのお願い。 投稿者:Miyamiya
|
2007年6月15日(金)15時58分
鈴木さんへ。
以下のマクロを使ってみてください。
「。」を論理行末とみなして、その後ろに改行がなければ改行を付加します。
範囲が選択されていればその範囲内が、選択されていなければテキスト全体が
対象となります。
-------------------------------------------------------------------
main()
{
int endln;
int sIns = Ins();
int sInd = Indent();
InsMode(1);
AIndent(0);
if(Block() == 1 || Block() == 2)
{ // 範囲選択モード
endln = Line(); // 最終行
GoBlok();
Select(0);
}
else
{
Top();
endln = 999999; // 最終行
}
DispOff();
while(Line() < endln)
{
if(Code() == 0x8142) //。
{
Right();
if(Tcode() > 1) // [EOF],改行以外
{
Ret();
endln++; // 最終行+1
}
}
if(Tcode() == 0) // [EOF]
break;
if(KbHit() == 0x1b) // [ESC]が押されたら中断する
break;
Right();
}
DispOn();
InsMode(sIns);
AIndent(sInd);
}
-------------------------------------------------------------------
2007年6月14日(木)12時41分
宮崎さん、こんにちは。鈴木と言います。
マクロを作って頂けないでしょうか。
〜。〜。
のように論理行が連続しているファイルで、
〜。
〜。
のように範囲指定部分、およびファイルを一括して、論理行で改行するマクロが必要になりました。
宜しくお願いいたします。
>re:ファイルの関連づけ 投稿者:Miyamiya
|
2007年5月28日(月)10時17分
佐野竹彦さんへ。
TXTファイルを選択して、変更ボタンを押して、プログラムの一覧を出して、
その中に「MMエディタ」がない場合は、参照ボタンを押して、「MMエディタ」
のある場所を指定してください。
そうすると、プログラムの一覧の中に「MMエディタ」が表示されて、TXTファイルに
関連付けされます。
2007年5月26日(土)13時34分
以前、使っていたパソコン(Windows XP Home Edition SP2)では、
テキストファイルをMMエディタに関連づけるために、
「コントロールパネル」の「フォルダオプション」を開き、
プログラムの一覧を出すと、「テキストエディタ」が
あり、これを選べばよかったのですが、使用していたパソコンが
こわれたので、新しいパソコン(Windows XP
Home Edition SP2)にMMデディタ7.25をインストールし、
ファイルの関連づけをしようとしましたら、
プログラムの一覧の中に「テキストエディタ」が
出てきません。どうすればファイルの
関連づけができるのか、お教えください。
>re:報告:DEP有効時は起動しない 投稿者:Miyamiya
|
2007年4月27日(金)15時07分
朝見さんへ。
データ実行防止機能(DEP)を有効にして使用する場合は、
データ実行防止機能から除外したいプログラムの「追加」ボタンで
MMエディタ を指定してから使ってください。
2007年4月26日(木)21時46分
WindowsXP SP2のデータ実行防止機能(DEP)を有効にするとMMエディタが起動しないようです。
>re:MMHTML文書作成ツールキット について 投稿者:Miyamiya
|
2007年3月28日(水)17時17分
satoruさんへ。
HTML文書作成ツールキットのXHTML対応版というのは、ないです。
タグを小文字で挿入という機能はないです。
MMエディタは、VISTAでも使用可能です。
>MMHTML文書作成ツールキット について 投稿者:satoru
|
2007年3月28日(水)11時20分
いつも御世話になっております。2つほど質問です。
●<HTML文書作成ツールキット V5.60>に関連したことなのですが、<XHTML>対応版というのは、ございますでしょうか? もしくは、現状のツールキットで、タグを小文字で挿入できれば非常に助かるのですが…。
●MMエディタは、VISTA の、新JIS規格でも通常通り使用可能でありましょうか?
何卒、ご教示のほど、よろしくお願いいたします。
2007年3月10日(土)15時39分
大村さんへ。
VDMW300とXPreaderの2つスクリーンリーダーが立ちあがってる状態では、
設定からソフトをXPreaderにきりかえてもVDMW300が読んでしまいますね。
設定がXPreaderになっていれば、MMエディタではXPreaderに読ませているのですが、
VDMW300が起動していると、XPreaderに送ったデータをVDMW300が横取りして
勝手に読んでしまうようです。この場合、設定通りにXPreaderに読ませるには、
VDMW300を終了させるしかないようです。
2007年3月9日(金)10時55分
大村さんへ。
VDMW300を使用している状態での、VDMW300からXPreaderへの変更はできないですね。
これは、可能かどうか調べてみることにします。
2007年3月8日(木)15時03分
宮崎産、先ほど質問した大村ですが、再起動してやってみましたらちゃんと音が出ました。すみません。また2つスクリーンリーダーが立ちあがってる状態で設定からソフトを切り替えるというのは無理なんですね?VDMW300の音を止めるだけでXPreaderに変更してみましたらできませんでした。
またよろしくお願いします。
>XPreaderにすると音が出ません。 投稿者:大村
|
2007年3月8日(木)14時47分
宮崎産、この前はアドバイスをありがとうございました。ショートカットはすでにctrlとsiftと数字キーに割り当てられていたんですね!短縮入力はコピペでうまくいきました。
今回は音声ソフトの件で質問ですが、通常はVDMW300で使っているのですが、友人をサポートするためにXPreaderで使ってみましたら文章を読んでくれません。プルダウンメニューとかは読みます。XPreaderと自動認識の両方を試しましたがダメでした。友人のパソコンはXPreaderしか入ってませんがやはり読みませんでした。MMeditorも何かSSCTのモジュールとか必要だったでしょうか?ちなみにXPreaderに設定してVDMW300を立ち上げたら読んでくれました(どうしてだろう)。
よろしくお願いします。
2007年3月8日(木)12時15分
ヨシ さんへ
>打ち込み済み減価償却費削除方法 投稿者:ヨシ
この件は、会計ソフトのご質問ですので、会計ソフトの掲示板で返信しておきます。
2007年3月8日(木)09時10分
減価償却費が同じ物がダブッて出てきます、その為、決算書の損益計算書の
減価償却費が二倍の金額で表示され、総勘定元帳を調べると、車輌が二台分計上
されています、原因が解ったので一台分を削除しようとして「固定資産一覧」から
削除しても消えません、解りましたら、教えて下さい、お願い致します。
2007年3月3日(土)11時15分
大村さんへ。
環境設定の短縮入力に設定した10個の文字列を他のパソコン移すのでしたら
10個の文字列をファイルへコピーして、それを他のパソコンの短縮入力の文字列に
貼り付けのが、早いのではないでしょうか。
短縮入力文字列の数がたくさんある場合は、mmiのデータ形式で使うことになります。
>短縮入力とショートカットキーの設定データ 投稿者:大村
|
2007年3月2日(金)11時26分
短縮入力で設定したデーターとそれを呼び出すショートカットキーを設定したのですがそれをサブ機にも移行したいと考えています。マニュアルでは見つけられなかったのですがどのようにしたら良いでしょうか?やはり短縮入力のデーターは.mmiのデーターにしたほうが良いのでしょうか?よろしくお願いします。
2007年1月16日(火)11時39分
鈴木さんへ。
MMエディタがスクリーンリーダを外から制御している話なので、ということですが
MMエディタはJawsに対しては何もしていませんので、Jawsのスクリプトを使って
JawsからMMエディタを制御して読ませることはできないのだろうかと思ったわけです。
Jawsのスクリプトを使って Microsoft Wordを読ませているのと同じような方法で
ということです。
2007年1月15日(月)19時23分
宮崎さん、こんばんは。
この件について、MLで質問してみました。
販売元のメンバーから、次のような解答を得ました。
『MMエディタがスクリーンリーダを外から制御している話なので、現状の状態では対応できないだろうと思います。』
と言う事で、Jawsのスクリプトでは解決できないようです。
2007年1月15日(月)11時47分
鈴木さんへ。
Jawsについては詳しくないのですが、MMエディタ用のスクリプトというのは
作れないのでしょうか。MMエディタ用のスクリプトを作って、MMエディタの
表示画面を読むようにはできないのでしょうか。
2007年1月14日(日)13時38分
宮崎さん、こんにちは。
JawsとMMエディタですが、スクリプトでは対応できないようです。
現在、確認しているMMエディタのショートカットキーで使えないのは、
1.MMエディタの読み上げショートカットキー
2.スペースキーで次への空行へのジャンプ
この二点が使えないだけのようです。
マクロなどの他のショートカットキーは問題なく使えています。
2007年1月13日(土)11時24分
鈴木さんへ。
Jawsについては詳しくないのですが、Jawsでは各ソフト用のマクロを組み込んで
使うような仕組みになっているようですので、MMエディタ用のマクロがあれば
MMエディタの表示画面も読めるのではないでしょうか。
そのようにして使われている方もおられるようです。
MMエディタでJawsを使われている詳しい方に聞かれてみるといいです。
2007年1月12日(金)23時59分
宮崎さん、こんばんは。MMエディタの音声エンジンにJawsを追加できないでしょうか?。
Jawsのキーコマンドを使いテキストを読む事はできるのですが、行数を読み上げてしまいます。
他の音声エンジンと同じように読めればと願うのですが、無理でしょうか?。
戻る