
我有一些數學公式,其中一些數學表達式需要粗體羅馬風格。由於它們經常出現,我需要一個巨集。最明顯的方法是編寫\newcommand{\foo}[1]{\mathbf{#1}}
,原則上這是有效的。但是,當命令參數包含上標並且在命令外部添加下標時,它就會崩潰,如下所示\foo{x^k}_t
:
哪裡的t下標太遠,可能是因為它在mbox
.使用bm
套件並定義\newcommand{\foo}[1]{\bm{#1}}
,我得到了我想要的正確間距:
但現在我又回到了錯誤的字體,因為它不再是羅馬風格。我嘗試組合\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}