使用 amsmath 时获得正确的双击

使用 amsmath 时获得正确的双击

我正在使用该amssymb包,并且不时地想打印一个看起来正确的双击数字 1,就像使用该bbold包所得到的一样。

我正在寻找的双击

但是它们都使用\mathbb{}命令,因此导入两者只会导致命令bbold被覆盖amssymb(无论我先导入哪个包都无所谓)。由于我只需要一个双击的 1 而不是任何其他双击的数字,而且我更经常使用版本amssymb,所以我想到也许可以声明一个\id使用该bbold版本的新运算符(例如)。但是我似乎无法让它工作(当然我也寻找了其他解决方法或其他包,但也没有成功)。

至少定义我的\id运算符的某种工作版本如下所示:

\documentclass{article}

\usepackage{bbold}
\DeclareMathOperator{\id}{$\mathbb{1}$}



\begin{document}

\begin{equation}
    \id
\end{equation}

\end{document}

结果是: 结果
此外,我还收到以下错误消息:

未定义的控制序列。(第 4 行)
LaTeX 错误:缺少 \begin{document}。(第 4 行)
未定义的控制序列。(第 11 行)

答案1

您的代码无法正常工作,因为 (1) 您没有加载 amsmath,因此\DeclareMathOperator未定义,并且 (2)\id您在使用时已经处于数学模式,因为\begin{equation},因此在运算符定义中使用美元符号$会产生错误。无论如何,这不是 的用途\DeclareMathOperator——请参阅这里. \ensuremath在你的定义中会更有意义。

我认为真正的问题是您想使用 amssymb 加载的字体应用于\mathbb字母,但加载 bbold 包会阻止这样做?

您可以在数学模式下使用 bbold 字体,而无需加载 bbold 包,方法是使用不同于 的名称声明数学字母表\mathbb。(看看bbold.sty--这个的细微变化是其中数学模式的唯一重要命令。)

\documentclass{article}
\usepackage{amsmath,amssymb}

\DeclareMathAlphabet{\bbold}{U}{bbold}{m}{n}
\newcommand{\id}{\ensuremath{\bbold{1}}}

\begin{document}

\begin{equation}
    \id \mathbb{A}
\end{equation}

\end{document}

bbold 示例

允许声明的数学字母数量是有限制的,因此,如果你因为其他软件包而达到了限制,你可以修改此处提供说明抓取单个特定的数学模式符号:

\documentclass{article}
\usepackage{amsmath,amssymb}

\makeatletter
\newcommand\bboldsymbol[2][\mathord]{%
  #1{\@bboldmathsymbol{#2}}}
\def\@bboldmathsymbol#1{\mathchoice
  {\@bboldm@thsymbol{#1}\tf@size}
  {\@bboldm@thsymbol{#1}\tf@size}
  {\@bboldm@thsymbol{#1}\sf@size}
  {\@bboldm@thsymbol{#1}\ssf@size}}
\def\@bboldm@thsymbol#1#2{%
  \mbox{\fontsize{#2}{#2}\usefont{U}{bbold}{m}{n}#1}}
\makeatother
\newcommand{\id}{\bboldsymbol{1}}

\begin{document}

\begin{equation}
    \id \mathbb{A}
\end{equation}

\end{document}

相关内容