¿Cómo alinear el texto en la línea de base en MetaFun sin usar setMPtext?

¿Cómo alinear el texto en la línea de base en MetaFun sin usar setMPtext?

Quiero dibujarvarios fragmentos de textoeso debería estar alineado, así que necesito poderColoca estos textos según su línea base..

Al consultar el manual de MetaFun, páginas 143-144, se explica que la alineación de la línea base se puede lograr mediante varios métodos:

  • definir texto con \setMPtexty llamar drawal objeto devuelto por \MPbetex,
  • drawel objeto devuelto por textext.origin,
  • drawel objeto devuelto por thelabel.origin.

Sin embargo, cuando pruebo estos tres métodos con el siguiente código, sólo el primero funciona correctamente.

\starttext
\setMPtext {1} {Foo}
\setMPtext {2} {Bap}

\startMPpage
draw \MPbetex{1} shifted (0,0);
draw \MPbetex{2} shifted (0.5cm,0);

draw textext.origin("Foo") shifted (0,-1cm);
draw textext.origin("Bap") shifted (0.5cm,-1cm);

draw thelabel.origin("Foo",(0,-2cm));
draw thelabel.origin("Bap",(0.5cm,-2cm));
\stopMPpage

\stoptext

resultado de ejemplo

¿Es su manera dealinear el texto en la línea base sin necesidad de "declarar previamente" todas las piezascon \setMPtext?

Respuesta1

La definición de \MPbetexesencialmente dice:

\def\MPbetex #1{btex \begincsname\??mptext#1\endcsname\space etex}

Es decir, simplemente recibe la cadena almacenada usando \MPtexty la coloca entre btex ... etex. Por supuesto, también puedes hacerlo a mano.

\startMPpage
draw btex Foo etex shifted (0,0);
draw btex Bap etex shifted (0.5cm,0);
\stopMPpage

ingrese la descripción de la imagen aquí

información relacionada