能够通过宏引用环境体有什么用处?

能够通过宏引用环境体有什么用处?

这两个包environnewenviron提供了 LaTeX 附带的标准环境宏的替代方案。主要区别在于它们可以使用宏引用环境主体,但另一个区别是宏扩展会受到影响。如果没有这个影响,这些包似乎唯一的其他好处就是当您需要多次引用环境主体时。通过宏引用环境主体还有其他用途吗?

答案1

例如,您可以测量环境体并根据测量结果执行不同的事情:

\documentclass{article}
\usepackage{newenviron,lipsum}
\newdimen\hkBstheight
\newenviron{hkBstEnv}{%
  \setbox0=\vbox{\hkBstEnvbody}
  \hkBstheight=\ht0
  \advance\hkBstheight by \dp0
  \ifdim\hkBstheight<200pt
    {\itshape\hkBstEnvbody}
  \else
    \hkBstEnvbody
  \fi
}

\begin{document}
\begin{hkBstEnv}
  \lipsum[1]
\end{hkBstEnv}

\begin{hkBstEnv}
  \lipsum[1-2]
\end{hkBstEnv}
\end{document}

相关内容