數學模式下的粗體羅馬表達式,具有適當的間距

數學模式下的粗體羅馬表達式,具有適當的間距

我有一些數學公式,其中一些數學表達式需要粗體羅馬風格。由於它們經常出現,我需要一個巨集。最明顯的方法是編寫\newcommand{\foo}[1]{\mathbf{#1}},原則上這是有效的。但是,當命令參數包含上標並且在命令外部添加下標時,它就會崩潰,如下所示\foo{x^k}_t

x^k_t 間距錯誤

哪裡的t下標太遠,可能是因為它在mbox.使用bm套件並定義\newcommand{\foo}[1]{\bm{#1}},我得到了我想要的正確間距:

x^k_t 間距正確但字體錯誤

但現在我又回到了錯誤的字體,因為它不再是羅馬風格。我嘗試組合\bm並切換到羅馬風格的所有方法都以某種方式失敗了。我似乎找不到類似於第二種情況的解決方案,但使用像第一種情況那樣的羅馬字體。關於如何解決這個問題有什麼想法嗎?先致謝!

答案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}而不是“just” #1。 (順便說一句,我假設由於主要符號和上標術語應該位於直立粗體,下標項也是如此。如果此假設無效,請告知。

在此輸入影像描述

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

相關內容