Die baseline doet er ook niet toe. Die kun je wel tekenen (heeft me trouwens de nodige tijd gekost om uit te puzzelen hoe je dat kunt doen, maar dat is weer een ander verhaal..). Het gaat er om dat je de globale opties die 'tikzpicture' accepteert kunt doorgeven aan \mytikzcanvas. Bijvoorbeeld 'scale' of 'line width'. Stel je wilt \begin{tikzpicture}[scale=2,line width=.75] <TiKz spul> \end{tikzpicture} Met \mytikzcanvas wordt dat dan \mytikzcanvas[show bounding box=yes,scale=2,line width=.75]{<TiKz spul>} Xkeyval zet de key 'show bounding box=yes' op 'yes' (met \setkeys*), en de keys 'scale=2,line width=.75' worden in \XKV@rm geplaatst. Die zou je dus eenvoudig moeten kunnen doorgeven aan \begin{tikzpicture}, maar dat gaat dus niet. Althans niet foutloos als er een '=' of een ',' in \XKV@rm staat. Ik heb wel een noodoplossing bedacht. Definieer een extra key 'tikzpicture options' waarin de opties worden opgeslagen: \define@key[TC]{canvas}{tikz options}{\tikzset{myoptions/.style={#1}}} % een macro definieren werkt niet, zelfde probleem De style myoptions kun je nu doorgeven aan tikzpicture: : \begin{tizpicture}[ myoptions] : Aanroepen van \mytikzcanvas ziet er dan bv. als volgt uit: \mytikzcanvas[show bounding box=yes,tikzpicture options={scale=2,line width=.75}]{<TiKz spul>} Dat werkt wel. Overigens werkt \tikzset{ myoptions/.style={\XKV@rm}} weer niet. Mike Boldy Universiteit Twente m.c.boldy@uwente.nl
-----Original Message----- From: tex-nl-bounces@ntg.nl [mailto:tex-nl-bounces@ntg.nl] On Behalf Of Wybo Dekker Sent: vrijdag 24 juni 2011 16:01 To: tex-nl@ntg.nl Subject: Re: [Tex-nl] Probleem met xkeyval en TiKz
Ik heb het geheel eerst maar eens verder vereenvoudigd: alles in 1 file, zoveel mogelijk @'s verwijderd. Kreeg dezelfde fout. Maar ik begreep die [\XKV@rm] niet; eruit gehaald: draait dan zonder fouten. Maar ik weet niet of het resultaat klopt. Ik zie nergens een baseline, ook niet in de twee plaatjes die wel goed lopen.
Kijk daar eerst eens naar?
Hier is mijn source:
\documentclass{article} \usepackage{tikz,xkeyval}
\makeatletter \define@key[TC]{canvas}{show bounding box}{\def\Showbb{#1}} \def\Yes{yes} \newcommand{\mytikzcanvas}[2][]{ \presetkeys[TC]{canvas}{show bounding box=yes}{} \setkeys*[TC]{canvas}{#1} \begin{tikzpicture} #2 \ifx\Showbb\Yes\draw[dashed] (current bounding box.south west) rectangle (current bounding box.north east); \fi \end{tikzpicture} } \makeatother
\begin{document} % tekent een stippellijn om de cirkel; baseline staat onderaan: \mytikzcanvas{\fill (0,0)circle(1);}
% tekent geen stippellijn om de cirkel, baseline in het midden: \mytikzcanvas[show bounding box=no,baseline]{\fill (0,0)circle(1);}
% tekent een stippellijn om de cirkel, baseline in op 1 cm hoogte \mytikzcanvas[baseline=1cm]{\fill (0,0)circle(1);} \end{document}
-- Wybo _______________________________________________ TeX-NL mailing list TeX-NL@ntg.nl http://www.ntg.nl/cgi-bin/mailman/listinfo/tex-nl