all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* figures not exported properly by ox-latex
@ 2024-02-02 11:39 mahmood sheikh
  2024-02-02 11:46 ` Ihor Radchenko
  2024-07-09 20:15 ` Karthik Chikmagalur
  0 siblings, 2 replies; 9+ messages in thread
From: mahmood sheikh @ 2024-02-02 11:39 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 612 bytes --]

im on tecosaur's dev branch (version 9.7-pre)
i have the following in an org file:
```org
#+name: fig-switching-circuit-1
#+caption: implementation of \(p\)
[[attachment:circuit.svg]]
```
it gets turned into this
```
\includesvg[width=.9\linewidth]{/home/mahmooz/brain/notes/data/9e/5ba2ce-c383-4396-a2cb-891465f14d51/circuit}\\[0pt]
```
which isnt the behavior described in the docs:
> When captions follow the method as described in Captions, the LaTeX
export back-end wraps the picture in a floating ‘figure’ environment.
this is from https://orgmode.org/manual/Images-in-LaTeX-export.html

[-- Attachment #2: Type: text/html, Size: 788 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-02-02 11:39 figures not exported properly by ox-latex mahmood sheikh
@ 2024-02-02 11:46 ` Ihor Radchenko
  2024-07-05  9:20   ` mahmood sheikh
  2024-07-09 20:15 ` Karthik Chikmagalur
  1 sibling, 1 reply; 9+ messages in thread
From: Ihor Radchenko @ 2024-02-02 11:46 UTC (permalink / raw)
  To: mahmood sheikh, Timothy, Karthik Chikmagalur; +Cc: emacs-orgmode

mahmood sheikh <mahmod.m2015@gmail.com> writes:

> im on tecosaur's dev branch (version 9.7-pre)
> i have the following in an org file:
>...

CCing Timothy and Karhik.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-02-02 11:46 ` Ihor Radchenko
@ 2024-07-05  9:20   ` mahmood sheikh
  0 siblings, 0 replies; 9+ messages in thread
From: mahmood sheikh @ 2024-07-05  9:20 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Timothy, Karthik Chikmagalur, emacs-orgmode


[-- Attachment #1.1: Type: text/plain, Size: 860 bytes --]

hi,
i made a slight change to wrap the exported latex environments in a figure
environment so that the captions and labels get placed properly, this patch
i created on teco's branch.
i dont expect it to get accepted as it may be a naive fix and i may be
missing something, but it may point out to someone else where the issue is.
thanks!

On Fri, Feb 2, 2024 at 1:43 PM Ihor Radchenko <yantar92@posteo.net> wrote:

> mahmood sheikh <mahmod.m2015@gmail.com> writes:
>
> > im on tecosaur's dev branch (version 9.7-pre)
> > i have the following in an org file:
> >...
>
> CCing Timothy and Karhik.
>
> --
> Ihor Radchenko // yantar92,
> Org mode contributor,
> Learn more about Org mode at <https://orgmode.org/>.
> Support Org development at <https://liberapay.com/org-mode>,
> or support my work at <https://liberapay.com/yantar92>
>

[-- Attachment #1.2: Type: text/html, Size: 1515 bytes --]

[-- Attachment #2: latex_env_captions.patch --]
[-- Type: text/x-patch, Size: 534 bytes --]

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 46a3cae..11c3fc5 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -3005,7 +3005,10 @@ CONTENTS is nil.  INFO is a plist holding contextual information."
 	;; the section instead).  Also insert caption if `latex-environment'
 	;; is not a math environment.
 	(with-temp-buffer
+          (insert "\\begin{figure}\n")
 	  (insert value)
+          (goto-char (point-max))
+          (insert "\\end{figure}")
 	  (if caption-above-p
 	      (progn
 		(goto-char (point-min))

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-02-02 11:39 figures not exported properly by ox-latex mahmood sheikh
  2024-02-02 11:46 ` Ihor Radchenko
@ 2024-07-09 20:15 ` Karthik Chikmagalur
  2024-07-11  8:39   ` mahmood sheikh
  1 sibling, 1 reply; 9+ messages in thread
From: Karthik Chikmagalur @ 2024-07-09 20:15 UTC (permalink / raw)
  To: mahmood sheikh, emacs-orgmode

> im on tecosaur's dev branch (version 9.7-pre)
> i have the following in an org file:
> ```org
> #+name: fig-switching-circuit-1
> #+caption: implementation of \(p\)
> [[attachment:circuit.svg]]
> ```
> it gets turned into this
> ```
> \includesvg[width=.9\linewidth]{/home/mahmooz/brain/notes/data/9e/5ba2ce-c383-4396-a2cb-891465f14d51/circuit}\\[0pt]
> ```

Cannot reproduce.  I get the following:

\begin{figure}[htbp]
\centering
\includesvg[width=.9\linewidth]{/tmp/circuit}
\caption{\label{fig-switching-circuit-1}implementation of \(p\)}
\end{figure}

Perhaps you have customized the LaTeX export process in some way?  Also
note that we don't touch any of the LaTeX generation code in ox-latex
except the parts handling LaTeX preview images.

Karthik


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-07-09 20:15 ` Karthik Chikmagalur
@ 2024-07-11  8:39   ` mahmood sheikh
  2024-07-11  8:46     ` Ihor Radchenko
  2024-07-11  8:47     ` Karthik Chikmagalur
  0 siblings, 2 replies; 9+ messages in thread
From: mahmood sheikh @ 2024-07-11  8:39 UTC (permalink / raw)
  To: Karthik Chikmagalur; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1277 bytes --]

it might've been fixed for figures as its been a while, but shouldnt latex
environments with #+caption: and #+name: above them be exported as figures?
because currently the user has to write \begin{figure} and \end{figure}
explicitly which would work but may not be as practical for other ox
backends like html i think? perhaps im wrong.

On Tue, Jul 9, 2024 at 11:15 PM Karthik Chikmagalur <
karthikchikmagalur@gmail.com> wrote:

> > im on tecosaur's dev branch (version 9.7-pre)
> > i have the following in an org file:
> > ```org
> > #+name: fig-switching-circuit-1
> > #+caption: implementation of \(p\)
> > [[attachment:circuit.svg]]
> > ```
> > it gets turned into this
> > ```
> >
> \includesvg[width=.9\linewidth]{/home/mahmooz/brain/notes/data/9e/5ba2ce-c383-4396-a2cb-891465f14d51/circuit}\\[0pt]
> > ```
>
> Cannot reproduce.  I get the following:
>
> \begin{figure}[htbp]
> \centering
> \includesvg[width=.9\linewidth]{/tmp/circuit}
> \caption{\label{fig-switching-circuit-1}implementation of \(p\)}
> \end{figure}
>
> Perhaps you have customized the LaTeX export process in some way?  Also
> note that we don't touch any of the LaTeX generation code in ox-latex
> except the parts handling LaTeX preview images.
>
> Karthik
>

[-- Attachment #2: Type: text/html, Size: 1651 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-07-11  8:39   ` mahmood sheikh
@ 2024-07-11  8:46     ` Ihor Radchenko
  2024-07-11  8:47     ` Karthik Chikmagalur
  1 sibling, 0 replies; 9+ messages in thread
From: Ihor Radchenko @ 2024-07-11  8:46 UTC (permalink / raw)
  To: mahmood sheikh; +Cc: Karthik Chikmagalur, emacs-orgmode

mahmood sheikh <mahmod.m2015@gmail.com> writes:

> it might've been fixed for figures as its been a while, but shouldnt latex
> environments with #+caption: and #+name: above them be exported as figures?
> because currently the user has to write \begin{figure} and \end{figure}
> explicitly which would work but may not be as practical for other ox
> backends like html i think? perhaps im wrong.

It looks like your original problem is not reproducible, and you are
talking about a _different_ problem now.

May you please provide an example of what kind of behavior you are
talking about?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-07-11  8:39   ` mahmood sheikh
  2024-07-11  8:46     ` Ihor Radchenko
@ 2024-07-11  8:47     ` Karthik Chikmagalur
  2024-07-11  8:59       ` mahmood sheikh
  1 sibling, 1 reply; 9+ messages in thread
From: Karthik Chikmagalur @ 2024-07-11  8:47 UTC (permalink / raw)
  To: mahmood sheikh; +Cc: emacs-orgmode

> it might've been fixed for figures as its been a while, but shouldnt
> latex environments with #+caption: and #+name: above them be exported
> as figures? because currently the user has to write \begin{figure} and
> \end{figure} explicitly which would work

This is not the case.  The LaTeX output I posted in my previous response
was the exported output from your example Org source.  I did not add the
\begin{figure} and \end{figure} tags manually.

Karthik


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-07-11  8:47     ` Karthik Chikmagalur
@ 2024-07-11  8:59       ` mahmood sheikh
  2024-07-11 12:47         ` mahmood sheikh
  0 siblings, 1 reply; 9+ messages in thread
From: mahmood sheikh @ 2024-07-11  8:59 UTC (permalink / raw)
  To: Karthik Chikmagalur; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 2281 bytes --]

this is an example of what i mean:
#+begin_src org
  #+name: fig-switching-circuit-kmap-1
  #+caption: karnaugh table of \(p\)
  \begin{tikzpicture}
    \karnaughmap[function=, defaultmap=8, omitzeros=false, omitidx,
variables=xyz]{01101001}
  \end{tikzpicture}
#+end_src
i vaguely recall org mode automatically turning captioned
tikzpicture's into figures by wrapping them in a figure environment.
currently, this is what i get when i export to latex:
#+begin_src latex
  \begin{tikzpicture}
    \karnaughmap[function=, defaultmap=8, omitzeros=false, omitidx,
variables=xyz]{01101001}
    \caption{\label{fig-switching-circuit-kmap-1}karnaugh table of \(p\)}
  \end{tikzpicture}
a tikzpicture environment doesnt expect a \caption and therefore this gives
an error. to avoid this the environment has to be wrapped manually by the
user by a \begin{figure} environment, but i think this may be redundant
because anything that takes a #+caption is expected to be a figure.
also, ox-html doesnt handle those anymore, it used to handle #+caption: and
insert it into the generated html output, it simply ignores that now.
example:
#+begin_src org
  #+name: fig-switching-circuit-1
  #+caption: implementation of \(p\)
  [[attachment:circuit.svg]]
#+end_src
ox-html generates the following html:
#+begin_src html
  <img src="/circuit.svg" /><br />
#+end_src
its not a different problem, its basically that after the new overhaul
figures are being handled differently than i recall, but i cant say for
sure. although the report above about the exported circuit.svg img does
make sense even if it wasnt handled the way i'd expect before the overhaul.
thanks

On Thu, Jul 11, 2024 at 11:47 AM Karthik Chikmagalur <
karthikchikmagalur@gmail.com> wrote:

> > it might've been fixed for figures as its been a while, but shouldnt
> > latex environments with #+caption: and #+name: above them be exported
> > as figures? because currently the user has to write \begin{figure} and
> > \end{figure} explicitly which would work
>
> This is not the case.  The LaTeX output I posted in my previous response
> was the exported output from your example Org source.  I did not add the
> \begin{figure} and \end{figure} tags manually.
>
> Karthik
>

[-- Attachment #2: Type: text/html, Size: 2784 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: figures not exported properly by ox-latex
  2024-07-11  8:59       ` mahmood sheikh
@ 2024-07-11 12:47         ` mahmood sheikh
  0 siblings, 0 replies; 9+ messages in thread
From: mahmood sheikh @ 2024-07-11 12:47 UTC (permalink / raw)
  To: Karthik Chikmagalur; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 3859 bytes --]

im fairly certain that at the time i sent this email, ox-latex was failing
to insert \label and \caption too after images in latex exports (like
ox-html to html exports). but perhaps someone made a change that fixed that.
the fact that ox-latex even inserts \caption and \label tells me that it
was the intention of the maintainer of ox-latex to handle latex blocks
preceded by a `#+caption` as figures. so it would be natural if org
inserted the figure environment itself like it does with images preceded by
`#+caption`. i hope this reasoning does make sense to you?
in ox-html, the function `org-html--wrap-image` is used to wrap an exported
image with a `<figure>` html environment with a caption and label, but it
doesnt happen for me.
after some more digging, i think inserting the `figure` environments
automatically in latex exports may be undesired behavior and it would be
preferred that the user do that themselves in the org document, because
`org-latex--caption/label-string` checks for a `figure` or `listing`
environment apparently, which tells me that the author expected the user to
insert the figure environment themselves. another reason is that the user
may use another, differently environment that accepts a \caption too.
thanks
p.s. sorry i keep hitting the "forward" button instead of the "forward all"
button so you may receive duplicate emails.

On Thu, Jul 11, 2024 at 11:59 AM mahmood sheikh <mahmod.m2015@gmail.com>
wrote:

> this is an example of what i mean:
> #+begin_src org
>   #+name: fig-switching-circuit-kmap-1
>   #+caption: karnaugh table of \(p\)
>   \begin{tikzpicture}
>     \karnaughmap[function=, defaultmap=8, omitzeros=false, omitidx,
> variables=xyz]{01101001}
>   \end{tikzpicture}
> #+end_src
> i vaguely recall org mode automatically turning captioned
> tikzpicture's into figures by wrapping them in a figure environment.
> currently, this is what i get when i export to latex:
> #+begin_src latex
>   \begin{tikzpicture}
>     \karnaughmap[function=, defaultmap=8, omitzeros=false, omitidx,
> variables=xyz]{01101001}
>     \caption{\label{fig-switching-circuit-kmap-1}karnaugh table of \(p\)}
>   \end{tikzpicture}
> a tikzpicture environment doesnt expect a \caption and therefore this
> gives an error. to avoid this the environment has to be wrapped manually by
> the user by a \begin{figure} environment, but i think this may be redundant
> because anything that takes a #+caption is expected to be a figure.
> also, ox-html doesnt handle those anymore, it used to handle #+caption:
> and insert it into the generated html output, it simply ignores that now.
> example:
> #+begin_src org
>   #+name: fig-switching-circuit-1
>   #+caption: implementation of \(p\)
>   [[attachment:circuit.svg]]
> #+end_src
> ox-html generates the following html:
> #+begin_src html
>   <img src="/circuit.svg" /><br />
> #+end_src
> its not a different problem, its basically that after the new overhaul
> figures are being handled differently than i recall, but i cant say for
> sure. although the report above about the exported circuit.svg img does
> make sense even if it wasnt handled the way i'd expect before the overhaul.
> thanks
>
> On Thu, Jul 11, 2024 at 11:47 AM Karthik Chikmagalur <
> karthikchikmagalur@gmail.com> wrote:
>
>> > it might've been fixed for figures as its been a while, but shouldnt
>> > latex environments with #+caption: and #+name: above them be exported
>> > as figures? because currently the user has to write \begin{figure} and
>> > \end{figure} explicitly which would work
>>
>> This is not the case.  The LaTeX output I posted in my previous response
>> was the exported output from your example Org source.  I did not add the
>> \begin{figure} and \end{figure} tags manually.
>>
>> Karthik
>>
>

[-- Attachment #2: Type: text/html, Size: 4617 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-07-11 12:49 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-02 11:39 figures not exported properly by ox-latex mahmood sheikh
2024-02-02 11:46 ` Ihor Radchenko
2024-07-05  9:20   ` mahmood sheikh
2024-07-09 20:15 ` Karthik Chikmagalur
2024-07-11  8:39   ` mahmood sheikh
2024-07-11  8:46     ` Ihor Radchenko
2024-07-11  8:47     ` Karthik Chikmagalur
2024-07-11  8:59       ` mahmood sheikh
2024-07-11 12:47         ` mahmood sheikh

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.