|
>一つのファイル(主ファイル)から\input/\includeされているファイル(サブファイ
>ル)のすべてでこれをすることが最終的な目的です.
それでしたら,\input/\includeを列挙することも自動化すればよいのではないかと
思いました.
# Iranoanさんの方法ならばそちらも達成できていますが.
さっきのを使うと次のようにできます.
loaddll macrodir + "\\fortex\\sub\\macrodll.dll";
##_ = dllfunc("SETHMJREDLL",hidemarudir + "\\HMJRE" + ".DLL");
$file = "C:\main.tex";
##_ = dllfunc("TEXPROJECT_CREATEFILELIST",$file);
##n = dllfunc("TEXPROJECT_COLLECT","","\\\\label\\{(.*)\\}","\\1");
##k = 0;
##i = 0;
while(##i < ##n){
$$l = dllfuncstr("TEXPROJECT_COLLECTGETSTR",##i);
$$n = dllfuncstr("HASHSTRSTR_GET",$$l);
if($$n == "h"){
$$out[##k] = $$l;
##_ = dllfunc("HASHSTRSTR_SET",$$l,"t");
##k = ##k + 1;
}else if($$n == "")##_ = dllfunc("HASHSTRSTR_SET",$$l,"h");
##i = ##i + 1;
}
freedll;
newfile;
disabledraw;
##i = 0;
while(##i < ##k){
insert $$out[##i] + "\n";
##i = ##i + 1;
}
enabledraw;
endmacro;
$fileに親ファイルをいれてください.
単に一覧だけ出すようにしていますが,もう少しいじるとどのファイルの何行目にラ
ベルがあるかも出力するようにできます.
|
|