重新定义 mathbbm 以打印彩色输出

重新定义 mathbbm 以打印彩色输出

我需要\mathbbm打印彩色输出。

我试过:

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{bbm}

\let\oldmathbbm\mathbbm
\def\mathbbm#1#{\mathbbmaux{#1}}
\newcommand*\mathbbmaux[2]{{\color{red}\oldmathbbm#1{#2}}}

\pagestyle{empty}
\begin{document}

$\mathbbm{i}$
${\mathbbm i}$

\end{document}

但字符串${\mathbbm i}$返回错误。我错在哪里?

我需要这个技巧来发现作者是否\mathbbm直接在 pdf 文件中使用了 。(我将这些字符串传递给引擎pdflatex而不修改源.tex文件。)

答案1

我宁愿使用renewcommand

%\documentclass[11pt]{article}
\documentclass[border=3.141592]{standalone}
\usepackage{xcolor}
\usepackage{bbm}

\let\oldmathbbm\mathbbm
\renewcommand\mathbbm[1]{\color{red}\oldmathbbm{#1}}

\begin{document}

$\mathbbm{i}$
${\mathbbm i}$ 
$\oldmathbbm{i}$

\end{document}

在此处输入图片描述

答案2

我不推荐bbm,因为其过时的字体格式无法在 PDF 中正确显示。(而且现在没有人再用激光打印机打印 DVI 了。)

这样您就可以选择一个更有意义的名称,而不必重新定义\mathbbm为与阅读源代码的人所认为的不同的含义。这带来了令人欣慰的副作用,即简化了您的代码并解决了您的问题。

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage[svgnames]{xcolor}
\usepackage[bb=dsserif]{mathalpha}

\newcommand\mathredbb[1]{\textcolor{Red}{\mathbb{#1}}}

\pagestyle{empty}
\begin{document}

$i \in \mathredbb{i}$,
$i \in {\mathredbb i}$

\end{document}

dsserif 示例

您还可以做的其他有趣的事情mathalpha是使用更粗的黑板粗体\mathbbb,从大量的数学字母列表中进行选择,并使用包选项缩放字体bbscaled=

在 LuaLaTeX 或 XeLaTeX 中,您可以使用相同的代码,unicode-math而不是mathalpha

相关内容