
Ich habe einige mathematische Formeln, bei denen ich für einige mathematische Ausdrücke Fettschrift im römischen Stil benötige. Da sie recht häufig vorkommen, brauche ich dafür ein Makro. Der naheliegende Weg ist, zu schreiben \newcommand{\foo}[1]{\mathbf{#1}}
, was im Prinzip funktioniert. Es funktioniert jedoch nicht, wenn das Befehlsargument einen hochgestellten Index enthält und außerhalb des Befehls ein tiefgestellter Index hinzugefügt wird, wie folgt: \foo{x^k}_t
was zu folgendem Ergebnis führt:
bei dem dieTDer Index ist zu weit weg, vermutlich weil er außerhalb eines steht mbox
. Wenn ich das bm
Paket verwende und definiere \newcommand{\foo}[1]{\bm{#1}}
, erhalte ich den richtigen Abstand, wie ich ihn haben möchte:
Aber jetzt bin ich wieder bei der falschen Schriftart, da sie nicht mehr im Roman-Stil ist. Und alle Ansätze, die ich versucht habe zu kombinieren \bm
und auf einen Roman-Stil umzustellen, schlagen auf die eine oder andere Weise fehl. Ich kann anscheinend keine Lösung finden, die wie der zweite Fall aussieht, aber eine Roman-Schriftart wie im ersten Fall verwendet. Irgendwelche Ideen, wie ich das lösen könnte? Vielen Dank im Voraus!
Antwort1
Sie können von der gewünschten Auszeichnungssprache zur gewünschten Auszeichnungssprache wechseln (Barabra hat richtig gesagt, dass Sie sie benötigen):
\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}
Antwort2
Sie können verwenden \mathbf
, um die aufrechten Buchstaben zu erhalten – Sie müssen sie jedoch separat für Basis und Skripte eingeben:
$\mathbf{x}^{\mathbf{k}}_t$
Antwort3
Sie könnten die Definition von „ \foo
to instruct \bm
to operan on“ (anweisen, zu operieren) \mathrm{#1}
anstelle von „just“ ( nur) ändern #1
. (Übrigens gehe ich davon aus, dass das Hauptsymbol und der hochgestellte Term inaufrecht fett, dasselbe gilt für den Indexterm. Bitte geben Sie an, ob diese Annahme ungültig ist.)
\documentclass{article}
\usepackage{bm}
\newcommand{\foo}[1]{\bm{\mathrm{#1}}}
\begin{document}
$\foo{x^k}$, $\foo{x^k_t}$
\end{document}