\chapter{\TeX} % 第九章+ at UNIX
[2ch|▼Menu]
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