bm は太字フォントの未定義の問題を引き起こします

bm は太字フォントの未定義の問題を引き起こします
\documentclass[a4paper]{article}

\usepackage[no-math]{fontspec}

\usepackage{anyfontsize}
\usepackage{amsmath,amssymb,amsthm,mathrsfs}

\setmainfont{Times New Roman}
\usepackage{unicode-math}
\setmathfont{Asana-Math.otf}
\usepackage{bm}
\renewcommand{\bm}{\symbf}


\title{Title}
\author{Author}
\date{\today}

\begin{document}

    \maketitle

\end{document}

これにより警告が発生します

Font shape `TU/Asana-Math.otf(1)/b/n' undefined
(Font)  using `TU/Asana-Math.otf(1)/m/n' instead.

しかし、もしその行を削除したら

\usepackage{bm}
\renewcommand{\bm}{\symbf}

警告は消えました。

なぜですか? どうすれば直せますか?

答え1

私の解決策は、使用せず\bmに直接置き換えることです\mathbf

\usepackage[no-math]{fontspec}
\setmainfont{TeX Gyre Pagella}
\usepackage[scr=rsfso,frak=euler,bb=ams]{mathalpha}
\usepackage[bold-style=ISO,sans-style=italic]{unicode-math}
\setmathfont{Asana Math}
\AtBeginDocument{
  \let\uglymathbf\mathbf
  \renewcommand\mathbf\symbf
  \let\uglymathsf\mathsf
  \renewcommand\mathsf\symsf
}

答え2

メッセージに表示されているように、使用しているフォントには太字フォントがありません。\symbfフォントは変更されず、同じフォントから太字の数式アルファベット範囲が選択されます。より一般的には、ほとんどbm互換性がありませんunicode-math(拡張を検討しましたが、技術的な問題がいくつかあります)。

もちろん、最初の行には意味がありません

\usepackage{bm}
\renewcommand{\bm}{\symbf}

renewコマンドはパッケージの定義を元に戻すので、

\newcommand\bm{\symbf}`

既存の pdftex ドキュメントをパッケージを使用して に変換するなどの理由で\symbfにエイリアスしたい場合は、 をまったく使用せず、数式で を使用してください。\bmbmunicode-math\bm\symbf

質問で\bmはエイリアスについて尋ねられている\symbfので、それが上記で示したものですが、x などの文字の場合は太字の \bm{x}直立ではなく、太字の数学斜体であるため、\symbfitより良い選択である可能性があります。

関連情報