From mboxrd@z Thu Jan 1 00:00:00 1970 From: Feng Shu Subject: Re: [PATCH] bugfix: fix previewing latex fragments with imagemagick Date: Sun, 14 Jul 2013 21:08:26 +0800 Message-ID: <87txjx5lx1.fsf@gmail.com> References: <87ehb1lf31.fsf@gmail.com> <87a9lplest.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39649) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UyM2W-0000BW-82 for emacs-orgmode@gnu.org; Sun, 14 Jul 2013 09:08:37 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UyM2U-0005vp-RO for emacs-orgmode@gnu.org; Sun, 14 Jul 2013 09:08:36 -0400 Received: from mail-pa0-x229.google.com ([2607:f8b0:400e:c03::229]:47591) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UyM2U-0005vV-Fh for emacs-orgmode@gnu.org; Sun, 14 Jul 2013 09:08:34 -0400 Received: by mail-pa0-f41.google.com with SMTP id bj3so10426176pad.14 for ; Sun, 14 Jul 2013 06:08:33 -0700 (PDT) In-Reply-To: <87a9lplest.fsf@gmail.com> (Nicolas Goaziou's message of "Sun, 14 Jul 2013 10:35:30 +0200") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Nicolas Goaziou Cc: "emacs-orgmode@gnu.org" --=-=-= Content-Type: text/plain This is version 2, --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: inline; filename=0001-Fix-generating-LaTeX-formula-images.patch Content-Transfer-Encoding: quoted-printable >From 1ea9620cd3051cb982a4fb7ddb6f8a68fd0df4a6 Mon Sep 17 00:00:00 2001 From: Feng Shu Date: Sun, 14 Jul 2013 14:18:53 +0800 Subject: [PATCH] Fix generating LaTeX formula images * lisp/ox-odt.el (org-odt--translate-latex-fragments): Fix imagemagick supp= ort. * lisp/ox-html.el (org-html-latex-environment) (org-html-latex-fragment): Fix imagemagick support. * org.el (org-create-formula-image-with-imagemagick): Generate correct size formula image. (org-format-latex-header): Change pagestyle command position. * doc/org.texi (@LaTeX{} fragments) (Previewing @LaTeX{} fragments) (Math formatting in HTML export) (Working with @LaTeX{} math snippets): Add document about creating formula image with imagemagick. --- doc/org.texi | 32 +++++++++++++++++++++++--------- lisp/org.el | 4 ++-- lisp/ox-html.el | 4 ++-- lisp/ox-odt.el | 11 ++++++----- 4 =E4=B8=AA=E6=96=87=E4=BB=B6=E8=A2=AB=E4=BF=AE=E6=94=B9=EF=BC=8C=E6=8F=92= =E5=85=A5 33 =E8=A1=8C(+)=EF=BC=8C=E5=88=A0=E9=99=A4 18 =E8=A1=8C(-) diff --git a/doc/org.texi b/doc/org.texi index 8db410c..97e6ef6 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -10156,10 +10156,10 @@ snippets will be identified as @LaTeX{} source co= de: @item Environments of any kind@footnote{When @file{MathJax} is used, only the environments recognized by @file{MathJax} will be processed. When -@file{dvipng} is used to create images, any @LaTeX{} environment will be -handled.}. The only requirement is that the @code{\begin} and @code{\end} -statements appear on a new line, at the beginning of the line or after -whitespaces only. +@file{dvipng} program or @file{imagemagick} suite is used to create images, +any @LaTeX{} environment will be handled.}. The only requirement is that = the +@code{\begin} and @code{\end} statements appear on a new line, at the +beginning of the line or after whitespaces only. @item Text within the usual @LaTeX{} math delimiters. To avoid conflicts with currency specifications, single @samp{$} characters are only recognized as @@ -10197,7 +10197,6 @@ lines: =20 @example #+OPTIONS: tex:t @r{Do the right thing automatically (MathJax)} -#+OPTIONS: tex:dvipng @r{Force using dvipng images} #+OPTIONS: tex:nil @r{Do not process @LaTeX{} fragments at all} #+OPTIONS: tex:verbatim @r{Verbatim export, for jsMath or so} @end example @@ -11257,6 +11256,7 @@ You could use @code{http} addresses just as well. @subsection Math formatting in HTML export @cindex MathJax @cindex dvipng +@cindex imagemagick =20 @LaTeX{} math snippets (@pxref{@LaTeX{} fragments}) can be displayed in two different ways on HTML pages. The default is to use the @@ -11282,13 +11282,19 @@ this line. If you prefer, you can also request that @LaTeX{} fragments are processed into small images that will be inserted into the browser page. Before the availability of MathJax, this was the default method for Org files. This -method requires that the @file{dvipng} program is available on your system. -You can still get this processing with +method requires that the @file{dvipng} program or @file{imagemagick} suite= is +available on your system. You can still get this processing with =20 @example #+OPTIONS: tex:dvipng @end example =20 +or: + +@example +#+OPTIONS: tex:imagemagick +@end example + @node Text areas in HTML export, CSS support, Math formatting in HTML expo= rt, HTML export @subsection Text areas in HTML export =20 @@ -12265,17 +12271,25 @@ and open the formula file with the system-registe= red application. @end table =20 @cindex dvipng +@cindex imagemagick @item PNG images =20 This option is activated on a per-file basis with =20 @example -#+OPTIONS: LaTeX:dvipng +#+OPTIONS: tex:dvipng +@end example + +or: + +@example +#+OPTIONS: tex:imagemagick @end example =20 With this option, @LaTeX{} fragments are processed into PNG images and the resulting images are embedded in the exported document. This method requi= res -that the @file{dvipng} program be available on your system. +that the @file{dvipng} program or @file{imagemagick} suite be available on +your system. @end enumerate =20 @node Working with MathML or OpenDocument formula files, , Working with @= LaTeX{} math snippets, Math formatting in ODT export diff --git a/lisp/org.el b/lisp/org.el index f8cd447..fb5099e 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -3764,9 +3764,9 @@ images at the same place." \\usepackage[usenames]{color} \\usepackage{amsmath} \\usepackage[mathscr]{eucal} -\\pagestyle{empty} % do not remove \[PACKAGES] \[DEFAULT-PACKAGES] +\\pagestyle{empty} % do not remove % The settings below are copied from fullpage.sty \\setlength{\\textwidth}{\\paperwidth} \\addtolength{\\textwidth}{-3cm} @@ -18609,7 +18609,7 @@ share a good deal of logic." (font-height (face-font 'default)) (face-attribute 'default :height nil))) (scale (or (plist-get options (if buffer :scale :html-scale)) 1.0)) - (dpi (number-to-string (* scale (floor (* 0.9 (if buffer fnh 140.)))))) + (dpi (number-to-string (* scale (floor (if buffer fnh 120.))))) (fg (or (plist-get options (if buffer :foreground :html-foreground)) "black")) (bg (or (plist-get options (if buffer :background :html-background)) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index 9843d98..9fc53f1 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -2497,7 +2497,7 @@ CONTENTS is nil. INFO is a plist holding contextual = information." (case processing-type ((t mathjax) (org-html-format-latex latex-frag 'mathjax)) - (dvipng + ((dvipng imagemagick) (let ((formula-link (org-html-format-latex latex-frag processing-ty= pe))) (when (and formula-link (string-match "file:\\([^]]*\\)" formula-link)) ;; Do not provide a caption or a name to be consistent with @@ -2517,7 +2517,7 @@ CONTENTS is nil. INFO is a plist holding contextual = information." (case processing-type ((t mathjax) (org-html-format-latex latex-frag 'mathjax)) - (dvipng + ((dvipng imagemagick) (let ((formula-link (org-html-format-latex latex-frag processing-ty= pe))) (when (and formula-link (string-match "file:\\([^]]*\\)" formula-link)) (org-html--format-image (match-string 1 formula-link) nil info)))) diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el index e89306e..0b7a653 100644 --- a/lisp/ox-odt.el +++ b/lisp/ox-odt.el @@ -3772,9 +3772,10 @@ contextual information." (setq processing-type 'mathml) (message "LaTeX to MathML converter not available.") (setq processing-type 'verbatim))) - (dvipng + ((dvipng imagemagick) (unless (and (org-check-external-command "latex" "" t) - (org-check-external-command "dvipng" "" t)) + (org-check-external-command + (if (eq processing-type 'dvipng) "dvipng" "convert") "" t)) (message "LaTeX to PNG converter not available.") (setq processing-type 'verbatim))) (otherwise @@ -3787,7 +3788,7 @@ contextual information." (message "Formatting LaTeX using %s" processing-type) =20 ;; Convert `latex-fragment's and `latex-environment's. - (when (memq processing-type '(mathml dvipng)) + (when (memq processing-type '(mathml dvipng imagemagick)) (org-element-map tree '(latex-fragment latex-environment) (lambda (latex-*) (incf count) @@ -3796,13 +3797,13 @@ contextual information." (cache-dir (file-name-directory input-file)) (cache-subdir (concat (case processing-type - (dvipng "ltxpng/") + ((dvipng imagemagick) "ltxpng/") (mathml "ltxmathml/")) (file-name-sans-extension (file-name-nondirectory input-file)))) (display-msg (case processing-type - (dvipng (format "Creating LaTeX Image %d..." count)) + ((dvipng imagemagick) (format "Creating LaTeX Image %d..." count)) (mathml (format "Creating MathML snippet %d..." count)))) ;; Get an Org-style link to PNG image or the MathML ;; file. --=20 1.7.10.4 --=-=-= Content-Type: text/plain -- --=-=-=--