数式モードで太字のローマ字表記を適切な間隔で表示

数式モードで太字のローマ字表記を適切な間隔で表示

いくつかの数式で、太字のローマン体が必要なものがあります。これらは頻繁に使用されるため、マクロが必要です。 と書くのが分かりやすい方法ですが\newcommand{\foo}[1]{\mathbf{#1}}、これは原理的には機能します。ただし、コマンド引数に上付き文字が含まれていて、コマンドの外側に下付き文字が追加されている場合は、次のように機能しません。\foo{x^k}_tその結果、

x^k_t のスペースが間違っている

どこt下付き文字が離れすぎています。おそらく の外側にあるためですmboxbmパッケージを使用して を定義すると\newcommand{\foo}[1]{\bm{#1}}、必要な正しい間隔が得られます。

x^k_t 間隔は正しいがフォントが間違っている

しかし、もうローマ字スタイルではないため、間違ったフォントに戻ってしまいました。また、組み合わせて\bmローマ字スタイルに切り替えようとしたすべてのアプローチは、何らかの形で失敗しています。2 番目のケースのように見える解決策は見つからないようですが、最初のケースのようにローマ字フォントを使用します。この問題を解決する方法について何かアイデアはありますか? よろしくお願いします!

答え1

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

必要なマークアップから、barabra が正しく指定したマークアップを取得できます。

\documentclass{article}
\usepackage{bm}
\def\foo#1{\xfoo#1\relax^\relax\valign}
\def\xfoo#1^#2\relax#3\valign{%
\mathbf{#1}\ifx\valign#2\valign\else^{\mathbf{#2}}\fi}
\begin{document}
$\foo{x}$, $\foo{x}_t$

$\foo{x^k}$, $\foo{x^k}_t$
\end{document}

答え2

\mathbf垂直の文字を取得するには、次のように使用できますが、ベースとスクリプトを別々に入力する必要があります。

$\mathbf{x}^{\mathbf{k}}_t$

サンプルコードの出力

答え3

の定義を変更して、を「単に」ではなくに作用するように\foo指示することができます。(ちなみに、メインシンボルと上付き文字の項は\bm\mathrm{#1}#1直立した大胆な下付き文字の項についても同様です。この仮定が無効である場合はご指摘ください。

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

\documentclass{article}
\usepackage{bm}
\newcommand{\foo}[1]{\bm{\mathrm{#1}}}
\begin{document}
$\foo{x^k}$, $\foo{x^k_t}$
\end{document}

関連情報