
일부 지정된 예외 목록을 제외하고 모든 항목을 굵게 표시하는 명령(수학 모드에서)을 갖고 싶습니다.
\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=
는 \setmathfont
2020년 현재 서로 호환되지 않습니다. 따라서 이렇게 하면 또는 \boldmath
를 사용할 수 없습니다 \boldsymbol
. 이로 인해 이것을 끄고 켤 수 있는 수학 스타일로 정의할 수 없습니다.
그렇지 않은 경우 이를 수행하는 한 가지 방법은 굵은 기호를 \boldsymbol{}
. 에서 대신 로 \boldsymbol
코드를 전환하는 것도 가능합니다 . 그런 다음 및 와 같은 작업을 수행할 수 있습니다 . 자신만의 수학 글꼴을 만들 수 있는 경우 일반 글꼴과 굵은 글꼴을 별도의 수학 기호 글꼴로 선언할 수도 있습니다.amsbsy.sty
\mathversion{normal}
\mathversion{bold}
\let\oldast=\ast
\renewcommand\ast{\normalsymbol{\oldast}}