DeclareMathOperator 和 fontawesome:间距问题

DeclareMathOperator 和 fontawesome:间距问题

\faPlus我正在尝试使用乳胶包中的符号fontawesome,但在间距方面遇到了一些问题。

我使用 来声明我的符号, \DeclareMathOperator\plus{\text{\rm\scriptsize\faPlus}} 因为\text它不是一个数学命令。 之所以\rm使用 是因为没有“斜体”版本,因此为了避免出现问题,大小只是一个选择,否则它会太大。

我的问题是间距看起来不太好。例如,如果我输入,$\star\plus\star$我会得到这样的结果:

在此处输入图片描述

但如果我写下$(\star)\plus(\star)$或者\langle\star\rangle\plus\langle\star\rangle得到这个:

在此处输入图片描述

符号显然不在中心。

以下是完整示例:

\documentclass{article}

\usepackage{amsmath}     % for \DeclareMathOperator macro
\usepackage{fontawesome} % for the \faPlus symbol

\DeclareMathOperator{\plus}{\textrm{\rm\scriptsize\faPlus}}

\begin{document}
\[
  \star\plus\star
\]
\[
  (\star)\plus(\star)
\]
\[
  \langle\star\rangle\plus\langle\star\rangle
\]
\end{document}

答案1

您要使用\mathbin,而不是\mathop使用的\DeclareMathOperator,它是用于诸如“sin”或“log”之类的运算符,而不是用于二元运算符号。

\documentclass{article}

\usepackage{amsmath}     % for math
\usepackage{fontawesome} % for the \faPlus symbol

\newcommand{\plus}{\mathbin{\textnormal{\scriptsize\faPlus}}}

\begin{document}
\[
  \star\plus\star
\]
\[
  (\star)\plus(\star)
\]
\[
  \langle\star\rangle\plus\langle\star\rangle
\]
\end{document}

在此处输入图片描述

请注意,该功能\rm已被弃用 30 年了。

不过,我可能会使用\scalebox,这样符号也会在下标中正确缩放,并在两侧添加一个小的空间,因为符号\faPlus有一个非常紧密的边界框。

\documentclass{article}

\usepackage{amsmath}     % for \DeclareMathOperator macro
\usepackage{fontawesome} % for the \faPlus symbol
\usepackage{graphicx}    % for \scalebox

\newcommand{\plus}{\mathbin{\mspace{1mu}\text{\scalebox{0.7}{\faPlus}}\mspace{1mu}}}

\begin{document}

\[
  \star\plus\star_{a\plus b}
\]
\[
  (\star)\plus(\star)
\]
\[
  \langle\star\rangle\plus\langle\star\rangle
\]
\end{document}

在此处输入图片描述

相关内容