예외/제외 목록을 사용하여 모든 기호를 굵게 표시

예외/제외 목록을 사용하여 모든 기호를 굵게 표시

일부 지정된 예외 목록을 제외하고 모든 항목을 굵게 표시하는 명령(수학 모드에서)을 갖고 싶습니다.

\boldformula예를 들어, 괄호를 제외한 모든 기호를 굵게 표시하는 명령은 다음과 같습니다.

\boldformula{ a \ast ( b \ast c) }

와 동등해진다

\bm{a \ast} ( \bm{b \ast c} )

어떠한 제안?

편집하다:egreg의 의견에 대한 응답입니다. 나는 대담한 공식이 정렬, 쌍 구분 기호 등을 유지하면서 나머지 수학 환경과 평화롭게 공존하기를 바랍니다.

더 쉽다면 일부 기호를 선택적으로 굵게 표시하는 명령도 좋을 것입니다. 예를 들어, 표준 수학 글꼴 \ast, \subset, \cap에서 굵은 영숫자 문자를 만들고 다른 모든 내용은 그대로 두는 것이 이미 큰 도움이 될 것입니다.

답변1

이것은 개념 증명입니다.

\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}

의 범위에서는 특정 객체만 대담하게 선언됩니다 \boldformula. 구분 기호에 대해 더 많은 작업이 필요할 것 같습니다.

여기에 이미지 설명을 입력하세요

답변2

에서는 다음과 같은 옵션을 unicode-math사용하여 더 가벼운 수학 계열을 로드할 수 있습니다 .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와 KP Math는 다양한 가중치로 제공되는 글꼴 모음입니다.

불행하게도 의 range=인수 version=\setmathfont2020년 현재 서로 호환되지 않습니다. 따라서 이렇게 하면 또는 \boldmath를 사용할 수 없습니다 \boldsymbol . 이로 인해 이것을 끄고 켤 수 있는 수학 스타일로 정의할 수 없습니다.

그렇지 않은 경우 이를 수행하는 한 가지 방법은 굵은 기호를 \boldsymbol{}. 에서 대신 로 \boldsymbol코드를 전환하는 것도 가능합니다 . 그런 다음 및 와 같은 작업을 수행할 수 있습니다 . 자신만의 수학 글꼴을 만들 수 있는 경우 일반 글꼴과 굵은 글꼴을 별도의 수학 기호 글꼴로 선언할 수도 있습니다.amsbsy.sty\mathversion{normal}\mathversion{bold}\let\oldast=\ast\renewcommand\ast{\normalsymbol{\oldast}}

관련 정보