
Ich hätte gerne einen Befehl, der alles fett macht (im Mathematikmodus), mit Ausnahme einer bestimmten Liste von Ausnahmen.
Zum Beispiel ein Befehl \boldformula
, der alle Symbole außer den Klammern fett macht, so dass
\boldformula{ a \ast ( b \ast c) }
wird gleichbedeutend mit
\bm{a \ast} ( \bm{b \ast c} )
Irgendein Vorschlag?
Bearbeiten:Als Antwort auf einen Kommentar von egreg. Ich möchte, dass die fettgedruckten Formeln friedlich mit der übrigen mathematischen Umgebung koexistieren und dabei Ausrichtungen, gepaarte Trennzeichen usw. beibehalten.
Wenn es einfacher ist, wäre auch ein Befehl, der selektiv einige Symbole fett macht, toll. Beispielsweise wäre einer, der alphanumerische Zeichen in der Standard-Mathematikschriftart, \ast, \subset, \cap fett macht und alles andere unverändert lässt, schon eine große Hilfe.
Antwort1
Dies ist ein Proof of Concept:
\documentclass{article}
\usepackage{amsmath,bm}
%\usepackage{xparse} % not needed for LaTeX 2020-10-01 or later
\ExplSyntaxOn
\cs_new_protected:Nn \vigolo_embolden_command:N
{
\cs_set_eq:cN { __vigolo_ \cs_to_str:N #1 : } #1
\cs_set_protected:Npn #1 { \bm { \use:c { __vigolo_ \cs_to_str:N #1 : } } }
}
\cs_new_protected:Nn \vigolo_embolden_char:n
{
\exp_args:Nc \mathchardef { __vigolo_#1: } = \mathcode`#1 \scan_stop:
\cs_set_protected:cn { __vigolo_#1_bold: } { \bm { \use:c { __vigolo_#1: } } }
\char_set_active_eq:nc { `#1 } { __vigolo_#1_bold: }
\mathcode`#1 = "8000 \scan_stop:
}
\cs_new_protected:Nn \vigolo_embolden:
{
\clist_map_function:nN
{% fill up
A,B,C,D,
a,b,c,d,
*,+,-,
}
\vigolo_embolden_char:n
\clist_map_function:nN
{% fill up
\ast,\langle,\rangle,\rightarrow,\to,\subset,
}
\vigolo_embolden_command:N
}
\NewDocumentCommand{\boldformula}{m}
{
\group_begin:
\vigolo_embolden:
#1
\group_end:
}
\ExplSyntaxOff
\begin{document}
$\boldformula{ a \ast ( b \ast c)\subset A }+abc$
$\bm{ a \ast ( b \ast c)\subset A }+abc$ (for comparison)
\end{document}
Nur bestimmte Objekte werden im Rahmen von als fett markiert deklariert \boldformula
. Ich schätze, für Trennzeichen wäre mehr Arbeit nötig.
Antwort2
In können Sie mit der Option beispielsweise unicode-math
ein leichteres Gewicht einer mathematischen Familie laden :range=
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{XITS Math Bold}
\setmathfont{XITS Math}[range=\ast]
\begin{document}
\[ A \ast B \ast C \]
\end{document}
Minion Math und KP Math sind einige Schriftfamilien, die in mehreren Stärken erhältlich sind.
Leider sind die Argumente range=
und ab 2020 nicht mehr miteinander kompatibel. Wenn Sie dies tun, können Sie also nicht auch oder verwenden . Dies hindert uns daran, dies als einen mathematischen Stil zu definieren, den wir ein- und ausschalten können.version=
\setmathfont
\boldmath
\boldsymbol
Andernfalls besteht eine Möglichkeit, dies zu erreichen, darin, die fettgedruckten Symbole in einzuschließen \boldsymbol{}
. Es wäre auch möglich, den \boldsymbol
Code von anzupassen, um von auf amsbsy.sty
auf umzustellen . Sie könnten dann etwas wie und tun . Wenn Sie Ihre eigenen mathematischen Schriftarten erstellen können, könnten Sie auch die normale und die fettgedruckte Schriftart als separate Schriftarten für mathematische Symbole deklarieren.\mathversion{normal}
\mathversion{bold}
\let\oldast=\ast
\renewcommand\ast{\normalsymbol{\oldast}}