我正在尝试覆盖不同字体的字形,但很难让它们排成一行。我敢肯定他们应该排队比这更好。我怎么能这样做?
Graphics[
{Opacity[0.1],
{Text[Style["a", FontFamily -> "Helvetica", 240]],
Text[Style["a", FontFamily -> "Arial", 240]]}
}]
另外,我有兴趣绘制轮廓 - 这里我选择了它们,但我想画它们。
编辑:谢谢!在你的帮助下,我能够实现我想要的大部分目标:
Manipulate[
Graphics[{{{Opacity[opacity],
Text[Style["Greats", Red, FontFamily -> "Helvetica", 180], {0,
0}, {Center, Baseline}]}, {Opacity[1 - opacity],
Text[Style["Greats", Blue, FontFamily -> "Arial", 180], {0,
0}, {Center, Baseline}]}}}], {opacity, 0.1, 1, 0.1}]
答案 0 :(得分:10)
默认情况下,文本在某个点居中(水平和垂直),字体具有不同高度的字符,从而导致文本移位。例如,比较以下内容:
Graphics[{Opacity[
0.1], {Text[
Style["agÄ", FontFamily -> "Helvetica", 240,
Background -> RGBColor[0.8, 0, 0, 0.2]]],
Text[Style["agÄ", FontFamily -> "Arial", 240,
Background -> RGBColor[0, 0, 0.8, 0.2]]]}
}]
Graphics[{Opacity[
0.1], {Text[
Style["agA", FontFamily -> "Helvetica", 240,
Background -> RGBColor[0.8, 0, 0, 0.2]]],
Text[Style["agA", FontFamily -> "Arial", 240,
Background -> RGBColor[0, 0, 0.8, 0.2]]]}
}]
如果您沿着边缘放置文本,它可能对您更有效,尽管它无法保证:
Graphics[{Opacity[
0.1], {Text[
Style["a", FontFamily -> "Helvetica", 240], {0, 0}, {Center,
Bottom}],
Text[Style["a", FontFamily -> "Arial", 240], {0, 0}, {Center,
Bottom}]}}]
修改强>
根据Heike的建议使用Baseline
:
Graphics[{Opacity[
0.1], {Text[
Style["a", FontFamily -> "Helvetica", 240], {0, 0}, {Center,
Baseline}],
Text[Style["a", FontFamily -> "Arial", 240], {0, 0}, {Center,
Baseline}]}}]
答案 1 :(得分:4)
关于您的第一个问题,欢迎来到不同字体的世界。它们有不同的指标,就是这样。您可以使用Overlay
或其中一个图形选项(如ImagePadding
)将其中一个移到另一个上。
关于第二个问题,documentation on JoinedCurve
中的第二个“简洁示例”显示了如何使用ExportString
和ImportString
执行此操作。