Sowas geht mit `\foreach`, auch mit mehreren Variablen. Da hier kein testbares Komplettbeispiel in der Frage ist, arbeite ich mit meinem Beispiel zur vorangehenden Frage. Dort kann ich die Zwischenlinien vereinfachen:
\foreach \x / \y in {E/F, G/H, I/J}
\path [name path global/.expanded=\x--\y] (\x) -- (\y);
Die Syntax erkennt man ja. Es geht auch mit 3 und mehr Variablen. Das eingefügte `global/.expanded` ist eine Weg, damit man Pfadnamen in der Schleife bestimmen kann - normalerweise nicht nötig.
Entsprechend für die Schnittpunkte:
\foreach \schnitt / \punkt in {E--F and G--H/K, E--F and I--J/L} {
\path [name intersections/.expanded = {of=\schnitt, by=\punkt}];
\node at (\punkt) {\punkt};
}
Auch hier: mit `intersections/.expanded={...}` erreiche ich, dass erst `{...}` expandiert wird, d.h. die Makros darin (meine Schleifenvariablen) intern mit `\edef` ausgewertet werden, bevor die Zuweisung `intersections={...}` erfolgt. Der Trick ist wie gesagt bei einfachem `\foreach` meist nicht nötig.
nötig, hier weil es innerhalb von Optionen passiert.
Ein compilierbares Testbeispiel damit, der vorigen verlinkten Frage entsprechend:
entsprechend - am Beginn sieht man nochmal die einfache Form der `\foreach`-Schleife:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}[every node/.append style={text depth=0.25ex, rectangle,
rounded corners, minimum width=3em, minimum height=4ex, draw}]
% Eckpunkte
\node (A) at (0,4) {A};
\node (B) at (5,4) {B};
\node (C) at (5,0) {C};
\node (D) at (2,0) {D};
\foreach \punkt / \x / \y in {A/0/4, B/5/4, C/5/0, D/2/0}
\node (\punkt) at (\x,\y) {\punkt};
% Mittelpunkte obere und untere Seite
\node (E) at ($ (A) !.5! (B) $) {E};
\node (F) at ($ (D) !.5! (C) $) {F};
% Dritteln linke Seite und sechte Seite
\node (G) at ($ (A) !.3333! (D) $) {G};
\node (H) at ($ (B) !.3333! (C) $) {H};
\node (I) at ($ (A) !.6666! (D) $) {I};
\node (J) at ($ (B) !.6666! (C) $) {J};
% Zwischenlinien definieren
\foreach \x / \y in {E/F, G/H, I/J}
\path [name path global/.expanded=\x--\y] (\x) -- (\y);
% Schnittpunkte der Zwischenlinien für die restlichen Gitterpunkte
\foreach \schnitt / \punkt in {E--F and G--H/K, E--F and I--J/L} {
\path [name intersections/.expanded = {of=\schnitt, by=\punkt}];
\node at (\punkt) {\punkt};
}
\end{tikzpicture}
\end{document}
Der Gewinn durch die `\foreach`-Schleifen zeigt sich dann, wenn, wie eingangs der Frage geschrieben, es sehr viele wiederholte Aufrufe gibt.