Componer correctamente una cantidad como “9.81 m/s²” implica varias convenciones: unidades en tipo vertical (romano), un espacio fino entre número y unidad, y espaciado coherente para productos y cocientes de unidades compuestas. Mantener todo esto a mano es tedioso y se desvía. El paquete siunitx es la herramienta estándar que compone números, unidades y cantidades automáticamente con un conjunto coherente de reglas. Esta página ordena los tres comandos centrales de la versión actual (v3), \num, \unit y \qty, el tipo de columna S para alinear números por el separador decimal en tablas, y muestra en qué difieren de los nombres v2 \SI y \si que aún verás en documentos antiguos.
Por qué usar un paquete de unidades
La notación científica sigue convenciones internacionales (ISO 80000-2 / JIS Z 8000-2; véase la página aparte). Uno de sus puntos clave es que los símbolos de unidad se componen en vertical. m, kg y s no son variables, así que no deben ir en la tipografía de variable, itálica. Pero en el modo matemático de LaTeX las letras son inclinadas por defecto, de modo que escribir $kg$ literalmente hace que la unidad parezca el producto de una k y una g itálicas.
Un segundo punto es el espaciado. Entre el número y la unidad no va ni nada ni demasiado, sino un espacio fino (equivalente al \, matemático): no 9.81m ni 9.81 m. Además, en una unidad compuesta como m/s normalmente quieres un tratamiento coherente en todo el documento: cómo se muestra la división (barra o potencia negativa s⁻¹) y si un producto como kg·m lleva punto medio. Escribir cada caso a mano como \mathrm{m} tiende a dejar espacios, potencias y productos inconsistentes.
siunitx se encarga de todo esto a la vez: compone las unidades en vertical, inserta el espacio correcto antes de ellas y representa productos, cocientes y potencias con una regla coherente. Un único cambio de configuración modifica el aspecto en todo el documento. Se activa cargando \usepackage{siunitx} en el preámbulo.
Formatear un número: \num
\num{…} formatea solo un número. Dale un número y lo compone en vertical, resolviendo automáticamente agrupación de dígitos, exponentes y signos. Es especialmente útil su lectura de exponentes: reconoce e, E, d y D como “×10 elevado a”. Así, \num{1.234e5} compone 1.234 × 10⁵ (no imprime un e5 literal). Acepta . o , como marcador decimal y, si hace falta, añade un 0 inicial antes del punto.
\num{12345} % → 12 345(桁区切りが入る / digit grouping)
\num{1.234e5} % → 1.234 × 10^5
\num{0,1234} % → 0.1234(カンマも小数点として解釈 / comma as decimal)
\num{.5} % → 0.5(先頭に 0 を補う / leading zero added)
\num{3.45d-4} % → 3.45 × 10^{-4}Aquí 12345 recibe un espacio fino de agrupación y se convierte en 12 345, 1.234e5 pasa a 1.234 × 10⁵ y .5 a 0.5. Las convenciones regionales (agrupación con coma, coma decimal, etc.) se cambian con opciones, pero para empezar basta recordar: pasa los números por \num en lugar de escribir dígitos desnudos. Para componer un producto de números, usa el comando dedicado \numproduct{1.2 x 3.4} (entradas separadas por x); en v3, \num no forma productos por sí mismo.
Componer una unidad: \unit
\unit{…} compone solo una unidad. Hay dos formas de dar la entrada. Una es el estilo literal, donde escribes directamente los símbolos de unidad, como \unit{kg.m/s^2}. Aquí el punto . es un producto entre unidades, / un cociente, y ^ y _ dan superíndices y subíndices. siunitx lo compone en vertical con el espaciado correcto: \unit{kg.m/s^2} sale como kg m/s² (espacio fino entre kg y m, un 2 en superíndice en s).
La otra es el estilo interpretado (macro), donde construyes la unidad con comandos para cada unidad, prefijo y potencia, casi como leer la unidad en inglés. La tabla enumera los bloques básicos.
| Comando | Significado | Salida | |
|---|---|---|---|
gram | \gram / \metre / \second | Unidades base (nombres SI) | g / m / s |
kilo | \kilo \milli \micro … | Prefijos (antes de una unidad) | k / m / µ |
kilogram | \kilogram | Unidad prefijada predefinida | kg |
per | \per | Pone la siguiente unidad en el denominador | … ⁻¹ o /… |
squared | \squared / \cubed | Eleva al cuadrado / cubo la unidad anterior (posfijo) | m² / m³ |
square | \square / \cubic | Eleva al cuadrado / cubo la unidad siguiente (prefijo) | m² / m³ |
\unit{\kilo\gram\per\cubic\metre} % → kg/m^3 (密度 / density)
\unit{\metre\per\second\squared} % → m/s^2 (加速度 / acceleration)
\unit{\kilo\gram} % → kg
\unit{\kilogram} % → kg(定義済みの一語 / predefined)Para un “kilogramo” con prefijo, escribir prefijo y unidad en secuencia como \kilo\gram o usar la palabra predefinida \kilogram da el mismo kg. \cubic\metre es una forma prefija de “metro cúbico, m³”, y \metre\per\second\squared usa el posfijo \squared para “metro por segundo al cuadrado, m/s²”. El aspecto de \per (potencia negativa s⁻¹ o barra /s) se cambia con la opción per-mode descrita abajo.
Los estilos literal e interpretado pueden producir el mismo resultado, pero el estilo interpretado (macro) tiene ventajas: el aspecto de potencias, prefijos y productos/cocientes puede controlarse globalmente con opciones, y puedes definir tus propias macros de unidad. El estilo literal, por su parte, es cómodo para escribir una unidad rápida. En ambos casos, la unidad queda vertical y el espaciado es correcto.
Número y unidad juntos: \qty
En documentos reales, números y unidades casi siempre aparecen juntos. \qty{…}{…} toma el número como primer argumento y la unidad como segundo, y los compone como una cantidad. Combina \num y \unit: la parte numérica se escribe exactamente como en \num, y la unidad exactamente como en \unit. El valor de una cantidad es “número × unidad”, con el espacio entre ambos como multiplicación; el comando convierte esa idea en algo concreto.
重力加速度は \qty{9.81}{\metre\per\second\squared} である。
The acceleration of gravity is \qty{9.81}{\metre\per\second\squared}.
\qty{1.234e5}{\kilo\gram\per\cubic\metre} % → 1.234 × 10^5 kg/m^3
\qty{2.998e8}{m/s} % リテラル単位もそのまま使えるAquí, un espacio fino sigue a 9.81 y luego viene el m/s² vertical, de modo que “9.81 m/s²” se compone como una sola cantidad. Puedes pasar directamente un número con exponente, como en \qty{1.234e5}{…}. La parte de unidad puede ser una macro (\metre\per\second\squared) o literal (m/s).
El aspecto de \per se elige con la opción per-mode: por defecto es una potencia negativa (m s⁻¹), per-mode=symbol da una barra (m/s) y per-mode=fraction construye una fracción apilada (numerador sobre denominador). Las opciones pueden darse individualmente entre corchetes en cada comando, o fijarse para todo el documento en el preámbulo con \sisetup{…}.
\qty{1.99}{\per\kilogram} % 既定 → 1.99 kg^{-1}
\qty[per-mode = symbol]{1.99}{\per\kilogram} % → 1.99 /kg
\qty[per-mode = fraction]{1.345}{\coulomb\per\mole} % → 縦組みの分数 C/mol
% 文書全体に方針を適用 / set a policy document-wide
\sisetup{per-mode = symbol}Los ángulos tienen su propio \ang{…}. \ang{45} da 45°, y también hay un “formato de arco” con punto y coma para grados, minutos y segundos: \ang{45;30;15} compone 45°30′15″. Los componentes del formato pueden dejarse vacíos: \ang{;;1} compone solo segundos, y \ang{+10;;} solo grados (con signo explícito). Los ángulos no admiten prefijos SI, así que se usa este comando dedicado en lugar de \qty.
v2 frente a v3: \SI / \si son nombres antiguos
Los comandos \num, \unit y \qty anteriores son los comandos centrales de siunitx versión 3. En documentos antiguos y respuestas web encontrarás en su lugar los comandos de versión 2. La correspondencia es esta.
| v2 (nombre antiguo) | v3 (actual) | Función | |
|---|---|---|---|
SI | \SI{9.81}{\metre\per\second\squared} | \qty{9.81}{...} | Número + unidad |
si | \si{\kilo\gram} | \unit{\kilo\gram} | Solo unidad |
num | \num{1.234e5} | \num{1.234e5} (sin cambios) | Solo número |
SIrange | \SIrange{10}{20}{\metre} | \qtyrange{10}{20}{\metre} | Rango (10 m a 20 m) |
SIlist | \SIlist{10;20;30}{\metre} | \qtylist{10;20;30}{\metre} | Lista (10 m, 20 m, 30 m) |
El manual oficial dice que en v3 los nombres de los comandos de documento se revisaron para ser “más descriptivos”, y que \SI, \si, \SIrange y \SIlist siguen disponibles pero no se recomiendan para documentos nuevos (usa en su lugar la familia \qty…). El nombre \num no cambia entre v2 y v3. Si tu objetivo es compilar un documento antiguo, puedes invocar el comportamiento heredado con \usepackage{siunitx}[=v2], pero para escribir algo nuevo, usa \qty, \unit y \num de v3.
v3 también hizo la entrada algo más estricta. Un prefijo no puede usarse solo (debe acompañar a una unidad), y los productos se escriben con comandos dedicados: \numproduct para números, \qtyproduct para cantidades con unidades. En muchos casos los nombres antiguos de opciones se asignan internamente a los nuevos, con una nota en el log.
Alinear números en tablas: la columna S
En una tabla de números, las columnas son difíciles de leer si los dígitos no se alinean. Para tabular, siunitx proporciona el tipo de columna S: escribe S en la especificación de columna en lugar de c, l o r, y los números de esa columna se alinean por el separador decimal. Su contenido lo analiza el mismo motor que \num, así que los valores con exponente (1.2e3) también se manejan correctamente.
\begin{tabular}{@{}S@{}}
\toprule
{Some Values} \\ % 見出しは波括弧で保護(数値と誤認させない)
\midrule
2.3456 \\
34.2345 \\
-6.7835 \\
5642.5 \\
1.2e3 \\
e4 \\
\bottomrule
\end{tabular}En esta tabla los números se alinean por el separador decimal, 1.2e3 se compone como 1.2 × 10³ y e4 como 10⁴. Una advertencia importante: cualquier texto, como un encabezado de columna, debe ir entre llaves {…}. Sin la protección de {Some Values}, siunitx intenta leerlo como parte de un número y la alineación se rompe.
Para fijar la disposición de los dígitos y colocar la columna a gusto, la opción table-format indica a siunitx “dígitos enteros.dígitos decimales”. S[table-format=2.4] significa “2 dígitos enteros, 4 decimales”, lo que estabiliza el aspecto de toda la columna. Y cuando necesitas números alineados dentro de \multicolumn o \multirow, existe una versión macro, \tablenum[table-format=…]{…}, que sustituye a la columna S.
\begin{tabular}{@{}S[table-format=4.1]@{}}
\toprule
{Mass / \unit{\gram}} \\
\midrule
1234.5 \\
12.0 \\
6.7 \\
\bottomrule
\end{tabular}Aquí el encabezado de columna usa \unit{\gram} para mostrar “Mass / g” con una unidad vertical, mientras los números se alinean a 4 dígitos enteros y 1 decimal. Con la columna S puedes dividir el trabajo: \qty para cantidades en la prosa, la columna S para números en tablas, y mantener un estilo numérico coherente en todo el documento.