有时我必须处理较长的公式,而这些公式不能(或者我希望)分成两行。我试图编写一个宏,如果公式超出边界,则将公式发送到新行。例如,对于 20 个字符的行,并调用\Foo
此宏:文本如下
12345678901234567890
aaaaa aaaa aaaaaa $bbbbbb$
aaaaa aaaa
格式为
12345678901234567890
aaaaa aaaa aaaaaa bbbbbb
aaaaa aaaa
尽管
12345678901234567890
aaaaa aaaa aaaaaa \Foo{$bbbbbb$}
aaaaa aaaa
格式为
12345678901234567890
aaaaa aaaa aaaaaa
bbbbbb aaaaa aaaa
由于这需要在打印后验证此类宏是否超出限制,因此我认为这需要多个编译步骤。我知道检索点坐标的唯一方法是使用坐标tikz
,但我尝试执行的“伪代码”草稿是:
\newcommand{\Foo}[1]{%
\myCount=\myCount+1
\if\NameConcat\FooVar\myCount>\pageLength\endline\else\relax
#1%
\coordinate\NameConcat\FooVar\myCount%
}
(开始时\myCount
所有都\FooVars
必须为“零”,并将名称和计数器\NameConcat
连接起来FooVar
以创建所需数量的计数器)
那么,在 LaTeX 中实现这一点的最佳方法是什么?
答案1
我不会把它弄得那么复杂。您只需将公式或任何其他文本放在行中,\mbox{...}
即可防止其跨行断开:
12345678901234567890
aaaaa aaaa aaaaaa \mbox{$bbbbbb$}
aaaaa aaaa