分数和等价分数

分数和等价分数

我怎样才能将黄色阴影区域变成不透明阴影 1 来演示等价分数的概念?

\documentclass{article}
\usepackage{tikz,amsmath,xcolor}

\begin{document}
\[ \begin{tikzpicture}
         \node at (0,0) {$\dfrac{a \cdot c}{b \cdot c}=\color{blue}\underbrace{\color{black}{}\dfrac{a}{b} \cdot \colorbox{yellow}{$\dfrac{c} 
{c}$}}}\color{black}{}=\dfrac{a}{b}$};
         \draw[->,blue] (.2,-.5)--(.2,-.7)--(1.2,-.7)--(1.2,-.3);
         \node at (.2,-.7) [below right] {\scriptsize $\color{blue}{\text{Since}\ \dfrac{a}{b} \cdot 1 =\dfrac{a}{b}}$}; 
\end{tikzpicture} \]

\end{document}

在此处输入图片描述

看起来像这样:

在此处输入图片描述

最终看起来像这样:

在此处输入图片描述

答案1

我对这个问题的各种版本感到困惑。这让我的答案看起来非常复杂。然而,这是因为答案(我在下面保留)会将公式剪裁成与轮廓1或其他东西相吻合。现在我发现接受的答案不具备这些功能,我还提供了一个精简版,它有一个很大的优势(恕我直言),你不必调整大量的维度。

