¿Es posible convertir automáticamente todas las unidades utilizadas en un documento a una de las 7 unidades SI?
Donde yo por ejemplo tengo
\unit{\pascal}
,
Me gustaría renderizarlo como
\unit{\newton\per\square\meter}
, sin necesidad de hacer ajustes en todas partes.
Respuesta1
Podrías (re) declarar las unidades en cuestión en tu preámbulo una vez así:
\documentclass{article}
\usepackage{siunitx}
\DeclareSIUnit{\pascal}{\newton\per\square\meter}
\begin{document}
\unit{\pascal}
\end{document}
Editar: en elmanual de usuario, dice en la página 14:
El significado de una unidad predefinida se puede modificar utilizando
\DeclareSIUnit
después de cargar siunitx. Esto sobrescribirá la definición original con la versión más nueva.
Por lo tanto, no debería haber ningún problema al utilizar este enfoque.
Edición 2: me tomé el tiempo para (re) declarar las unidades derivadas del SI en el siunitx
paquete donde tenía sentido (ver más abajo, usé la tabla 10 eneste sitiocomo referencia y verificado nuevamente con Wikipedia). Tenga en cuenta que agregué un b
delante de los nombres de las macros, para no sobrescribir las macros originales. Elegí hacerlo porque me encontré con un problema al declarar que todas las unidades derivadas estén representadas por las siete unidades base del SI. Hay abreviaturas para unidades similares MPa
o kN
definidas en el paquete. El uso de abreviaturas con macros de unidades redefinidas puede provocar no sólo errores debido a prefijos dobles sino también unidades incorrectas, por ejemplo, Mm^{-1}kgs^{-2}
en lugar de MPa
. En conclusión, evitaría redefinir las unidades derivadas del SI existentes, sino que usaría otras nuevas. Sin embargo, si desea utilizar las macros existentes, tenga cuidado y no utilice abreviaturas con prefijos (o al menos compruebe cuáles son seguras) ni las sobrescriba también.
\DeclareSIUnit{\bhertz}{\per\second}
\DeclareSIUnit{\bnewton}{\kilo\gram\metre\per\square\second}
\DeclareSIUnit{\bpascal}{\kilo\gram\per\metre\per\square\second}
\DeclareSIUnit{\bjoule}{\kilo\gram\square\metre\per\square\second}
\DeclareSIUnit{\bwatt}{\kilo\gram\square\metre\per\cubic\second}
\DeclareSIUnit{\bcoulomb}{\ampere\second}
\DeclareSIUnit{\bvolt}{\kilo\gram\square\metre\per\ampere\per\cubic\second}
\DeclareSIUnit{\bfarad}{\per\kilo\gram\per\square\metre\square\ampere\second\tothe{4}}
\DeclareSIUnit{\bohm}{\kilo\gram\square\metre\per\square\ampere\per\cubic\second}
\DeclareSIUnit{\bsiemens}{\per\kilo\gram\per\square\metre\square\ampere\cubic\second}
\DeclareSIUnit{\bweber}{\kilo\gram\square\metre\per\ampere\per\square\second}
\DeclareSIUnit{\btesla}{\kilo\gram\per\ampere\per\square\second}
\DeclareSIUnit{\bhenry}{\kilo\gram\square\metre\per\square\ampere\per\square\second}
% wouldn't recommend using:
\DeclareSIUnit{\bbecquerel}{\per\second}
\DeclareSIUnit{\bgray}{\square\metre\per\square\second}
\DeclareSIUnit{\bsievert}{\square\metre\per\square\second}
\DeclareSIUnit{\bkatal}{\mole\per\second}
Si prefiere el esquema/orden de unidades, m-kg-s-A-K-mol-cd
la siguiente versión sería el camino a seguir.
\DeclareSIUnit{\bhertz}{\per\second}
\DeclareSIUnit{\bnewton}{\metre\kilo\gram\per\square\second}
\DeclareSIUnit{\bpascal}{\per\metre\kilo\gram\per\square\second}
\DeclareSIUnit{\bjoule}{\square\metre\kilo\gram\per\square\second}
\DeclareSIUnit{\bwatt}{\square\metre\kilo\gram\per\cubic\second}
\DeclareSIUnit{\bcoulomb}{\second\ampere}
\DeclareSIUnit{\bvolt}{\square\metre\kilo\gram\per\cubic\second\per\ampere}
\DeclareSIUnit{\bfarad}{\per\square\metre\per\kilo\gram\second\tothe{4}\square\ampere}
\DeclareSIUnit{\bohm}{\square\metre\kilo\gram\per\cubic\second\per\square\ampere}
\DeclareSIUnit{\bsiemens}{\per\square\metre\per\kilo\gram\cubic\second\square\ampere}
\DeclareSIUnit{\bweber}{\square\metre\kilo\gram\per\square\second\per\ampere}
\DeclareSIUnit{\btesla}{\kilo\gram\per\square\second\per\ampere}
\DeclareSIUnit{\bhenry}{\square\metre\kilo\gram\per\square\second\per\square\ampere}
Dejé de lado \radian
y \steradian
dado que su unidad base SI es 1
y también \lumen
y \lux
cuáles se derivan del \candela
uso \steradian
que (creo) podría conducir a errores de transformación (pero no estoy completamente seguro de eso, si lo sabes mejor, no dudes en hacérmelo saber). ). Además, dado que \degreeCelsius
es solo una unidad derivada relativa a 273.15 K
, una transformación directa conduciría a cantidades falsas con temperaturas absolutas, por lo que tampoco la incluí.
Respuesta2
\documentclass{article}
\usepackage{siunitx}
\DeclareSIUnit{\pascal}{\newton\per\square\meter}
\begin{document}
This is the distillation column pressure \SI{10}{\unit{\pascal}}.
\end{document}
Nota: No estoy seguro de si esto rompe algo como \pascal
ya está definido, tal vez alguien tenga una respuesta más apropiada, pero esto parece funcionar sin errores obvios.