psmallmatrix 内颜色框中的字体大小

psmallmatrix 内颜色框中的字体大小

我使用\colorbox背景颜色来突出显示内容。在普通文本中,这很有效。我在使用包中的\colorbox组合时遇到了字体大小不一致的问题:psmallmatrixmathtools

\documentclass{article}

\usepackage{xcolor}
\usepackage{mathtools}

\begin{document}
\scriptsize Text in scriptsize; \colorbox{blue!20}{colorbox works fine}.

\normalsize Text normal; psmallmatrix works fine: $\begin{psmallmatrix}a&b\\c&d\end{psmallmatrix}$.

\huge Text in huge size, but in the formula small and huge are mixed: $\begin{psmallmatrix} a & \colorbox{blue!20}{\ensuremath{b}}\end{psmallmatrix}$.
\end{document}

当我尝试突出显示其中的某些内容时psmallmatrix-environment,似乎使用的是数学环境外部的字体大小,而不是中的较小尺寸psmallmatrix

也许\ensuremath是这里的错?如果是这样,还有其他方法可以为部分公式添加彩色背景吗?

如果没有:有没有什么优雅的解决方法?

答案1

“忘记”的参数\colorbox在较小尺寸下调用。您需要\mathpalette

\documentclass{article}

\usepackage{xcolor}
\usepackage{mathtools}

\makeatletter
\newcommand{\colormathbox}[3][\mathord]{%
  #1{%
    \setlength{\fboxsep}{1pt}%
    \mathpalette\color@mathbox{{#2}{#3}}%
  }%
}
\newcommand{\color@mathbox}[2]{%
  \color@@mathbox#1#2%
}
\newcommand{\color@@mathbox}[3]{%
  \colorbox{#2}{$#1\m@th#3$}%
}
\makeatother

\begin{document}

$X\colormathbox[\mathrel]{blue!20}{<}Y$

$X<Y$

\scriptsize Text in scriptsize; \colorbox{blue!20}{colorbox works fine}.

\normalsize Text normal; psmallmatrix works fine: 
$\begin{psmallmatrix}a&\colormathbox{blue!20}{b}\\c&d\end{psmallmatrix}$
$\begin{psmallmatrix}a&b\\c&d\end{psmallmatrix}$.

\huge Text in huge size, but in the formula small and huge are mixed: 
$\begin{psmallmatrix} a & \colormathbox{blue!20}{b}\\c&d\end{psmallmatrix}$
$\begin{psmallmatrix}a&b\\c&d\end{psmallmatrix}$.

\end{document}

在此处输入图片描述

答案2

这是一个解决方法:

\documentclass{article}

\usepackage[table]{xcolor}
\usepackage{mathtools}
\usepackage{etoolbox}
\AtBeginEnvironment{psmallmatrix}{\everymath{\scriptstyle}}

\begin{document}

\scriptsize Text in scriptsize; \colorbox{blue!20}{colorbox works fine}.

\normalsize Text normal; psmallmatrix works fine: $\begin{psmallmatrix}a&b\\c&d\end{psmallmatrix}$.

\huge Text in huge size, but in the formula small and huge are mixed: $\begin{psmallmatrix} a & \colorbox{blue!20}{\ensuremath{b}}\end{psmallmatrix}$. %*

\end{document} 

在此处输入图片描述

相关内容