Formatting 在Mathematica中,如何将[]行的元素与底部或顶部对齐?
当我写作时Formatting 在Mathematica中,如何将[]行的元素与底部或顶部对齐?,formatting,wolfram-mathematica,alignment,row,Formatting,Wolfram Mathematica,Alignment,Row,当我写作时 Row[ {Framed@Column[{1,2}], Framed@"123"}, Alignment->Top] 或 无论哪种情况,都不会发生任何事情。默认对齐方式为“居中”,列出的图元与彼此的中线对齐 Grid[ {{Framed@Column[{1,2}], Framed@"123"}}, Alignment->Top] 工作正常,但是当行[]足够时,网格[]是一种过度杀伤力 帮助系统说对齐应该有效(例如列出{Left,Baseline}),但它似乎不
Row[ {Framed@Column[{1,2}], Framed@"123"}, Alignment->Top]
或
无论哪种情况,都不会发生任何事情。默认对齐方式为“居中”,列出的图元与彼此的中线对齐
Grid[ {{Framed@Column[{1,2}], Framed@"123"}}, Alignment->Top]
工作正常,但是当行[]
足够时,网格[]
是一种过度杀伤力
帮助系统说对齐应该有效(例如列出
{Left,Baseline}
),但它似乎不可更改。我使用的是v8.0.4。行中的对齐
选项不对齐单个元素本身,而是对齐外部边界框中的这些元素。这可以从以下几个方面看出:
Framed@Row[{Framed@Column[{1, 2}], Framed@"123"},
ImageSize -> {150, 150}, Alignment -> {Left, Top}]
使用
网格
。正如Wizard先生所说的网格
可能是你最好的选择,但如果你想使用行
你可以这样做
Row[Pane[#, BaselinePosition -> Top] & /@ {Framed@Column[{1, 2}], Framed@"123"}]
Row[Framed[#, BaselinePosition -> Top] & /@ {Column[{1, 2}], "123"}]
请注意,Framed
还有一个选项BaselinePosition
,因此对于这个特定示例,您还可以执行以下操作
Row[Pane[#, BaselinePosition -> Top] & /@ {Framed@Column[{1, 2}], Framed@"123"}]
Row[Framed[#, BaselinePosition -> Top] & /@ {Column[{1, 2}], "123"}]
但是
窗格
在任何情况下都有效。很好地解释了对齐,谢谢。我想是的-(@Gregory,你对Grid
有什么不满?在你的例子中,它只是多了三个字符。它在更复杂的使用中会导致问题吗?可能还有其他方法。低级别的网格框有点(很多)更重,所以如果我将数千条记录的格式化输出创建到一个CDF文件中,该文件将像消防栓上的大象一样爆炸!它将非常快变大。另一个问题:似乎无法控制行周围或框架[]上的框架。框架样式->似乎只接受1种样式,而不是{L,R},{B,t}的列表,因此,如果我只希望底部有一个框架,它看起来又像网格。我想这是网格如此沉重的原因。@Gregory,您可能想直接在Box
表单中对结果进行编码。根据结构和选项,它可能会明显较轻。您可以使用Ctrl+Shift+E来查看实际创建的框表单。顺便说一下,欢迎使用StackOverflow。这不需要窗格。Column[{…},BaselinePosition->1]
也可以。窗格是一个很好的解决方法,如果它不总是一个列,但是对于成千上万的“卡片”(排版预处理的记录输出),结果文件会爆炸,并且运行非常缓慢。我想我总是可以使用它“虚拟化”就像C#一样,只需一次打印20-30条记录,而不是滚动,使用我自己的向上/向下移动基础数据集中的索引。增加渲染时间,但减少大小/内存使用/初始渲染复杂性。