根据此处的答案,我定义了一个宏,该宏应存储当前段落的最后一行而不产生任何输出。但下面的代码仅在第一次使用该宏时产生预期的结果。为什么?
\documentclass{article}
\usepackage{lipsum}
\makeatletter
\def\setindent{%
{\abovedisplayshortskip\z@\abovedisplayskip\z@
\belowdisplayshortskip\z@\belowdisplayskip\z@
$$\global\dimen\@ne\predisplaysize
\xdef\tmp{%
\predisplaysize\the\predisplaysize
\prevgraf\the\prevgraf\relax}%
$$\vskip\dimexpr-\parskip-2\baselineskip\relax}\tmp
}
\begin{document}
\lipsum[1]
\setindent
\noindent \hskip\dimen\@ne
\lipsum[2]
\lipsum[3]
\setindent
\noindent \hskip\dimen\@ne
\lipsum[4]
\end{document}