|
あべのり@ユーザです.
以下に示すマクロでどうでしょう?
・その行がコントロールシークエンスから始まっていたら,そのコントロールシーク
エンスを参考にラベル付けを決める.
・そうでなければ今いる環境に応じてラベルを決める.
環境はネストには対応していません.(一番近くのbeginを見てるだけです.)
どの環境にどの文字を当てるかなどは三行目以降で設定してください.
ところで,秀丸の話から外れますが,このようなラベル付けをしていると引用する時
に困りません?
# 自分は定理自体の名前や「これこれのための定理」とかいうようにつけています.
--------------------------
call Init;
if(##return == 0)endmacro;
else if(##return == 2){
if($cmd == "section")$label = "s";
}else{//環境内
if($env == "equation")$label = "e";
else if($env == "definition")$label = "d";
else if($env == "theorem")$label = "t";
}
$label = $label + hour + minute + char(val(month) - 1 + 'a');
if(val(day) <= 26)$label = $label + char(val(day) - 1 + 'a');
else $label = "z" + char(val(day) - 27 + 'a');
insert "\\label{" + $label + "}";
endmacro;
Init:
$buf = searchbuffer;
#opt = searchoption;
##x = x;##y = y;
disabledraw;
searchup "\\\\begin\\{(.*?)\\}",regular;
if(result){
#envl = ytolineno(foundtopx,foundtopy);
#envc = xtocolumn(foundtopx,foundtopy);
$env = gettext(foundtopx,foundtopy,foundendx,foundendy);
##r = strstr($env,"{");
$env = midstr($env,##r + 1,strlen($env) - ##r - 2);
}
moveto ##x,##y;
golinetop2;
if(code == '\\'){
right;
##nx = x;##ny = y;
#cmdl = lineno;
while(code != '{' && lineno == #cmdl)right;
$cmd = gettext(##nx,##ny,x,y);
}
moveto ##x,##y;
enabledraw;
if(#envl == 0 && #cmdl == 0)return 0;
else if(#envl > #cmdl || (#envl == #cmdl && #envc >= #cmdc))return 1;
else return 2;
---------------------------
>秀丸エディタでTeXソースファイルを作成するとき,
>ラベル(\label{abcd})を大量に使います.
>このラベルは絶対に同じものがあってはならないため,
>\label{abcd}の文字列`abcd'を選ぶのに神経を使います.
>この文字列`abcd'を秀丸エディタ上で自動的に付けられないものでしょうか?
>現在,私が実行している方法は,例えば,
>
> \label{e1740fkb} や \label{d1742flc}
>
>のようなものです.文字列`e1740fkb'や`d1742flc'の e は数式,
>d は定義で,1740 と 1742 はラベルを付けるときの時刻です.
>fkb と flc はラベルを付けるときの日付です.日付と時刻を
>用いる事により絶対に同じ文字列は出来ません.fkb の f は
>2006年を,k は11月を,b は2日を表します.
>1月,2月,...12月を a b...l で,1日,2日,3日,...30日,
>31日を a, b, c ... zb, ze にしています.
>これを秀丸エディタ上で自動的に付けることは出来ないもので
>しょうか?
>数式や定義や定理などを多用する理工系の論文などを書いている
>人ならば,このことを痛感すると思います.
>この場には秀丸エディタの名人が大勢いることですし,何か良い方法
>を考え出していただけると助かります.
>秀丸エディタ名人の方々,どうぞ,宜しくお願いします.
> Knotopologynn
|
|