如何防止溶液环境中的馏分渗血

如何防止溶液环境中的馏分渗血

我是动态生成数学工作表使用 pyLaTeX,偶然发现了一个奇怪的行为,我不知道如何纠正。

我有一个代码,将练习的所有答案放入字符串中,然后将其从 LaTeX 考试文档类型放置在解决方案环境中。

这对于所有情况都适用,除了我的答案全是分数的情况。当这种情况发生时,解决方案环境不会像它应该的那样自动换行,分数会永远向右溢出。

分数出血

对我来说,这感觉特别奇怪,因为它甚至可以正确地处理多项式(如果需要,它甚至会在中间将它们打破)。

多项式正常工作

两个示例中的代码相同:唯一的区别是我在粗体字母后面添加了数学文本 ($answer$)。a:~$stuff$; b:~$stuff$; ...代码部分看起来有点像(这里甚至没有使用 graphix)。

有什么建议吗?

编辑: 尝试了 Don Hosek 的解决方案后,我的分数解确实会断线(并且我的多项式在末尾更经常断线),但有时多项式仍会在中间断线,分数有时仍会向右溢出:

a:~$stuff$; \penalty-200 b:~$stuff$; ...

Don Hosek 之后的分数

编辑2:好的,在 Przemysław 发表评论之后,我去提取 tex 代码本身(我直接从 python 生成 pdf,除非出现 tex 错误,否则无法真正看到中间步骤),然后才意识到我正在将解决方案分组而$part part part$不是$part$ $part$ $part$

现在我把它分开了,我明白了 Don 所说的“右边参差不齐”的意思(还有“分组问题”)。感谢你们俩!

分数现在起作用

答案1

这里的问题是,你的第一个例子中并没有很多好的断点。我有两个建议:首先,通过\SolutionEmphasis{\raggedright}在文档前言中设置解决方案,使其正确;其次,在子部分的每个字母前添加 `\penalty-100,这样 LaTeX 就会被鼓励在那里换行(多项式分解中的中间表达式断点对读者不太友好)。

答案2

我刚刚在 Don Hosek 和 Przemysław 的评论的帮助下解决了这个问题。

我没有意识到我的解决方案是这样的

\begin{solution}%
$a:~part1; b:~part2; c:~part3$%
\begin{solution}%

...代替

\begin{solution}%
$a:~part1;$ $b:~part2;$ $c:~part3$%
\begin{solution}%

改变这一点是主要问题,尽管唐·霍塞克关于惩罚和右翼的建议也有帮助。

现在,它仍然会在多项式因式分解的中间偶尔出现中断,但这很不常见,所以我会接受它(尝试了一段时间后,它似乎并没有出现问题,而这正是我最担心的),所以是的。

相关内容