特定のファイルを削除するマクロとは?No.02420
KojiMatsui さん 01/09/21 16:39
 
KojiMatsuiです。
お世話様です。
Win2kで秀丸3.08を使用しています。

hoge.texをが属するディレクトリにある別のファイル
hoge.aux、hoge.idx、hoge.log、…
(これらはtexコンパイル時の副産物)

を削除するようなを削除するマクロhogedelete.macを作りたいのですが
それにはどうコーディングすればいいのでしょうか?

hoge.texをリコンパイルする際にこれらの副産物を毎回削除してからリコンパイルし
たいのです。
_____________________________________
xxxxxxxxxxx@mb2.seikyou.ne.jp
_____________________________________

[ ]
RE:02420 特定のファイルを削除するマクロNo.02422
ひろ さん 01/09/21 18:18
 
 KojiMatsui さん今日は、ひろです。
> hoge.texをが属するディレクトリにある別のファイル
> hoge.aux、hoge.idx、hoge.log、…
> (これらはtexコンパイル時の副産物)
>
> を削除するようなを削除するマクロhogedelete.macを作りたいのですが
 ファイル削除となると、execfile でファイルの存在を確認後、run 文で、
runsync2 "cmd.exe /c del \"" + $file + "\"";
を使うか、DDE サーバや DLL などの外部ツールを使う事になると思います。

> hoge.texをリコンパイルする際にこれらの副産物を毎回削除してからリコンパイルし
> たいのです。
 ただ何故、毎回削除してからリコンパイルしたいのか解りません。杉浦さ
んが、
http://www.ceres.dti.ne.jp/~sugiura/hidemaru/macros/download.html#tex_mc
で公開してくださっている「TeX Module Control with HIDEMARU Macro」等
を使用すれば、そういったことを気にせず、必要に応じて複数回コンパイル
してくれます。通常これで十分だと思うのですが...。

[ ]
RE:02422 特定のファイルを削除するマクロNo.02423
KojiMatsui さん 01/09/22 00:02
 
KojiMatsuiです。
ご回答有難うございます。

Ms/Mr ひろ wrote in hidesoft.4:02422|.
>  ファイル削除となると、execfile でファイルの存在を確認後、run 文で、
> runsync2 "cmd.exe /c del \"" + $file + "\"";
> を使うか、DDE サーバや DLL などの外部ツールを使う事になると思います。
hogedel.macには
runsync2 "cmd.exe /c del \"" + $file + "\"";
と記述すればいいのでしょうか?

>> hoge.texをリコンパイルする際にこれらの副産物を毎回削除してからリコンパイルし
>> たいのです。
>  ただ何故、毎回削除してからリコンパイルしたいのか解りません。杉浦さ
> んが、
コンパイルエラーが出るとエラーを箇所を修正してリコンパイルしても
)
Runaway argument?
! File ended while scanning use of \@newl@bel.
<inserted text>
                \par
l.9 \begin{document}
                    \medmuskip=2mu
?

となってしまいます。
副産物を削除するとエラーも無くなりコンパイルが成功します。
そういうわけで今回のような質問が生じました。

> http://www.ceres.dti.ne.jp/~sugiura/hidemaru/macros/download.html#tex_mc
> で公開してくださっている「TeX Module Control with HIDEMARU Macro」等
> を使用すれば、そういったことを気にせず、必要に応じて複数回コンパイル
> してくれます。通常これで十分だと思うのですが...。
ご紹介有難うございます。

tmc_3310.lzhを解凍しました。その際にインストール方法として
解凍先フォルダには
「秀丸(マクロ)のフォルダ名」を指定し、解凍オプションとして必ず
             ^^^^^^^^^^^^^^^^^^^^^^^^
 「書庫内のフォルダ名を有効にする」を指定して下さい。

とあるのですが"有効にする"とはどういう事でしょうか?
(何か特定の解凍ツールを使用するのでしょうか)


_____________________________________
xxxxxxxxxxx@mb2.seikyou.ne.jp
_____________________________________

[ ]
RE:02423 特定のファイルを削除するマクロNo.02424
山紫水明 さん 01/09/22 10:25
 
 KojiMatsuiさん,こんにちは。

 ちょっと余計なことかもしれませんが。
 私は Tex のことは知りませんので,特定の拡張子を除くファイルを削除するマ
