Modalità organizzazione: utilizzo della formula di tabella all'esterno di una tabella?


11

Mi chiedo se sia possibile visualizzare il risultato dei calcoli eseguiti sui dati della tabella, al di fuori di una tabella.

Ad esempio, supponiamo di avere una tabella con un elenco di nomi. È possibile avere un testo in chiaro che dice qualcosa come " This below list contains [ ] names." e [ ]contenere il risultato del conteggio della tabella?

Risposte:


9

Puoi usare un blocco di codice babel in linea e la funzione lisp org-table-get-remote-range per ottenere l'accesso agli intervalli di tabelle come nell'esempio seguente (il numero 3 dopo il blocco sorgente è quello che ha prodotto quando Cc Cc viene eseguito su esso)

  #+TBLNAME: table1
  | Name    | Points |
  |---------+--------|
  | Andreas |      5 |
  | Barbara |      8 |
  | Carl    |      7 |
  |---------+--------|
  | Total   |     20 |
  #+TBLFM: @5$2=vsum(@I..@II)

  Now I insert in the text the number of names in the above table: 
  src_emacs-lisp[:results raw]{(length (org-table-get-remote-range "table1" "@I$1..@II$1" ))} 3

Nelle mie impostazioni di Emacs, [: results raw] non mostra i risultati, [: results value raw] è riuscito. Tuttavia, ogni volta che I Cc Cc, o Cc Cv Cb, si ripete lo stesso risultato ridondante. Non so perché e non ho una soluzione per i risultati ridondanti.
RUserPassingBy

1
valuedovrebbe essere l'impostazione predefinita, ma renderla esplicita è sicuramente più corretta. Per quanto riguarda la ripetizione dell'inserimento dei risultati ad ogni successiva esecuzione di C-c C-c, questo è un problema intrinseco, poiché il risultato non è racchiuso in alcun tipo di marker che consentirebbe a Org di determinare i limiti. Bisognerebbe preparare qualche soluzione usando degli indicatori di testo invisibili all'esportazione. La situazione attuale non è ottimale, sono d'accordo.
Dfeich,

Grazie per la tua precisa spiegazione, ho capito. Terrò presente il problema inerente. La tua soluzione blocco in linea è fantastica!
RUserPassingDa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.