3

如何为第一列(不包括该列中的第一行)、第一行(不包括该行中的第一个元素)和所有其他元素指定单独的对齐方式Grid?为了更严格的目的,最好仅使用 with option 提供的保留严格控制的选项来执行此Alignment操作GridItem[]Alignment

PS这个问题来自上一个问题,但我希望在这里单独控制水平和垂直表标题的对齐方式。

4

3 回答 3

4

我找到了几种方法来实现我想要的。最直接的解决办法是:

Grid[Table[Row@(Range[a]), {a, 1, 4}, {7}], 
 Alignment -> {Right, 
   Automatic, {{{2, -1}, {1, 1}} -> Left, {{1, 1}, {2, -1}} -> 
     Center}}, Dividers -> {{2 -> True}, {2 -> True}}]

在此处输入图像描述

其他解决方案包括:

Grid[Table[Row@Range[a], {a, 1, 4}, {7}], 
 Alignment -> {{Left, {Right}}, 
   Automatic, {{1, 1}, {1, -1}} -> Center}, 
 Dividers -> {{2 -> True}, {2 -> True}}]
Grid[Table[Row@Range[a], {a, 1, 4}, {7}], 
 Alignment -> {Right, 
   Automatic, {1 -> Left, {{1, 1}, {2, -1}} -> Center}}, 
 Dividers -> {{2 -> True}, {2 -> True}}]
Grid[Table[Row@Range[a], {a, 1, 4}, {7}], 
 Alignment -> {Right, 
   Automatic, {1 -> Left, {{1, 1}, {1, -1}} -> Center}}, 
 Dividers -> {{2 -> True}, {2 -> True}}]
Grid[Table[Row@Range[a], {a, 1, 4}, {7}], 
 Alignment -> {Right, 
   Automatic, {{{1, 1}, {1, -1}} -> Center, 1 -> Left}}, 
 Dividers -> {{2 -> True}, {2 -> True}}]

在此处输入图像描述

于 2011-08-17T15:28:18.133 回答
3

它看起来使用与inAlignment相同的语法,因此在文档中查看示例可能会有所帮助。BackgroundGridOptions > BackgroundGrid

例如,假设您想将第一行和第一列中的项目右上对齐,所有其他项目左下对齐,您可以执行类似的操作

Grid[RandomInteger[10, {5, 5}], ItemSize -> {3, 3}, Frame -> All, 
 Alignment -> {Left, Bottom, {{1, 1} -> {Right, Top}}}]

项目 {1,1} 具有不同对齐方式的网格

于 2011-08-17T13:38:08.050 回答
3

如果我了解您的要求,我会喜欢这样做Item

x = Array[\[HappySmiley] &, {5, 5}];

x = ReplacePart[x, 
      i : Except[{1, 1}, {_, 1} | {1, _}] :> 
        Item[x~Extract~i, Alignment -> Left]
    ];

Grid[x, ItemSize -> {3, 3}, Frame -> All]

在此处输入图像描述

于 2011-08-17T15:58:36.807 回答