![数学モードとsiunitxで自由数値を使用する](https://rvso.com/image/327780/%E6%95%B0%E5%AD%A6%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A8siunitx%E3%81%A7%E8%87%AA%E7%94%B1%E6%95%B0%E5%80%A4%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B.png)
私はまたあなたの助けを求めてここに来ました。文書内のすべての数字を同じにしたいのです(テキストモードまたは数式モード)。今私は
サイズの違いにも注意してください。環境に関係なく、すべての数字を Libertine に表示する方法は何ですか? つまり、siunitx の動作をそのままにして、数式モードで数字のフォントのみ (数字のみ) を変更するということですか?
もし私が試したら
\DeclareSymbolFont{numbers}{T1}{LinuxLibertineO}{m}{n}
\SetSymbolFont{numbers}{bold}{T1}{LinuxLibertineO}{bx}{n}
\DeclareMathSymbol{0}\mathalpha{numbers}{"30}
\DeclareMathSymbol{1}\mathalpha{numbers}{"31}
\DeclareMathSymbol{2}\mathalpha{numbers}{"32}
\DeclareMathSymbol{3}\mathalpha{numbers}{"33}
\DeclareMathSymbol{4}\mathalpha{numbers}{"34}
\DeclareMathSymbol{5}\mathalpha{numbers}{"35}
\DeclareMathSymbol{6}\mathalpha{numbers}{"36}
\DeclareMathSymbol{7}\mathalpha{numbers}{"37}
\DeclareMathSymbol{8}\mathalpha{numbers}{"38}
\DeclareMathSymbol{9}\mathalpha{numbers}{"39}
LuaLaTex はそのような形状は存在しないとエラーを出します。
最小限の例は次の通りです
% !Mode:: "TeX:UTF-8"
%
\documentclass[a4paper,11pt]{book}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Linux Libertine O}
\addfontfeatures{Numbers={Lining,Monospaced}}
\setsansfont{Linux Biolinum O}
\setmonofont{Consolas}
\setmathfont[math-style=ISO,bold-style=ISO]{Cambria Math}
\usepackage{siunitx}
\begin{document}
Now I have
\begin{itemize}
\item Libertine in text mode: 123456789
\item Libertine using siunitx in text mode: \SI{123456789}{\km\per\hour}
\item Cambria in math mode: $123456789$
\item Libertine using siunitx in math mode: $\SI{123456789}{\km\per\hour}$
\end{itemize}
I would like libertine in math mode too $123456789$.
\end{document}
答え1
\documentclass[a4paper,11pt]{book}
\usepackage{unicode-math}
\usepackage{libertine}
\addfontfeatures{Numbers={Lining,Monospaced}}
%\setmonofont{Consolas}% not available for me
\setmathfont[math-style=ISO,bold-style=ISO]{Cambria Math}
\setmathfont[range=0048-0057]{Linux Libertine O}
\usepackage{siunitx}
\begin{document}
[ ... ]