Como declarar uma variável como unidade com siunitx?

Como declarar uma variável como unidade com siunitx?

Na astronomia, o valor da constante de Hubble ainda é um tanto incerto. Portanto, costuma ser escrito como $H = h \SI{100}{\kilo\meter\per\second\per\mega\parsec}$, onde $h$agora é considerado parte da unidade. A unidade de comprimento é $h^{-1} \si{\mega\parsec}$, que desejo compor como $\si{\per\h\mega\parsec}$. Como faço para conseguir isso em látex para que 'h' seja escrito em itálico como uma variável? Abaixo está um exemplo mínimo.

\documentclass{article}

\usepackage{siunitx}

\DeclareSIUnit \h {$h$}
\DeclareSIUnit \parsec {pc}


\begin{document}

\si{\per\h\mega\parsec}

\end{document}

Isso resulta em um erro:

! Missing } inserted.
<inserted text> 
            }
l.11 \si{\per\h\mega\parsec}

?

Responder1

Não sei sobre a composição de unidades na astronomia, portanto não posso dizer como o "h" deve ser composto, mas um "h" em itálico matemático é fácil:

\documentclass{article}

\usepackage{siunitx}

\DeclareSIUnit \h {\ensuremath{\mathit{h}}}
\DeclareSIUnit \parsec {pc}

\begin{document}
  \si{\per\h\mega\parsec} 
\end{document}

Resultado

Responder2

Escape no modo texto e depois use o modo matemático.

\documentclass{article}
\usepackage{amsmath}
\usepackage{siunitx}

\DeclareSIUnit \h {\text{$h$}}
\DeclareSIUnit \parsec {pc}

\begin{document}

\unit{\per\h\mega\parsec} \unit[per-mode=fraction]{\per\h\mega\parsec}

\end{document}

insira a descrição da imagem aqui

informação relacionada