Hi Haochen,
Haochen Xie <haoc...@xie.name> writes: > Hi, > > I'm trying to include a diagram drawn with tikz in a document, but > couldn't find an elegant way to conditionally export it as png when > generating HTML output and raw TeX code when generating PDF. It is > possible to use > > #+OPTIONS: tex:imagemagick > > to have tex blocks in the document exported as PNG in HTML, but since > I have other formulas which will render much better with MathJAX other > than embedded PNGs, i really don't want to do it. What I'm currently > doing is to use something like > > #+BEGIN_SRC latex :file diagram.png :results value raw > \begin{tikzpicture} > \draw (0,0) grid (7,5); > \draw (0,0) node[below left] {$A$}; > \draw (7,5) node[above right] {$B$}; > \fill (0,0) circle (2pt); > \fill (7,5) circle (2pt); > \end{tikzpicture} > #+END_SRC > > #+RESULTS[da59bc402ce2d1055b5ff471ea7e398c4e0488f5]: > [[file:diagram.png]] > > so that the diagram will be include in the HTML file as a png image, > and the pdf file will also include it as a raster image. > > But this method is rather a workaround. I'd like to see a vector > diagram in the pdf file, which could be achieved if there is a way to > specify how a block of TeX source code should be handled when exported > to HTML regardless to the global settings. So I propose an extension > to #+BEGIN_LaTeX block so that a new header :html will control how the > specific block will be handled when exporting to HTML. The possible > values might be none, t, dvipng, or imagemagick. "none" will ignore > the whole block when exporting to HTML, just like the current > behavior; "t" will try to call MathJAX to interpret this block of TeX > code; and "dvipng" and "imagemagick" will call "dvipng" or > "imagemagick" to render a png file to be embedded in the HTML page. > > If that extension is supported, we could then left the global option > tex:t while inline a tex powered figure with great convenience. For > example, in my use case, I could then just used the following code to > achieve what I want: > > #+BEGIN_LaTeX :html imagemagick > \begin{tikzpicture} > \draw (0,0) grid (7,5); > \draw (0,0) node[below left] {$A$}; > \draw (7,5) node[above right] {$B$}; > \fill (0,0) circle (2pt); > \fill (7,5) circle (2pt); > \end{tikzpicture} > #+END_LaTeX > > As I'm new to org-mode, I may missed something that I could use > instead (although I searched the internet very hard). Please feel free > to disagree on me and point alternative ways to achieve my goal. > > Thanks in advance. > > Best regards, > > Haochen > There has been a thread on this list recently on this topic [1]. See [2] for an example and [3] for some further explanations. Regards, Andreas [1] http://comments.gmane.org/gmane.emacs.orgmode/95174 [2] http://permalink.gmane.org/gmane.emacs.orgmode/95197 [3] http://permalink.gmane.org/gmane.emacs.orgmode/95297