[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Can :packages and :headers arguments in latex SRC blocks be made aff
From: |
Juan Manuel Macías |
Subject: |
Re: Can :packages and :headers arguments in latex SRC blocks be made affect EXPORT blocks of results? |
Date: |
Wed, 09 Nov 2022 17:30:59 +0000 |
hugo@heagren.com writes:
> Is there a way around this? Either to export the src block another way,
> or to add metadata to the to the resulting EXPORT block (or just text,
> though I'm not sure how that would work for `:packages', since they
> require text to be added to the resulting exported LaTeX file in a
> different place from where the text of the block goes).
If I have understood correctly what you want to do, maybe a solution
would be this. You can starting from a single block that includes
the preamble for both preview and export:
#+NAME: preamble
#+begin_src latex :exports none
\usepackage{tikz}
\usetikzlibrary{calc,positioning,patterns}
#+end_src
This block returns the above as a simple string:
#+NAME: pre
#+begin_src emacs-lisp :exports none :results silent :var x = preamble
(with-temp-buffer
(insert x)
(LaTeX-mode)
(setq preamble-prev (buffer-string)))
#+end_src
And this one adds the necessary LaTeX headers when you export the
document, so LaTeX doesn't crash when compiling.
#+begin_src latex :noweb yes :results raw
,#+LaTeX_HEADER: <<preamble>>
#+end_src
And the final block:
#+header: :results (if (org-export-derived-backend-p
org-export-current-backend 'latex) "latex" "file raw")
#+header: :file (if (org-export-derived-backend-p org-export-current-backend
'latex) nil "foo.png")
#+header: :imagemagick t :fit t
#+header: :headers `(,(progn (org-babel-ref-resolve "pre") preamble-prev))
#+begin_src latex
\begin{tikzpicture}[on grid,
font=\footnotesize,
level distance=2.5cm,
sibling distance=2.5cm,
every node/.style={circle,draw,fill=white},
touch/.style={circle,draw=red!100,fill=red!40,thick},
invirtueof/.style={circle,draw=red!50,fill=red!20,very thick}]
\node [invirtueof] {Car}
child {node {wheel}}
child {node [invirtueof] {body}
child {node {driver door}}
child {node [invirtueof] {passenger door}
child {node [touch] {region of door}}}};
\end{tikzpicture}
#+end_src
#+RESULTS:
[[file:foo.png]]
Best regards,
Juan Manuel