Re: 複数回処理マクロはやっぱり危険です

名前: 北見 けん
日時: 2006-10-10 22:01:16
IPアドレス: 211.128.71.*

>>45309 >>45303 > >> 予想どうりのツッコミ > > そうですよね。廣島さんは承知の上だろうと思っていました。 > 失礼な書き方だったかな,と少し後悔しました. 気を悪くしたというようなことはないのでご安心を。 話の発展のためには突っ込みどころを残すのも有効ですよね。 「話題ストッパー」なんて言葉もありましたし。 この話題にかこつけて廣島さんがおそらくもっともいいたかったのが、 後々のマクロ定義でどうとでもできるということのよさなんだろうと思います。 ホントに便利ですよね。同感です。 45285で > うーん。LaTeX に処理させる全体のパスは1回で、でも取得した環境の中身は > マクロ内部で複数回処理させるようなものでしょうか。ams関係でよく使われるような。 と書いたのは、 マクロ内部で複数回処理させておいて 見かけ上の LaTeX 処理は1回で済ませるようなものなら私にも作れそうだけれど、 廣島さんの作ったものは本質的に処理が1回で済むようなものなのかなぁ、 もしそうならどんな風にやるのだろう、 と考えていたのでした。 マクロ内部で複数回処理させるのは、けめ丸さんもご指摘のように いろいろ問題があるわけで、中に取り込むものに制限が加わりますね。 廣島さんのものでは、 > 本文\begin{document}~\end{document}を > ほぼ丸ごと 2 度処理してます. とのことで、豪快ですね。 > 本文での \newcommand すらエラーです. これを回避しようと中身をグルーピングして \globaldefs をいじっても... とても完全とはいかなさそうですね。 \begingroup \globaldefs=-1 \def\shipout{\setbox0} document環境の中身(1回目) \globaldefs=0 \xdef\last{\thetoi} \endgroup document環境の中身(2回目) こんな感じですが、もともとグローバルな代入を前提としている機能はごまんとあるので ちょっと無茶でしょうね。うーん。 と、なにも目新しいことを書けませんでしたがとりあえず返信まで。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)