코드 블록에서 헤더가있는 테이블 생성


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헤더와 a, b, c, 등 실제로 사용 변수 도출 list에를) 그냥 인용 'hline기호 자체.
lindes 5

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


감사. 두 개의 테이블을 사용하지 않기 위해 코드 블록과 호출에 접두사를 붙 #+NAME: same-name였습니다. 이 접근법을 사용할 때 헤더 행을 계속 사용해야하기 때문에 다른 답변의 솔루션을 사용합니다.
tarsius

@tarsius 업데이트 주셔서 감사합니다! BTW 이 질문을 해주셔서 감사합니다! 도움이 될만한 표 머리글을 추가하는 여러 가지 방법을 알고 있습니다. 나는 노트를 통해 또 다른 답변을 볼 것입니다.
Melioratus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.