Ich möchte zeichnenmehrere Textteiledas sollte ausgerichtet sein, also muss ich in der Lage sein,Platzieren Sie diese Texte entsprechend ihrer Grundlinie.
Im MetaFun-Handbuch (Seiten 143–144) wird erklärt, dass die Basislinienausrichtung auf verschiedene Weise erreicht werden kann:
- Definieren von Text mit
\setMPtext
und Aufrufendraw
des von zurückgegebenen Objekts\MPbetex
, draw
das von zurückgegebene Objekttextext.origin
,draw
das von zurückgegebene Objektthelabel.origin
.
Wenn ich diese drei Methoden mit dem folgenden Code teste, funktioniert jedoch nur die erste ordnungsgemäß.
\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
Ist es eine Möglichkeit,Text an der Grundlinie ausrichten, ohne alle Teile „vorab deklarieren“ zu müssenmit \setMPtext
?
Antwort1
Die Definition von \MPbetex
lautet im Wesentlichen:
\def\MPbetex #1{btex \begincsname\??mptext#1\endcsname\space etex}
Das heißt, es empfängt einfach die mit gespeicherte Zeichenfolge \MPtext
und platziert sie zwischen btex ... etex
. Natürlich können Sie das auch manuell tun.
\startMPpage
draw btex Foo etex shifted (0,0);
draw btex Bap etex shifted (0.5cm,0);
\stopMPpage