隨着最近版本的組織模式(但是,比版本9舊---見下面的編輯),你可以使用類似下面的東西,可以導出到LaTeX以及HTML。在後一種情況下,convert
(來自ImageMagick工具包)用於將從tikz代碼段生成的PDF轉換爲尺寸爲100px×100px的PNG圖像。
#+TITLE: Test
#+AUTHOR: Blah
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [american]
#
# Setup tikz package for both LaTeX and HTML export:
#+LATEX_HEADER: \usepackage{tikz}
#+PROPERTY: header-args:latex+ :packages '(("" "tikz"))
#
#+PROPERTY: header-args:latex+ :imagemagick (by-backend (latex nil) (t "yes"))
#+PROPERTY: header-args:latex+ :exports results :fit yes
* One Diamond
#+name: diamond
#+header: :iminoptions -density 600 -resample 100x100
#+header: :file (by-backend (latex "diamond.tikz") (t "diamond.png"))
#+begin_src latex :results raw file
\begin{tikzpicture}
\draw (1,0) -- (0,1) -- (-1,0) -- (0,-1) -- cycle;
\end{tikzpicture}
#+end_src
#+attr_latex: :float nil :width ""
#+results: diamond
* COMMENT setup
#+name: setup
#+begin_src emacs-lisp :results silent :exports none
(defmacro by-backend (&rest body)
`(case (if (boundp 'backend) (org-export-backend-name backend) nil) ,@body))
#+end_src
# Local variables:
# eval: (org-sbe "setup")
# End:
此外,可以通過使用添加一個標題,並插入圖片浮動figure
環境乳膠:
#+caption: A diamond.
#+attr_latex: :float t :width ""
#+results: diamond
注意:width
屬性設置爲空字符串擦除組織模式的默認行爲,將圖片的寬度設置爲導出到LaTeX時的0.9\textwidth
。
據this page,還可以代替PNG,只需通過diamond.svg
更換diamond.png
和刪除的ImageMagick相關的頭,因爲出口在SVG圖片:
#+TITLE: Test
#+AUTHOR: Blah
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [american]
#
# Setup tikz package for both LaTeX and HTML export:
#+LATEX_HEADER: \usepackage{tikz}
#+PROPERTY: header-args:latex+ :packages '(("" "tikz"))
#
#+PROPERTY: header-args:latex+ :exports results
* One Diamond
#+name: diamond
#+header: :file (by-backend (latex "diamond.tikz") (t "diamond.svg"))
#+begin_src latex :results raw file
\begin{tikzpicture}
\draw (1,0) -- (0,1) -- (-1,0) -- (0,-1) -- cycle;
% \node at (0,0) {\(x_i\)};
\end{tikzpicture}
#+end_src
#+caption: A diamond.
#+attr_latex: :float t :width ""
#+results: diamond
* COMMENT setup
#+name: setup
#+begin_src emacs-lisp :results silent :exports none
;; (setq org-babel-latex-htlatex "htlatex")
(defmacro by-backend (&rest body)
`(case (if (boundp 'backend) (org-export-backend-name backend) nil) ,@body))
#+end_src
# Local variables:
# eval: (org-sbe "setup")
# End:
然而要注意此解決方案不支持tikz代碼中的數學宏。 htlatex
應該支持基本的數學結構(通過取消註釋上面的2個tikz和lisp行來嘗試),但是這個功能顯然需要一些返工,因爲產生的SVG是無效的。
編輯
從版本9,上面的代碼變爲(與參考該圖,爲了說明的目的):
#+TITLE: Test
#+AUTHOR: Blah
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [american]
#
# Setup tikz package for both LaTeX and HTML export:
#
#+LATEX_HEADER: \usepackage{tikz}
#+PROPERTY: header-args:latex+ :packages '(("" "tikz"))
#+PROPERTY: header-args:latex+ :imagemagick yes :fit yes
* One Diamond
#+name: diamond
#+header: :iminoptions -density 600 -resample 100x100
#+header: :file (by-backend (latex "diamond.tikz") (t "diamond.png"))
#+begin_src latex :results raw graphics
\begin{tikzpicture}
\draw (1,0) -- (0,1) -- (-1,0) -- (0,-1) -- cycle;
\end{tikzpicture}
#+end_src
#+name: fig:diamond
#+caption: A diamond.
#+attr_latex: :float t :width ""
#+results: diamond
Figure [[fig:diamond]] is a diamond.
* Setup :noexport:
#+name: setup
#+begin_src emacs-lisp :exports none :results silent
(defmacro by-backend (&rest body)
`(case org-export-current-backend ,@body))
#+end_src
# Local variables:
# eval: (org-sbe "setup")
# End:
的主要區別是在「COMMENT 「成爲設置部分的」noexport「標籤(請參閱this answer),代碼爲by-backend
宏,以及乳膠代碼塊結果的」圖形「屬性。
我想知道你對html出口商有什麼期望。 – kindahero
@ kindahero,我當然不指望它讓我喝杯咖啡,但我確實希望它用dvipng呈現圖形並將其嵌入到html中。 –
然後我想你應該使用babel http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html – kindahero