\documentclass{article}
\usepackage{tikz,amsmath,pifont}
\usetikzlibrary{backgrounds}
\newcommand{\PlaceCharOverSomething}[3][xscale=11,yscale=5]{%
\tikz[baseline=(X.base)]{
\node[opacity=0] (tmpX){#3};
\begin{scope}[on background layer]
\clip (tmpX.south west) rectangle  (tmpX.north east);
\node[overlay,outer sep=0pt,text=blue!,opacity=0.3,#1]
{\bfseries\sffamily #2};
\end{scope}
\node [inner sep=0pt](X){#3};}%
}
\begin{document}
\[ 
\dfrac{a \cdot c}{b \cdot c}=
\textcolor{blue}{\underbrace{\textcolor{black}{\dfrac{a}{b} \cdot}
\PlaceCharOverSomething{\ding{192}}{$\dfrac{c}{c}$}
}_{\tikz[remember picture]{\coordinate(b);}}}
=\tikz[remember picture,baseline=(Y.base)]{\node (Y) {$\dfrac{a}{b}$};}
\]
\tikz[remember picture,overlay]{\draw[->,blue] ([yshift=1mm]b)--++(0,-0.2)
-|(Y) node[pos=0.25,below]{since $\frac{a}{b}\cdot1=\frac{a}{b}$};}
\end{document}

在此处输入图片描述

宽阔的形状也没有问题。

\documentclass{article}
\usepackage{tikz,amsmath,pifont}
\usetikzlibrary{backgrounds}
\newcommand{\PlaceCharOverSomething}[3][xscale=51,yscale=6]{%
\tikz[baseline=(X.base)]{
\node[opacity=0] (tmpX){#3};
\begin{scope}[on background layer,overlay]
\clip ([xshift=-1mm]tmpX.south west) rectangle  (tmpX.north east);
\node[overlay,outer sep=0pt,text=cyan,opacity=0.3,#1]
{\bfseries\sffamily #2};
\end{scope}
\node [inner sep=0pt](X){#3};}%
}
\begin{document}
\[ 
\dfrac{a \cdot c}{b \cdot c}=
\textcolor{blue}{\underbrace{\textcolor{black}{\dfrac{a}{b} \cdot}
\PlaceCharOverSomething{\ding{192}}{\textcolor{black}{$\dfrac{x-3}{x-3}$}}
}_{\tikz[remember picture]{\coordinate(b);}}}
=\tikz[remember picture,baseline=(Y.base)]{\node (Y) {$\dfrac{a}{b}$};}
\]
\tikz[remember picture,overlay]{\draw[->,blue] ([yshift=1mm]b)--++(0,-0.2)
-|(Y) node[pos=0.25,below]{since $\frac{a}{b}\cdot1=\frac{a}{b}$};}
\end{document}

在此处输入图片描述

现在提出了一个基于这个答案那个答案,它允许您根据形状剪辑公式。您可以使用xscaleyscale。如果您将分数设为节点,则所有 tikz 选项都可用。顺便说一句,不要使用\color\textcolor而应使用 。而且很快就会有 tikzmark 库的升级可用,这将大大简化这些事情。

\documentclass{article}
\usepackage{tikz,amsmath,pifont}
\usetikzlibrary{fadings,backgrounds}
\usepackage{contour}
\newcommand{\PlaceCharOverSomething}[3][xscale=11,yscale=5]{%
\renewcommand*\sfdefault{ugq}
\begin{tikzfadingfrompicture}[name=temp]
\node[transparent!0,#1] 
{\contour{black}{\bfseries\sffamily\textcolor{white}{#2}}};
\end{tikzfadingfrompicture}%
\tikz[baseline=(X.base)]{
\node[opacity=0] (tmpX){#3};
\begin{scope}[on background layer]
\clip (tmpX.south west) rectangle  (tmpX.north east);
\node[overlay,outer sep=0pt,text=blue!,opacity=0.3,#1]
{\bfseries\sffamily #2};
\end{scope}
\path[path fading=temp,fit fading=false,overlay,inner sep=0pt] node (X){#3};
\path (X.west) -- (X.east);
\path (X.north) -- (X.south);}%
}
\begin{document}
\[ 
\dfrac{a \cdot c}{b \cdot c}=
\textcolor{blue}{\underbrace{\textcolor{black}{\dfrac{a}{b} \cdot}
\PlaceCharOverSomething{\ding{192}}{$\dfrac{c}{c}$}
}_{\tikz[remember picture]{\coordinate(b);}}}
=\tikz[remember picture,baseline=(Y.base)]{\node (Y) {$\dfrac{a}{b}$};}
\]
\tikz[remember picture,overlay]{\draw[->,blue] ([yshift=1mm]b)--++(0,-0.2)
-|(Y) node[pos=0.25,below]{since $\frac{a}{b}\cdot1=\frac{a}{b}$};}
\end{document}

在此处输入图片描述

请注意,因为我使用的是 TiZ,有些东西是免费的。

  • 我不需要手动调整任何尺寸。特别是,分数正好位于没有这个 brimborium 的位置。但是,如果你愿意,你可以使节点更宽,例如通过替换\path (X.west) -- (X.east);\path ([xshift=-1pt]X.west) -- (X.east[xshift=1pt]);我认为我不必微调尺寸这一事实是一个很大的优势。
  • 同样,箭头完全由公式的元素固定。 的所有维度\draw[->,blue] (.2,-.5)--(.2,-.7)--(1.2,-.7)--(1.2,-.3);都是多余的,我唯一指定的\draw[->,blue] ([yshift=1mm]b)--++(0,-0.2) -|(Y);是 ,yshift它使箭头从稍微高一点的地方开始(我实际上只是添加了它来向您展示如何调整这些东西,如果您真的想要的话),-0.2它只是说箭头需要向下移动0.2cm才能连接到右边的分数。如果你在右边的分数前添加一些东西,箭头会自动调整。
  • 这种路径淡化非常强大,因为它允许您切断超出角色的内容。虽然这里不需要,但这可能是我以后应用这些技巧时会用到的东西。
  • 不用说,如果您决定分数c/c也应具有一定的不透明度或颜色,这只需要一个简单的切换。

答案2

stackengine

\documentclass{article}
\usepackage{tikz,amsmath,xcolor,stackengine}

\begin{document}
\[ \begin{tikzpicture}
         \node at (0,0) {$\dfrac{a \cdot c}{b \cdot c}=\color{blue}%
  \underbrace{\color{black}{}\dfrac{a}{b} \cdot 
  \stackengine{0pt}{\makebox[0pt]{\raisebox{-10pt}{\scalebox{10}[8]{%
    \color{blue!20}\sffamily\tiny 1}}}}{$\dfrac{c}{c}$}{O}{c}{F}{F}{L}}%
  \color{black}{}=\dfrac{a}{b}$};
         \draw[->,blue] (.2,-.5)--(.2,-.7)--(1.2,-.7)--(1.2,-.3);
         \node at (.2,-.7) [below right] {\scriptsize $\color{blue}{%
  \text{Since}\ \dfrac{a}{b} \cdot 1 =\dfrac{a}{b}}$}; 
\end{tikzpicture} \]

\end{document}

在此处输入图片描述

相关内容