답변:
아마도 이와 같은 것 (LaTeX 및 HTML로 테스트 됨)
#+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
. from org 8.3
org-latex-title-command
을 사용하여 제목을 format-string으로 사용자 정의 할 수 있습니다.
소스 코드를 살펴보십시오.이 작업을 수행 할 수있는 옵션이없는 것 같습니다.
나는 당신이 정말로 원하는 것을 확신하지 못하고 가능한 두 가지 방법을 제공하십시오.
#+BEGIN_HTML ... #+END_HTML
원하는 것을 쓰려면 블록을 추가하십시오 . (내용은 완전히 HTML로 취급됩니다.) #+OPTIONS: toc: nil
TOC를 비활성화 하려면 추가해야합니다. 그렇지 않으면 작성자가 TOC 아래에 배치됩니다.
내보내기 기능을 다시 정의하고 원하는 것을 수행하십시오 (Notice line 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>"))
org-export-define-derived-backend
하고 새 템플릿을 참조 하여 추가해야합니다 :translate-alist
. 구체적인 예 를 들어 ox-beamer.el
, 예를 들어 확인하십시오 . ox-koma-script.el
ox-s5.el
내가 겪었던 가장 어려운 문제는 다른 섹션의 조건부 스타일과 다른 섹션의 조건부 번호 매기기입니다. 이 두 가지 문제에 대한 해결책입니다.
여기 내 논문이 있습니다 :
#+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
위에서 호출 한이 파일 은 사용자 정의 스타일 시트를로드하도록 HTML 내보내기를 설정하고 몇 가지 LaTeX 옵션을 설정합니다. LaTeX로 내 보내지 않으면 필요하지 않습니다.
#+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}
종이와 같은 HTML, 약간의 CSS가 충분로 렌더링하기 위해이은 (저장 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;
}
그러나 섹션 번호가 잘못됩니다. 조직 모드는 모든 섹션에 번호를 매기거나 전혀 지정할 수 없습니다. 논문은 일반적으로 본문 섹션에 숫자가 필요하지만 초록과 요약은 필요하지 않습니다. 다음 코드는 조직이 일반 섹션 앞에 숫자를 넣도록하지만 속성 :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))
이것은 LaTeX 내보내기에는 효과적이지만 HTML 내보내기에는 적합하지 않습니다. 최신 CSS를 사용하면 브라우저에서 번호를 매길 수 있습니다 (에 추가 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;
}
이를 통해 종이를 LaTeX와 HTML로 모두 내보낼 수 있습니다.
UNNUMBERED: t
을 헤드 라인 에 전달하는 것은 어떻습니까? ORG-NEWS에서 : 속성 UNNUMBERED
이 0이 아닌 헤드 라인 은 이제 레벨에 관계없이 섹션 번호없이 내보내집니다. 이 숙박 시설은 어린이가 상속합니다.
...
로 포장됩니다<div class="abstract"><p>...</p></div>
. LaTeX와 같은 제목을 가지려면 버그 보고서를 작성해야합니다. 지금은 매크로{{{AUTHOR}}}
와 스 니펫@@html:whatever@@
을 사용하여 원하는 것을 빌드하십시오.