2011-09-19 6 views
5

私は、ソース、ドキュメント、ラテックスコードのorgファイルを持っています。ラテックスのものは、関数がどう相互作用するかを説明する一連のグラフを描きます。 HTMLエクスポートを使用する場合org-mode html export

http://orgmode.org/manual/LaTeX-fragments.html

ORGモードによれば、画像としてラテックスコードをエクスポートしなければなりません。私は私のラテックスのセットアップはdvipngも働いているので、PDFエクスポートを使用している場合

#+TITLE: Test 
#+AUTHOR: Blah 
#+LATEX_HEADER: \usepackage{tikz} 
#+OPTIONS: LaTeX:dvipng 

#+begin_latex 

    \begin{tikzpicture} 
    \draw (1,0) -- (0,1) -- (-1,0) -- (0,-1) -- cycle; 
    \end{tikzpicture} 

#+end_latex 

は、上記の私のシステム上に存在するが、HTMLのラテックスブロックへのエクスポート時に完全に無視されて動作します。唯一\begin{...} LATEX_CODE end{...}が必要とされ、組織モードのマニュアルをあなたのリンクに言ったように

+1

あなたはhtmlの輸出業者から何を期待しているのだろうか。 – kindahero

+1

@kindahero、私は確かにそれは私にコーヒーのカップを作ることを期待していないが、私はdvipngでグラフをレンダリングし、htmlに埋め込むことを期待しています。 –

+0

それからあなたはバベルhttp://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.htmlを使用する必要がありますね – kindahero

答えて

2

私が働いてtikzpictureブロックを作ることができませんでしたが、#+begin_latex#+end_latexは、使用すべきではありません。

このスニペットはうまくいくはずです。

#+OPTIONS:  LaTeX:dvipng 
* Test 
    Blah 

    \begin{equation}       % arbitrary environments, 
    x=\sqrt{b}        % even tables, figures 
    \end{equation}       % etc 

    If $a^2=b$ and \(b=2 \), then the solution must be either $$ 
    a=+\sqrt{2} $$ or \[ a=-\sqrt{2} \]. 

    Done ! 
3

dvipngはtikzを処理しません。私は、次のシェルスクリプトでdvipngを置き換えることによって、私のインストールでこの問題を回避働いてきた:

#! /bin/bash 
shift 
shift 
dvips $9 
gm convert -trim $9 ${9/dvi/png} 

今、私はC-X C-C、C-Lとは、TikZスニペットをプレビューすることができ、またはそれはHTMLにエクスポートします。理想的な解決策ではありませんが、それは私のために働きます。

+0

これで運が良かったり、同じ回避策を使用していますか?私はこの仕事をすることはできません。 –

7

私は組織からのHTMLには、TikZ画像をエクスポートすることができた(実際、 reveal.jsに[ORG-明らかにする]を使用して、[1])ORG 8.2.5hから次

#+OPTIONS: tex:imagemagick 
#+LaTeX_HEADER: \usepackage{tikz} 

* Slide Title 

\begin{tikzpicture} 
    \draw [blue,fill] (0,0) rectangle (5,3); 
    \draw [red,fill] (0,0) rectangle (3,2); 
\end{tikzpicture} 

とI希望があれば助かります。 #+LaTeX_Header行がなければ、LaTeX プロセスはtikzを含むことを知らず、ビルドに失敗します。私は tex:dvipng代わりのtex:imagemagickをしようとすると、私はイメージが、 間違ってレンダリングされたものを得ます。組織モードの最近のバージョンでは

+0

これはまさに私が一日を探していたことです(これもまたorg-reveal btwで動作するようになっています)! – rockt

4

(まだ、バージョン9よりも古い---下の編集を参照してください)、あなたはラテックスにだけでなく、HTMLにエクスポートすることができ、次のようなものを、使用することができます。後者の場合は、ImageMagickツールキットのconvertを使用して、tikzコードスニペットから生成されたPDFをサイズ100px x 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: 

また、1はキャプションを追加することができ、かつ使用することにより、ラテックス中に浮いfigure環境で画像を挿入::width属性を消去するには、空の文字列に設定されている

#+caption: A diamond. 
#+attr_latex: :float t :width "" 
#+results: diamond 

注意Org-modeのデフォルトの動作で、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: 

主な違いは、「コメントであります(this answer参照)、by-backendマクロのコード、latexコードブロックの結果の "graphics"属性になります。

+0

こんにちは、あなたは 'ラテックス+'が何であるか教えていただけますか? – DJJ

+0

'#+ PROPERTY:header-args:latex + 'は 'header-args:latex'というヘッダ引数に' 'を追加します。これはどうにかして "推測できます"(http://orgmode.org/manual/Property-syntax.html#Property-syntax)(これは改善できると私は同意しますが)。 – nberth

+0

驚くばかり! OrgMode9のソリューションを数時間使っていました... –