```tex \documentclass{book} \def\wait{\ifx\a\b yes\else no\fi} \def\testlet#1{\let\a=#1\futurelet\b\wait} \def\testdef#1{\def\a{#1}\futurelet\b\wait} \begin{document} \testlet{a}a\par \testdef{a}a\par \end{document} ``` 想请教下 \testlet显示 yes 而\testdef显示 no 这是为什么呢?

1 回答1

0
```tex \documentclass{book} \def\a{a} \def\b{a} \let\c=\a \let\d=a \let\e=a \def\compare#1#2{\ifx#1#2yes\else no\fi} \begin{document} \verb|\ifx\a\b|= \compare\a\b\par % yes \verb|\ifx\d\e|= \compare\d\e\par % yes \verb|\ifx\c\b|= \compare\c\b\par % yes \verb|\ifx\d\b|= \compare\d\b\par % no \end{document} ``` 可以看出`\def` 的两个命令可以相等 `\let` 的两个命令可以相等 而两者之间却不相等 所以还是记住吧,别混用。

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。