संगठन-मोड: निर्यात करते समय टीओसी से विशिष्ट हेडलाइंस को बाहर करें


13

प्रश्न: मैं org-modeनिर्यात करते समय सामग्री की तालिका से विशिष्ट सुर्खियों को बाहर करने के लिए कैसे कह सकता हूं ?

उदाहरण के लिए, निर्यात

* Headline 1: Put me in TOC
* Headline 2: Put me in TOC
* Headline 3: DO NOT put me in TOC

HTML पैदा करता है

...
<div id="text-table-of-contents">
  <ul>
    <li><a href="#sec-1">1. Headline 1: Put me in TOC</a></li>
    <li><a href="#sec-2">2. Headline 2: Put me in TOC</a></li>
    <li><a href="#sec-3">3. Headline 3: DO NOT put me in TOC</a></li>
  </ul>
</div>
...

लेकिन मैं यह उत्पादन करने के लिए चाहते हैं

...
<div id="text-table-of-contents">
  <ul>
    <li><a href="#sec-1">1. Headline 1: Put me in TOC</a></li>
    <li><a href="#sec-2">2. Headline 2: Put me in TOC</a></li>
  </ul>
</div>
...

विषय सूची की धारा org-modeमैनुअल इस पर कोई जानकारी नहीं है।

इसके अलावा, मुझे पता है कि मैं कीवर्ड को ( ) के साथ org-modeसेट करके या उनके साथ टैग करके हेडलाइंस को एक्सपोर्ट करने से रख सकता हूं । हालांकि यह टीओसी में प्रभावित होने से सुर्खियों में रहता है, लेकिन इससे उनकी सामग्री को परिणामी दस्तावेज से हटा दिया जाता है, जो कि मैं नहीं चाहता।COMMENTC-c ;org-toggle-comment:noexport:


1
यह वह उत्तर नहीं है जिसकी आप तलाश कर रहे हैं, बल्कि सिर्फ एक और मृत-अंत के नोट के रूप में: EXPORT_OPTIONS: toc:nil लगभग वही करता है जो आप चाहते हैं, लेकिन केवल तब जब आप केवल सबट्री निर्यात करते हैं। स्पष्ट करने के लिए, क्या आप चाहते हैं कि अनुभाग अभी भी क्रमांकित हो, या क्या आप LaTeX के लिए कुछ करना चाहते हैं \section*?
शॉन एल्ड्रेड

@ SeanAllred मैं चाहूंगा कि अनुभाग अभी भी क्रमांकित हो। आमतौर पर, मैं अलग-अलग वर्गों के निर्यात के तरीके के बारे में कुछ भी बदलना नहीं चाहता। मैं उनमें से कुछ को टीओसी में दिखाना नहीं चाहता।
इसका 17

जवाबों:


12

ओआरजी org-export-collect-headlinesसुर्खियां बटोरने के लिए उपयोग करता है जो टीओसी में होना चाहिए। इस फ़ंक्शन में पहले से ही सुर्खियों को बाहर करने के दो मानदंड शामिल हैं : शीर्षक की गहराई और क्या यह "फुटनोट अनुभाग" (*) है, इसलिए एक और जोड़ना आसान है।

org-export-collect-headlinesनीचे का संशोधित संस्करण देखें। यह संस्करण NOTOCसंपत्ति सेट करके टीओसी में एक हेडलाइन को दिखाने से रोकना संभव बनाता है ।

* Section 1: shows up in the TOC

* Section 2: modified Org code (not in the TOC)
  :PROPERTIES:
  :NOTOC:    t
  :END:

  This is the modified =org-export-collect-headlines=:

  #+BEGIN_SRC elisp
  (defun org-export-collect-headlines (info &optional n)
    "Collect headlines in order to build a table of contents. [...]

  Return a list of all exportable headlines as parsed elements.
  Footnote sections, if any, will be ignored."
    (let ((limit (plist-get info :headline-levels)))
      (setq n (if (wholenump n) (min n limit) limit))
      (org-element-map (plist-get info :parse-tree) 'headline
        #'(lambda (headline)
            (unless (or (org-element-property :NOTOC headline)               ; new condition
                        (org-element-property :footnote-section-p headline)) ; old condition
              (let ((level (org-export-get-relative-level headline info)))
                (and (<= level n) headline))))
        info)))
  #+END_SRC

