26

How do I pass two parameters to a tikz style? I would like to do something like this:

\begin{tikzpicture}[
    transformer/.style={draw, cylinder, gray!80, rotate=90, minimum height=#1, minimum width=#2},

And then, I want to use this style in a node:

\node [transformer{2.3cm}{1cm}] () at (0,0.6) {};
  • 4
    Use style 2 args, see page 493 of the manual (sorry, I'm currently to lazy to write and test a complete answer). – Caramdir Jun 22 '11 at 19:02
  • @Caramdir: Thanks for the link. Much appreciated — absolutely no need to apologize. – Neil G Jun 22 '11 at 19:04
  • 2
    I think you have to use something like [transformer={2.3cm}{1cm}] – Peter Grill Jun 22 '11 at 19:04
32
\documentclass{article}
\usepackage{tikz} 
\usetikzlibrary{shapes}  
\begin{document}
 \thispagestyle{empty} 

 \begin{tikzpicture}[
    transformer/.style 2 args={draw, cylinder, gray!80, rotate=90, minimum height=#1, minimum width=#2}]

\node [transformer={2.3cm}{1cm}] () at (0,0.6) {};
\end{tikzpicture}  
\end{document} 
  • 8
    Indeed, there is also .style n args={<number of args>}{<style>} for more arguments and .style args={<parameter text>}{<style>} which allows to define the arguments using a parameter text like \def does. – Martin Scharrer Jun 22 '11 at 21:04
  • 3
    how can I achieve this with using \tikzstyle ? – bonanza Feb 25 '16 at 16:59
  • 2
    You can't, I think – Yossi Gil Aug 15 '16 at 19:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.