コードブロックからヘッダーを含むテーブルを生成する

私はコードブロックからヘッダを持つテーブルを生成したいと思います。このようなもの:

#+BEGIN_SRC emacs-lisp :results value table :table-header | First | Second |
  (identity '((a b) (c d)))
#+END_SRC

#+RESULTS:
| First | Second |
|-------+--------|
| a     | b      |
| c     | d      |

残念ながらのようなものです:table-header |最初の| 2番目のは存在しません。それとも私は何かを見落としていることを望んでいます。 (ここでは、実際に値を計算するコードのプレースホルダとして(identity ...)を使用しています)。

この回避策は私にとってはあまり効果がありません。

#+BEGIN_SRC emacs-lisp :results value table
  (cons (list "First" "Second")
        (identity '((a b) (c d))))
#+END_SRC

#+RESULTS:
| First | Second |
| a     | b      |
| c     | d      |

私はコードブロックの内容を変更する必要があり、結果のヘッダーは実際にはヘッダー行ではなく、他の行と同じ行になります。

これに関連していますが(100%同じではありませんが、上記のコードブロックの中に内部テーブル設定命令を置く必要はありません)、挿入を引き起こす特別な要素がありますセパレータの?何かのようなもの:

#+BEGIN_SRC emacs-lisp :results value table
  (nconc (identity '((a b) (c d)))  ; calculated value A
         (list 'linebreak)          ; explicitly inserted linebreak
         (identity '((A B) (C D)))) ; calculated value B
#+END_SRC

#+RESULTS:
| a | b |
| c | d |
|---+---|
| A | B |
| B | D |
9
追加された
ビュー: 2

2 答え

linebreak の代わりに hline を使用してください。 次の作品:

* test
#+BEGIN_SRC emacs-lisp :results value table
  '(("First" "Second")
    hline
    (a b) (c d))
#+END_SRC

#+RESULTS:
| First | Second |
|-------+--------|
| a     | b      |
| c     | d      |
10
追加された
他の回答に示唆されているように:colnames で試してみたところ、#+ BEGIN_SRC ...:colnames yes の機能リクエストを開く必要があるようです:colnames "| First | Second |" として指定します。それまでは私はこのアプローチで行くつもりです。
追加された 著者 num1,
:var ヘッダーとヘッダーを使用しているなど、すべての場合に quote dの値を使用していない場合は、 abc などは実際には list code> 'hline のシンボル自体です。
追加された 著者 sempaiscuba,

ヘッダー行を追加した後:

  1. Assign #+NAME: to code block.

    #+NAME: needs-a-table-header
    #+BEGIN_SRC emacs-lisp :results value table 
      (cons (list "First" "Second")
            (identity '((a b) (c d))))
    #+END_SRC
    
  2. Add #+CALL: statement with :colnames yes header

    #+CALL: needs-a-table-header() :colnames yes 
    
  3. Run #+CALL: statement using C-c C-c.

    #+RESULTS:
    | First | Second |
    |-------+--------|
    | a     | b      |
    | c     | d      |
    

それが助けてくれることを願って!


を使用してテストされたコード      

GNU Emacs 24.5.1(x86_64-unknown-cygwin、GTK +バージョン3.14.13)
  orgバージョン:8.3.2

2
追加された
ありがとう。 2つのテーブルがないように、コードブロックと呼び出しの両方に#+ NAME:same-name を付けました。このアプローチを使用する際にはヘッダー行を無視しなければならないので、もう1つの答えで解決策を検討します。
追加された 著者 num1,
@tarsiusアップデートありがとう! BTW この質問をお寄せいただきありがとうございます!参考になる可能性のあるテーブルヘッダーを追加するいくつかの方法があります。私はノートを見て別の答えを投稿します。
追加された 著者 Draco18s,