【问题标题】:getting a value outside a table in emacs org-mode在 emacs org-mode 中获取表外的值
【发布时间】:2011-12-22 19:36:36
【问题描述】:

假设我有一个由 org-mode 创建的表

| thing | value |
| t1    | 1     |
| t2    | 3     |
| t3    |  21   |
|-------+-------|
| total | 25    |

在 org 模式文档中是否有办法从表格中的总值单元格中获取值? (除了手动复制值)

【问题讨论】:

    标签: emacs org-mode


    【解决方案1】:

    以下帖子解决了您同样的问题:http://permalink.gmane.org/gmane.emacs.orgmode/28056

    你应该先命名你的表,然后通过内联的 src 调用来引用它:

    #+TBLNAME: test-table
    | thing | value |
    |-------+-------|
    | t1    | 1     |
    | t2    | 3     |
    | t3    |  21   |
    |-------+-------|
    | total | 25    |
    
    The result I wanted is src_emacs-lisp[:var d=test-table[6,1]]{d}
    

    解释:你调用了一个非常简单的 elisp 内联源代码块,它只打印变量 d,它被分配给表中的一个元素。

    如果你想要最后行的第二列,你可以试试:

    The result I wanted is src_emacs-lisp[:var tbl=test-table]{(nth 1 (nth (- (length tbl) 1) tbl))}
    

    1 获得第二项,(- (length tbl) 1) 获得最后一行(请注意,最后一个示例不是纯粹的 LISP,只是有效)。

    这里我们将完整的表格放入elisp(作为列表的列表),并通过列表操作提取所需的项目。

    请注意,实际结果将在导出期间被替换。您不会在 org-mode 文本本身中神奇地看到它。

    【讨论】:

    • 在我的系统上将其导出为 ASCII 会得到正确的结果并带有烦人的引号:'25'。知道如何摆脱引号吗?
    • 添加:results raw 作为选项(连同:var 指令)以去掉引号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    相关资源
    最近更新 更多