=============================================================== MMエディタ [文書整形マクロ]ver.1.22   For Windows95/NT   (C) t.shibasaki, 1999/ 5/26  =============================================================== ============   はじめに ============  これは文書を整形するマクロです。このパッケージには以下の7個のファイルが入っ ています。 seikeibn.mac [文書整形マクロ] テキスト全体を整形するマクロです。 seikeidn.mac [段落整形マクロ] 一段落(=一論理行)を整形するマクロです。 seikeimn.mac [マニュアル段落整形マクロ] 段落単位でインデント位置をカーソルで指定して整形するマクロです。 rmkquote.mac [引用文整形マクロ] 引用文を整形するマクロです。 reseikei.mac [整形取り消しマクロ] 整形処理が気に入らなかったとき、範囲を指定して整形を元に戻すマクロです。 menuskei.mac [整形マクロメニューマクロ] 上記の3つの整形マクロをメニュー形式で呼び出すマクロです。 seikei.txt [文書整形マクロセット説明書] このファイルです。 ==============   整形の仕様 ==============  「文書整形マクロ」-seikeibn.mac-と「段落整形マクロ」 -seikeidn.mac-は、下記 の要領で文書の整形を行います。  ・タブは全て半角スペースに変換されます。  ・「表示桁数 - 3」で改行していきます。ですので、表示桁数に連動して整形しま   す。  ・改行時にワードラップをします。半角記号全てを単語の一部としてワードラップし   ます。したがって、U.S.A.やit'sやS/Nや"INSTRUCTION"も一つの単語としてワード   ラップします。  ・改行時に禁則処理をします。改行は追い出し仕様ですので、禁則処理をしても行の   長さは元の整形行よりも長くなることはありません。取り敢えず、一行の1/4くら いまで禁則文字が連続していても対処できます。ので、例えば、"。)。」"といっ た行頭禁則文字の4連続にも対応できます。 ・ワードラップ処理と禁則処理が同一行で同時処理されなければならないときでも処  理します。  ・見出し行タグがある場合は、整形をした上で各行頭に見出し行タグを挿入します。   改行桁数もフォントの大きさに応じて整形桁数を再計算し直しますので、印刷時に   行末が揃うように整形されます。(デフォルトは拙作「表現力九倍マクロ(9bai100.   lzh)」の設定に合わせてあります。)  ・インデントも実行されます。見出し行タグで始まっている文もインデントします。   インデントの仕様は以下の通りです。   * スペースがあれば、それでインデントされます。    その中の全角スペースがあれば、通常の日本語の文章でと見なして最初の行が一    字下がるようにスペースを挿入します。    すべて半角スペースであれば、英文と見なして最初の行頭のスペース分だけイン    デントします。   * 箇条書きの場合、箇条書きの部分をのぞいた本文の行頭を揃えます。    - 箇条書きに使える文字は、1) アラビア数字(全角/半角、いずれも可)、2) ア    ルファベット(全角/半角、大文字/小文字、いずれも可)、3) ローマ数字(TU    Vetc.)、4) 丸数字(@ABとか)、5) 「・」、6) 「*」、7) 「-」の7種で   す。    - 上記の1),2),3)を使って箇条書きした場合は、全角/半角ピリオド、後括    弧「)」(全角/半角)のいずれかで区切った上で、その後にスペース(全角/半角    いずれでも可)を入れてください。それで正しく箇条書きと認識されます。    少々面倒だなと感じられるかもしれませんが、こうしないといろいろと誤認識    する場面がでてきます。    - 上記の1),2),3),を使って箇条書きしている場合、例えば、「1-a.」といった    書き方でも箇条書き部分と判断して整形されます。これは何段でもokです。    - 上記の4),5),6),7)を使って箇条書きした場合は、区切りは不要です。    - タブを使って段落の頭の位置決めをしているときもインデントされます。但    し、タブはすべて半角スペースに変換されます。( 電子メール等の文書では、    タブはスペースに変換した方がいいのではないか、と思ってますので、この仕    様にそう問題はなかろう、と思っています。) ・引用符(ここでは">""|""》""|")で始まる段落は、何もしません。 ・強調符(ここでは"#")で始まる段落は、行頭に強調符と最初の行のスペースを挿入  して整形します。  「マニュアル整形マクロ」-seikeimn.mac-は以下の点をのぞいて、「文書整形マク  ロ」-seikeibn.mac-と同じ仕様で整形します。  ・インデント量はマクロ実行前にカーソル位置で設定します。このマクロを実行す   ると、段落の2行目以下が、カーソル位置にインデントされます。  ・引用符で始まる文もお構いなく、整形します。(そりゃ、そんなん無視したい時に   使うマクロですから。)  ・見出し行タグ機能には対応していません。見出し行タグで始まる行で実行すると   2行目以降は素に戻ってしまいます。  「引用文整形マクロ」 -rmkquote.mac-は、以下の仕様で引用文を整形します。  ・選択範囲を一つの引用文と見なして、整形します。行単位での範囲選択をしていな   いときは、何もしません。  ・選択範囲の最初の部分の引用符をその文全体の引用符として、整形します。選択範   囲の最初に引用符がないときは、何もしません。  ・「表示桁数-3」で改行を入れていきます。次の行の行頭には、引用符が入ります。  ・引用符が連続しているときもそれを忠実に再現します。10文字連続まで大丈夫で   す。  ・最初の行で引用符と本文の間にスペースがあった場合、その分、インデントしま   す。  ・整形した後は、「(改行位置を変更しました。m(__)m)」を次の行に付け加えます。  「整形取り消しマクロ」 -reseikei.mac-は、以下の仕様で改行を取り除きます。  ・選択した範囲内の改行を削除。  ・その際、この文書整形マクロで打った(と思われる)行頭の   * スペース(全角/半角とも)   * 見出し行タグ   * 引用符   をいっしょに削除します。 ====================   インストール方法 ==================== 1. lhaツールで解凍して、使用するマクロをMMエディタがあるディレクトリに入 れて下さい。 2a. 使うマクロを「マクロの登録」で登録します。これで「登録したマクロの実行」 から実行できますが、いずれかのキーにマクロを割り当てて実行するようにする と 便利です。頻繁に使うようであれば、そうすることをお薦めします。 2b-1. メニュー形式で選べるようにして実行した方が便利だ、ということで、 menuskei.macを使われる方は、menuskei.macだけの登録で結構です。 ==========   使い方 ==========  1. seikeibn.mac 何も難しいことはありません。ただ、実行してください。全文を一気に整形しま す。  2. seikeidn.mac 何も難しいことはありません。整形したい段落のどこかにカーソルを移動して、実 行してください。一段落を整形します。  3. seikeimn.mac カーソルをここでインデントしたいという位置に持っていって、このマクロを実行 してください。  4. rmkquote.mac 整形したい引用文を行選択で選択して、実行してください。  5. reseikei.mac 整形を元に戻したい行を選択して、このマクロを実行してください。改行/行頭 スペース/見出し行タグ/引用符が削除されて、整形前の状態に戻ります。 =================== カスタマイズの方法 =================== この「文書整形マクロ」は、結構決め打ち的な仕様で、強引に処理をしてしまいます ので、ここが気に食わんなあ、という思いを持つ方もいらっしゃると思います。また、 見出し行機能に対応したことで、この部分のカスタマイズというか設定合わせは必ず必 要になってくると思います。そこら辺のところについて。 A.文書整形マクロ(seikeibn.mac) 1. 「引用符は、XXを追加したい。」という場合。 40行目の qChar = ">|》|"; の">|》|"の中に追加したい文字を入れてください。 2. 「整形桁数は、表示桁に連動なんていわないで、固定したい。」という場合。 38行目の "xwide = Margin - 3;" の"Margin/2*2 - 3"をその桁数に直してください。 3. 「禁則処理は要るが、ワードラップ機能なんていらんぜ。」という場合。 200行目と203行目の行頭に"//(半角スラッシュを二つ)"を入れ、 201行目と204行目の行頭に"//(半角スラッシュを二つ)"を取ってください。 4. 「ワードラップはいるが、禁則処理なんていらない。」という場合。 200行目と203行目の行頭に"//(半角スラッシュを二つ)"を入れ、 202行目と206行目の行頭に"//(半角スラッシュを二つ)"を取ってください。 5. 「禁則処理もワードラップもいらん。」という場合。 59行目の kinsoku(); // 禁則&ワードラップ処理 の行頭に"//(半角スラッシュを二つ)"を入れてください。 6. 「タブを半角スペースに変換するってのは強引だなあ。やめろよ。」という場合。 25行目の "PutChr(71 << 8); // 文書全体を選択し、" と 26行目の "PutChr(147 << 8); // タブを半角スペースに変換" と 27行目の "Select(0); // 選択モードを解除" の行頭に"//(半角スラッシュを二つ)"を入れて、機能を外してください。 6. 「インデントしたくない。」という場合 48行目の "countspc(); // インデント数計算" と 61行目の "indent(); // インデント処理" の行頭に"//(半角スラッシュを二つ)"を入れて、機能を外してください。 7. 見出し行機能の設定が「表現力九倍マクロ(9bai100.lzh)」と違っていて、それに設 定を合わせる場合。 96行目の "xwide = xwide*6/11 + 4;" が見出し行タグ"/*M1*/"の整形桁数を計算する式になっています。 以下、 98行目が"/*M2*/"、 100行目が"/*M3*/"、 102行目が"/*M4*/"、 104行目が"/*M5*/"、 106行目が"/*M6*/"、 108行目が"/*M7*/"、 110行目が"/*M8*/"、の整形桁数を計算する式になっています。 "xwide = xwide*6/11 + 4;"の式の中の"*6/11"の部分を "通常表示フォントのポイント数/見出し行フォントのポイント数" としてください。 B.段落整形マクロ(seikeidn,mac) 1. 「引用符は、XXを追加したい。」という場合。 39行目の qChar = ">|》|"; の">|》|"の中に追加したい文字を入れてください。 2. 「整形桁数は、表示桁に連動なんていわないで、固定したい。」という場合。 38行目の "xwide = Margin - 3;" の"Margin/2*2 - 3"をその桁数に直してください。 3. 「禁則処理は要るが、ワードラップ機能なんていらんぜ。」という場合。 200行目と203行目の行頭に"//(半角スラッシュを二つ)"を入れ、 201行目と204行目の行頭に"//(半角スラッシュを二つ)"を取ってください。 4. 「ワードラップはいるが、禁則処理なんていらない。」という場合。 200行目と203行目の行頭に"//(半角スラッシュを二つ)"を入れ、 202行目と206行目の行頭に"//(半角スラッシュを二つ)"を取ってください。 5. 「禁則処理もワードラップもいらん。」という場合。 59行目の kinsoku(); // 禁則&ワードラップ処理 の行頭に"//(半角スラッシュを二つ)"を入れてください。 6. 「タブを半角スペースに変換するってのは強引だなあ。やめろよ。」という場合。 26行目の "Select(2); // 文字選択モードにして" と 27行目の "REdge(); // 段落末まで選択" と 28行目の "PutChr(147 << 8); // タブを半角スペースに変換" と 29行目の "Select(0); // 選択モードを解除" の行頭に"//(半角スラッシュを二つ)"を入れて、機能を外してください。 6. 「インデントしたくない。」という場合 48行目の "countspc(); // インデント数計算" と 61行目の "indent(); // インデント処理" の行頭に"//(半角スラッシュを二つ)"を入れて、機能を外してください。 7. 見出し行機能の設定が「表現力九倍マクロ(9bai100.lzh)」と違っていて、それに設 定を合わせる場合。 96行目の "xwide = xwide*6/11 + 4;" が見出し行タグ"/*M1*/"の整形桁数を計算する式になっています。 以下、 98行目が"/*M2*/"、 100行目が"/*M3*/"、 102行目が"/*M4*/"、 104行目が"/*M5*/"、 106行目が"/*M6*/"、 108行目が"/*M7*/"、 110行目が"/*M8*/"、の整形桁数を計算する式になっています。 "xwide = xwide*6/11 + 4;"の式の中の"*6/11"の部分を "通常表示フォントのポイント数/見出し行フォントのポイント数" としてください。 C.マニュアル整形マクロ(seikeimn.mac) 1. 「整形桁数は、表示桁に連動なんていわないで、固定したい。」という場合。 35行目の "xwide = Margin - 3;" の"Margin/2*2 - 3"をその桁数に直してください。 2. 「禁則処理は要るが、ワードラップ機能なんていらんぜ。」という場合。 55行目と58行目の行頭に"//(半角スラッシュを二つ)"を入れ、 56行目と59行目の行頭に"//(半角スラッシュを二つ)"を取ってください。 3. 「ワードラップはいるが、禁則処理なんていらない。」という場合。 55行目と58行目の行頭に"//(半角スラッシュを二つ)"を入れ、 57行目と61行目の行頭に"//(半角スラッシュを二つ)"を取ってください。 4. 「禁則処理もワードラップもいらん。」という場合。 45行目の kinsoku(); // 禁則&ワードラップ処理 の行頭に"//(半角スラッシュを二つ)"を入れてください。 5. 「タブを半角スペースに変換するってのは強引だなあ。やめろよ。」という場合。 20行目の "Select(2); // 文字選択モードにして" と 21行目の "REdge(); // 段落末まで選択" と 22行目の "PutChr(147 << 8); // タブを半角スペースに変換" と 23行目の "Select(0); // 選択モードを解除" の行頭に"//(半角スラッシュを二つ)"を入れて、機能を外してください。 D.引用文整形マクロ(rmkquote.mac) 1. 「引用符は、XXを追加したい。」という場合。 13行目の qChar = ">|》|"; の">|》|"の中に追加したい文字を入れてください。 その場合、半角文字は最初に、全角文字は最後に入れてください。 半角文字を入れた場合は、29行目の "if(Result > 1) // 全角文字なら、1バイト増やす" の1を増やした分だけ増やして ください。 ===============  補足・注意 ===============  1. 箇条書きの符号の書き方が間違っている所まではチェックできません。たとえば  「(1) )」とか「1()」でもこの部分を箇条書きと見て整形します。  2. 箇条書きが入れ子になっている場合(箇条書きの分の中に更に細かい箇条書きがあ  る場合)には、正しく整形されません。ちょっとそこまでやるには力不足でした。 ===============  転載・改変について ===============  このマクロはフリーソフトウェアであり転載は自由にして頂いてかまいません。  また、私の力不足を補っていただける方も多いと思いますので、至らぬ所を改良され  ることも歓迎します。ただ、その場合出典を付記していただければ、幸いです。 ========= 改訂履歴 ========= ・ 1997年 2月 2日 ver.1.00 初版完成。 ・ 1997年 2月22日 ver.1.01 - 英文で実行すると冒頭の一単語分インデントされてしまうというとんでもない不 具合を直した。 - 「・」「*」を使って箇条書きした場合は、その後をスペース等で区切らなくて もきちんと認識するようにした。 - どうしてもこれらのマクロで対応しきれないものに対応するため、カーソル位置 でインデント位置を指定して整形するマクロを付け加えた。 - メニュー用のマクロを付け加えた。 - DispOff2()関数を使って動作のスピードアップを図った。 ・ 1997年9月20日 ver.1.10 - 「表現力九倍マクロ(見出し行機能)」で装飾したものも正しく整形されるように し た。 - ワードラップ機能をパワーアップした。 * ピリオドを単語中の含むもの。(例: U.S.A., Mr.McDonald, etc.) * アポストロフィーを単語中に含むもの(例: It's, Mr.Hashimoto's, etc.) * スラッシュを単語中に含むもの(例: S/N, etc.) * 会話文/引用語等 「"」が、語頭にある場合 これらが正しくワードラップされるようにした。 - 禁則文字が複数連続している場合でも正しく処理されるようにした。それに伴っ て禁則処理は追い出し仕様とした。 - 引用符で始まる文章は、無視するようにした。 - マクロの構成を変更した。 * 「段落整形マクロ」は不要と判断し、パッケージから削除。 * 整形のやり直しの機能が必要と判断し、「整形取り消しマクロ」をパッケージ に 追加した。 ・ 1997年11月28日 ver.1.20 - パッケージに「引用文整形マクロ」を追加 - パッケージに「段落整形マクロ」を復活 - 禁則処理/ワードラップ機能の改良 * 英単語+禁則文字でうまく処理されないものがあった不具合を直した。(例 : main() で、()が行末にかかっている場合。) * 禁則処理のモジュールで一字改行位置が右にずれてしまう不具合を直した。 * 禁則文字が連続している場合、不要な追い出しをしてしまう不具合を直した。 - 見出し行もインデント(しかも箇条書き対応!! - そんなんいらんか。)するように した。 - 引用文と見出し行が連続しているときに(そんなことになるときはないでしょう が。)うまく整形されない不具合を直した。 - 引用符を複数設定できるようにした。 (デフォルトは、 前バージョン ">" のみ。 新バージョン ">", "|", "》","|" の5種類。追加 可能。) - 強調文(一般的な呼び名ではないと思いますが、"#"で始まる文です。)を再整形す  るようにした。 - [EOF]が行頭にない場合にMMをハングアップさせてしまう不具合を直した。 ・ 1999年 2月21日 Ver.1.21 seikeibn.mac / seikeidn.mac - 禁則処理の仕様を変更。 * スペース以外のAscci文字であるものは全てワードラップするようにした。 結果、たとえば、いままでなら、\1,000,000.-は、カンマのところでワードラ ップされていたのが、これ全体をひとつの単語と見なしてワードラップされる ようになった。 - 折り返し桁数が3200に拡大されたのに対応。 - 登録マクロが30から80に増えたのに対応。 reseikei.mac - 空行があったとき、誤動作するバグを修正。 - マクロ実行前にカーソルが行途中にあったときに誤動作するバグを修正。 - 折り返し桁数が3200に拡大されたのに対応。 mnseikei.mac - ワードラップ処理の仕様を変更。 * Ascci文字であるものは全てワードラップするようにした。 - 登録マクロが30から80に増えたのに対応。 rmkquote.mac - マクロ実行前にカーソルが行途中にあったときに誤動作するバグを修正。 - ワードラップ処理の仕様を変更。 * Ascci文字であるものは全てワードラップするようにした。 - 折り返し桁数が3200に拡大されたのに対応。 menuskei.mac - 整形マクロを選んだらすぐに終了する仕様に変更。 - それに伴い、終了ボタンを削除。代わりにメニューにタイトルを付けた。 ・ 1999年 5月26日 Ver.1.22 reseikei.mac - 表示設定の張り付け後のカーソル位置が「最後へ移動」になっている時、誤動作 するバグを修正。 seikei.txt - インストール方法にあった不要な記述を削除。 以上