patch ob-core to allow function as header-args and add function for latex src blocks for tikz pictures

This commit is contained in:
2021-03-05 23:29:30 +01:00
parent e46e3678dd
commit 94d501f5a0
6 changed files with 3502 additions and 25 deletions

View File

@@ -17,23 +17,70 @@
;;; Code:
(require 'ox-latex)
(require 'ob-latex)
(require 'ob-gnuplot)
;;(setq org-babel-latex-htlatex "htlualatex")
;;(setq org-babel-latex-htlatex "htlatex")
;; (executable-find org-babel-latex-htlatex)
;; PROPERTY src block header arguments
;; PROPERTY src block header arguments https://orgmode.org/manual/Property-Syntax.html
;; https://orgmode.org/manual/Using-Header-Arguments.html
;; on src block C-c C-v I - org-babel-view-src-block-info this will eval as org backend
;; LaTeX
(add-to-list
'org-global-properties
'("header-args:latex" .
":headers (if (org-export-derived-backend-p org-export-current-backend 'latex) nil '(\"\\usepackage{xcolor}\\definecolor{color0}{HTML}{ffffff}\\definecolor{color1}{HTML}{0071bc} \\usepackage{pgfplots} \\tikzset{every path/.style={color=white}} \\usetikzlibrary{arrows.meta,calc}\\makeatletter\\tikzset{clip/.code={\\let\\tikz@mode=\\pgfutil@empty\\let\\tikz@preactions=\\pgfutil@empty\\let\\tikz@postactions=\\pgfutil@empty\\let\\tikz@options=\\pgfutil@empty\\tikz@addmode{\\tikz@mode@cliptrue}},}\\makeatother\") )"))
(add-to-list
'org-global-properties
'("header-args:latex+" .
":packages '(\"\\usepackage{xcolor}\\definecolor{color0}{HTML}{ffffff}\\definecolor{color1}{HTML}{0071bc} \\usepackage{svg} \\usepackage{tikz} \\usepackage{pgfplots} \\pgfplotsset{compat=newest, axis line style={white}, every axis label/.append style ={white}, every tick label/.append style={white},color0/.style={color=white}}\")"))
(setq org-babel-default-header-args:latex
`((:results . "latex")
(:exports . "results")
(:prologue . (lambda ()
(concat (by-backend
(latex gnuplot-init-light)
(article-latex gnuplot-init-light)
(t gnuplot-init-dark)))))
(:headers . (lambda ()
(if (org-export-derived-backend-p org-export-current-backend 'latex)
""
"
\\usepackage{xcolor}
\\definecolor{color0}{HTML}{ffffff}
\\definecolor{color1}{HTML}{0071bc}
\\usepackage{pgfplots}
\\usepgflibrary{shapes.geometric}
\\usetikzlibrary{
arrows.meta,
arrows,
calc,
positioning,
shapes.multipart,
decorations.pathmorphing,
backgrounds,
pgfplotsclickable,
shadows,
shadows.blur,
mindmap,
}
\\tikzset{every path/.style={color=white}}
\\makeatletter
\\tikzset{clip/.code={\\let\\tikz@mode=\\pgfutil@empty\\let\\tikz@preactions=\\pgfutil@empty\\let\\tikz@postactions=\\pgfutil@empty\\let\\tikz@options=\\pgfutil@empty\\tikz@addmode{\\tikz@mode@cliptrue}},}
\\makeatother")))
(:packages . "\\usepackage{xcolor}
\\definecolor{color0}{HTML}{ffffff}
\\definecolor{color1}{HTML}{0071bc}
\\usepackage{svg}
\\usepackage{tikz}
\\usepackage{pgfplots}
\\pgfplotsset{compat=newest, axis line style={white}, every axis label/.append style ={white}, every tick label/.append style={white},color0/.style={color=white}}"
)))
;; Gnuplot
(add-to-list
'org-global-properties
'("header-args:gnuplot" .
":prologue (by-backend (latex gnuplot-init-light) (t gnuplot-init-dark))"))
(setq org-babel-default-header-args:gnuplot
`((:results . "file")
(:exports . "results")
(:session)
(:prologue . (lambda ()
(concat (by-backend
(latex gnuplot-init-light)
(article-latex gnuplot-init-light)
(t gnuplot-init-dark)))))))
;; MACRO https://orgmode.org/manual/Macro-Replacement.html
(add-to-list