我想在 org 文件中定义一个缓冲区宽变量,并稍后使用该变量中的值,例如,为乳胶导出定义图像的宽度。
有没有办法做到这一点?
这可以使用#+CONSTANTS:
吗?
理想情况下,它应该像这样工作:
image_width
我在缓冲区中定义了一个变量,例如
image_width=10
并将此变量用于#+ATTR_LATEX:
设置,例如#+ATTR_LATEX: :width $image_width
.
两种方法(未经测试),如果您希望您的常量是特定于缓冲区的:
组织文件最后 8 行(左右)中的“局部变量”;
使用组织“#+MACRO:”功能
您可以使用标签声明变量#+NAME:
。然后通过将它传递给:var
你需要的 src 块来使用它。
这看起来像这样:
#+NAME: instance-id
| abcd |
#+BEGIN_SRC sh :var id=instance-id
echo $id
#+END_SRC
#+RESULTS:
: abcd
#+BEGIN_SRC python :var myvar=instance-id[0, 0]
print myvar
#+END_SRC
#+RESULTS:
: abcd
注意instance-id[0, 0]
in python src 块。我已将变量声明为数组,因此我需要像这样取消引用该值。
在 .emacs 中定义一个变量。就像定义函数一样,您可以将变量绑定到某个值。你可以做 setq 或 defvar、defconst,这取决于你想要什么。例如:
(setq 图像宽度 10)
确保在设置变量后 eval-buffer。