테이블 내부의 곡선 화살표에 대한 멋지고 바람직한 경로를 얻거나 끝점을 제어하는 ​​방법은 무엇입니까?

테이블 내부의 곡선 화살표에 대한 멋지고 바람직한 경로를 얻거나 끝점을 제어하는 ​​방법은 무엇입니까?

LaTeX나는 (물론 더 아름답게 보이는 방식으로) 다음을 계획하고 싶습니다 .

여기에 이미지 설명을 입력하세요

지금까지 나는 다음에 도달했습니다.

\documentclass{article}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{% <---- BEWARE
            \node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\usetikzlibrary{tikzmark}

\begin{document}
  \begin{tabular}{cccccccc}
\cline{4-5}
 & & & \multicolumn{1}{|c}{\circled{M1}}\tikzmark{b} & \multicolumn{1}{|c|}{M2} & & & \\
\cline{4-5}
 & & & \multicolumn{1}{|c}{R1} & \multicolumn{1}{|c|}{R2} & & & \\
\cline{4-5}
 & & &  &  & & & \\
\cline{1-2}\cline{4-5}\cline{7-8}
\multicolumn{1}{|c|}{\circled{M1}}\tikzmark{a}&\multicolumn{1}{c|}{M2} & & \multicolumn{1}{|c}{\circled{M1}}\tikzmark{x} & \multicolumn{1}{|c|}{M2} & & \multicolumn{1}{|c}{\circled{M1}}\tikzmark{c} & \multicolumn{1}{|c|}{M2} \\
\cline{1-2}\cline{4-5}\cline{7-8}
\multicolumn{1}{|c|}{R1}&\multicolumn{1}{c|}{R2} & & R1 & R2 & & \multicolumn{1}{|c}{R1} & \multicolumn{1}{|c|}{R2} \\
\cline{1-2}\cline{4-5}\cline{7-8}
 & & &  &  & & & \\
\cline{4-5}
 & & & \multicolumn{1}{|c}{\circled{M1}}\tikzmark{d} & \multicolumn{1}{|c|}{M2} & & & \\
\cline{4-5}
 & & & \multicolumn{1}{|c}{R1} & \multicolumn{1}{|c|}{R2} & & & \\
\cline{4-5}
  \end{tabular}
  \begin{tikzpicture}[overlay, remember picture, yshift=.25\baselineskip, shorten >=.5pt, shorten <=.5pt]
    \draw [->] ({pic cs:a}) [bend right] to ({pic cs:x});
    \draw [->] ({pic cs:b}) [bend right] to ({pic cs:x});
    \draw [->] ({pic cs:c}) [bend right] to ({pic cs:x});
    \draw [->] ({pic cs:d}) [bend right] to ({pic cs:x});
  \end{tikzpicture}
\end{document}

화살표를 제어할 수 없고 특정 지점에서 끝나는 경향이 있는 것 같습니다. 끝점이 어디인지 어떻게 선택할 수 있나요? 아니면 화살표가 그림의 최소 위치와 교차하도록 자동으로 화살표의 경로를 설정하는 LaTeX의 무언가가 있을까요?

답변1

다음은 명령에서 이미 생성 중인 노드에 다른 이름을 할당하여 작동하는 tikzmark가 없는 버전입니다 \circled.


\documentclass{article}
%\url{https://tex.stackexchange.com/q/563076/86}
\usepackage{tikz}
\newcommand*\circled[2][char]{\tikz[baseline=(#1.base),remember picture]{% <---- BEWARE
            \node[shape=circle,draw,inner sep=2pt] (#1) {#2};}}

\begin{document}
  \begin{tabular}{cccccccc}
\cline{4-5}
 & & & \multicolumn{1}{|c}{\circled[b]{M1}} & \multicolumn{1}{|c|}{M2} & & & \\
\cline{4-5}
 & & & \multicolumn{1}{|c}{R1} & \multicolumn{1}{|c|}{R2} & & & \\
\cline{4-5}
 & & &  &  & & & \\
\cline{1-2}\cline{4-5}\cline{7-8}
\multicolumn{1}{|c|}{\circled[a]{M1}}&\multicolumn{1}{c|}{M2} & & \multicolumn{1}{|c}{\circled[x]{M1}}& \multicolumn{1}{|c|}{M2} & & \multicolumn{1}{|c}{\circled[c]{M1}} & \multicolumn{1}{|c|}{M2} \\
\cline{1-2}\cline{4-5}\cline{7-8}
\multicolumn{1}{|c|}{R1}&\multicolumn{1}{c|}{R2} & & R1 & R2 & & \multicolumn{1}{|c}{R1} & \multicolumn{1}{|c|}{R2} \\
\cline{1-2}\cline{4-5}\cline{7-8}
 & & &  &  & & & \\
\cline{4-5}
 & & & \multicolumn{1}{|c}{\circled[d]{M1}} & \multicolumn{1}{|c|}{M2} & & & \\
\cline{4-5}
 & & & \multicolumn{1}{|c}{R1} & \multicolumn{1}{|c|}{R2} & & & \\
\cline{4-5}
  \end{tabular}
  \begin{tikzpicture}[overlay, remember picture, yshift=.25\baselineskip, shorten >=.5pt, shorten <=.5pt]
    \draw [->] (a) [bend right] to (x);
    \draw [->] (b) [bend right] to (x);
    \draw [->] (c) [bend right] to (x);
    \draw [->] (d) [bend right] to (x);
  \end{tikzpicture}
\end{document}

사이에 화살표가 있는 그리드

관련 정보