कोड ब्लॉक से हेडर के साथ टेबल बनाना


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सब कुछ के लिए घ मूल्यों (जैसे हो सकता है आप एक प्रयोग कर रहे हैं :varशीर्षक और a, b, c, आदि वास्तव में चर जो आप का उपयोग प्राप्त कर रहे हैं 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-अज्ञात-साइबरविन, GTK + संस्करण 3.14.13)
org-version: 8.3.2


धन्यवाद। दो तालिकाओं से बचने के लिए मैंने कोड ब्लॉक और कॉल के साथ दोनों को उपसर्ग किया #+NAME: same-name। चूँकि इस दृष्टिकोण का उपयोग करते समय मुझे अभी भी हेडर पंक्ति को नियमित करना है, इसलिए मैं दूसरे उत्तर में समाधान के साथ जाऊँगा।
tarsius

@tarsius अपडेट के लिए धन्यवाद! यह सवाल पूछने के लिए BTW धन्यवाद! मुझे टेबल हेडर जोड़ने के कई अलग-अलग तरीकों के बारे में पता है जो आपको मददगार लग सकते हैं। मैं अपने नोट्स के माध्यम से एक पोस्ट एक और जवाब देखूंगा।
मेलियोरैटस 15
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.