TikZ 节点太高

TikZ 节点太高

我希望能够“灰色”我的 Beamer 讲座的部分内容(基于一些到期时间谓词)。在这个论坛的一些非常有用的帮助下,我几乎已经做到了。我的解决方案是定义一个新的“到期”环境,并将文本(可能是数学方程式)放在此环境内的 TikZ 节点中。遗憾的是,该节点占用的高度比我想要的要多。在下面的幻灯片中,我理想情况下希望灰色框的高度为一行。这可以修复吗?

非常感谢。 灰色的单个方程

我的 MWE:

\documentclass{beamer}

\usepackage{environ}            % for the 'expire' idea
\usepackage{tikz}
\NewEnviron{expire}{%
  \begin{tikzpicture}
    \node [fill=gray!40, inner sep=0pt, inner ysep=0pt]{%  %gray!40
      \begin{minipage}{\textwidth}
        {\color{black}
          \BODY
        }
      \end{minipage}
    };
  \end{tikzpicture}
}

\begin{document}

\begin{frame} \frametitle{Exponents}
\[ x^{a}x^{b} = x^{a+b} \]
\[ \frac{x^a}{x^b} = x^{a-b} \]
\begin{expire}
\[(x^{a})^{b} = x^{ab}\]
\end{expire}
\[ x^n + x^n = 2x^n {\color{red} \neq} x^{2n} \]
\end{frame}

\end{document}

答案1

正如 percusse 所说,你不需要minipage。此外,我会使用gather*

\documentclass{beamer}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\expire}[1]{%
  \tikz{%
    \node[fill=gray!40, inner xsep=0pt, outer sep=0pt,
        gray!40, text=black, minimum width=\textwidth]{$#1$};}}

\begin{document}

\begin{frame}
\frametitle{Exponents}
\begin{gather*}
x^{a}x^{b} = x^{a+b}\\
\frac{x^a}{x^b} = x^{a-b}\\
\expire{(x^{a})^{b} = x^{ab}}\\[-4pt]% or any other dimension you prefer
x^n + x^n = 2x^n {\color{red} \neq} x^{2n} 
\end{gather*}
\end{frame}

\end{document}

在此处输入图片描述

另一种解决方案可能是使用具有节点样式的 TikZmatrix of math nodes放在您想要变为灰色的行之前(参见|[expire]|此处):

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{%
    expire/.style={
        fill=gray!40,
        text=black,  
    }
}

\begin{document}
\begin{frame}
\frametitle{Exponents}
    \begin{center}
        \begin{tikzpicture}
            \matrix[matrix of math nodes, nodes={inner xsep=0pt,
                minimum width=\textwidth}] {
                x^{a}x^{b} = x^{a+b}\\
                \dfrac{x^a}{x^b} = x^{a-b}\\
                |[expire]|(x^{a})^{b} = x^{ab}\\
                x^n + x^n = 2x^n {\color{red} \neq} x^{2n}\\
            };
        \end{tikzpicture}
    \end{center}
\end{frame}
\end{document}

在此处输入图片描述

如果您同时想要文本和数学:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{%
    expire/.style={
        fill=gray!40,
        text=black,  
    }
}

\begin{document}
\begin{frame}
\frametitle{Exponents}
    \begin{center}
        \begin{tikzpicture}
            \matrix[matrix of nodes, nodes={inner xsep=0pt,
                minimum width=\textwidth}] {
                Here something\\
                |[expire]|not in math mode\\
                $x^{a}x^{b} = x^{a+b}$\\
                $\dfrac{x^a}{x^b} = x^{a-b}$\\
                |[expire]|$(x^{a})^{b} = x^{ab}$\\
                $x^n + x^n = 2x^n {\color{red} \neq} x^{2n}$\\
            };
        \end{tikzpicture}
    \end{center}
\end{frame}
\end{document}

在此处输入图片描述

答案2

简单tabular\rowcolor

\documentclass[table]{beamer}
\usepackage{amsmath}

\begin{document}
\begin{frame}
\frametitle{Exponents}
\[  \setlength\tabcolsep{1pt}
    \renewcommand\arraystretch{1.3}
\begin{tabular}{>{\raggedleft$}p{0.475\linewidth}<{$} c >{$}p{0.475\linewidth}<{$}}
x^{a}x^{b}      & = & x^{a+b}\\
\frac{x^a}{x^b} & = & x^{a-b}\\[1pt]
\rowcolor{cyan!40}
(x^{a})^{b}     & = & x^{ab}\\
x^n + x^n       & = & 2x^n {\color{red} \neq} x^{2n}
\end{tabular}
\]
\end{frame}
\end{document}

在此处输入图片描述

答案3

也许这个tcolorbox包可以作为一个替代方案:

\documentclass{beamer}
\usepackage[most]{tcolorbox}

\newtcolorbox{expire}{colback=gray!40!white,boxrule=0mm,arc=0mm,top=0.25mm,bottom=0.25mm}

\begin{document}

\begin{frame} \frametitle{Exponents}
\[ x^{a}x^{b} = x^{a+b} \]
\[ \frac{x^a}{x^b} = x^{a-b} \]
\begin{expire}
\[(x^{a})^{b} = x^{ab}\]
\end{expire}
\[ x^n + x^n = 2x^n {\color{red} \neq} x^{2n} \]
\end{frame}

\end{document}

在此处输入图片描述

相关内容