Numlex Documentación
Referencia de sintaxis

Etiquetas, subtotales y estadística

Filas etiquetadas, secciones con divisor, subtotales, totales generales, agregados por etiqueta, estadística, valores aleatorios dinámicos y la estadística configurable del pie.

Las etiquetas y los subtotales añaden una estructura de texto plano sobre el bloc de notas. Un #tag final marca una fila, un divisor exacto --- empieza una sección nueva, subtotal suma la sección actual, grand total suma los subtotales correctos y los agregados por etiqueta responden a total of #tag y compañía. Cuatro funciones — count, median, stdev y rand — están incluidas, y el Total flotante puede mostrar Sum, Average, Count o Median. Todo es estricto: un casi-acierto se queda como fila normal y los agregados nunca reutilizan filas derivadas.

Encabezados, etiquetas y divisores

  • Un encabezado es una línea que empieza exactamente por # (almohadilla y un espacio). #food no es un encabezado: es una fila etiquetada.
  • Una etiqueta es un átomo final: # sin espacio, seguido de un identificador que empieza por letra (letras, dígitos, _, -; hasta 64 grafemas). Puede haber varias etiquetas al final de una línea; los duplicados de la misma línea se colapsan (gana la primera grafía). Mayúsculas y NFC se normalizan para la búsqueda y se conserva la grafía original, así que un #cafe\u0301 descompuesto es una etiqueta válida y encuentra el mismo agregado que #café. Las etiquetas nunca cambian la respuesta de una línea y no se reconocen a mitad de expresión (2 #food + 3 es aritmética). Los comentarios y los encabezados no declaran etiquetas.
  • Un divisor es una línea exactamente igual a --- (se admiten espacios exteriores). No tiene respuesta, nunca entra en una suma y empieza una sección de etiquetas nueva. ---- y las series de guiones más largas son líneas normales.
2 + 3 #math #cash     → 5, tagged math and cash
5 #a
total of #a           → 5

Secciones, subtotales y total general

El comando antiguo total sigue funcionando, y ahora un encabezado # , un divisor exacto --- o el total más cercano actúan como su límite. El conjunto añade:

  • subtotal — suma las filas elegibles desde el último subtotal, encabezado o divisor.
  • subtotal + 15% / subtotal - 15% — el porcentaje se aplica al subtotal bruto (100 → 115).
  • <name> = subtotal[ ± 15%] — forma con nombre que escribe el valor en el entorno como un escalar normal (sum = subtotal + 15% → 115).
  • grand total (y <name> = grand total) — suma solo las filas de subtotal calculadas correctamente por encima; un divisor no borra la lista. Un subtotal fallido o desbordado nunca cuenta.

grand total exige al menos dos subtotales correctos; con menos, la fila es el error genérico silencioso Invalid expression y no se adivina nada.

total last N — un total sobre las últimas líneas

total suma todas las filas elegibles de su sección. La forma acotada total last N suma solo los valores elegibles de las N líneas lógicas inmediatamente anteriores de esa misma sección, y después reinicia la sección exactamente igual que el total normal.

  • N es un número entero positivo. Tras los espacios o tabuladores exteriores, la línea debe leerse como total last N (no importa el uso de mayúsculas, y una o más espacios o tabuladores pueden separar las tres partes). total last 0, total last -3, total last 3.5, un número ausente, palabras de más o un número demasiado grande son líneas normales, no comandos.
  • N cuenta líneas lógicas, no resultados. Las líneas en blanco, los comentarios, la prosa, los errores, las filas de dinero y de unidades, un token de respuesta solo y las filas derivadas (subtotales, total general, agregados por etiqueta) ocupan exactamente una ranura y no aportan nada. La propia línea del comando nunca es una de sus ranuras.
  • El límite de la sección no cambia. La ventana nunca mira por encima del total/total last N más cercano, de un encabezado # o de un divisor --- exacto. subtotal y grand total no son límites del total antiguo, pero sus propias filas sí ocupan ranuras.
  • La elegibilidad no cambia. Se aplican las mismas reglas que en el total normal: cuentan los escalares finitos sin unidad, los enteros exactos y las filas de uso de escalares con nombre; las declaraciones, el dinero, las cantidades con unidades, los booleanos, las fechas y los errores no cuentan.
  • Una ventana mayor que la sección suma lo que hay (una sección vacía da 0), y el comando reinicia la sección después de responder, así que un total o total last N posterior empieza vacío.
  • El desbordamiento y los valores dinámicos se juzgan por la ventana. El error silencioso Invalid expression aparece solo si se desborda la suma de las líneas seleccionadas; un desbordamiento por encima de la ventana no le afecta. La fila es dinámica (depende de rand) solo cuando lo es una contribución elegible seleccionada.
  • El sombreado es compartido: una variable o constante activa llamada total suprime ambas formas, igual que antes.
10
20

30
total last 2        → 30    (the blank line took a slot and added nothing)
40
50
total last 3        → 90    (only 40 and 50 were in the window)
total               → 0     (the section was already reset)
10
20
subtotal              → 30

10
subtotal
20
subtotal
grand total           → 30

Un encabezado o un divisor reinician el acumulador de un subtotal:

10
# Section
20
subtotal              → 20

La fila del total antiguo no es un límite para el subtotal: se excluye del subtotal como fila derivada, mientras que la sección propia del total antiguo sigue abarcando la fila de subtotal.