** Sub-section
   This shows up in the TOC: property inheritance is off by default.

(*) मैं नहीं जानता कि "फुटनोट सेक्शन" क्या हैं।

यह निर्यात बैकएंड के लिए काम करता है जो टीओसी को मैन्युअल रूप से बनाता है। LaTeX, बीमर और टेक्सिनफो बैकएंड नहीं करते हैं।

इस सलाह को जोड़कर org-export-numbered-headline-p, UNNUMBEREDसंपत्ति के निर्यात के साथ सुर्खियां बना सकते हैं \section*{...}, जैसे कि लाटेक और बीमर को निर्यात करते समय टीओसी से बाहर करना:

(advice-add 'org-export-numbered-headline-p :around
            (lambda (orig headline info)
              (and (funcall orig headline info)
                   (not (org-element-property :UNNUMBERED headline)))))

ध्यान दें कि 2014-10-03 20-22:34 (GMT) के अनुसार UNNUMBERED का चेक बिल्ट-इन है


1
धन्यवाद, यह HTML निर्यात के लिए ठीक काम करता है। मुझे वास्तव में LaTeX / बीमर के लिए काम करने के लिए भी इसकी आवश्यकता है; मैंने शुरू में इसका उल्लेख नहीं किया क्योंकि मैंने यह माना था कि एक सामान्य समाधान होना चाहिए जो सभी (या कम से कम सबसे अधिक) निर्यात बैक-एंड के लिए काम करेगा ... क्या आपके पास कोई विचार है कि इस मुद्दे को LaTeX निर्यात के लिए कैसे निपटाया जाए? तुलना करते समय .htmlऔर निर्यात करते समय उत्पन्न होने वाली .texफाइलें org-mode, मुख्य समस्या यह प्रतीत होती है कि org-modeHTML के लिए TOC को मैन्युअल रूप से बनाता है, लेकिन बस फ़ाइल \tableofcontentsमें एक जेनेरिक डंप करता .texहै।
itsjeyd

@itsjeyd: मुझे नहीं लगता कि जेनेरिक समाधान संभव है: जैसा कि आपने कहा, LaTeX (और बीमर, और टेक्सिनफो) निर्यात बैकेंड टीओसी बनाने के लिए देशी आदेशों का उपयोग करते हैं जबकि अन्य बैकेंड टीओसी मैन्युअल रूप से बनाते हैं। यह है करने के लिए संभव LaTeX में टीओसी से एक अनुभाग को बाहर है, लेकिन मैं एक समाधान है कि के रूप में समुदाय द्वारा स्वीकार किया जाता है नहीं मिला है सहीorg-modeनिर्यात कोड में मेरे द्वारा उपयोग किए गए विचार से बड़े बदलावों की आवश्यकता होगी org-latex-headline। टेक्सिनफो में इसे लागू करने के लिए समर्थन के रूप में, मुझे यह भी नहीं पता कि कहां से शुरू किया जाए।
कॉन्सटेंटाइन

ठीक है, निम्नलिखित के लिए बहुत बहुत धन्यवाद। बीमर के लिए, मुझे लगता है कि मैं सिर्फ उन वर्गों को बनाने का सहारा लूंगा जिन्हें मैं टीओसी में नहीं दिखाना चाहता हूं । मामला समाप्त। :)
itsjeyd

@itsjeyd: आप संशोधित कर सकते हैं org-export-numbered-headline-pलगभग स्वचालित रूप से इस व्यवहार पाने के लिए - अगर यह एक बेशुमार अनुभाग में तब्दील है , एक विकल्प है। यदि आप रुचि रखते हैं तो मैं विस्तार से बता सकता हूं।
कांस्टेंटाइन

कृपया करें - हमेशा सरल समाधानों में रुचि!
इसका अजायबघर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.