Как выровнять элементы строки [] в нижней или верхней части в Mathematica? - PullRequest
4 голосов
/ 04 декабря 2011

Когда я пишу

Row[ {Framed@Column[{1,2}], Framed@"123"},  Alignment->Top]

Mathematica graphics

или

Row[ {Framed@Column[{1,2}], Framed@"123"},  Alignment->{Left,Top}]

Mathematica graphics

в любом случае ничего не происходит. По умолчанию установлено выравнивание по центру, а элементы перечислены по срединной линии друг друга.

Grid[ {{Framed@Column[{1,2}], Framed@"123"}}, Alignment->Top]

Mathematica graphics

работает просто отлично, но Grid[] - это перебор, когда достаточно Row[].

Справочная система говорит, что выравнивание должно работать (перечисляет {Left,Baseline} в качестве примера), но, похоже, его нельзя изменить. Я использую v8.0.4.

Ответы [ 2 ]

4 голосов
/ 05 декабря 2011

Как сказал Mr.Wizard, Grid, вероятно, ваш лучший вариант, но если вы хотите использовать Row, вы можете сделать что-то вроде

Row[Pane[#, BaselinePosition -> Top] & /@ {Framed@Column[{1, 2}], Framed@"123"}]

aligning elements at the top

Примечаниечто Framed также имеет опцию BaselinePosition, поэтому для этого конкретного примера вы также можете сделать что-то вроде

Row[Framed[#, BaselinePosition -> Top] & /@ {Column[{1, 2}], "123"}]

, но Pane работает в любом случае.

3 голосов
/ 04 декабря 2011

Параметр Alignment в Row не выравнивает отдельные элементы, а скорее эти элементы внутри внешней ограничительной рамки. Это можно увидеть с помощью:

Framed@Row[{Framed@Column[{1, 2}], Framed@"123"}, 
  ImageSize -> {150, 150}, Alignment -> {Left, Top}]

enter image description here

Framed@Row[{Framed@Column[{1, 2}], Framed@"123"}, 
  ImageSize -> {150, 150}, Alignment -> {Center, Bottom}]

enter image description here

Вместо этого используйте Grid.

...