Re: Probleem met xkeyval en TiKz

"Mike Boldy" <m.boldy-/NLkJaSkS4VmR6Xm/[email protected]>
Newsgroups gmane.comp.tex.dutch
Message-ID <[email protected]>
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-aEexV/uRAQlmR6Xm/[email protected]


> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of
> Wybo Dekker
> Sent: vrijdag 24 juni 2011 16:01
> To: [email protected]
> 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
> [email protected]
> http://www.ntg.nl/cgi-bin/mailman/listinfo/tex-nl

_______________________________________________
TeX-NL mailing list
[email protected]
http://www.ntg.nl/cgi-bin/mailman/listinfo/tex-nl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.