From: Carsten Dominik <carsten.dominik@gmail.com>
To: mail@christianmoe.com
Cc: emacs-orgmode@gnu.org
Subject: Re: Verbatim LaTeX inside delimiters in HTML export with jsMath?
Date: Fri, 25 Jun 2010 12:06:56 +0200 [thread overview]
Message-ID: <BA15BBDE-B4C1-47BD-86E1-5231D6C6F747@gmail.com> (raw)
In-Reply-To: <4C1B514F.6070702@christianmoe.com>
[-- Attachment #1: Type: text/plain, Size: 354 bytes --]
For John Wiegley: John, please do not yet apply the attached patch...
Hi Christian,
I am trying to get back to this issue.
I am attaching a patch, please apply it to your setup and then try
#+OPTIONS: ^:t TeX:t LaTeX:verbatim
if that works, can I then ask you to update http://orgmode.org/worg/org-tutorials/org-jsmath.php
?
Thanks!
- Carsten
[-- Attachment #2: jsmath.patch --]
[-- Type: application/octet-stream, Size: 5678 bytes --]
diff --git a/lisp/org-html.el b/lisp/org-html.el
index 4a6ded4..d972c58 100644
--- a/lisp/org-html.el
+++ b/lisp/org-html.el
@@ -433,7 +433,8 @@ This may also be a function, building and inserting the postamble.")
(concat "ltxpng/" (file-name-sans-extension
(file-name-nondirectory
org-current-export-file)))
- org-current-export-dir nil "Creating LaTeX image %s"))
+ org-current-export-dir nil "Creating LaTeX image %s"
+ nil nil (eq (plist-get parameters :LaTeX-fragments) 'verbatim)))
(goto-char (point-min))
(let (label l1)
(while (re-search-forward "\\\\ref{\\([^{}\n]+\\)}" nil t)
diff --git a/lisp/org.el b/lisp/org.el
index 7bb4f45..52de945 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -15699,7 +15699,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
("$$" "\\$\\$[^\000]*?\\$\\$" 0 nil))
"Regular expressions for matching embedded LaTeX.")
-(defun org-format-latex (prefix &optional dir overlays msg at forbuffer)
+(defun org-format-latex (prefix &optional dir overlays msg at
+ forbuffer protect-only)
"Replace LaTeX fragments with links to an image, and produce images.
Some of the options can be changed using the variable
`org-format-latex-options'."
@@ -15729,60 +15730,63 @@ Some of the options can be changed using the variable
(not (eq (get-char-property (match-beginning n)
'org-overlay-type)
'org-latex-overlay))))
- (setq txt (match-string n)
- beg (match-beginning n) end (match-end n)
- cnt (1+ cnt))
- (let (print-length print-level) ; make sure full list is printed
- (setq hash (sha1 (prin1-to-string
- (list org-format-latex-header
- org-format-latex-header-extra
- org-export-latex-default-packages-alist
- org-export-latex-packages-alist
- org-format-latex-options
- forbuffer txt)))
- linkfile (format "%s_%s.png" prefix hash)
- movefile (format "%s_%s.png" absprefix hash)))
- (setq link (concat block "[[file:" linkfile "]]" block))
- (if msg (message msg cnt))
- (goto-char beg)
- (unless checkdir ; make sure the directory exists
- (setq checkdir t)
- (or (file-directory-p todir) (make-directory todir)))
-
- (unless executables-checked
- (org-check-external-command
- "latex" "needed to convert LaTeX fragments to images")
- (org-check-external-command
- "dvipng" "needed to convert LaTeX fragments to images")
- (setq executables-checked t))
-
- (unless (file-exists-p movefile)
- (org-create-formula-image
- txt movefile opt forbuffer))
- (if overlays
- (progn
- (mapc (lambda (o)
- (if (eq (overlay-get o 'org-overlay-type)
- 'org-latex-overlay)
- (delete-overlay o)))
- (overlays-in beg end))
- (setq ov (make-overlay beg end))
- (overlay-put ov 'org-overlay-type 'org-latex-overlay)
- (if (featurep 'xemacs)
- (progn
- (overlay-put ov 'invisible t)
- (overlay-put
- ov 'end-glyph
- (make-glyph (vector 'png :file movefile))))
- (overlay-put
- ov 'display
- (list 'image :type 'png :file movefile :ascent 'center)))
- (push ov org-latex-fragment-image-overlays)
- (goto-char end))
- (delete-region beg end)
- (insert (org-add-props link
- (list 'org-latex-src
- (replace-regexp-in-string "\"" "" txt)))))))))))
+ (if protect-only
+ (add-text-properties (match-beginning n) (match-end n)
+ '(org-protected t))
+ (setq txt (match-string n)
+ beg (match-beginning n) end (match-end n)
+ cnt (1+ cnt))
+ (let (print-length print-level) ; make sure full list is printed
+ (setq hash (sha1 (prin1-to-string
+ (list org-format-latex-header
+ org-format-latex-header-extra
+ org-export-latex-default-packages-alist
+ org-export-latex-packages-alist
+ org-format-latex-options
+ forbuffer txt)))
+ linkfile (format "%s_%s.png" prefix hash)
+ movefile (format "%s_%s.png" absprefix hash)))
+ (setq link (concat block "[[file:" linkfile "]]" block))
+ (if msg (message msg cnt))
+ (goto-char beg)
+ (unless checkdir ; make sure the directory exists
+ (setq checkdir t)
+ (or (file-directory-p todir) (make-directory todir)))
+
+ (unless executables-checked
+ (org-check-external-command
+ "latex" "needed to convert LaTeX fragments to images")
+ (org-check-external-command
+ "dvipng" "needed to convert LaTeX fragments to images")
+ (setq executables-checked t))
+
+ (unless (file-exists-p movefile)
+ (org-create-formula-image
+ txt movefile opt forbuffer))
+ (if overlays
+ (progn
+ (mapc (lambda (o)
+ (if (eq (overlay-get o 'org-overlay-type)
+ 'org-latex-overlay)
+ (delete-overlay o)))
+ (overlays-in beg end))
+ (setq ov (make-overlay beg end))
+ (overlay-put ov 'org-overlay-type 'org-latex-overlay)
+ (if (featurep 'xemacs)
+ (progn
+ (overlay-put ov 'invisible t)
+ (overlay-put
+ ov 'end-glyph
+ (make-glyph (vector 'png :file movefile))))
+ (overlay-put
+ ov 'display
+ (list 'image :type 'png :file movefile :ascent 'center)))
+ (push ov org-latex-fragment-image-overlays)
+ (goto-char end))
+ (delete-region beg end)
+ (insert (org-add-props link
+ (list 'org-latex-src
+ (replace-regexp-in-string "\"" "" txt))))))))))))
;; This function borrows from Ganesh Swami's latex2png.el
(defun org-create-formula-image (string tofile options buffer)
[-- Attachment #3: Type: text/plain, Size: 4014 bytes --]
On Jun 18, 2010, at 12:58 PM, Christian Moe wrote:
> Hi, Carsten,
>
> Thanks for taking a look.
>
> Your example should be output exactly the same as it is currently
> with the =LaTeX:nil= option, i. e. verbatim:
>
> <p>
> \begin{equation}
> a=b
> \end{equation}
> </p>
>
> - and this minimal example could be interpreted by jsMath without
> any changes in Org-mode export, since it happens to contain no sub/
> superscripts or entities.
>
> What I'd like is for
>
> \begin{equation}
> \e=mc^2
> \end{equation}
>
> to be output equally verbatim as
>
> <p>
> \begin{equation}
> e=mc^2
> \end{equation}
> </p>
>
> *even when =^:t= is on*, so I could freely write e.g. m^2 in the
> text and get it superscripted, but not get
>
> <p>
> \begin{equation}
> e=mc<sup>2</sup>
> \end{equation}
> </p>
>
> In other words, to have my cake and eat it, too. I hope it's clearer
> now.
>
> Yours,
> Christian
>
>
> Carsten Dominik wrote:
> > Hi Christian,
> >
> > how should, in this case, a literal LaTeX environment like
> >
> > \begin{equation}
> > a=b
> > \end{equation}
> >
> > be handled?
> >
> > - Carsten
> >
> > On Jun 17, 2010, at 9:23 AM, Christian Moe wrote:
> >
> >> Hi,
> >>
> >> To display LaTeX math in Org html export with lovely jsMath, it
> must be
> >> exported verbatim with
> >>
> >> #+OPTIONS: ^:nil TeX:nil
> >>
> >> so one cannot use lazy superscripts/subscripts or Org entities in
> the
> >> rest of the text.
> >>
> >> Is there a simple way to turn these options on, but protect LaTeX
> where
> >> it appears *inside math delimiters* so it's exported verbatim? I.e.
> >> inside $...$, $$...$$, \( ... \), \[ ... \], \begin ... \end ?
> >>
> >> I ask because I'm keeping a note file with much text and only a few
> >> equations, but with frequent reference to e.g. CO_2 and m^2. It's
> >> possible to always write $CO_2$ and $m^2$, but less readable, and
> >> irksome when you've got used to an easier way. An inline formula
> can
> >> be protected by surrounding it with verbatim markup, =$...$=, but
> then
> >> it's only good for jsMath, not for LaTeX export.
> >>
> >> Yours,
> >> Christian
> >>
> >> _______________________________________________
> >> Emacs-orgmode mailing list
> >> Please use `Reply All' to send replies to the list.
> >> Emacs-orgmode@gnu.org
> >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
> >
> > - Carsten
> >
> >
> >
> >
>
>
> --
>
> Christian Moe
> E-mail: mail@christianmoe.com
> Website: http://christianmoe.com
>
>
>
> Carsten Dominik wrote:
>> Hi Christian,
>> how should, in this case, a literal LaTeX environment like
>> \begin{equation}
>> a=b
>> \end{equation}
>> be handled?
>> - Carsten
>> On Jun 17, 2010, at 9:23 AM, Christian Moe wrote:
>>> Hi,
>>>
>>> To display LaTeX math in Org html export with lovely jsMath, it
>>> must be
>>> exported verbatim with
>>>
>>> #+OPTIONS: ^:nil TeX:nil
>>>
>>> so one cannot use lazy superscripts/subscripts or Org entities in
>>> the rest of the text.
>>>
>>> Is there a simple way to turn these options on, but protect LaTeX
>>> where
>>> it appears *inside math delimiters* so it's exported verbatim? I.e.
>>> inside $...$, $$...$$, \( ... \), \[ ... \], \begin ... \end ?
>>>
>>> I ask because I'm keeping a note file with much text and only a
>>> few equations, but with frequent reference to e.g. CO_2 and m^2.
>>> It's possible to always write $CO_2$ and $m^2$, but less readable,
>>> and irksome when you've got used to an easier way. An inline
>>> formula can be protected by surrounding it with verbatim markup, =
>>> $...$=, but then it's only good for jsMath, not for LaTeX export.
>>>
>>> Yours,
>>> Christian
>>>
>>> _______________________________________________
>>> Emacs-orgmode mailing list
>>> Please use `Reply All' to send replies to the list.
>>> Emacs-orgmode@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>> - Carsten
>
>
> --
>
> Christian Moe
> E-mail: mail@christianmoe.com
> Website: http://christianmoe.com
>
- Carsten
[-- Attachment #4: Type: text/plain, Size: 201 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
next prev parent reply other threads:[~2010-06-25 17:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-05 0:21 Prevent Org timestamps breaking with paragraph fill? Jeff Kowalczyk
2010-05-14 7:18 ` Carsten Dominik
2010-06-17 7:23 ` Verbatim LaTeX inside delimiters in HTML export with jsMath? Christian Moe
2010-06-18 7:25 ` Carsten Dominik
2010-06-18 10:58 ` Christian Moe
2010-06-25 10:06 ` Carsten Dominik [this message]
2010-07-01 7:18 ` Christian Moe
2010-07-01 8:32 ` Carsten Dominik
2010-07-01 22:22 ` Christian Moe
2010-07-02 2:43 ` Carsten Dominik
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=BA15BBDE-B4C1-47BD-86E1-5231D6C6F747@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=mail@christianmoe.com \
/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).