From: feng shu <tumashu@gmail.com>
To: "emacs-orgmode@gnu.org" <emacs-orgmode@gnu.org>
Subject: Re: [PATCH] bugfix: fix previewing latex fragments with imagemagick
Date: Sun, 14 Jul 2013 15:06:23 +0800 [thread overview]
Message-ID: <CAJpRBmc_0=OcanCj2=4A_dVOS=fbJfUZ6hv0w5D4TwjSMGa3Vw@mail.gmail.com> (raw)
In-Reply-To: <CAJpRBmf6dj=PvJZ79XspYgDsNbov9Kjmj1wrjJ3Qy=mfSyvxmA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 205 bytes --]
On Sun, Jul 14, 2013 at 3:02 PM, feng shu <tumashu@gmail.com> wrote:
> Previewing and exporting latex fragments with imagemagick has been broken
> when new export system merged. This is the fix patch.
>
[-- Attachment #1.2: Type: text/html, Size: 532 bytes --]
[-- Attachment #2: 0001-bugfix-fix-generating-formula-image-with-imagemagick.patch --]
[-- Type: application/octet-stream, Size: 8864 bytes --]
From e8ad1f089d381b2fa02480370ccaa316ac44e22e Mon Sep 17 00:00:00 2001
From: Feng Shu <tumashu@gmail.com>
Date: Sun, 14 Jul 2013 14:18:53 +0800
Subject: [PATCH] bugfix: fix generating formula image with imagemagick when
previewing and exporting
* lisp/ox-odt.el (org-odt--translate-latex-fragments): Fix imagemagick support.
* 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.
* 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 | 46 +++++++++++++++++++++++++++++++---------------
lisp/org.el | 2 +-
lisp/ox-html.el | 4 ++--
lisp/ox-odt.el | 11 ++++++-----
4 个文件被修改,插入 40 行(+),删除 23 行(-)
diff --git a/doc/org.texi b/doc/org.texi
index 8db410c..4d13db9 100644
--- a/doc/org.texi
+++ b/doc/org.texi
@@ -10156,10 +10156,10 @@ snippets will be identified as @LaTeX{} source code:
@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
@@ -10196,10 +10196,11 @@ You can also set this variable on a per-file basis using one of these
lines:
@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}
+#+OPTIONS: tex:t @r{Do the right thing automatically (MathJax)}
+#+OPTIONS: tex:dvipng @r{Force using dvipng images}
+#+OPTIONS: tex:imagemagick @r{Force using images converted by imagemagick}
+#+OPTIONS: tex:nil @r{Do not process @LaTeX{} fragments at all}
+#+OPTIONS: tex:verbatim @r{Verbatim export, for jsMath or so}
@end example
@node Previewing @LaTeX{} fragments, CDLaTeX mode, @LaTeX{} fragments, Embedded @LaTeX{}
@@ -10207,8 +10208,8 @@ lines:
@cindex @LaTeX{} fragments, preview
@vindex org-latex-create-formula-image-program
-If you have @file{dvipng} or @file{imagemagick} installed@footnote{Choose the
-converter by setting the variable
+If you have @file{dvipng} program or @file{imagemagick} suite
+installed@footnote{Choose the converter by setting the variable
@code{org-latex-create-formula-image-program} accordingly.}, @LaTeX{}
fragments can be processed to produce preview images of the typeset
expressions:
@@ -11256,7 +11257,7 @@ You could use @code{http} addresses just as well.
@node Math formatting in HTML export, Text areas in HTML export, Images in HTML export, HTML export
@subsection Math formatting in HTML export
@cindex MathJax
-@cindex dvipng
+@cindex dvipng or imagemagick
@LaTeX{} math snippets (@pxref{@LaTeX{} fragments}) can be displayed in two
different ways on HTML pages. The default is to use the
@@ -11282,13 +11283,21 @@ 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
@example
#+OPTIONS: tex:dvipng
@end example
+or:
+
+@example
+#+OPTIONS: tex:imagemagick
+@end example
+
+
+
@node Text areas in HTML export, CSS support, Math formatting in HTML export, HTML export
@subsection Text areas in HTML export
@@ -12264,7 +12273,7 @@ Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file
and open the formula file with the system-registered application.
@end table
-@cindex dvipng
+@cindex dvipng or imagemagick
@item PNG images
This option is activated on a per-file basis with
@@ -12273,9 +12282,16 @@ This option is activated on a per-file basis with
#+OPTIONS: LaTeX:dvipng
@end example
+or:
+
+@example
+#+OPTIONS: LaTeX:imagemagick
+@end example
+
With this option, @LaTeX{} fragments are processed into PNG images and the
resulting images are embedded in the exported document. This method requires
-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
@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..536c98a 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -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..d1abe15 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
+ ((or dvipng imagemagick)
(let ((formula-link (org-html-format-latex latex-frag processing-type)))
(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
+ ((or dvipng imagemagick)
(let ((formula-link (org-html-format-latex latex-frag processing-type)))
(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..f6f9e04 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
+ ((or dvipng imagemagick)
(unless (and (org-check-external-command "latex" "" t)
- (org-check-external-command "dvipng" "" t))
+ (org-check-external-command "dvipng" "" t)
+ (org-check-external-command "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)
;; 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/")
+ ((or 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))
+ ((or 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.
--
1.7.10.4
next prev parent reply other threads:[~2013-07-14 7:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-14 7:02 [PATCH] bugfix: fix previewing latex fragments with imagemagick feng shu
2013-07-14 7:06 ` feng shu [this message]
2013-07-14 8:29 ` Nicolas Goaziou
2013-07-14 8:35 ` Nicolas Goaziou
2013-07-14 13:08 ` Feng Shu
2013-07-15 7:43 ` Nicolas Goaziou
2013-07-14 13:03 ` Feng Shu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAJpRBmc_0=OcanCj2=4A_dVOS=fbJfUZ6hv0w5D4TwjSMGa3Vw@mail.gmail.com' \
--to=tumashu@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).