অর্গ-মোডের সাথে একটি HTML কাগজ ফর্ম্যাট করুন


11

এইচটিএমএল রফতানির সময় org- মোডের ডিফল্ট হ'ল লেখককে পৃষ্ঠার নীচে পোস্টমামলে রাখা।

তবে আমি শিরোনাম এবং বিমূর্তের মধ্যে লেখকের সাথে নথির মতো একটি কাগজ রফতানি করতে চাই। শিরোনামের পরে কোনওভাবে লেখককে স্থাপন করা কি সম্ভব?

এবং বিমূর্তটিকে একটি বিমূর্ত হিসাবে লেবেল করা কি সম্ভব? আমি সীমানা ব্যবহার করেছি

#+BEGIN_abstract
...
#+END_abstract

পাঠ্যটিকে বিমূর্ত হিসাবে চিহ্নিত করতে তবে এটি কেবল একটি সাধারণ অনুচ্ছেদে (ইনডেন্টের মতো কোনও ব্লককোট) হিসাবে রেন্ডার করা হয়নি। বিমূর্ত এবং স্থানীয়করণের লেবেলের জন্য সঠিক ইন্ডেন্টটি পাওয়া কি সম্ভব?


2
বিমূর্ত প্রয়োজনীয়তার জন্য CSS ব্যবহার করুন। ...হিসাবে মোড়ানো হবে <div class="abstract"><p>...</p></div>। শিরোনামের মতো একটি ল্যাটেক্স থাকার জন্য আপনার একটি বাগ রিপোর্ট পূরণ করা উচিত। আপাতত আপনি যা চান তা তৈরি করতে ম্যাক্রো {{{AUTHOR}}}এবং স্নিপেট ব্যবহার করুন @@html:whatever@@
রাসমুস

উত্তর:


10

হতে পারে এর মতো কিছু (লটেক্স এবং এইচটিএমএল দিয়ে পরীক্ষা করা)

#+TITLE: An Orged Paper
#+AUTHOR: Rasmus
#+DATE: A Dark Day for Science 

#+RESULTS: html-header

#+begin_abstract
#+begin_center
{{{html-only(*Abstract*)}}}
#+end_center
my long abstract that is longer than one line. my long abstract that is longer than one line.
#+end_abstract
#+toc: headlines
* Introduction
Please read my paper!
* Data
~{0,1}~
* Conclusion
Something deep and profound

{{{html-only(------------)}}}
* styles                                                           :noexport:
#+HTML_HEAD_EXTRA: <style type="text/css">
#+HTML_HEAD_EXTRA: <!--
#+HTML_HEAD_EXTRA:   .header_title {font-size: 2em; font-weight: bold;}
#+HTML_HEAD_EXTRA:   .header_author {font-size: 1.5em; font-weight: bold;text-align:center;}
#+HTML_HEAD_EXTRA:   .header_date {text-align:center;}
#+HTML_HEAD_EXTRA:   .header_date .timestamp {font-size:1em; color:#000000;}
#+HTML_HEAD_EXTRA:   .abstract {max-width: 30em; margin-left: auto; margin-right: auto;}
#+HTML_HEAD_EXTRA: -->
#+HTML_HEAD_EXTRA: </style>

#+OPTIONS: toc:nil

#+MACRO: html-only (eval (if (org-export-derived-backend-p org-export-current-backend 'html) "$1" ""))

#+NAME: html-header
#+BEGIN_SRC emacs-lisp :results raw :exports (if (org-export-derived-backend-p org-export-current-backend 'html) "results" "none")
  "#+begin_header
  ,#+begin_header_author
  {{{AUTHOR}}}
  ,#+end_header_author
  ,#+begin_header_date
  {{{DATE}}}
  ,#+end_header_date
  ,#+end_header
"
#+END_SRC

নোট করুন html-headerমাধ্যমে তৈরি করা যেতে পারে org-html-preamble। এও নোট করুন যে থেকে org 8.3 org-latex-title-commandফর্ম্যাট-স্ট্রিং হিসাবে শিরোনামটি কাস্টমাইজ করতে ব্যবহৃত হতে পারে।


