Как объявить переменную как единицу с помощью siunitx?

Как объявить переменную как единицу с помощью siunitx?

В астрономии значение постоянной Хаббла все еще несколько неопределенно. Поэтому его обычно записывают как $H = h \SI{100}{\kilo\meter\per\second\per\mega\parsec}$, где $h$теперь считается частью единицы. Единицей длины является $h^{-1} \si{\mega\parsec}$, которую я хочу набрать как $\si{\per\h\mega\parsec}$. Как мне добиться этого в латексе, чтобы 'h' было набрано курсивом, как переменная? Ниже приведен минимальный пример.

\documentclass{article}

\usepackage{siunitx}

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


\begin{document}

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

\end{document}

Это завершается ошибкой:

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

?

решение1

Я не знаком с правилами набора единиц в астрономии, поэтому не могу сказать, как следует набирать букву «h», но написать «h» в математическом курсиве несложно:

\documentclass{article}

\usepackage{siunitx}

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

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

Результат

решение2

Выйдите в текстовый режим, а затем используйте математический режим.

\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}

введите описание изображения здесь

Связанный контент