我使用\colorbox
背景颜色来突出显示内容。在普通文本中,这很有效。我在使用包中的\colorbox
组合时遇到了字体大小不一致的问题:psmallmatrix
mathtools
\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}