十字相乘

十字相乘

我正在尝试实现类似这样的目标:

十字乘法示例

我的第一个想法是在 tikzpicture 中使用节点,所以我想到了这个:

第一个例子

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning, intersections}
\usepackage{mathtools}
\usepackage{pifont}
\usepackage{xcolor}

\begin{document}
\begin{tikzpicture}
[frac/.style={node distance=-2mm and 8mm}, expression/.style={node distance=2mm and 10mm}]
\node [frac](A) {$3$};
\node [frac](B) [below=of A] {$-$};
\node [frac](C) [below=of B] {$5$};
\node [frac](D) [right=of A] {$5$};
\node [frac](E) [below=of D] {$-$};
\node [frac](F) [below=of E] {$9$};
\node [expression] (exp1) [below=of C] {$3\cdot9=27$};
\node [expression] (exp2) [below=of F] {$5\cdot5=25$};
\draw [<->] (A) -- (F);
\draw [<->] (C) -- (D);
\end{tikzpicture}
\end{document}

虽然我喜欢这种设置方式,但是底部的乘法是重叠的,即使(我认为)我在节点之间留出 10 毫米的间距,情况也没有改善。

结果如下:

第一个示例结果

所以我做了一些研究,发现这个帖子经过一些修改,它已经达到了我的目的。这是我修改它的方式以及最终结果:

第二示例

\documentclass[border=10pt]{standalone}
\usepackage{tikz,amsmath}
\newcommand\tikzmark[2][]{
  \tikz[remember picture,inner sep=0,outer sep=0,baseline=(#1.base)]{\node(#1){$#2$};}
}


\begin{document}
\begin{tabular}{cc}


$ \dfrac{\tikzmark[topleft]{3}}{\tikzmark[bottomleft]{5}}$ &
    $\dfrac{\tikzmark[topright]{5}}{\tikzmark[bottomright]{9}} $\\
    $3\cdot9=27$ & $5\cdot5=25$\\
\end{tabular}
\begin{tikzpicture} [remember picture,overlay]
    \draw [<->] (topleft) -- (bottomright);
    \draw [<->] (bottomleft) -- (topright);
\end{tikzpicture}

\end{document}

在此处输入图片描述

这个结果是完美的,但问题是,当我把这段代码放入 Anki 时,它不起作用,无论我在笔记类型的序言中输入什么(但我可能做错了什么)。

更不用说,我真的不明白它的序言。

总之,我的主要问题是:按照第一个例子使用节点,如何避免重叠?

出于好奇,我还有另一个问题:如何将 tikzmark 与 Anki 一起使用,以便我可以使用第二个示例?

谢谢!

答案1

进行正确定位的更简单方法是首先布置乘法并将分数放在它们上面。

对于分数,让 amsmath 绘制它们以获得适当的条形大小和垂直间距。箭头可以用 tikzmarks 定位,但更简单的方法是使用 calc 库来确定它们的端点。

\documentclass[border=10pt]{standalone}
\usepackage{tikz,amsmath}
\usetikzlibrary{positioning,calc}

\begin{document}

\begin{tikzpicture}[
  every node/.style={inner sep=0}
  ]
  \node (mul1) {$3\cdot9=27$};
  \node[right=5mm of mul1] (mul2) { $5\cdot5=25$};
  \node[above=5mm of mul1] (frac1) {$\dfrac{3}{5}$} ;
  \node[above=5mm of mul2] (frac2) {$\dfrac{5}{9}$} ;
  \draw[<->] ($(frac1.north east)!0.75!(frac1.south east)$)
             -- ($(frac2.north west)!0.25!(frac2.south west)$) ;
  \draw[<->] ($(frac1.north east)!0.25!(frac1.south east)$)
             -- ($(frac2.north west)!0.75!(frac2.south west)$) ;
\end{tikzpicture}
\end{document}

在此处输入图片描述

如果需要,修改节点间距。

相关内容