Hi Aditya,
Could be due to the change in catcode of &. Try adding \donknuthmode.
It doesn't make any difference if I put the \donknuthmode just before \starttikzpicture. But If I put it before the \usemodule[tikz], then I get another error:
Package pgfbasematrix: Error! Single ampersand used with wrong catcode. ! Missing number, treated as zero.
system > tex > error on line 12 in file testcontext.tex: Missing number, treated as zero ...
2 \usemodule[tikz] 3 \usetikzlibrary{matrix} 4 5 \starttext 6 \tikzstyle{description}=[fill=white,inner sep=2pt] 7 \starttikzpicture 8 \matrix(m)[matrix of math nodes, 9 row sep=3em, column sep=3em, 10 text height=1.5ex, text depth=0.25ex] 11 {x&y\ 12 >> z&u}; 13 \path[->] 14 (m-1-1) edge node[description] {$*$} (m-1-2) 15 edge node[description] {$*$} (m-2-1) 16 (m-1-2) edge[dashed] node[description] {$*$} (m-2-2) 17 (m-2-1) edge[dashed] node[description] {$*$} (m-2-2); 18 \stoptikzpicture 19 \nonknuthmode 20 \stoptext 21
<to be read again> \pgf@matrix@column@sep@2 \pgf@matrix@endcell ...ixcurrentcolumn \endcsname \relax \advance \pgf@picmi... <template> \pgf@matrix@endcell }\endtemplate \pgf@matrix@no@eom@found ->\cr \noalign {\vskip \pgf@y \ifpgf@matrix@fixed ... <to be read again> z l.12 z &u};
Hi all,
just as a followup and for the mailing list archives, the solution is to use both Aditya's suggestion to turn on \donknuthmode, as well replacing the & signs with their interpretations, namely \pgfmatrixnextcell. Thank you Aditya for the suggestion.
Regards,
Mathieu
On Wed, Feb 23, 2011 at 11:38 AM, Mathieu Boespflug 0xbadcode@gmail.com wrote:
Hi Aditya,
Could be due to the change in catcode of &. Try adding \donknuthmode.
It doesn't make any difference if I put the \donknuthmode just before \starttikzpicture. But If I put it before the \usemodule[tikz], then I get another error:
Package pgfbasematrix: Error! Single ampersand used with wrong catcode. ! Missing number, treated as zero.
system > tex > error on line 12 in file testcontext.tex: Missing number, treated as zero ...
2 \usemodule[tikz] 3 \usetikzlibrary{matrix} 4 5 \starttext 6 \tikzstyle{description}=[fill=white,inner sep=2pt] 7 \starttikzpicture 8 \matrix(m)[matrix of math nodes, 9 row sep=3em, column sep=3em, 10 text height=1.5ex, text depth=0.25ex] 11 {x&y\ 12 >> z&u}; 13 \path[->] 14 (m-1-1) edge node[description] {$*$} (m-1-2) 15 edge node[description] {$*$} (m-2-1) 16 (m-1-2) edge[dashed] node[description] {$*$} (m-2-2) 17 (m-2-1) edge[dashed] node[description] {$*$} (m-2-2); 18 \stoptikzpicture 19 \nonknuthmode 20 \stoptext 21
<to be read again> \pgf@matrix@column@sep@2 \pgf@matrix@endcell ...ixcurrentcolumn \endcsname \relax \advance \pgf@picmi... <template> \pgf@matrix@endcell }\endtemplate \pgf@matrix@no@eom@found ->\cr \noalign {\vskip \pgf@y \ifpgf@matrix@fixed \... <to be read again> z l.12 z &u};
2011/2/23 Mathieu Boespflug 0xbadcode@gmail.com
Hi all,
just as a followup and for the mailing list archives, the solution is to use both Aditya's suggestion to turn on \donknuthmode, as well replacing the & signs with their interpretations, namely \pgfmatrixnextcell. Thank you Aditya for the suggestion.
Regards,
Mathieu
umm, i can’t seem to get it to work. i use the mkiv minimals…
no combination of \donknuthmode, \nonknuthmode, \pgfmatrixnextcell and “replace ampersand=foo”, that i tried, seems to work.
can anyone give me a minimal example of a working tikz matrix in a context document? (preferrably something that prevents me from littering everything with “\pgfmatrixnextcell”)
thanks, philipp
On Sun, 11 Sep 2011, Philipp A. wrote:
2011/2/23 Mathieu Boespflug 0xbadcode@gmail.com
Hi all,
just as a followup and for the mailing list archives, the solution is to use both Aditya's suggestion to turn on \donknuthmode, as well replacing the & signs with their interpretations, namely \pgfmatrixnextcell. Thank you Aditya for the suggestion.
Regards,
Mathieu
umm, i can’t seem to get it to work. i use the mkiv minimals…
no combination of \donknuthmode, \nonknuthmode, \pgfmatrixnextcell and “replace ampersand=foo”, that i tried, seems to work.
can anyone give me a minimal example of a working tikz matrix in a context document? (preferrably something that prevents me from littering everything with “\pgfmatrixnextcell”)
One way around this is to re-read part of tikz module code under the right catcode regime (ideally this should be done by t-tikz). I still cannot get & to work, but using & is a reasonable shortcut.
Here is a working example:
\usemodule[t-tikz] \usetikzlibrary{matrix}
\unprotect \ReadFile{pgfmodulematrix.code.tex} \protect
\starttext \tikzstyle{description}=[fill=white,inner sep=2pt] \starttikzpicture \matrix(m)[matrix of math nodes, row sep=3em, column sep=3em, ampersand replacement=&,%% AM: Added this. text height=1.5ex, text depth=0.25ex] {x & y\ z & u\}; \path[->] (m-1-1) edge node[description] {$*$} (m-1-2) edge node[description] {$*$} (m-2-1) (m-1-2) edge[dashed] node[description] {$*$} (m-2-2) (m-2-1) edge[dashed] node[description] {$*$} (m-2-2); \stoptikzpicture \stoptext
Aditya
On Sun, 11 Sep 2011, Aditya Mahajan wrote:
On Sun, 11 Sep 2011, Philipp A. wrote:
2011/2/23 Mathieu Boespflug 0xbadcode@gmail.com
Hi all,
just as a followup and for the mailing list archives, the solution is to use both Aditya's suggestion to turn on \donknuthmode, as well replacing the & signs with their interpretations, namely \pgfmatrixnextcell. Thank you Aditya for the suggestion.
Regards,
Mathieu
umm, i can’t seem to get it to work. i use the mkiv minimals…
no combination of \donknuthmode, \nonknuthmode, \pgfmatrixnextcell and “replace ampersand=foo”, that i tried, seems to work.
can anyone give me a minimal example of a working tikz matrix in a context document? (preferrably something that prevents me from littering everything with “\pgfmatrixnextcell”)
One way around this is to re-read part of tikz module code under the right catcode regime (ideally this should be done by t-tikz). I still cannot get & to work, but using & is a reasonable shortcut.
Here is a working example:
\usemodule[t-tikz] \usetikzlibrary{matrix}
\unprotect \ReadFile{pgfmodulematrix.code.tex} \protect
A slightly more robust solution is to load the attached module instead of t-tikz. (It also patches \usetikzlibrary). However, I cannot figure out what is the expected catcode of & inside a tikz \matrix. So, you will still need to use amserand replacement=&.
Note that this sets the catcode of ! to other (as expected by tikz). In the past, circuittikz has some troubles with the catcode of !.
Aditya
Thank you both!
We should get the TikZ devs to accept patches already. does anyone know anyone who has CVS access?
Apart from Aditya’s hack, I’d also like to see Joseph Wright’s hackhttp://tex.stackexchange.com/questions/27952/cmyk-context-colors-in-tikz/27955#27955for ConTeXt’s CMYK colors in TikZ. Maybe we should create a module from user-created TikZ hacks that make it work better with ConTeXt, and link to it on ConTeXtgarden?
PS: Aditya, does your module provide everything you’d expect? like \tikzstyle, \usetikzlibrary[something], \tikz\node{};, …? I don’t exactly know the inner workings of plain TeX…
philipp
On 23-2-2011 5:38, Mathieu Boespflug wrote:
Hi Aditya,
Could be due to the change in catcode of&. Try adding \donknuthmode.
It doesn't make any difference if I put the \donknuthmode just before \starttikzpicture. But If I put it before the \usemodule[tikz], then I get another error:
Package pgfbasematrix: Error! Single ampersand used with wrong catcode. ! Missing number, treated as zero.
that's a strange error ... if pgf knows that the catcode is 'wrong' it could deal with it i guess
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------