是否可以将段落中某些内容的高度、深度或总高度(可选)设置为零,同时仍允许其空白拉伸或收缩并出现换行?也许可以使用 LuaTeX 和 Lua 代码?
答案1
由于没有 OP 的 MWE,我只能推测他希望处理什么类型的内容。在这里,我使用该tokcycle
包创建了一个伪环境\smashstream
。如您所见,空白可以拉伸/收缩以满足边距约束。
已编辑以处理简单的数学。对于这种情况,您不想被破坏的标记必须在字符指令中被拦截,例如$
、^
和_
。诸如 之类的东西\frac
不会被破坏,因为它是一个宏,而不是一个字符。
缺点:连字、字距调整和连字不起作用。
\documentclass{article}
\usepackage[nopar]{lipsum}
\usepackage{tokcycle}
\tokcycleenvironment\smashstream
{\tctestifx{_##1}{\addcytoks{##1}}
{\tctestifx{^##1}{\addcytoks{##1}}
{\tctestifx{$##1}{\addcytoks{##1}}
{\addcytoks{\smash{##1}}}}}}
{\processtoks{##1}}
{\addcytoks{##1}}
{\addcytoks{##1}}
\begin{document}
\lipsum[1]
\smashstream\Huge This is a test of the emergency broadcast
system...this is only a \huge $y = x^{2} + y_{i}$
test\normalsize\endsmashstream
\lipsum[2]
\end{document}