如何在组织模式表中执行内联源块?

时间:2017-07-07 17:59:52

标签: org-mode

我想在组织模式表中输出src_R块:

| Variable | Value    |
|----------+----------|
| x        | src_R{x} |

然而,当我导出到PDF(通过LaTeX)时,我得到文字src_R {x}而不是底层R会话中的x变量的值。我可以在文本中使用相同的src_R {x},它可以按预期工作。

有没有办法在表格中支持内联源代码?

(我已经看到这个问题有一个类似的标题:Code blocks inside tables for org-mode,但主题不同。)

1 个答案:

答案 0 :(得分:3)

感谢Juancho的提示(见评论),我在这里找到了答案:http://orgmode.org/worg/org-contrib/babel/intro.html#spreadsheet。我首先定义一个命名的源块来执行我的R计算:

#+NAME: my-code
#+BEGIN_SRC R :results output
  message(10)
#+END_SRC

(想象一下输出只是数字10)。然后我将它插入表中:

| Variable | Value |
|----------+-------|
| Name     |       |
#+TBLFM: @2$2='(org-sbe my-code)

评论:

  • 似乎org-babel-execute不再存在,文档使用org-sbe,它适用于我的9.0.x org-mode版本。
  • 我已经在message()中包装了代码输出以避免R的额外输出。我已经尝试了R代码的各种头参数(例如:结果值raw)但我得到额外的括号,可能来自lisp,或者错误。
  • 使用org-sbe,您还可以将参数传递给代码,甚至是其他代码块的输出。这在上面引用的文档中有解释。