使框的背景透明

使框的背景透明

由于我的文档中必须在彩色框中写很多数学公式,因此我想避免在每个框内都写 $。有没有办法newtcbox在数学模式下定义?

我尝试过\newtcbox{\mywbox}[1]{<options>}{$\displaystyle #1$}但是没有用。

这是我的乳胶代码:

\usepackage{tcolorbox}
\newtcbox{\mywbox}{on line,colback=white,colframe=black,size=fbox,arc=3pt,boxrule=0.8pt}

\begin{document}
\obeylines

This \mywbox{$3x$} is in line math.
This $$y=\mywbox{$-5x$}-5+6$$ is not in line math.

\end{document}

在此处输入图片描述

我阅读了官方 tcolorbox 手册中的内容\tcboxmath\tcbhighmath但我不明白如何将它们简单地定义为 newtcbox,以及它们是否是我需要的。

答案1

我会说

\newtcbox{\mywboxtext}{on line,colback=white,colframe=black,size=fbox,arc=3pt,boxrule=0.8pt}
\newcommand{\mywboxmath}[1]{\mywboxtext{$#1$}}

你的例子可以成为

\documentclass{article}
\usepackage{tcolorbox}

\newtcbox{\mywboxtext}{on line,colback=white,colframe=black,size=fbox,arc=3pt,boxrule=0.8pt}
\newcommand{\mywboxmath}[1]{\mywboxtext{$#1$}}

\begin{document}

This \mywboxmath{3x} is in line math and this
\[
y=\mywboxmath{-5x}-5+6
\]
is display math.

\end{document}

在此处输入图片描述

根据您的喜好更改名称。

避免$$使用 LaTeX(当然还有\obeylines)。

如果您需要框在下标或上标中表现,请将代码更改为

\documentclass{article}
\usepackage{tcolorbox}

\newtcbox{\mywboxtext}{on line,colback=white,colframe=black,size=fbox,arc=3pt,boxrule=0.8pt}

\makeatletter
\newcommand{\mywboxmath}[1]{\mathpalette\mywboxmath@do{#1}}
\newcommand{\mywboxmath@do}[2]{\mywboxtext{$\m@th#1#2$}}
\makeatother

\begin{document}

This $\mywboxmath{3x}$ is in line math and this
\[
y_{\mywboxmath{0}}=\mywboxmath{-5x}-5+6
\]
is display math.

\end{document}

请注意,在这种情况下,您需要\mywboxmath处于数学模式。

答案2

您可以使用以下库\tcboxmath来执行此操作:theoremstcolorbox

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}

\newcommand*{\mywbox}{%
  \tcboxmath[colback=white, colframe=black, size=fbox, arc=3pt, boxrule=0.8pt]%
}

\begin{document}

This \mywbox{3x} is in line math.
This
\[ y = \mywbox{-5x} - 5 + 6 \]
is not in line math.

\end{document}

截屏

您可能还想使用样式来抽象一些事物,以便在需要时可以将其应用于其他框:

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}

\tcbset{my math box/.style={
          colback=white, colframe=black, size=fbox, arc=3pt, boxrule=0.8pt}
}

\newcommand*{\mywbox}{\tcboxmath[my math box]}

\begin{document}

This \mywbox{3x} is in line math.
This
\[ y = \mywbox{-5x} - 5 + 6 \]
is not in line math.

\end{document}

使框的背景透明

这可以通过使用/tcb/opacityback和皮肤来实现拼图框架引擎,例如standard jigsawenhanced jigsaw

\documentclass[fleqn]{article}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}

\tcbset{
  my math box/.style={
    standard jigsaw,   % useful for 'opacityback' and 'opacityframe'
    colback=green!20, colframe=black, size=fbox, arc=3pt, boxrule=0.8pt,
    opacityback=0.6,
  }
}

\newcommand*{\mywbox}{\tcboxmath[my math box]}

\begin{document}

This \makebox[0pt]{%
  \raisebox{-0.5\height}[0pt][0pt]{\hspace{1cm}\includegraphics{example-image-duck}}%
  }%
\mywbox{3x} is in line math.
This
\[ y = \mywbox{-5x} - 5 + 6 \]
is not in line math.

\end{document}

在此处输入图片描述

相关内容