保留宏内的换行行为

保留宏内的换行行为

我使用了一个宏,它只将其参数包装在一对分隔符(括号)中。它干扰了 LaTeX 通常包装内联数学表达式的方式。以下说明:

\documentclass{article}

\newcommand{\collapse}[1]{\{{#1}\}}
\newcommand{\apply}[2]{#1[#2]}

\begin{document}
Here's a regular paragraph to indicate the point at which text would
normally wrap.

word word word word word word word word word word word word $\collapse{\apply{(T + T')}{D + D'}} > C$,
\end{document}

我不希望 {(T + T )[D + D ]} > C 超出页面边缘,而是换行到下一行。如果我内联“collapse”宏,那么它确实会按预期换行。

在保留我的“collapse”宏的同时,这是否容易实现?我尝试过 /allowbreak,但没有成功。

这可能相关:宏中的换行符

答案1

删除定义中的分组\collapse{...}在数学模式下不是中性的,它表示封闭的表达式不能跨行拆分。

示例输出

\documentclass{article}

\newcommand{\collapse}[1]{\{ #1 \}}
\newcommand{\apply}[2]{#1[#2]}

\begin{document}
Here's a regular paragraph to indicate the point at which text would
normally wrap.

word word word word word word word word word word word word $\collapse{\apply{(T + T')}{D + D'}} > C$,
\end{document}

相关内容