[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [tip] Export subfigures to LaTeX (and HTML)
From: |
John Kitchin |
Subject: |
Re: [tip] Export subfigures to LaTeX (and HTML) |
Date: |
Mon, 28 Dec 2020 13:03:48 -0500 |
User-agent: |
mu4e 1.4.13; emacs 27.1 |
This is an interesting use of links, in particular extending the
information in the description.
You might look at this
http://kitchingroup.cheme.cmu.edu/blog/2015/02/05/Extending-the-org-mode-link-syntax-with-attributes/
for another way to do that.
Check out this alternative approach all together that also uses a
special block.
http://kitchingroup.cheme.cmu.edu/blog/2016/01/17/Side-by-side-figures-in-org-mode-for-different-export-outputs/
I don't use either of these today, and they are old so who knows if they
still work, but they have some fun ideas in them.
Juan Manuel Macías <maciaschain@posteo.net> writes:
> Hi,
>
> I have come up with a way to export subfigures to LaTeX (with the subfigure
> package) by
> defining a new link type. The 'subcaption' of the subfigure would be the
> description of
> the link. If we want to add parameters such as width, scale, etc., we can put
> them next
> between the marks '>( ... )'
>
> The code:
>
> #+begin_src emacs-lisp
> (org-link-set-parameters
> "subfig"
> :follow (lambda (file) (find-file file))
> :face '(:foreground "chocolate" :weight bold :underline t)
> :display 'full
> :export (lambda (file desc backend)
> (when (eq backend 'latex)
> (if (string-match ">(\\(.+\\))" desc)
> (concat "\\subfigure[" (replace-regexp-in-string "\s+>(.+)"
> "" desc) "]"
> "{\\includegraphics"
> "["
> (match-string 1 desc)
> "]"
> "{"
> file
> "}}")
> (format "\\subfigure[%s]{\\includegraphics{%s}}" desc file)))))
> #+end_src
>
> Example:
>
> #+begin_src org
> ,#+CAPTION: Lorem impsum dolor
> ,#+ATTR_LaTeX: :options \centering
> ,#+begin_figure
> [[subfig:img1.jpg][Caption of img1 >(width=.3\textwidth)]]
>
> [[subfig:img2.jpg][Caption of img2 >(width=.3\textwidth)]]
>
> [[subfig:img3.jpg][Caption of img3 >(width=.6\textwidth)]]
> ,#+end_figure
> #+end_src
>
> Results:
>
> #+begin_src latex
> \begin{figure}\centering
> \subfigure[Caption of
> img1]{\includegraphics[width=.3\textwidth]{img1.jpg}}
>
> \subfigure[Caption of
> img2]{\includegraphics[width=.3\textwidth]{img2.jpg}}
>
> \subfigure[Caption of
> img3]{\includegraphics[width=.6\textwidth]{img3.jpg}}
> \caption{Lorem impsum dolor}
> \end{figure}
> #+end_src
>
> If we want to export to HTML it would be something more tricky. In this case,
> the export
> function could be like this (a width parameter would be enclosed between >{
> ... }):
>
> #+begin_src emacs-lisp
> (lambda (file desc backend)
> (cond
> ((eq backend 'latex)
> (if (string-match ">(\\(.+\\))" desc)
> (concat "\\subfigure[" (replace-regexp-in-string "\s*>.+" "" desc)
> "]" "{\\includegraphics" "[" (match-string 1 desc) "]" "{" file "}}")
> (format "\\subfigure[%s]{\\includegraphics{%s}}"
> (replace-regexp-in-string "\s*>.+" "" desc) file)))
> ((eq backend 'html)
> (if (string-match ">{\\(.+\\)}" desc)
> (concat "<td><img src=\"" file "\" alt=\"" file "\"" " style=\"width:"
> (match-string 1 desc)
> "\""
> "/><br>"
> (replace-regexp-in-string "\s*>.+" "" desc)
> "</td>")
> (format "<td><img src=\"%s\" alt=\"%s\"/><br>%s</td>"
> file file
> (replace-regexp-in-string "\s*>.+" "" desc))))))
> #+end_src
>
> Example:
>
> #+begin_src org
> ,#+CAPTION: Lorem impsum dolor
> ,#+ATTR_LaTeX: :options \centering
> ,#+begin_figure
> @@html:<div class="org-center"><table
> style="margin-left:auto;margin-right:auto;"><tr>@@
>
> [[subfig:img1.jpg][Caption of img1 >(width=.3\textwidth) >{300px}]]
>
> [[subfig:img2.jpg][Caption of img2 >(width=.3\textwidth) >{300px}]]
>
> @@html:</tr></table><p> </p><table
> style="margin-left:auto;margin-right:auto;"><tr>@@
>
> [[subfig:img3.jpg][Caption of img3 >(width=.6\textwidth) >{600px}]]
>
> @@html:</tr></table><br>Lorem ipsum dolor</div>@@
> ,#+end_figure
> #+end_src
>
> As you can see, it is not the panacea, and you have to apply some direct
> format...
>
> Happy holidays
>
> Juan Manuel
--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu