From: Gustaf Waldemarson <gustaf.waldemarson@gmail.com>
To: emacs-orgmode@gnu.org
Subject: [BUG] Org-mode Side-by-Side Images [9.5.3 (release_9.5.3-3-gd54104)]
Date: Thu, 26 Jan 2023 13:24:25 +0100 [thread overview]
Message-ID: <CABehr5ds+ao+jgfK5Cp1VC7MNhhjsfQ6huUwkd0N=YYCitC9HA@mail.gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 14208 bytes --]
Hello!
This is a small issue that have vexed me a number of times when I've
been writing up a report or something where I want to export the results
into multiple formats (such as both LaTeX and HTML in the below
example).
At least for me, it is very common to want to display more than one
image side-by-side, but so far I haven't been able to find any solution
that really works in all regards. The example document below shows some
of the things I've tried and mentions some of the issues:
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [a4paper,11pt,twoside]
#+LATEX_HEADER: \usepackage{svg}
#+LATEX_HEADER: \usepackage{subcaption}
#+LATEX_HEADER: \usepackage{placeins}
#+LATEX_HEADER: \usepackage{float}
#+LATEX_HEADER: \usepackage{wrapfig}
#+LATEX_HEADER: \usepackage{graphicx}
#+LATEX_HEADER: \usepackage{xspace}
#+LATEX_HEADER: \captionsetup[subfigure]{labelformat=empty}
#+NAME: a
#+BEGIN_SRC dot :file /tmp/a.png :cmdline -Tpng -Gsize=9,15\! -Gdpi=10
digraph {
1 -> 2;
2 -> 3;
}
#+END_SRC
#+NAME: b
#+BEGIN_SRC dot :file /tmp/b.png :cmdline -Tpng -Gsize=9,15\! -Gdpi=10
digraph {
1 -> 3;
2 -> 3;
}
#+END_SRC
* LaTeX
#+BEGIN_CENTER
#+ATTR_LATEX: :height 0.4\textwidth :center
#+RESULTS: a
[[file:/tmp/a.png]]
#+ATTR_LATEX: :height 0.4\textwidth :center
#+RESULTS: b
[[file:/tmp/b.png]]
#+END_CENTER
* HTML
(Works, but can't control height for both images.)
#+ATTR_HTML: :align center :height 300
[[/tmp/a.png]]
[[/tmp/b.png]]
* HTML + LaTeX
Works in both HTML and LaTeX but disables per-image attributes (:height,
:center etc). Additionally, images in tabular environments tend to be a
bit
fragile in LaTeX depending on which document style is being used. Also
adds
undesired lines above/below the table.
#+ATTR_HTML: :align center
| [[/tmp/a.png]] | [[/tmp/b.png]] |
* LaTeX Only
LaTeX example using the common 'subfigure' package.
\begin{figure}
\centering
\begin{subfigure}[c]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth]{/tmp/a.png}
\caption{a.png}
\end{subfigure}
\begin{subfigure}[c]{0.3\textwidth}
\centering
\includegraphics[width=0.9\textwidth]{/tmp/b.png}
\caption{b.png}
\end{subfigure}
\caption{Subfigures}%
\end{figure}
This question was originally asked almost 5 years ago on
[[
https://emacs.stackexchange.com/questions/38745/orgmode-image-export-side-by-side-to-both-latex-and-html][Emacs
Stack Exchange]], but so far only have a very limited solution in my
opinion. Ideally, I'm looking for some kind of org-mode environment
that could export to most backends (at least HTML and LaTeX) without
duplicating the image exports for each of them individually.
Does something like that already exist in org-mode? Alternatively,
what is the recommended and most portable approach to placing images
side-by-side?
Best Regards,
Gustaf
Emacs : GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.20, cairo version 1.16.0)
of 2022-05-04
Package: Org mode version 9.5.3 (release_9.5.3-3-gd54104 @
/home/guswal01/.local/share/emacs/29.0.50/lisp/org/)
current state:
==============
(setq
org-link-elisp-confirm-function 'yes-or-no-p
org-directory "/home/guswal01/.config/emacs/org/"
org-bibtex-headline-format-function #[257 "\300 \236A\207" [:title] 3
"\n\n(fn ENTRY)"]
org-log-into-drawer t
org-latex-images-centered nil
org-export-before-parsing-hook '(org-attach-expand-links)
org-archive-hook '(org-attach-archive-delete-maybe)
org-odt-format-inlinetask-function
'org-odt-format-inlinetask-default-function
org-ascii-format-drawer-function #[771 " \207" [] 4 "\n\n(fn NAME CONTENTS
WIDTH)"]
org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
org-cycle-show-empty-lines
org-optimize-window-after-visibility-change)
org-modules '(org-tempo ol-w3m ol-bbdb ol-bibtex ol-docview ol-gnus
ol-info ol-irc ol-mhe
ol-rmail ol-eww)
org-mode-hook '(org-tempo-setup
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-show-all append
local] 5]
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook
org-babel-show-result-all append local]
5]
org-babel-result-hide-spec org-babel-hide-all-hashes
#[0 "\301\211 \207" [imenu-create-index-function
org-imenu-get-tree] 2]
my-org-hook turn-on-org-cdlatex)
org-babel-load-languages '((emacs-lisp . t) (dot . t) (ditaa . t) (python
. t)
(gnuplot . t) (shell . t) (org . t) (plantuml .
t) (latex . t))
org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"]
org-latex-format-headline-function
'org-latex-format-headline-default-function
org-confirm-shell-link-function 'yes-or-no-p
org-adapt-indentation 'headline-data
org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"]
outline-isearch-open-invisible-function 'outline-isearch-open-invisible
org-export-before-processing-hook '(my/org-inline-css-hook)
org-latex-classes '(("acmart" "\\documentclass{acmart}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
("article" "\\documentclass[11pt]{article}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
("report" "\\documentclass[11pt]{report}"
("\\part{%s}" . "\\part*{%s}") ("\\chapter{%s}" .
"\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
("book" "\\documentclass[11pt]{book}" ("\\part{%s}" .
"\\part*{%s}")
("\\chapter{%s}" . "\\chapter*{%s}")
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}"))
)
org-highlight-latex-and-related '(latex)
org-odt-format-headline-function 'org-odt-format-headline-default-function
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-babel-tangle-lang-exts '(("latex" . "tex") ("python" . "py")
("emacs-lisp" . "el")
("elisp" . "el"))
org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
org-latex-default-packages-alist '(("AUTO" "inputenc" t ("pdflatex"))
("T1" "fontenc" t ("pdflatex")) (""
"graphicx" t)
("" "longtable" nil) ("" "wrapfig" nil)
("" "rotating" nil) ("normalem" "ulem"
t)
("" "amsmath" t) ("" "capt-of" nil) (""
"hyperref" nil))
org-confirm-elisp-link-function 'yes-or-no-p
org-latex-listings 'minted
org-html-head-extra "<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n<style
type=\"text/css\">\n pre.src{background-color: #2e3436; color:
#eeeeec;}</style>\n<style type=\"text/css\">\n pre.src{background-color:
#2e3436; color: #eeeeec;}</style>\n<style type=\"text/css\">\n
pre.src{background-color: #2e3436; color: #eeeeec;}</style>\n"
org-speed-command-hook '(org-speed-command-activate
org-babel-speed-command-activate)
org-html-format-inlinetask-function
'org-html-format-inlinetask-default-function
org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default
org-latex-prefer-user-labels t
org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"]
org-export-backends '(ascii html latex odt)
org-confirm-babel-evaluate nil
org-latex-format-inlinetask-function
'org-latex-format-inlinetask-default-function
org-tab-first-hook '(org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
org-link-shell-confirm-function 'yes-or-no-p
org-babel-pre-tangle-hook '(save-buffer)
org-agenda-loop-over-headlines-in-active-region nil
org-occur-hook '(org-first-headline-recenter)
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-link-parameters '(("attachment" :follow org-attach-follow :complete
org-attach-complete-link)
("id" :follow org-id-open)
("treemacs" :store treemacs-store-org-link)
("eww" :follow org-eww-open :store
org-eww-store-link)
("rmail" :follow org-rmail-open :store
org-rmail-store-link)
("mhe" :follow org-mhe-open :store
org-mhe-store-link)
("irc" :follow org-irc-visit :store
org-irc-store-link :export
org-irc-export)
("info" :follow org-info-open :export
org-info-export :store
org-info-store-link)
("gnus" :follow org-gnus-open :store
org-gnus-store-link)
("docview" :follow org-docview-open :export
org-docview-export :store
org-docview-store-link)
("bibtex" :follow org-bibtex-open :store
org-bibtex-store-link)
("bbdb" :follow org-bbdb-open :export
org-bbdb-export :complete
org-bbdb-complete-link :store org-bbdb-store-link)
("w3m" :store org-w3m-store-link) ("file+sys")
("file+emacs")
("shell" :follow org-link--open-shell)
("news" :follow
#[514 "\301\300\302 Q \"\207" ["news" browse-url
":"] 6
"\n\n(fn URL ARG)"]
)
("mailto" :follow
#[514 "\301\300\302 Q \"\207" ["mailto" browse-url
":"] 6
"\n\n(fn URL ARG)"]
)
("https" :follow
#[514 "\301\300\302 Q \"\207" ["https" browse-url
":"] 6
"\n\n(fn URL ARG)"]
)
("http" :follow
#[514 "\301\300\302 Q \"\207" ["http" browse-url
":"] 6
"\n\n(fn URL ARG)"]
)
("ftp" :follow
#[514 "\301\300\302 Q \"\207" ["ftp" browse-url
":"] 6
"\n\n(fn URL ARG)"]
)
("help" :follow org-link--open-help :store
org-link--store-help)
("file" :complete org-link-complete-file)
("elisp" :follow org-link--open-elisp))
org-html-format-headline-function
'org-html-format-headline-default-function
org-metaup-hook '(org-babel-load-in-session-maybe)
org-latex-pdf-process '("latexmk -shell-escape -bibtex -f -pdf %f")
org-src-lang-modes '(("plantuml" . plantuml) ("C" . c) ("C++" . c++)
("asymptote" . asy)
("bash" . sh) ("beamer" . latex) ("calc" .
fundamental) ("cpp" . c++)
("ditaa" . artist) ("dot" . fundamental) ("elisp" .
emacs-lisp)
("ocaml" . tuareg) ("screen" . shell-script) ("shell"
. sh)
("sqlite" . sql))
org-tab-before-tab-emulation-hook '(org-tempo-complete-tag)
)
[-- Attachment #2: Type: text/html, Size: 18604 bytes --]
next reply other threads:[~2023-01-27 11:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-26 12:24 Gustaf Waldemarson [this message]
2023-02-13 14:48 ` [FR] Side-by-side images during export (was: [BUG] Org-mode Side-by-Side Images [9.5.3 (release_9.5.3-3-gd54104)]) Ihor Radchenko
2023-02-14 7:58 ` Jean Louis
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='CABehr5ds+ao+jgfK5Cp1VC7MNhhjsfQ6huUwkd0N=YYCitC9HA@mail.gmail.com' \
--to=gustaf.waldemarson@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).