我发现问题和接受的答案,
允许在内联数学模式下换行吗?非常有用,但我想用它创建一个环境(例如“allowbreaks”)。问题是我无法做到。让我解释一下这个想法:
\begin{allowbreaks}
Commas are modified in such a way that they allow breaks in
inline mathmode $(a,b,c)$ only within this environment.
\end{allowbreaks}
请问这可能吗?
编辑:我将环境重命名为allowbreaks
,因为与命令命名冲突allowbreak
。
答案1
您可以局部修改逗号的行为,允许中断。诀窍是使其“数学活跃”:
\documentclass{article}
\newenvironment{allowbreaks}
{\mathactivatecomma
\mathcode`\,=\string"8000
\ignorespaces}
{\ignorespacesafterend}
\newcommand{\mathactivatecomma}{%
\begingroup\lccode`~=`\,
\lowercase{\endgroup\edef~}{\mathchar\the\mathcode`\,\penalty0 }}
\begin{document}
\parbox{1cm}{abc def
\begin{allowbreaks}
$a,b,c,d,0,1,2,3,4,5,6,7$
\end{allowbreaks}
haaa
$a,b,c,d,0,1,2,3,4,5,6,7$}
\end{document}
您会发现第一个数学公式有问题,而第二个数学公式没有问题。
然而,我的这个答案在我看来,更好:用于\mathlist{a,b,c,d}
可以用逗号分隔的数学变量列表。
答案2
\documentclass{article}
\newenvironment{allowbreaks}
{\mathcode`\,="213B}
{}
\begin{document}
\rightskip=11cm
foo $1,2,3,4,5,6,7,8,9$
foo bar baz
\begin{allowbreaks}
foo $1,2,3,4,5,6,7,8,9$
foo bar baz
\end{allowbreaks}
foo $1,2,3,4,5,6,7,8,9$
foo bar baz
\end{document}