Orgmode - Tiêu đề dọc
có thể tạo tiêu đề dọc với chế độ tổ chức không?
Một cái gì đó như thế này (các trường màu lục lam):
Bạn có thể tạo một tiêu đề ngang như thế này:
| Header | Header | Header | Header | Header |
|---------+---------+---------+---------+---------|
| Content | Content | Content | Content | Content |
nhưng tôi cũng muốn có một tiêu đề dọc:
| Header | Header | Header | Header | Header |
|--------+---------+---------+---------+---------|
| Header | Content | Content | Content | Content |
| Header | Content | Content | Content | Content |
Lý do cho điều này là tôi muốn xuất nó sang HTML.
HTML sẽ giống như sau:
<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>
nếu nó hỗ trợ tiêu đề dọc, nó sẽ giống như thế này:
<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>
Lưu ý thphần tử trên khối mã thứ hai thay vì một tdphần tử trên tbody. Tôi biết tôi có thể làm điều này với JavaScript nhưng tôi muốn biết liệu org-modecó thể đã hỗ trợ nó hay không, điều này sẽ giúp mọi thứ dễ dàng hơn rất nhiều.
Trả lời
Để đặt cột đầu tiên thành cột "tiêu đề", tất cả những gì bạn phải làm là
(setq org-html-table-use-header-tags-for-first-column t)
trên toàn cầu hoặc dưới dạng biến tệp cục bộ :
# Local Variables:
# org-html-table-use-header-tags-for-first-column: t
# End:
AFAIK, bạn không thể chỉ định nó trên mỗi bảng.
Ví dụ:
* 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:
sẽ được xuất sang HTML chính xác như bạn hiển thị (ngoại trừ màu sắc).
Xem phần Xuất bảng trong HTML của sổ tay hướng dẫn để biết các biến khác, nhưng hãy cẩn thận về #+ATTR_HTMLcú pháp: nó như tôi trình bày ở trên cho các phiên bản gần đây của Chế độ tổ chức, nhưng sổ tay hướng dẫn hiển thị cú pháp cũ:
#+ATTR_HTML: border="2" rules="all" frame="border"
mà bạn có thể vẫn phải sử dụng, tùy thuộc vào phiên bản của bạn. Tôi sẽ mở một lỗi về tài liệu.
[CÂU TRẢ LỜI CŨ: phần sau không trả lời được câu hỏi nhưng có thể đủ thú vị nếu để lại ở đây.]
Nếu bạn muốn nói như thế này:
* 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
câu trả lời là CÓ.
Tôi đã tạo bảng với tập hợp các hướng dẫn sau:
M-x org-create-table RET 1x13 RET: tạo một bảng cột đơn có 13 hàng.- Nhập
.vào hàng đầu tiên,1trong hàng thứ hai và sau đó tiếp tục nhậpS-<Enter>để điền vào các hàng còn lại. M-x org-table-transpose-table-at-point RETđể biến nó thành một bảng hàng duy nhất.- Nhấn
TABđể tạo hàng thứ hai và di chuyển đến cột đầu tiên của nó. - Nhập
1vào cột đầu tiên của hàng thứ hai và sau đó tiếp tục nhậpS-<Enter>để điền vào phần còn lại của cột đó.
Bây giờ bạn có cột đầu tiên và hàng đầu tiên, được điền đầy đủ những gì bạn hiển thị trong bảng của mình. Bây giờ, hãy thêm một công thức bảng dưới bảng như được hiển thị ở trên và nhấn C-c C-c: phần còn lại của bảng sẽ được điền (bạn phải kích hoạt Calc trước: gõ M-x calc RET qđể thực hiện điều đó).
Công thức bảng cho biết: điền vào mọi ô khác trong bảng (hàng 2 đến cuối và cột 2 đến cuối) với tích của các số bạn tìm thấy trong (hàng 1, cột hiện tại) và (hàng hiện tại, cột 1).