Я хочу разделить функцию между различными блоками src в режиме org.Конечно, мы могли бы использовать :session
в режиме org.Однако это может привести к ошибкам, если имена переменных совпадают.
Я бы хотел использовать эту функцию несколько раз в разных сессиях.Как мне это сделать?Я пытаюсь :var
, но мне не удалось передать функции, такие как :var theme_ls1=theme
;:var theme_ls1()=theme
.
Было бы лучше, если бы функция сохраняла форму theme_ls()
во втором блоке src.Может быть, мы можем включить блоки src в один файл org.
Я показываю правильный пример, используя :session
.
* block 1
#+NAME: theme
#+BEGIN_SRC R :session info :exports none
## Theme for plot
theme_ls1 <- function(..., bg='white'){
require(grid)
theme_classic(...) +
theme(
panel.background=element_rect(fill='transparent', color='blue'),
panel.border=element_rect(fill='transparent', color='transparent'),
panel.grid=element_blank(),
plot.margin=unit(c(0.4,0.4,0.4,0.4),"mm")
)
}
#+END_SRC
* block 2
#+BEGIN_SRC R :exports results :results output graphics :session info :file exp1.1.png :width 400 :height 300
#!/usr/bin/env Rscript
## library
library(ggplot2)
## data
dt <- data.frame(x=-6:6, y=-6:6)
## pic
pp1 <- ggplot(data=dt, aes(x=x, y=y))+
geom_point()+
scale_x_continuous(limits=c(-6,6), breaks=-6:6)+
scale_y_continuous(limits=c(-6,6), breaks=-6:6)+
theme_ls1()
pp1
#+END_SRC
Ссылка: https://emacs.stackexchange.com/questions/19073/org-mode-passing-variables-between-code-blocks-without-sessions, но отличается