Modo Org: ¿usa la fórmula de tabla fuera de una tabla?


11

Me pregunto si es posible mostrar el resultado de los cálculos realizados en los datos de la tabla, fuera de una tabla.

Por ejemplo, supongamos que tengo una tabla con una lista de nombres. ¿Es posible tener texto sin formato que diga algo como " This below list contains [ ] names." y que [ ]contenga el resultado de contar la tabla?

Respuestas:


9

Puede usar un bloque de código de babel en línea y la función lisp org-table-get-remote-range para obtener acceso a los rangos de tabla como en el siguiente ejemplo (el número 3 después del bloque fuente es lo que produjo cuando se ejecuta Cc Cc en eso)

  #+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

En mi configuración de Emacs, [: resultados en bruto] no muestra los resultados, [: valor de resultados en bruto] tuvo éxito. Sin embargo, cada vez que I Cc Cc, o Cc Cv Cb, se repite el mismo resultado redundante. No sé por qué y no tengo una solución para los resultados redundantes.
RUserPassingPor

1
valuedebería ser la configuración predeterminada, pero hacerla explícita es ciertamente más correcta. Con respecto a la repetición de la inserción de los resultados con cada ejecución posterior de C-c C-c, este es un problema inherente, ya que el resultado no está envuelto en ningún tipo de marcadores que permitan a Org determinar los límites. Uno tendría que idear alguna solución usando marcadores en el texto que son invisibles en la exportación. La situación actual no es óptima, estoy de acuerdo.
dfeich

Gracias por su explicación precisa, entiendo. Tendré en cuenta el problema inherente. ¡Su solución de bloqueo en línea es excelente!
RUserPassingPor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.