2

উত্স কোডটি একবার দেখুন, দেখে মনে হচ্ছে এটি করার কোনও বিকল্প নেই।

আমি নিশ্চিত না যে আপনি আসলে কী চান, কেবল দুটি সম্ভাব্য উপায় সরবরাহ করুন:

  1. #+BEGIN_HTML ... #+END_HTMLআপনি যা চান তা লিখতে কেবল একটি ব্লক যুক্ত করুন । (এতে লিখিত সামগ্রী সম্পূর্ণ HTML হিসাবে বিবেচিত হবে।) তবে আপনাকে #+OPTIONS: toc: nilটিওসি অক্ষম করতে যোগ করতে হবে বা লেখককে টিওসি-র অধীনে স্থাপন করা যেতে পারে।

  2. রফতানি ফাংশনটিকে পুনরায় সংজ্ঞায়িত করুন এবং যা চান তা করুন (নোটিশ লাইন 50 ~ 52), (require 'ox-html)আপনার কনফিগার ফাইলে কেবল নীচের কোডটি রাখুন :

      (defun org-html-template (contents info)
        "Return complete document string after HTML conversion.
      CONTENTS is the transcoded contents string.  INFO is a plist
      holding export options."
        (concat
         (when (and (not (org-html-html5-p info)) (org-html-xhtml-p info))
           (let ((decl (or (and (stringp org-html-xml-declaration)
                  org-html-xml-declaration)
                 (cdr (assoc (plist-get info :html-extension)
                     org-html-xml-declaration))
                 (cdr (assoc "html" org-html-xml-declaration))
    
                 "")))
             (when (not (or (eq nil decl) (string= "" decl)))
         (format "%s\n"
             (format decl
                 (or (and org-html-coding-system
                      (fboundp 'coding-system-get)
                      (coding-system-get org-html-coding-system 'mime-charset))
                     "iso-8859-1"))))))
         (org-html-doctype info)
         "\n"
         (concat "<html"
           (when (org-html-xhtml-p info)
             (format
              " xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"%s\" xml:lang=\"%s\""
              (plist-get info :language) (plist-get info :language)))
           ">\n")
         "<head>\n"
         (org-html--build-meta-info info)
         (org-html--build-head info)
         (org-html--build-mathjax-config info)
         "</head>\n"
         "<body>\n"
         (let ((link-up (org-trim (plist-get info :html-link-up)))
         (link-home (org-trim (plist-get info :html-link-home))))
           (unless (and (string= link-up "") (string= link-home ""))
             (format org-html-home/up-format
               (or link-up link-home)
               (or link-home link-up))))
         ;; Preamble.
         (org-html--build-pre/postamble 'preamble info)
         ;; Document contents.
         (format "<%s id=\"%s\">\n"
           (nth 1 (assq 'content org-html-divs))
           (nth 2 (assq 'content org-html-divs)))
         ;; Document title.
         (let ((title (plist-get info :title)))
           (format "<h1 class=\"title\">%s</h1>\n" (org-export-data (or title "") info)))
         ;; Author
         (let ((author (plist-get info :author)))
           (format "<h2 class=\"author\">%s</h2>\n" (org-export-data (or author "") info)))
         contents
         (format "</%s>\n"
           (nth 1 (assq 'content org-html-divs)))
         ;; Postamble.
         (org-html--build-pre/postamble 'postamble info)
         ;; Closing document.
         "</body>\n</html>"))        
    

3
এটি একেবারে ভুল উপায় এটি !! অগ্রাধিকার হিসাবে, আপনাকে একটি ডেরাইভেড-ব্যাকড তৈরি করতে হবে, দেখুন org-export-define-derived-backendএবং এতে নতুন টেমপ্লেট যুক্ত করতে হবে :translate-alist। কংক্রিট উদাহরণগুলির জন্য পরীক্ষা করুন ox-beamer.el, ox-koma-script.elএবং যেমন ox-s5.el
রাসমুস

1

এটির মধ্যে আমি যে সবচেয়ে সমস্যাটি নিয়ে এসেছি তা হ'ল বিভিন্ন বিভাগের শর্তসাপেক্ষ স্টাইলিং এবং বিভিন্ন বিভাগের শর্তসাপেক্ষ নম্বর number এই উভয় সমস্যার সমাধান এটি solution

আমার কাগজটি এখানে:

#+TITLE: Complex Tracking of Awesome Things
#+AUTHOR: Bastibe
#+INCLUDE: style.org

* Abstract
:PROPERTIES:
:NUMBERS: no
:HTML_CONTAINER_CLASS: abstract
:END:

Lorem ipsum dolor sit amet...

* Introduction
:PROPERTIES:
:NUMBERS: no
:END:

* Methodology

* Results

* Conclusion

* Acknowledgements
:PROPERTIES:
:NUMBERS:  no
:END:

প্রথমত, এতে কিছু অতিরিক্ত বিকল্প সহ একটি org ফাইল অন্তর্ভুক্ত রয়েছে। style.orgউপরে বর্ণিত এই ফাইলটি কাস্টম স্টাইল শীটটি লোড করতে এইচটিএমএল রফতানি সেট করে এবং কয়েকটি লটেক্স বিকল্প সেট করে। আপনি যদি লটেক্সে রফতানি না করে থাকেন তবে আপনার সেগুলির দরকার হবে না।

#+LANGUAGE: en
#+OPTIONS: tags:nil html-postamble:nil # toc:nil
#+STARTUP: nofold hideblocks
#+BIND: org-latex-title-command ""

#+HTML_MATHJAX: path:"MathJax/MathJax.js"
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style.css" />

#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper, 12pt]
#+LATEX_HEADER: \usepackage{setspace}
#+LATEX_HEADER: \onehalfspacing
#+LATEX_HEADER: \usepackage{fontspec}
#+LATEX_HEADER: \setmainfont{Cambria}
#+LATEX_HEADER: \setmonofont{PragmataPro}
#+LATEX_HEADER: \usepackage{polyglossia}
#+LATEX_HEADER: \setdefaultlanguage{english}
#+LATEX_HEADER: \usepackage[a4paper, scale=0.8]{geometry}
#+LATEX_HEADER: \usepackage{amsmath}
#+LATEX_HEADER: \usepackage{units}
#+LATEX_HEADER: \usepackage{titling}
#+LATEX_HEADER: \usepackage{listings}
#+LATEX_HEADER: \lstset{basicstyle=\ttfamily\footnotesize,showstringspaces=false}
#+LATEX_HEADER: \usepackage[hang]{caption}

এটিকে কাগজের মতো এইচটিএমএল হিসাবে রেন্ডার করতে, একটি সামান্য সিএসএসই যথেষ্ট (এতে সংরক্ষিত style.css:

#content {
    max-width: 80ex;
    position: relative;
    margin: 5px auto;
    font-family: Cambria;
    text-align: justify;
    -moz-hyphens: auto;
}

.abstract {
    max-width: 65ex;
    margin: 5px auto;
    margin-top: 4em;
    margin-bottom: 4em;
    content: none;
}

p {
    text-indent: 5ex;
    margin-bottom: 0;
    margin-top: 0;
}

তবে বিভাগের নম্বরগুলি ভুল হবে। Org মোডটি সমস্ত বিভাগকেই সংখ্যায়িত করতে পারে বা কোনওটিই করতে পারে না। কাগজগুলি সাধারণত শরীরের বিভাগগুলিতে সংখ্যার প্রয়োজন হয় তবে অ্যাবস্ট্রাক্ট এবং সংক্ষিপ্তসারটি নয়। নিম্নলিখিত কোডের টুকরাটি অরগকে নিয়মিত বিভাগগুলির সামনে সংখ্যাগুলি রাখবে, তবে সম্পত্তি :NUMBERS: noসেট করা থাকলে সংখ্যাগুলি দমন করবে :

(defun headline-numbering-filter (data backend info)
  "No numbering in headlines that have a property :numbers: no"
  (let* ((beg (next-property-change 0 data))
         (headline (if beg (get-text-property beg :parent data))))
    (if (string= (org-element-property :NUMBERS headline) "no")
        (cond ((eq backend 'latex)
               (replace-regexp-in-string
                "\\(part\\|chapter\\|\\(?:sub\\)*section\\|\\(?:sub\\)?paragraph\\)"
                "\\1*" data nil nil 1))
              ((eq backend 'html)
               (replace-regexp-in-string
                "\\(<h[1-6]\\)\\([^>]*>\\)"
                "\\1 class=\"nonumber\"\\2" data nil nil)))
      data)))

(setq org-export-filter-headline-functions '(headline-numbering-filter))

এটি ল্যাটেক্স এক্সপোর্টের জন্য ভাল কাজ করে, তবে এইচটিএমএল রফতানিতে নয়। আধুনিক সিএসএসের সাহায্যে ব্রাউজারগুলি আপনার (যদিও সংযুক্ত style.css) নাম্বারিং করতে পারে :

/* do not show section numbers */
span.section-number-2 { display: none; }
span.section-number-3 { display: none; }
span.section-number-4 { display: none; }
span.section-number-5 { display: none; }
span.section-number-6 { display: none; }

/* use LaTeX-style names for the counters */
h1 { counter-reset: section; }
h2 { counter-reset: subsection; }
h3 { counter-reset: subsubsection; }
h4 { counter-reset: paragraph; }
h5 { counter-reset: subparagraph; }

.nonumber::before { content: none; }

h2::before {
    content: counter(section) " ";
    counter-increment: section;
}

h3::before {
    content: counter(section) "." counter(subsection) " ";
    counter-increment: subsection;
}

h4::before {
    content: counter(section) "." counter(subsection) "." counter(subsubsection) " ";
    counter-increment: subsubsection;
}

h5::before {
    content: counter(section) "." counter(subsection) "." counter(subsubsection) "." counter(paragraph) " ";
    counter-increment: paragraph;
}

h6::before {
    content: counter(section) "." counter(subsection) "." counter(subsubsection) "." counter(paragraph) "." counter(subparagraph) " ";
    counter-increment: subparagraph;
}

এটির সাহায্যে আপনি নিজের কাগজটি ল্যাটেক্স এবং এইচটিএমএল উভয়কেই রফতানি করতে পারেন।


" Org মোডটি সমস্ত বিভাগকেই সংখ্যায়িত করতে পারে, বা কোনওটিই নয় " " আহ, কীভাবে সম্পত্তি UNNUMBERED: tশিরোনামে পৌঁছে যাবে? ওআরজি-নিউজ থেকে: শিরোনামগুলি, যার জন্য সম্পত্তিটি UNNUMBEREDশূন্য নয়, এখন তাদের স্তর নির্বিশেষে বিভাগের নম্বর ছাড়াই রফতানি করা হয়। সম্পত্তি শিশুদের দ্বারা উত্তরাধিকারসূত্রে প্রাপ্ত।
রাসমুস

@ রেসামাস যে দুর্দান্ত! তবে যতদূর আমি বলতে পারি এটি কেবল org- মোড 8.3 তে চালু হয়েছিল যা এখনও প্রকাশিত হয়নি।
বাসে দিন

এটি মাস্টারে প্রয়োগ করা হয়েছে এবং সমস্ত ব্যাকেন্ডে কাজ করে। Org 8.3 দ্বার দ্বারে রয়েছে। এটি প্রকাশিত হয়নি তার মানে এটি পরীক্ষা করার এবং বাগ রিপোর্টগুলি পোস্ট করার উপযুক্ত সময় (প্রয়োজনীয় হিসাবে)!
রাসমাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.