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


9

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

#+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 | First | Second |は存在しません。というか、何か見落としていることを願っています。(ここでは(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

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

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

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

で再生した後:colnames、他の答えで提案されているように私は開いている機能要求にありますように、それが見える#+BEGIN_SRC ... :colnames yesだけでなく、:colnames "| First | Second |"。それまでは、このアプローチでいきます。
tarsius

念の誰でノートでは、これは役に立つ追加を見つける:あなたが使用していない場合quote(例えば、多分あなたが使用しているすべてのためにd値を:varヘッダとabc、など実際にあなたが使用する変数導出されているlistのを)、単に引用します'hlineシンボル自体。
lindes

3

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

  1. #+NAME:コードブロックに割り当てます。

    #+NAME: needs-a-table-header
    #+BEGIN_SRC emacs-lisp :results value table 
      (cons (list "First" "Second")
            (identity '((a b) (c d))))
    #+END_SRC
    
  2. ヘッダー#+CALL:付きのステートメントを追加:colnames yes

    #+CALL: needs-a-table-header() :colnames yes 
    
  3. #+CALL:を使用してステートメントを実行し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-version:8.3.2


ありがとう。2つのテーブルを避けるために、コードブロックとでの呼び出しの両方にプレフィックスを付けました#+NAME: same-name。このアプローチを使用する場合でもヘッダー行をコンスレートする必要があるため、別の回答で解決策を説明します。
tarsius

@tarsius更新ありがとうございます!ところで、この質問をしてくれてありがとう!私はあなたが役立つかもしれないテーブルヘッダーを追加するいくつかの異なる方法を知っています。私は自分のノートと投稿の別の答えを調べます。
Melioratus
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.