2011-12-31 2 views
5

RowSpacingsでは、グリッドの行間隔を変更できます。グリッド内の最後の行だけのRowSpacingを設定する短い構文はありますか?

ヘルプは言う:それは残りの行上記言う

RowSpacings->{Subscript[s, 12],Subscript[s, 23],...} can be used to specify 
different spacings between different rows. If there are more rows than 
entries in this list, then the last element of the list is used repeatedly 
for the remaining rows 

お知らせ。

私が望むのは、すべての開始行にある間隔を使用することですが、最後の行は異なる間隔を使用することです。他に

この例では、文書化の方法(残りの行)

n = 5; 
data = Table[Random[], {n}, {n}]; 
Grid[data, Frame -> All, RowSpacings -> {6, 1}, Alignment -> Center] 

enter image description here

を行いますが、私は逆をやってみたかった、つまり何かに最後の行を設定し、その前にすべての行。

n = 5; 
data = Table[Random[], {n}, {n}]; 
Grid[data, Frame -> All, 
RowSpacings -> {Sequence @@ Table[1, {n - 2}], 6},Alignment -> Center] 

enter image description here

上記

を書くだけで、別の方法である:私はそれを行うことができる唯一の方法は、最後の1まで、すべての行のすべての間隔を書き留めることにより、すなわち、長い道のりです
Grid[data, Frame -> All, RowSpacings -> {1, 1, 1, 6}, Alignment -> Center] 

私も

Grid[data, Frame -> All, RowSpacings -> {{1}, 6}, Alignment -> Center] 
Grid[data, Frame -> All, RowSpacings -> {{1 ;; 3}, 6}, Alignment -> Center] 

のようなものを試してみましたが、彼らは動作しません。私は上記の最初の例のようにショートカットを見つけることができませんでした。

RowSpacingsは、最後の行だけを特定の値に設定するように指示するトリックを知っていますが、それまでのすべての行は上記のハックを使用しないで他のものに設定しますか?

Mathematicaでこのようなトリック構文の使い方を見落としているかどうかは分かりませんが、それだけです。

おかげで、

答えて

7

Grid

Grid[data, Spacings -> {Automatic, Dimensions[data][[1]] -> 6}, 
    Frame -> All, Alignment -> Center] 

ためSpacingsオプションを使用して、あなたはRowSpacings + GridBox組み合わせを使用する他の理由を持っていないと仮定すると、あなたが必要なものを提供します。

EDIT:より便利に、Grid[data, Spacings -> {Automatic, -2-> 6}, Frame -> All, Alignment -> Center]-2は1から行く行インデックスの最後の要素から1+number of rowsに第二のことをいう

EDIT 2:GridBoxを使用して、以下は同じ出力を生成する:

GridBox[data, RowLines -> True, ColumnLines -> True, 
    GridFrame -> True, RowAlignments -> Center, 
    ColumnAlignments -> Center, 
    GridBoxSpacings -> {"RowsIndexed" -> {-2 -> 6}}] //DisplayForm 
ありがとう。
+0

ありがとうございます。 '-2-> 6 'のトリックが私が探していたものです。 – Nasser

関連する問題