Seltsames Verhalten der btex..etex-Konstruktion

Seltsames Verhalten der btex..etex-Konstruktion

Ich habe folgenden Code:

\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

Und es zeichnet Folgendes:

Beispielausgabe

Was passiert hier?


Ich führe den Code mit aus context thefile.tex. Die Version ist:

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

Ich reproduziere das Problem, indem ich dies mit ConTeXt live ausführe (https://live.contextgarden.net/).

Antwort1

Das Problem mit btex ... etexist, dass diese Elemente in ConTeXt asynchron verarbeitet werden. Das Urteil der Mailingliste lautet, textextanstelle von zu verwenden btex ... etex. Das Problem mit der Baseline kann durch die Verwendung des dSuffixes gelöst werden d, wobei vermutlich für Tiefe steht.
(Danke, Alan!)

\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

Bildbeschreibung hier eingeben

verwandte Informationen