siunitx を使用して変数をユニットとして宣言するにはどうすればよいですか?

siunitx を使用して変数をユニットとして宣言するにはどうすればよいですか?

天文学では、ハッブル定数の値は未だに不確かです。そのため、慣例的に と表記され$H = h \SI{100}{\kilo\meter\per\second\per\mega\parsec}$、は$h$現在では の単位の一部とみなされています。長さの単位は ですが$h^{-1} \si{\mega\parsec}$、これを と表記します$\si{\per\h\mega\parsec}$。LaTeX でこれを実現して、'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}

ここに画像の説明を入力してください

関連情報