\abc{…}→\xyz{$…$}といった置換をしたNo.01808
KojiMatsui さん 00/09/27 17:06
 
 KMです。
お世話様です。

texファイルで\newcommandマクロを多用しているんですが
数式やフォントサイズを縮小する\scaleboxコマンドを毎回入力するのが面倒なので
\newcommand{\s}[1]{\scalebox{0.9}[0.9]{$#1$}}
という風にマクロを作って
\s{x+y=z}
などと入力して縮小化を図っています。

で、texファイルのコンパイル不具合が生じて
\sマクロを外して
\s{x+y=z}

\scalebox{0.9}[0.9]{$x+y=z$}
という風に置換したいのですが
[置換ダイアログボックスの検索(S)]に「\s{ 」
[置換(E)]に「\scalebox{$ 」
と入力したのですが
これで置換すると
\s{x+y=z}は
\scalebox{0.9}[0.9]{$x+y=z}
という風になってしまいますよね。
それだとコンパイル時にエラーとなってしまうので
「 {$…」に対応する「 } 」を探して「 $} 」に書き換えるのに苦労します。
勿論、[対応する括弧を強調表示(K)]にはチェックを入れてはいるんですが
なにせファイルの規模が大きくてかなり遠くに対応括弧がある時事が殆どなので大変
です。

どうか
\s{x+y=z}

\scalebox{0.9}[0.9]{$x+y=z$}
という風に置換したい場合には何うするのでしょうか?

更に、、、
\newcommand{\sC}[3]{{\genfrac{}{}{0pt}{1}{}{#1}}{\displaystyle\sum_{#2}^{#3}
}}
というマクロも作っているんですがこれも同様に
\sC{a}{b}{c}

{\genfrac{}{}{0pt}{1}{}{a}{\displaystyle\sum_{b}^{c}}
という風に置換出来る方法を教えて下さい。
宜しくお願い致します。


_____________________________________
xxxxxxxxxxx@mb2.seikyou.ne.jp
_____________________________________

[ ]
RE:01808 \abc{…}→\xyz{$…$}といった置No.01814
きいろいまふらあ さん 00/09/28 10:47
 
KMさんこんにちは。きいろいまふらあです。

>\s{x+y=z}
>↓
>\scalebox{0.9}[0.9]{$x+y=z$}
>という風に置換したいのですが

上の例で「x+y+z」の部分が毎度変わるということですよね。
・この部分に「}」「改行」を含まない。
・「\s{」とあったら必ず対応する「}」が存在する。
という前提でよいなら、「正規表現」を使って

\\s{\f[^}]+\f}

\\scalebox{\$\1\$}

と置換したらどうなるでしょう?
ご希望通りに動作しますか?

>\sC{a}{b}{c}
>↓
>{\genfrac{}{}{0pt}{1}{}{a}{\displaystyle\sum_{b}^{c}}

どこが固定でどこが変化する部分かよくわかりませんが、
上の応用で行けると思います。

[ ]