Alle Symbole mit Ausnahmen/Ausschlussliste fett darstellen

Alle Symbole mit Ausnahmen/Ausschlussliste fett darstellen

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.

Bildbeschreibung hier eingeben

Antwort2

In können Sie mit der Option beispielsweise unicode-mathein 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 \boldsymbolCode von anzupassen, um von auf amsbsy.styauf 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}}

verwandte Informationen