Qué filas son elegibles

Son elegibles los escalares finitos adimensionales (números normales, fracciones, porcentajes, multiplicadores), los enteros exactos y las filas que usan escalares con nombre. No son elegibles: las declaraciones (x = …), las filas de un solo token, el dinero, las cantidades con unidades, los valores booleanos/fecha/hora/geo, los errores, los divisores y todas las filas derivadas. Un token dentro de una expresión real cuenta; una fila que solo contiene un token, no.

x = 5
x + 5
$7
3 kg
true
50%
1/4
0xFF
2 + 3
subtotal              → 270.75

Añadir filas estructurales

  • File → Add Subtotal (⌘T) y File → Add Grand Total (⌘⇧T) insertan el comando en la línea del cursor. Solo se activan cuando la línea destino está en blanco (solo espacios) o es una asignación vacía estricta <name> = (se admiten espacios finales); con cualquier otro contenido suena un aviso y no cambia nada. ⌘⇧T exige además al menos dos subtotales correctos por encima.
  • Doble clic en una fila de respuesta vacía (solo espacios o <name> = estricto) inserta subtotal por el mismo planificador. Los encabezados, comentarios, divisores, filas de solo etiqueta, prosa y errores quedan inertes.
  • Convert to Normal Line en el menú contextual de una fila de subtotal/total general sustituye el comando por un literal numérico de precisión completa reintroducible en la configuración regional del valor mostrado; la forma con nombre conserva su prefijo <name> =, y el número de líneas y los identificadores estables no cambian.

Agregados por etiqueta

total of #tag, average of #tag, count of #tag y median of #tag (sin distinguir mayúsculas; una sola etiqueta por consulta) solo ven las filas elegibles etiquetadas con esa etiqueta estrictamente por encima en la sección actual: un divisor cierra la sección. Una fila con varias etiquetas entra una vez en cada etiqueta. Un conjunto vacío da 0 para total/count y un error silencioso para average/median. Las filas agregadas derivadas nunca alimentan agregados posteriores, el subtotal ni el pie.

Funciones estadísticas y frases naturales

count, median y stdev muestral (n−1) forman parte de las 27 funciones integradas, y rand aporta enteros aleatorios inclusivos. Todas siguen las reglas de llamada compartidas: nombres sin distinguir mayúsculas, argumentos como expresiones completas, errores estrictos de aridad y dominio.

  • count(1, 2, 3) → 3
  • median(1, 2, 3) → 2
  • median(1, 2, 3, 4) → 2.5
  • stdev(2, 4, 4, 4, 5, 5, 7, 9) → ≈ 2.13809 (muestral, n−1)
  • rand(1, 6) → un entero uniforme en 1…6

Las frases naturales cubren lo mismo: median of 1, 2, 3 → 2, count of 1, 2, 3, 4 → 4, standard deviation of 2, 4, 4, 4, 5, 5, 7, 9 y random number between X and Y. La lista usa el separador de argumentos activo (, en formatos con punto y ; en formatos con coma), así que median of 1,5; 2,5; 3,5 → 2.5 en una configuración con coma decimal. Los resultados siguen los decimales de la hoja. La mediana y la media son seguras frente a desbordamiento, de modo que los valores extremos finitos no pueden producir infinito.

Valores aleatorios dinámicos

Una fila se vuelve dinámica cuando rand se ejecutó de verdad (los espacios y las mayúsculas antes de ( dan igual) o cuando lee un nombre dinámico. Una rama if no tomada, los comentarios y el texto inválido no se vuelven dinámicos. La dependencia se propaga por valores con nombre, subtotal, grand total y agregados por etiqueta; el tipo de fila se conserva (un subtotal sigue siendo un subtotal).

Un valor dinámico se mantiene estable hasta que edites la hoja o pulses ⌘R (Recalculate Dynamic Values); desplazarse, pasar el ratón o cambiar el formato no lo redibujan. Nunca se puede tokenizar ni entra en la cadena Previous Answer. La exportación a PDF congela el valor actual.

Estadística del pie

Haz clic derecho en el Total flotante para elegir Sum, Average, Count o Median en un único menú nativo con marca. La elección es un ajuste global de la app, persistido (nunca parte de .nlx), y solo cambia el pie: nunca la hoja, el cursor, la selección, el IME, la posición de desplazamiento ni el editor. Count muestra un entero exacto; las demás estadísticas usan la presentación numérica global. El panel usa las mismas filas elegibles canónicas que los totales anteriores: las filas agregadas derivadas (totales inline, subtotales, totales generales, agregados por etiqueta, divisores) nunca contribuyen, y el Sum por defecto coincide con el Total anterior. Un valor mal guardado o desconocido vuelve a Sum.

Tokens, exportación e interacción con los totales

  • Una fila finita de agregado por etiqueta o de subtotal es un número normal para los Answer Tokens; el mismo resultado nunca se reutiliza en un agregado, subtotal o pie posteriores.
  • El redondeo por respuesta y las anulaciones de formato numérico nunca cambian la estadística del pie; esta sigue la notación global y los ajustes regionales.
  • La exportación a PDF y la impresión mantienen las filas derivadas marcadas como derivadas, así que la página exportada nunca las cuenta dos veces, y la exportación congela el valor aleatorio actual.

Relacionado

¿Has encontrado un error en esta documentación? Infórmalo en GitHub