在下面的代码中
\documentclass[border=3mm]{standalone}
\begin{document}
%\def\pocz#1--#2.{#1 do #2}
\def\zakres#1{\def\poko##1{#1.} #1 and \poko{} }
%\poko
\zakres{11--34}
\end{document}
我想.
在 的参数之后添加\zakres
,然后用和\pocz
分隔的两个参数来定义 makro 。--
.
令我惊讶的是,即使\zakres
没有{}
after也\poko
不起作用。此外,取消注释\poko
会出现! Undefined control sequence
错误。
为什么我的错误?
编辑:放\poko
过去\zakres
会导致更糟糕的结果。
答案1
\documentclass[border=3mm]{standalone}
\begin{document}
%\def\pocz#1--#2.{#1 do #2}
\def\zakres#1{\def\poko##1{#1.} #1 and \poko{} }
此时\poko
尚未定义。
%\poko
\zakres{11--34}
现在你已经完成\def\poko#1{11--34.} 11--34 and \poko{}
因此,它\poko
被定义为忽略其参数并键入 11-34。并且您已键入 11-34 和 11-34。
\poko{wibble}
现在\poko
再次调用因此wibble
被丢弃并且再次排版11-34。
\end{document}
第三个 11-34 通常位于新段落中,但本示例使用standalone
将所有内容设置在水平框中。