2011-09-19 36 views
5

Tôi có tệp tổ chức với nguồn, tài liệu và mã latex. Thứ cao su vẽ một loạt các đồ thị giải thích cách các hàm tương tác với nhau. Theo,xuất khẩu html chế độ org

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

org-mode nên xuất khẩu đang mủ như hình ảnh khi sử dụng xuất khẩu html.

#+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 

Trên hoạt động nếu tôi sử dụng xuất khẩu pdf để thiết lập mủ của tôi đang làm việc cũng dvipng có mặt trên hệ thống của tôi nhưng khi xuất khẩu sang khối html mủ là hoàn toàn bị bỏ qua.

+1

Tôi tự hỏi bạn mong đợi điều gì từ nhà xuất khẩu html. – kindahero

+1

@kindahero, tôi chắc chắn không mong đợi nó để làm cho tôi một tách cà phê nhưng tôi hy vọng nó để làm cho đồ thị với dvipng và nhúng nó vào html. –

+0

Sau đó, tôi đoán bạn nên sử dụng babel http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html – kindahero

Trả lời

2

Tôi không thể tạo các khối tikzpicture hoạt động nhưng #+begin_latex#+end_latex không được sử dụng, như đã nói trong liên kết đến tài liệu Chế độ tổ chức của bạn, chỉ yêu cầu \begin{...} LATEX_CODE end{...}.

Đoạn mã này sẽ hoạt động.

#+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 không xử lý tikz. Tôi đã làm việc xung quanh này về cài đặt của tôi bằng cách thay thế dvipng với Shell Script sau:

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

Bây giờ, tôi có thể xem trước một đoạn tikz với C-x C-c C-l, hoặc xuất khẩu nó sang HTML. Không phải là một giải pháp lý tưởng, nhưng nó hoạt động cho tôi.

+0

Bất kỳ may mắn nào với điều này hoặc bạn vẫn đang sử dụng cùng một giải pháp? Tôi không thể thực hiện công việc này. –

7

tôi đã có thể xuất khẩu một bức tranh tikz từ org để html (trên thực tế, để reveal.js sử dụng [org-tiết lộ] [1]) từ danh org 8.2.5h như sau

#+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} 

tôi hy vọng đó là hữu ích. Không có đường dây #+LaTeX_Header, quy trình LaTeX không biết bao gồm tikz và quá trình tạo không thành công. Nếu tôi thử tex:dvipng thay vì tex:imagemagick thì tôi sẽ nhận được hình ảnh, nhưng được hiển thị không chính xác.

+0

đó là chính xác những gì tôi đã được tìm kiếm cả ngày (cũng để có được nó để làm việc trong org-tiết lộ btw)! – rockt

4

Với các phiên bản Org gần đây (cũ hơn phiên bản 9 --- xem chỉnh sửa bên dưới), bạn có thể sử dụng một cái gì đó như sau, có thể xuất sang LaTeX cũng như HTML. Trong trường hợp thứ hai, convert (từ bộ công cụ ImageMagick) được sử dụng để dịch một tệp PDF được tạo từ đoạn mã tikz thành hình ảnh PNG có kích thước 100px x 100px.

#+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: 

Bên cạnh đó, người ta có thể thêm một chú thích, và chèn các hình ảnh trong một figure môi trường trôi nổi trong LaTeX, bằng cách sử dụng:

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

Note thuộc tính :width được thiết lập để các chuỗi rỗng để xóa hành vi mặc định của chế độ Org, thiết lập chiều rộng của hình ảnh thành 0.9\textwidth khi xuất sang LaTeX.


Theo this page, nó cũng có thể xuất những bức tranh trong SVG thay vì PNG, chỉ đơn giản bằng cách thay thế diamond.png bởi diamond.svg và loại bỏ tiêu đề ImageMagick liên quan, như trong:

#+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: 

Lưu ý tuy nhiên đó giải pháp này không hỗ trợ các macro toán học trong mã tikz. htlatex nên hỗ trợ các cấu trúc toán học cơ bản (được thử bằng cách không nhận xét 2 dòng tikz và lisp ở trên), nhưng tính năng này cần một số làm lại rõ ràng, vì SVG kết quả là không hợp lệ.


Sửa

Kể từ phiên bản 9, các mã trên sẽ trở thành (với một tham chiếu đến con số này, cho mục đích minh họa):

#+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: 

Sự khác biệt chính là ở "COMMENT "trở thành thẻ": noexport "cho phần thiết lập (xem this answer), mã của macro by-backend và thuộc tính" đồ họa "cho kết quả của khối mã latex.

+0

Xin chào, bạn có thể nói 'latex + 'exaclty là gì? – DJJ

+0

'# + THUỘC TÍNH: header-args: latex + ' chắp thêm '' vào đối số tiêu đề có tên 'header-args: latex'. Đây là bằng cách nào đó "đoán được" [trong tài liệu] (http://orgmode.org/manual/Property-syntax.html#Property-syntax) (mặc dù tôi đồng ý điều này có thể được cải thiện). – nberth

+0

Tuyệt vời !!! Tôi đã làm việc trên một giải pháp cho OrgMode9 trong vài giờ ... –

Các vấn đề liên quan