我在读
另一个 breqn 问题。使用 cprotect 包时,标题中会出现多余的字母
答案是:
在即将推出的版本中,ConTeXt MKIV 将引入公式的自动换行功能,该功能可能会更加强大,因为解析是在 Lua 级别完成的,从而避免与 catcode 等混淆。
但给出的链接不起作用。6岁以上。
我用 Google 搜索了一下,没有找到相关内容。
breqn
我的问题是:上下文现在是否比Latex具有更好的自动方程式分解功能?我想这里有人可能知道。
但您能定义得更好一些吗?
正如我在评论中提到的,我没有具体的例子。但我搜索了一下,找到了一个,论坛里的一位 Latex 专家说 breqn 输出可以改进。
以下代码来自如何自动将方程环境转换为 dmath 环境?
\documentclass[12pt,notitlepage]{article}
\usepackage{amsmath}
\usepackage{breqn}
\begin{document}
No tag here, normal numbering
\begin{dmath}
-\eta\omega_{y}+\left( -3y' \xi_{y}-2\xi_{x}+\eta_{y}\right)
\omega-\xi\omega_{x}+\left( -y' \eta_{y}+\left( y'\right)
^{2}\xi_{y}+y' \xi_{x}-\eta_{x}\right) \omega_{y'}+\eta
_{xx}+\eta_{yy}\left( y' \right) ^{2}-
\xi_{yy}\left( y' \right)^{3}-2\xi_{yx}\left( y'\right) ^{2}+2\eta_{yx}y'-\xi_{xx} y'=0
\end{dmath}
Tag at the beginning
\begin{dmath}[number=1A]
-\eta\omega_{y}+\left( -3y' \xi_{y}-2\xi_{x}+\eta_{y}\right)
\omega-\xi\omega_{x}+\left( -y' \eta_{y}+\left( y'\right)
^{2}\xi_{y}+y' \xi_{x}-\eta_{x}\right) \omega_{y'}+\eta
_{xx}+\eta_{yy}\left( y' \right) ^{2}-
\xi_{yy}\left( y' \right)^{3}-2\xi_{yx}\left( y'\right) ^{2}+2\eta_{yx}y'-\xi_{xx} y'=0
\end{dmath}
No \verb|\left| and \verb|\right|
\begin{dmath}
-\eta\omega_{y}+( -3y' \xi_{y}-2\xi_{x}+\eta_{y})
\omega-\xi\omega_{x}+( -y' \eta_{y}+( y')
^{2}\xi_{y}+y' \xi_{x}-\eta_{x}) \omega_{y'}+\eta
_{xx}+\eta_{yy}( y' ) ^{2}-
\xi_{yy}( y' )^{3}-2\xi_{yx}( y') ^{2}+2\eta_{yx}y'-\xi_{xx} y'=0
\end{dmath}
\end{document}
答案1
自动设置公式永远不会完全正常。让我展示一下您的示例,下面以几种方式完成。一些评论:
- 所有公式默认都是跨行(它们本质上是段落)。
- 换行由惩罚控制(看看我们如何改变二进制的默认值,这是默认情况下要做的事情)
- 分隔符自动换行(第一个公式)。
- 多行公式以“右下角”或“左上角”编号,而不是通过公式行之间的数字编号。
我认为您需要询问更具体的问题才能得到更好的答复。
\setuppapersize[A5]
\setuplayout[tight]
\showframe
\starttext
\startbuffer[formula]
- \eta \omega_{y}
+ \left(-3y' \xi_{y}
- 2\xi_{x}
+ \eta_{y}
\right) \omega
- \xi\omega_{x}
+ \left[
- y' \eta_{y}
+ \left(y'\right)^{2}\xi_{y}
+ y' \xi_{x}
- \eta_{x}
\right] \omega_{y'}
+ \eta_{xx}
+ \eta_{yy}\left(y' \right)^{2}
- \xi_{yy} \left(y' \right)^{3}
- 2\xi_{yx}\left(y' \right)^{2}
+ 2\eta_{yx}y'
- \xi_{xx} y'
= 0
\stopbuffer
Just setting the formula.
\startformula
\getbuffer[formula]
\stopformula
Modifying the penalties.
\startbuffer
\setmathdisplayprepenalty \mathbinarycode 0
\setmathdisplaypostpenalty \mathbinarycode 1000
\stopbuffer
\typebuffer
\getbuffer
\startformula
\getbuffer[formula]
\stopformula
Adding a formula number.
\startplaceformula
[reference=eq:foo1]
\startformula
\getbuffer[formula]
\stopformula
\stopplaceformula
Using a subformula number.
\startsubformulas
\startplaceformula
[reference=eq:foo2]
\startformula
\getbuffer[formula]
\stopformula
\stopplaceformula
Decreasing the \typ{numberdistance} to make the label fit.
\startplaceformula
[reference=eq:foo3]
\startformula
[numberdistance=1em]
\getbuffer[formula]
\stopformula
\stopplaceformula
\stopsubformulas
No stretching of fences (\typ{\F0}).
\startplaceformula
\startformula
\F0
\getbuffer[formula]
\stopformula
\stopplaceformula
\stoptext