在 metapost 中标签文本的对齐方式

在 metapost 中标签文本的对齐方式

我有一个简单的问题。

label(btex AAA etex, (0,0)) ;
label(btex AAAAA BBBB CCCC etex,(0,-10)); 

上面的语句给出了居中对齐。那么我该如何进行左对齐或右对齐?我尝试使用关键字“对齐”搜索手册,但令人惊讶的是没有结果。我可以使用 \begin{minipage}[t]{20em} ... \end{minipage} ,但我想采用更简单的方法。

答案1

正如评论中所述,label采用可选后缀来控制字符串或图片相对于位置的放置方式。所以

label.rt("AAA", (10,10));

将使用默认字体绘制“AAA”,左侧边缘(10,10)位于

label.lft("BBB", (20,20)); 

将绘制“BBB”右手边缘处(20,20)

其他后缀有:urtulftlrtllftbottop。如果省略后缀,则将label文本居中绘制,正如您所发现的那样。

您还可以使用dotlabel它来实现完全相同的功能,只不过它在该位置添加了一个点。

可以通过内部参数来控制位置到标签参考点的偏移量,也可以通过参数labeloffset来控制绘制的点的大小。dotlabeldotlabeldiam

如果你想做更多花哨的布局,你可以将字符串变成图片,然后直接使用 draw。像这样

draw "AAA" infont "phvr8r" shifted 42 dir 30;

也许

draw TEX("$A$") shifted 42 dir 30;

如果您正在使用lualatex或者已经完成input TEX

对齐后缀在Metapost 手册,当前版本第 21 页。

相关内容