Orgmode-垂直ヘッダー
組織モードで垂直ヘッダーを作成することも可能ですか?
このようなもの(シアン色のフィールド):
次のような水平ヘッダーを作成できます。
| Header | Header | Header | Header | Header |
|---------+---------+---------+---------+---------|
| Content | Content | Content | Content | Content |
しかし、私も垂直ヘッダーが必要です:
| Header | Header | Header | Header | Header |
|--------+---------+---------+---------+---------|
| Header | Content | Content | Content | Content |
| Header | Content | Content | Content | Content |
これは、HTMLにエクスポートしたいからです。
HTMLは次のようになります。
<table border="2" cellpadding="6" cellspacing="0" frame="hsides" rules="groups">
<colgroup>
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
</colgroup>
<thead>
<tr>
<th class="org-right" scope="col">.</th>
<th class="org-right" scope="col">1</th>
<th class="org-right" scope="col">2</th>
<th class="org-right" scope="col">3</th>
<th class="org-right" scope="col">4</th>
<th class="org-right" scope="col">5</th>
<th class="org-right" scope="col">6</th>
<th class="org-right" scope="col">7</th>
<th class="org-right" scope="col">8</th>
<th class="org-right" scope="col">9</th>
<th class="org-right" scope="col">10</th>
<th class="org-right" scope="col">11</th>
<th class="org-right" scope="col">12</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-right">1</td>
<td class="org-right">1</td>
<td class="org-right">2</td>
<td class="org-right">3</td>
<td class="org-right">4</td>
<td class="org-right">5</td>
<td class="org-right">6</td>
<td class="org-right">7</td>
<td class="org-right">8</td>
<td class="org-right">9</td>
<td class="org-right">10</td>
<td class="org-right">11</td>
<td class="org-right">12</td>
</tr>
</tbody>
</table>
垂直ヘッダーをサポートしている場合は、次のようになります。
<table border="2" cellpadding="6" cellspacing="0" frame="hsides" rules="groups">
<colgroup>
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
<col class="org-right">
</colgroup>
<thead>
<tr>
<th class="org-right" scope="col">.</th>
<th class="org-right" scope="col">1</th>
<th class="org-right" scope="col">2</th>
<th class="org-right" scope="col">3</th>
<th class="org-right" scope="col">4</th>
<th class="org-right" scope="col">5</th>
<th class="org-right" scope="col">6</th>
<th class="org-right" scope="col">7</th>
<th class="org-right" scope="col">8</th>
<th class="org-right" scope="col">9</th>
<th class="org-right" scope="col">10</th>
<th class="org-right" scope="col">11</th>
<th class="org-right" scope="col">12</th>
</tr>
</thead>
<tbody>
<tr>
<th class="org-right">1</th>
<td class="org-right">1</td>
<td class="org-right">2</td>
<td class="org-right">3</td>
<td class="org-right">4</td>
<td class="org-right">5</td>
<td class="org-right">6</td>
<td class="org-right">7</td>
<td class="org-right">8</td>
<td class="org-right">9</td>
<td class="org-right">10</td>
<td class="org-right">11</td>
<td class="org-right">12</td>
</tr>
</tbody>
</table>
注th2番目のコードブロックの代わりに要素tdに要素tbody。JavaScriptでこれを実行できることはわかっていますが、JavaScriptがorg-modeすでにサポートされているかどうかを知りたいので、作業がはるかに簡単になります。
回答
最初の列を「ヘッダー」列にするには、あなたがしなければならないのは
(setq org-html-table-use-header-tags-for-first-column t)
グローバルに、またはローカルファイル変数として:
# Local Variables:
# org-html-table-use-header-tags-for-first-column: t
# End:
ただし、テーブルごとに指定することはできません。
例えば:
* Multiplication table
#+ATTR_HTML: :border 3 :rules all :frame border
| . | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|----+----+----+----+----+----+----+----+----+-----+-----|
| 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 |
| 3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 |
| 4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 |
| 5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
| 6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 |
| 7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 |
| 8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 |
| 9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 |
| 10 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
#+TBLFM: @2$2..@>$> = @1$0 * @0$1
* Local variables :noexport:
# Local Variables:
# org-html-table-use-header-tags-for-first-column: t
# End:
表示されているとおりにHTMLにエクスポートされます(色を除く)。
他の変数については、マニュアルの「HTMLエクスポートの表」セクションを参照してください。ただし、#+ATTR_HTML構文に注意してください。最近のバージョンのOrgモードについては上記のとおりですが、マニュアルには古い構文が示されています。
#+ATTR_HTML: border="2" rules="all" frame="border"
バージョンによっては、これを使用する必要がある場合があります。ドキュメントに関するバグを開きます。
[古い答え:以下は質問に答えませんが、ここに残すのは十分に興味深いかもしれません。]
あなたがこのようなことを意味するならば:
* Multiplication table
| . | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 |
| 3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 |
| 4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 |
| 5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 |
| 6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 | 66 | 72 |
| 7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 | 77 | 84 |
| 8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 | 96 |
| 9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 | 99 | 108 |
| 10 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 | 110 | 120 |
| 11 | 11 | 22 | 33 | 44 | 55 | 66 | 77 | 88 | 99 | 110 | 121 | 132 |
| 12 | 12 | 24 | 36 | 48 | 60 | 72 | 84 | 96 | 108 | 120 | 132 | 144 |
#+TBLFM: @2$2..@>$> = @1$0 * @0$1
答えは強調的なYESです。
次の一連の手順でテーブルを作成しました。
M-x org-create-table RET 1x13 RET:13行の単一列テーブルを作成します。- 入力し
.、最初の行の12行目、次に入力を保つS-<Enter>行の残りの部分を充填します。 M-x org-table-transpose-table-at-point RET単一の行テーブルにします。- を押し
TABて2番目の行を作成し、その最初の列に移動します。 - 入力
1タイプを保つ第2行の最初の列とS-<Enter>、その列の残りの部分を記入します。
これで、最初の列と最初の行が作成され、テーブルに表示されている内容が入力されます。次に、上記のようにテーブルの下にテーブル数式を追加し、を押しC-c C-cます。テーブルの残りの部分が入力されます(事前にCalcをアクティブにする必要があります:入力M-x calc RET qしてください)。
テーブルの数式によると、テーブル内の1つおきのセル(行2から最後、列2から最後)に、(行1、現在の列)と(現在の行、列1)にある数値の積を入力します。