É possível converter automaticamente todas as unidades utilizadas em um documento para uma das 7 unidades do SI?
Onde eu, por exemplo, tenho
\unit{\pascal}
,
Eu gostaria de renderizá-lo como
\unit{\newton\per\square\meter}
, sem precisar fazer ajustes em todos os lugares.
Responder1
Você poderia (re)declarar as unidades em questão em seu preâmbulo assim:
\documentclass{article}
\usepackage{siunitx}
\DeclareSIUnit{\pascal}{\newton\per\square\meter}
\begin{document}
\unit{\pascal}
\end{document}
Editar: Nomanual do usuário, diz na página 14:
O significado de uma unidade predefinida pode ser alterado usando
\DeclareSIUnit
siunitx após o carregamento. Isto substituirá a definição original pela versão mais recente.
Portanto, não deve haver problemas em usar essa abordagem.
Edição 2: reservei um tempo para (re) declarar as unidades derivadas do SI no siunitx
pacote onde fazia sentido (veja abaixo, usei a tabela 10 emesse sitecomo referência e verificado novamente com a Wikipedia). Observe que adicionei um b
na frente dos nomes das macros, para não substituir as macros originais. Optei por fazer isso porque me deparei com um problema ao declarar todas as unidades derivadas como representadas pelas sete unidades básicas do SI. Existem abreviaturas para unidades semelhantes MPa
ou kN
definidas na embalagem. Usar aqueles com abreviaturas com macros de unidades redefinidas pode levar não apenas a erros devido a prefixos duplos, mas também a unidades erradas, por exemplo, Mm^{-1}kgs^{-2}
em vez de MPa
. Concluindo, eu evitaria redefinir as unidades derivadas do SI existentes, mas usaria novas. Porém, se você quiser usar as macros existentes, tenha cuidado e não use abreviações com prefixos (ou pelo menos verifique quais são seguras) ou substitua-as também.
\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}
Se você preferir o esquema/ordem das unidades, m-kg-s-A-K-mol-cd
a versão abaixo seria a melhor opção.
\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}
Eu deixei de fora \radian
e \steradian
como a unidade base do SI deles é 1
e também \lumen
e \lux
which são derivados do \candela
uso \steradian
de which (eu acho) podem levar a erros de transformação (mas não tenho certeza sobre isso, se você souber melhor, sinta-se à vontade para me avisar ). Além disso, como \degreeCelsius
é apenas uma unidade derivada em relação a 273.15 K
, uma transformação direta levaria a quantidades falsas com temperaturas absolutas, por isso também não a incluí.
Responder2
\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: Não tenho certeza se isso quebra alguma coisa \pascal
já definida, talvez alguém tenha uma resposta mais apropriada, mas parece funcionar sem erros óbvios.