2

I have a simular issue to the question asked in : TikZ picture overlaps with text I have tried the solution provided by Jake. This makes that my picture fails to resize (scale) as i intend.

Whether i give Set scale=0.4 or Set scale=0.8 The size of the picture remains the same

This is the code i use:

\begin{figure}[ht!]
\centering
\begin{tikzpicture}[Set scale=0.4, every node/.append style={transform shape},]
% STYLES
\tikzstyle{every node}=[rectangle,rounded corners, minimum width=100pt,
    align=center,node distance=3cm,fill=black!10,inner sep=5pt,text width=3cm,minimum height=1.75cm,>=stealth,text badly centered]
% Draw forces
\node [force, above of=rivalry] (top) {Firm strategy, structure and rivalry};
\node [force, left=1cm of rivalry] (left) {Factor conditions};
\node [force, right=1cm of rivalry] (right) {Demand Conditions};
\node [force, below of=rivalry] (bottom) {Related and Supporting industries};
%%%%%%%%%%%%%%%%
% Draw the links between forces
\path[<->,thick] 
(left) edge (right)
(left) edge (top)
(left) edge (bottom)
(top) edge (right)
(bottom) edge (right);
\path[<->,thick] 
(bottom) edge (top);
\end{tikzpicture}
\caption{Porter's Diamond source:~\cite{Porter:1980}}%
\label{fig:diamond} 
\end{figure}

enter image description here

wierts
  • 887
  • Perhaps this happens because the option is scale=<some factor> and not Set scale=<some factor>. Could you try with the right key and let us know if the problem is solved? – Claudio Fiandrino Jul 01 '13 at 11:50
  • 2
    We prefer full compilable (but minimal) code example including a preamble. This way not everyone which wants to help you has to add the preamble him-/herself. – Martin Scharrer Jul 01 '13 at 11:51
  • You are overwriting the every node style with the \tikzstyle command, you also need to append stuff with the deprecated \tikzstyle: \tikzstyle{every node}+=[…]. But you could just add it to the every node style options from the TikZ picture. – Qrrbrbirlbel Jul 01 '13 at 12:35

1 Answers1

6

The option is scale and transform shape can* be given as direct option to {tikzpicture}

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}


\begin{document}
\begin{tikzpicture}[%
    scale=0.8,transform shape,
    % STYLES
    force/.style={%
        rectangle,rounded corners, minimum width=100pt,
        align=center,node distance=3cm,fill=black!10,inner sep=5pt,
        text width=3cm,minimum height=1.75cm,text badly centered
    },
    >=stealth,% had no effect in a node style ...
]
% Draw forces
\node (rivalry) {};% was missing!!
\node [force, above of=rivalry] (top) {Firm strategy, structure and rivalry};
\node [force, left=1cm of rivalry] (left) {Factor conditions};
\node [force, right=1cm of rivalry] (right) {Demand Conditions};
\node [force, below of=rivalry] (bottom) {Related and Supporting industries};
% Draw the links between forces
\path[<->,thick]
    (left) edge (right)
    (left) edge (top)
    (left) edge (bottom)
    (top) edge (right)
    (bottom) edge (right);
\path[<->,thick] (bottom) edge (top);
\end{tikzpicture}
\end{document}

I had to add a node (rivalry) since it was missing in your example. Pleas use \tikzset (or the {tikzpicture} options as I did) and the /.style appendix. \tikzstyle is obsolete. Furthermore the >=stealth won’T have an effect inside a node style definition so I moved it …


* I was wrong and Qrrbrbirlbel’s comment on your question, mentions the real problem: transform shape can also be set only to every node but was overwritten in your example.

Tobi
  • 56,353