次のコードがあります:
\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