数学对齐环境 ConTeXt

数学对齐环境 ConTeXt

我原来的问题比这个问题更广泛一些,但有人告诉我这很难理解,所以我重写它以使其更具体。

假设我有以下代码

\starttabulate[|l|l|]
    \NC \|$\text{eq}_1 = 250$\|
        \NC \|$\text{eq}_2 = 250$\|
    \NC\NR
    \NC \|$\text{eq}_3 = 4$\|
        \NC \|{\hsize=0.2\hsize \startformula\startalign\NC \text{eq}_4 \NC = \lfloor \frac{n_0}{\beta_1} \rfloor + 2 \NR \NC\NC = 160.5 \stopalign\stopformula}\|
    \NC\NR
\stoptabulate

当我在 ConTeXt 中运行它时,我得到了下表。

在此处输入图片描述

我插入了垂直线来显示列的末端。

我想问一下我该如何

  1. 左/右对齐 eq_4
  2. 将 eq_4 中的第一行与 eq_3 对齐(以便它们位于同一基线上)
  3. 让容纳 eq_4 的垂直框占据其内容的宽度(不摆弄 hsize)

到目前为止,我尝试实现左对齐的方法是按照本手册的建议[m=2,distance=5em plus 1fil]在前面添加选项\startalignhttps://dl.contextgarden.net/myway/mathalign.pdf,但这会将 eq_4 从其列中剔除,正如您在这张图片中看到的那样

在此处输入图片描述

我设法通过添加选项使 eq_4 的底部与 eq_3 对齐,[location=bottom][location=top]在 eq_4 上方出现了一条额外的线,如下所示

在此处输入图片描述

我尝试\vskip-\baselineskip在两个\NC' 之间的每个地方添加 a 来尝试将 eq_4 向上移动,但我一直收到一条错误消息,说我“混淆了 [ConTeXt] 解析器”。

并且,除非手动调整,否则我无法使 3. (使垂直框达到方程的自然宽度)起作用\hsize

当我使用这些内置环境时,很多时候感觉就像在黑暗中射击,希望击中某些东西。我希望通过更好地了解这些环境的工作原理来改变这种情况。为此,有人可以解释和环境的工作原理吗\startformula\startalign即它们如何确定容纳方程式的垂直框的大小、框内的胶水等。

谢谢您,如果我之前的问题难以理解,我深感抱歉。

答案1

我还是不太清楚你想要什么。你真的需要使用表格吗?这里只是使用 align:

\starttext

\samplefile{knuthmath}

\startformula
  \startalign[n=2,m=2,distance=4em]
    \NC \mathrm{eq}_1 \EQ 250 \NC \mathrm{eq}_2 \EQ 250                                     \NR
    \NC \mathrm{eq}_3 \EQ 4   \NC \mathrm{eq}_4 \EQ \lfloor \frac{n_0}{\beta_1} \rfloor + 2 \NR
    \NC               \NC     \NC               \EQ 160.5                                   \NR          
  \stopalign
\stopformula

\samplefile{knuthmath}

\stoptext

输出:

公式

相关内容