siunitx は数値スタイルを検出しません

siunitx は数値スタイルを検出しません

Siunitx は設定にもかかわらず、旧式の数字を認識しません。detect-all助けてもらえますか?

MNWE:

\documentclass{standalone}

\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}

\newfontfamily\oldstyle[Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella}

\usepackage[detect-all]{siunitx}

\begin{document}
  \oldstyle\num{123}123
\end{document}

結果は次のようになります:

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

答え1

ただ説得するsiunitx新しく作成したフォント ファミリを使用するには、次の操作を行います。

\sisetup{text-rm=\oldstyle}

完全な例:

\documentclass{standalone}

\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}

\newfontfamily\oldstyle[Numbers={Monospaced,OldStyle}]{TeX Gyre Pagella}

\usepackage[detect-all]{siunitx}

\AtBeginDocument{
\sisetup{text-rm=\oldstyle}
}

\begin{document}
  \oldstyle\num{123}123
\end{document}

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


マニュアルに記載されているように、そうすることを強制されます。

siunitx パッケージは、周囲の素材とは独立して出力の印刷に使用するフォントを制御します。標準的な方法は、周囲の素材を完全に無視し、現在の本文フォントを使用することです。

これに対抗するには、いくつかの可能性があります。

detect-all次の4つのコマンドを組み合わせます

  • detect-weight
  • detect-family
  • detect-shape
  • detect-mode

だから検出されない全て- そのため、名前は少し誤解を招く可能性があります。

数字スタイルは、 には含まれていない、かなり特殊なフォント設定ですdetect-all


としてsiunitx数値や単位の科学的表記に使用することを意図しているため、数値のスタイルを簡単に変更できないのは当然です。「科学的」もうそうではありません。私は論文でも章番号などに古いスタイルの数字を使用しており、siunitx最初はこの設定を採用するつもりでしたが、そうしなくてよかったと思っています。

関連情報