提问于:
浏览数:
2924
```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 回答
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` 的两个命令可以相等
而两者之间却不相等
所以还是记住吧,别混用。
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。