上下文中长方程式自动断句的状态是怎样的?

上下文中长方程式自动断句的状态是怎样的?

我在读

另一个 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

所得公式

相关内容