Como alinhar o texto na linha de base no MetaFun sem usar setMPtext?

Como alinhar o texto na linha de base no MetaFun sem usar setMPtext?

Eu quero desenharvários pedaços de textoisso deve estar alinhado, então eu preciso ser capaz decoloque esses textos de acordo com sua linha de base.

Olhando o manual MetaFun, páginas 143-144, é explicado que o alinhamento da linha de base pode ser alcançado através de vários métodos:

  • definir texto \setMPtexte chamar drawo objeto retornado por \MPbetex,
  • drawo objeto retornado por textext.origin,
  • drawo objeto retornado por thelabel.origin.

No entanto, quando testo esses três métodos com o código a seguir, apenas o primeiro funciona corretamente.

\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 exemplo

É uma maneira dealinhe o texto na linha de base sem precisar "pré-declarar" todas as peçascom \setMPtext?

Responder1

A definição de\MPbetex essencialmente diz:

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

Ou seja, ele apenas recebe a string armazenada em using \MPtexte a coloca entre btex ... etex. Claro que você também pode fazer isso manualmente.

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

insira a descrição da imagem aqui

informação relacionada