クロを考えてみました。
 hoge.tex の属するフォルダで実行してみてください。
 なお,このマクロには田楽DLLを秀丸のフォルダに置いておくことが必要です。
多分ご存じですよね。

//-----------------------------------------------//
$ext = ".tex";  //残すファイルの拡張子
loaddll( hidemarudir + "\\DengakuDLL.dll" );
if (!result) {
    message "田楽DLL をロードできませんでした。";
    endmacro;
}
#r = dllfunc("SETCURDIR",directory);
#r = dllfunc("ENUMFILE","*.*");
while (1) {
    $file = dllfuncstr("FINDNEXT");
    if ($file == "") break;
    if( rightstr($file, 4) != $ext ) {
        #r = dllfunc("REMOVE", " '" + $file + "'");
        #i = #i + 1;
    }
}
message str(#i) + " 個のファイルを削除しました。";
freedll;
endmacro;
//--------------------------------------------------//

     では, (^^)/~
                                        山紫水明

[ ]
RE:02423 特定のファイルを削除するマクロNo.02425
ひろ さん 01/09/22 14:02
 
 KojiMatsui さん今日は、ひろです。
> hogedel.macには
> runsync2 "cmd.exe /c del \"" + $file + "\"";
> と記述すればいいのでしょうか?
 そうです。もちろん $file は削除する文字列を記憶させておく必要があ
ります。面倒なら、削除したい拡張子毎に、
runsync2 "cmd.exe /c del *.log";
の要領で羅列すれば良いと思います。

 以後 TeX と言っても、エラーログから LaTeX だと思いますので、それを
前提とします。
> コンパイルエラーが出るとエラーを箇所を修正してリコンパイルしても
 エラーがでたら、ソースを修正すれば、通常その様なことは無いはずです。
 例外的に、\label 等の *.aux などの外部ファイルに出力される命令で、
その出力結果がコンパイルエラーとなるようなタイプミスをしている場合は、
その様なことが起き得ます。しかしその様な場合も、「?」が表示された時
点で、[r] 等を入力して、一度そのまま無視してコンパイルしてしまえば、
*.aux などが書き変わるので、それほど問題にはなりません。
 更にコンパイルする度に、*.aux などのファイルを削除してしまうと、
LaTeX の特徴の一つである相互参照など、一旦外部ファイルに出力して、そ
れを 2, 3 度目のコンパイル時に読み込んで利用する機能の全てが使えなく
なってしまいます。
→ですから今回のようなマクロは、LaTeX の場合には全く向きません。
 KojiMatsui さんは @nifty でもお見かけする方と同一自分ですよね。そ
うであれば、TeX については、私などがお答えするより、FTEX の猛者にご
質問されたほうが良いでしょう。また @nifty の会員でなくても、
http://www.nifty.ne.jp/forum/fprint/ftex/ で質問できたと思います。私
が理由を尋ねたのが、事の発端ではありますが、TeX についてのこれ以上の
ことは、そちらでお願いします。

> tmc_3310.lzhを解凍しました。その際にインストール方法として
> 解凍先フォルダには
> 「秀丸(マクロ)のフォルダ名」を指定し、解凍オプションとして必ず
>              ^^^^^^^^^^^^^^^^^^^^^^^^
>  「書庫内のフォルダ名を有効にする」を指定して下さい。
>
> とあるのですが"有効にする"とはどういう事でしょうか?
> (何か特定の解凍ツールを使用するのでしょうか)
 これは秀丸の使い方ではなく、アーカイバについてですよね。本来は、アー
カイバのヘルプなどを御覧いただくべき問題です。またそれを無視して、助
言を与えようにもこれだけの情報では、お使いのアーカイバも解らず、何も
助言できません。
 とはいっても最近のアーカイバは、何の設定をしなくてもフォルダ付きで
解凍すると思います。解凍後にできる tmc_all_3310.lzh を更に解凍し、
tmc_main.mac と tex_mc フォルダをマクロ用のフォルダに移動してくださ
い。

 なお蛇足ではありますが、BiBTeX で利用される *.bib の作成支援マクロ
や、TeX 用の強調定義ファイルが、こちらのライブラリにも登録されていま
す。

[ ]