我原来的问题比这个问题更广泛一些,但有人告诉我这很难理解,所以我重写它以使其更具体。
假设我有以下代码
\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 中运行它时,我得到了下表。
我插入了垂直线来显示列的末端。
我想问一下我该如何
- 左/右对齐 eq_4
- 将 eq_4 中的第一行与 eq_3 对齐(以便它们位于同一基线上)
- 让容纳 eq_4 的垂直框占据其内容的宽度(不摆弄 hsize)
到目前为止,我尝试实现左对齐的方法是按照本手册的建议[m=2,distance=5em plus 1fil]
在前面添加选项\startalign
https://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
输出: