我有以下程式碼:
\starttext
\startMPpage
def drawtest(expr i) = %i is not used here
draw btex dummy etex shifted (0,0);
draw btex foo etex shifted (1.5cm,0);
draw btex bar etex shifted (3cm,0);
enddef;
drawtest(5);
\stopMPpage
\stoptext
它繪製了以下內容:
這裡發生了什麼事?
我用 運行程式碼context thefile.tex
。版本是:
mtx-context | ConTeXt Process Management 1.03
mtx-context |
mtx-context | main context file: /home/xxx/context/tex/texmf-context/tex/context/base/mkiv/context.mkiv
mtx-context | current version: 2019.07.16 18:23
我用 ConTeXt live 重現了運行此程式的探針(https://live.contextgarden.net/)。
答案1
問題在於btex ... etex
這些元素在 ConTeXt 中是非同步處理的。郵件列表的結論是使用textext
而不是btex ... etex
.我認為,基線問題可以透過使用代表深度d
的後綴來解決。d
來解決。 (謝謝艾倫!)
\starttext
\startMPpage
def drawtest(expr i) = %i is not used here
draw textext.d("dummy") shifted (0,0);
draw textext.d("foo") shifted (1.5cm,0);
draw textext.d("bar") shifted (3cm,0);
enddef;
drawtest(5);
\stopMPpage
\stoptext