![在 metapost 中标签文本的对齐方式](https://linux22.com/image/432835/%E5%9C%A8%20metapost%20%E4%B8%AD%E6%A0%87%E7%AD%BE%E6%96%87%E6%9C%AC%E7%9A%84%E5%AF%B9%E9%BD%90%E6%96%B9%E5%BC%8F.png)
我有一个简单的问题。
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)
。
其他后缀有:urt
、ulft
、lrt
、llft
、bot
和top
。如果省略后缀,则将label
文本居中绘制,正如您所发现的那样。
您还可以使用dotlabel
它来实现完全相同的功能,只不过它在该位置添加了一个点。
可以通过内部参数来控制位置到标签参考点的偏移量,也可以通过参数labeloffset
来控制绘制的点的大小。dotlabel
dotlabeldiam
如果你想做更多花哨的布局,你可以将字符串变成图片,然后直接使用 draw。像这样
draw "AAA" infont "phvr8r" shifted 42 dir 30;
也许
draw TEX("$A$") shifted 42 dir 30;
如果您正在使用lualatex
或者已经完成input TEX
。
对齐后缀在Metapost 手册,当前版本第 21 页。