\chapter{\TeX} % 第九章+
at UNIX
462:名無しさん@お腹いっぱい。
14/02/13 21:07:48.15
>>461
別に,\edef の仕様どおりの挙動.
まず,「展開」と「実行」は違うことに注意.
また,\edef\fuga{\hoge{HAGE}} の際には
「\hoge{HAGE} を完全に展開したもの」が必要になる.
そして,最初の(エラーになったほうの)例では \hoge{HAGE} を展開すると
\def\hage{#1}
になる.(ここで「実行」ではなく「展開」だけしていることに注意しつつ)
これをさらに展開すると,\def(これは展開できない primitive)はそのまま残り,
(\def が実行されたわけではないので)その次の \hage を展開しようとする.
しかし,\hage の前の \def は実行されてなどいないので
\hage は未定義のままでエラーが生じる.
なお,その次のエラーにならないほうの例では,\def\hage{} と \hage の定義を与えたことで
\hoge{HAGE}→ \def\hage{HAGE} → \def{HAGE}
と展開され,結局 \huga は \def\huga{ \def{HAGE} } と定義されたのと同じになる
(ので,\huga を使ったときに妙なことになる).
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
3681日前に更新/215 KB
担当:undef