¿Cómo declarar una variable como unidad con siunitx?

¿Cómo declarar una variable como unidad con siunitx?

En astronomía, el valor de la constante de Hubble es todavía algo incierto. Por lo tanto, habitualmente se escribe como $H = h \SI{100}{\kilo\meter\per\second\per\mega\parsec}$, donde $h$ahora se considera parte de la unidad. La unidad de longitud es $h^{-1} \si{\mega\parsec}$, que quiero componer como $\si{\per\h\mega\parsec}$. ¿Cómo logro esto en látex para que 'h' esté escrita en cursiva como una variable? A continuación se muestra un ejemplo mínimo.

\documentclass{article}

\usepackage{siunitx}

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


\begin{document}

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

\end{document}

Esto soluciona un error:

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

?

Respuesta1

No sé acerca de la composición tipográfica de unidades en astronomía, por lo que no puedo decir cómo se debe componer la "h", pero una "h" en cursiva matemática es fácil:

\documentclass{article}

\usepackage{siunitx}

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

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

Resultado

Respuesta2

Escape en modo texto y luego use el 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}

ingrese la descripción de la imagen aquí

información relacionada