Rysowanie strzał z jednego Tcolorbox do drugiego

Nov 22 2020

Tworzę prezentację na beamerze i chcę stworzyć slajd podobny do tego. Wiem, że dla dwóch zestawów równań mogę użyć Tcolorbox i wyrównać, aby uzyskać równania wewnątrz pól. Dodatkowo mogę użyć środowiska kolumn, aby uzyskać dwa pola po lewej i prawej stronie. Nie jestem jednak pewien, jak połączyć oba pola za pomocą strzałki, jak pokazano na poniższym obrazku.

Jeśli ktokolwiek może mnie poprowadzić, jak to zrobić za pomocą projektora lub odtworzyć przykład z poniższego obrazu, byłbym naprawdę wdzięczny!

Odpowiedzi

3 Zarko Nov 22 2020 at 11:48

Na razie nie podajesz żadnego kodu, który podajesz, więc możemy tylko zgadywać i ostatecznie przepisać twoje równania. Zazwyczaj taka usługa nie jest tutaj świadczona, więc poniższa propozycja nie dotyczy bezpośrednio wszystkich problemów.

Jeśli chcesz mieć tcolorboxes, rozwiązaniem może być następujące rozwiązanie:

\usepackage[most]{tcolorbox}

\tcbset{on line,    
        boxsep=0pt, 
        colframe=gray,colback=white,
        highlight math style={enhanced}  % <---
        }

\begin{document}
    \[
\tcbhighmath{\begin{aligned} a=b\\ c=d\end{aligned}}
    \longrightarrow
\tcbhighmath{K=\begin{bmatrix} a\\ b \end{bmatrix}}
    \]
\end{document}

Uwaga: zawartość tcolorboxes można uporządkować przy użyciu wszystkich środowisk matematycznych zdefiniowanych w amsmath.

Innym sposobem jest użycie obrazu TikZ:

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
                positioning}

\begin{document}
Some text

    \begin{tikzpicture}[
every node/.style = {draw=gray, rounded corners, very thick}
                        ]
\node (left)    {$\begin{aligned} a=b\\ c=d\end{aligned}$};
\node (right) [right=of left]
                {$\begin{gathered} X = [\text{some equation}] \\ K_1=\begin{bmatrix} a\\ b \end{bmatrix} \quad K_2=\begin{bmatrix} c\\ d \end{bmatrix} \end{gathered}$};
\draw[-Straight Barb] (left) -- (right);
    \end{tikzpicture}
\end{document}

Dodatek: możesz również połączyć oba powyższe rozwiązania:

\documentclass{article}
\usepackage{amsmath}
\usepackage[most]{tcolorbox}
\usetikzlibrary{arrows.meta,
                positioning}

\tcbset{on line,    % borrowed from https://tex.stackexchange.com/questions/568880/
        boxsep=0pt, % left=1pt,right=1pt,top=1pt,bottom=1pt,
        colframe=gray,colback=white, % or some other color of box background
        highlight math style={enhanced}  % <---
        }

\begin{document}
    \begin{tikzpicture}[
every node/.style = {inner sep=0pt}
                        ]
\node (left)    {\tcbhighmath{\begin{aligned} a=b\\ c=d\end{aligned}}};
\node (right) [right=of left]
                {\tcbhighmath{\begin{gathered} X = [\text{some equation}]    \\
                        K_1=\begin{bmatrix} a\\ b \end{bmatrix}
                        \quad
                        K_2=\begin{bmatrix} c\\ d \end{bmatrix}
                 \end{gathered}}};
\draw[-Straight Barb] (left) -- (right);
    \end{tikzpicture}
\end{document}

Wynik jest podobny do drugiego rozwiązania:

1 Ignasi Nov 23 2020 at 09:06

To jest połączenie Dodatku Zarko i mojej odpowiedzi na Dodaj strzałkę między dwoma tcolorboxami

Przykład jest wbudowany w beamerdokument. Gdy używane są overlayi remember picture, strzałka między polami pojawi się po drugiej kompilacji.

\documentclass{beamer}
\usepackage{amsmath}
\usepackage[most]{tcolorbox}
\usetikzlibrary{arrows.meta,
                positioning}

\tcbset{on line,    % borrowed from https://tex.stackexchange.com/questions/568880/
        boxsep=0pt, % left=1pt,right=1pt,top=1pt,bottom=1pt,
        colframe=gray,colback=white, % or some other color of box background
        highlight math style={enhanced}  % <---
        }

\begin{document}
\begin{frame}{With tcolorbox}
\tcbhighmath[remember as=left]{\begin{aligned} a=b\\ c=d\end{aligned}}\hspace{1cm}
\tcbhighmath[remember as=right]{\begin{gathered} X = [\text{some equation}]    \\
                        K_1=\begin{bmatrix} a\\ b \end{bmatrix}
                        \quad
                        K_2=\begin{bmatrix} c\\ d \end{bmatrix}
                 \end{gathered}}
\tikz[overlay, remember picture] \draw[-Straight Barb] (left) -- (right);
\end{frame}

\end{document}