2011-12-22 6 views
7

Supponiamo che io sono un tavolo creato da org-modeottenere un valore al di fuori di un tavolo in emacs org-mode

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

Esiste un modo all'interno del documento in modalità org per ottenere il valore dalla cella valore totale nel tavolo? (A parte manualmente copiare il valore)

risposta

8

il seguente post affronta la tua stessa domanda: http://permalink.gmane.org/gmane.emacs.orgmode/28056

Si dovrebbe assegnare un nome al tavolo, poi si riferiscono ad essa tramite una chiamata in linea 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} 

Spiegazione : si chiama un blocco sorgente inline elis molto banale che stampa solo la variabile d, che è stata assegnata a un elemento nella tabella.

Se si desidera che la seconda colonna della scorsa fila , si può provare:

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

Qualora il 1 ottiene il 2 ° punto, e il (- (length tbl) 1) ottiene l'ultima riga (Si noti che questo ultimo esempio è LISP non purista, funziona solo).

Qui si ottiene la tabella completa in elisp (come un elenco di elenchi) e si estrae l'elemento desiderato tramite la manipolazione della lista.

Si noti che il risultato effettivo verrà sostituito durante l'esportazione. Non lo vedrai magicamente nel testo in modalità org stesso.

+0

L'esportazione di questo in ASCII sul mio sistema fornisce il risultato corretto con citazioni fastidiose: ''25''. Qualche idea su come sbarazzarsi delle citazioni? –

+1

Aggiungi ': results raw' come opzione (insieme alla direttiva': var') per eliminare le virgolette. – Juancho

Problemi correlati