Ich möchte folgendes einzeichnen LaTeX
(natürlich in einer Weise, die schöner aussieht):
Bisher habe ich Folgendes erreicht.
\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}
Ich kann die Pfeile nicht steuern und es scheint, dass sie dazu neigen, an einem bestimmten Punkt zu enden. Wie kann ich den Endpunkt auswählen? Oder vielleicht etwas in LaTeX, das automatisch einen Pfad für die Pfeile festlegt, sodass sie sich an möglichst wenigen Stellen in der Abbildung kreuzen?
Antwort1
Hier ist eine Version ohne Tikzmark, die funktioniert, indem den Knoten, die Sie bereits im \circled
Befehl erstellen, unterschiedliche Namen zugewiesen werden.
\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}