Ham*_*aya 6 emacs org-mode org-babel
我有一个包含源代码,文档和乳胶代码的组织文件.Latex的东西绘制了一堆图表,解释了函数如何相互作用.根据,
http://orgmode.org/manual/LaTeX-fragments.html
使用html导出时,org-mode应将乳胶代码导出为图像.
#+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
Run Code Online (Sandbox Code Playgroud)
上面的工作,如果我使用pdf导出,所以我的乳胶设置工作也dvipng存在于我的系统,但导出到html乳胶块完全被忽略.
小智 7
我能够从org 8.2.5h导出一个tikz图片从org到html(实际上,使用[org-reveal] [1]来揭示.js)
#+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}
Run Code Online (Sandbox Code Playgroud)
我希望这很有帮助.没有该#+LaTeX_Header行,LaTeX进程不知道包含tikz,并且构建失败.如果我尝试
tex:dvipng而不是tex:imagemagick,那么我得到一个图像,但是一个错误的渲染图像.
使用Org-mode的最新版本(但是,比版本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:
Run Code Online (Sandbox Code Playgroud)
此外,可以使用以下命令添加标题,并将图片插入figureLaTeX 中的浮动环境中:
#+caption: A diamond.
#+attr_latex: :float t :width ""
#+results: diamond
Run Code Online (Sandbox Code Playgroud)
请注意,该:width属性设置为空字符串以清除Org-mode的默认行为,该行为设置0.9\textwidth导出到LaTeX时图片的宽度.
根据这个页面,还可以代替PNG,只需通过更换出口在SVG图片diamond.png由diamond.svg和删除的ImageMagick相关的头,如:
#+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:
Run Code Online (Sandbox Code Playgroud)
但请注意,此解决方案不支持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:
Run Code Online (Sandbox Code Playgroud)
主要区别在于"COMMENT"成为设置部分的":noexport"标签(请参阅此答案),by-backend宏代码和乳胶代码块结果的"graphics"属性.
我无法使 tikzpicture 块工作,但#+begin_latex不#+end_latex应该使用,正如您在 Org-Mode 文档的链接中所说,仅\begin{...} LATEX_CODE end{...}是必需的。
这个片段应该可以工作。
#+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 !
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4979 次 |
| 最近记录: |