Seite 1 von 1

TikZ-Matrix in foreach („&“ und Num. too big)

Verfasst: Fr 5. Jun 2009, 19:12
von flying sheep
ich bekomme bescheuerten fehlercode mit folgendem minimalbeispiel:
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
 \node[matrix] {a&b\\c&d};
\end{tikzpicture}
\end{document}
hier der fehlercode:
! Missing } inserted.
l.7 \end{tikzpicture}
                     
! Missing } inserted.
l.7 \end{tikzpicture}
                     
! Missing } inserted.
l.7 \end{tikzpicture}
                     
! Missing \cr inserted.
l.7 \end{tikzpicture}
                     
! Misplaced \cr.
l.7 \end{tikzpicture}
die letzten beiden fehler kommen dann zigmal abwechselnd…
warum?!

TikZ-Matrix

Verfasst: Fr 5. Jun 2009, 22:25
von Stefan Kottwitz
Hallo,

wenn Du die letzte Matrix-Zeile mit \\ abschließt, verschwindet der Fehler:
\node[matrix] {a&b\\c&d\\};
Viele Grüße,

Stefan

Verfasst: Sa 6. Jun 2009, 13:42
von flying sheep
vielen dank, da wär ich nie drauf gekommen.
bleibt bloß die frage, warum die pgf-macher hier ihr eigenes süppchen kochen.

PS: zu früh gefreut: mit der "matrix of nodes"-option seh ich zwar was, aber die matrix verschlingt zu viel platz.
wie zwinge ich sie in eine bestmmte größe? (inner sep ist bereits 0)
ich habe inner sep, row sep und col sep auf minuswerte gestellt, aber das ist cheaten…

hier bekomme ich auch fehler:
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
\node[matrix of nodes] at (0,0) {1 & 2 \\ 3 & 4 \\};
\foreach \cor/\ol/\or/\ul/\ur in {1/5/6/7/8, 2/9/10/11/12}
	\node[matrix of nodes] at (\cor,0) {\ol & \or \\ \ul & \ur \\};
\end{tikzpicture}
\end{document}
und zwar die:
! Package pgfbasematrix Error: Single ampersand used with wrong catcode.
l.9 ...s] at (\cor,0) {\ol & \or \\ \ul & \ur \\};
                                          
! Number too big.
<argument> 010101010101010
l.9 ...s] at (\cor,0) {\ol & \or \\ \ul & \ur \\};
(wieder mehrmals)

ich hab nun rausgefunden, dass ich durch die „ampersand replacement“-option einen der beiden fehler abschalten kann, aber der zweite besteht weiterhin und ich hab auch keine ahnung, warums den ersten gibt.