【问题标题】:Emacs Org-mode: Deriving a property value from another property's valueEmacs Org-mode:从另一个属性的值派生一个属性值
【发布时间】:2021-05-14 23:02:31
【问题描述】:

假设我定义了这些属性:

:PROPERTIES:
:a: 1
:b: 2
:END:

我如何定义属性 c,使其值为属性 a 的值和属性 b 的值之和?我试过:c: (+ a b),但c的值只是字符串"(+ a b)"

是否可以以这种方式定义属性,或者我必须有一个代码块然后进行评估? (例如使用 Properties API)

【问题讨论】:

    标签: emacs org-mode


    【解决方案1】:

    您可以使用Property API 定义一个在导出时执行的代码块:

    * Code
    
    #+NAME: PropertyCalculator
    #+BEGIN_SRC emacs-lisp
      (let* ( (rootval (string-to-number (org-entry-get nil "root")))
           (squareval (number-to-string (* rootval rootval))) )
        (org-entry-put nil "square" squareval)
        )
    #+END_SRC
    
    * Content
    ** Property Data
    :PROPERTIES:
    :root:     2
    :square:   5
    :END:
    
    #+CALL: PropertyCalculator()
    

    这会将任何现有条目留在缓冲区中,但会在导出中覆盖。

    您还可以使用 (org-babel-load-file) 更正缓冲区内。

    【讨论】:

      猜你喜欢
      • 2020-06-25
      • 2020-02-16
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 2011-12-13
      相关资源
      最近更新 更多