Modo organizacional: usando a fórmula da tabela fora de uma tabela?

11

Gostaria de saber se é possível exibir o resultado dos cálculos realizados nos dados da tabela, fora de uma tabela.

Por exemplo, suponha que eu tenha uma tabela com uma lista de nomes. É possível ter texto simples que diga algo como " This below list contains [ ] names." e tenha [ ]o resultado da contagem da tabela?

Chris
fonte

Respostas:

9

Você pode usar um bloco de código babel embutido e a função lisp org-table-get-remote-range para obter acesso a intervalos de tabelas como no exemplo a seguir (o número 3 após o bloco de origem é o que ele produziu quando Cc Cc é executado em isto)

  #+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
dfeich
fonte
Nas configurações do Emacs, [: results raw] não mostra os resultados, [: results value raw] foi bem-sucedido. No entanto, toda vez que I Cc Cc, ou Cc Cv Cb, o mesmo resultado redundante é repetido. Não sei por que e não tenho uma solução para os resultados redundantes.
RUserPassingBy
1
valuedeve ser a configuração padrão, mas você a torna explícita certamente é mais correta. No que diz respeito à repetição da inserção dos resultados a cada execução subsequente C-c C-c, esse é um problema inerente, pois o resultado não é envolto em nenhum tipo de marcadores que permitiriam à Org determinar os limites. Seria necessário elaborar alguma solução usando marcadores no texto que são invisíveis na exportação. A situação atual não é ótima, eu concordo.
dfeich
Obrigado pela sua explicação precisa, eu entendo. Vou ter em mente o problema inerente. Sua solução de bloco em linha é ótima!
RUserPassingBy