[Tex/LaTex] How to adapt diamond shape

tikz-pgf

I'm writing a flow-chart. Using diamond (test/.style={base, diamond, aspect=2, text width=5em}), my diamond shape enlarges itself too much. How can I spread the text on the entire shape (to reduce the size of it)?

This is the code I use:

\documentclass[x11names]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,chains} 
%%%<
\usepackage{verbatim}
\usepackage[active,tightpage]{preview}
\usetikzlibrary{positioning} %----permette il posizionamento relativo dei nodi
\usepackage[latin1]{inputenc} %----permette l' uso dei caratteri accentati
\usepackage[italian]{babel} %-----permette la sillabazione secondo le regole italiane
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5mm}%
%%%>
\begin{document}
% =================================================
% Set up a few colours questi sono i colori poi usati per le linee i connettori e il riempimento di alcune forme, variando il numero del colore, varia il coloreetc. tipo: riga di colore lcfree
\colorlet{lcfree}{Green3} 
\colorlet{lcnorm}{Blue3}
\colorlet{lccong}{Red3}
\providecommand{\cmark}[2][]{\relax} %------crea il comando \cmark utilizzato in seguito
% ----------------QUESTO PEZZO INDICA COME FARE LA CATENA ---!!!!!!!---
% Start the picture
\begin{tikzpicture}[%
    >=triangle 60,              % Nice arrows;variando i simboli > e =, cambia la forma della freccia
    start chain=going below,    % General flow is top-to-bottom unisce i blocchi andando da sopra a sotto
    node distance=16mm and 60mm, % Global setup of box spacing 16mm verticale 60 orizzontale
    every join/.style={norm},   % Default linetype for connecting boxes utilizzando lo stile norm/free/cong definiti a riga 87
    ]
% ------------------------------------------------------------------
%in questa area vengono definiti gli stili delle forme da inserire nelle griglie.Questi stili vengono poi usati per dare forma ai vari nodi, usando il nome dello stile come primo parametro del nodo. es. \node [proc, join...]
% A few box styles 
% <on chain> *and* <on grid> reduce the need for manual relative
% positioning of nodes
\tikzset{
%--il parametro align= allinea il testo all interno della forma (left, center, right)
    base/.style={draw, on chain, on grid, align=center, minimum height=4ex},
    proc/.style={base, rectangle, text width=8em},
    test/.style={base, diamond, aspect=2, text width=5em, inner sep=-15pt},
    term/.style={proc, rounded corners},
% coord node style is used for placing corners of connecting lines
  coord/.style={coordinate, on chain, on grid, node distance=6mm and 25mm},
% nmark node style is used for coordinate debugging marks
  nmark/.style={draw, cyan, circle, font={\sffamily\bfseries}},
%======================fine definizione stili delle forme
% Connector line styles for different parts of the diagram. qui si definiscono gli stili dei connettori. Il colore del connettore (lcnorm, lcfree, lccong) sono a loro volta definiti ella sezione (set up a few color alcune righe sopra)
  norm/.style={->, draw, lcnorm},
  free/.style={->, draw, lcfree},
  cong/.style={->, draw, lccong},
  it/.style={font={\small\itshape}} %questo DOVREBBE configurafre un font
}
% ----------------------------------inizio posizionamento forme--------
% Start by placing the nodes il parametro join serve a collegare il nodo con il precedente. per i collegamenti specifici (tipo nodo sssc0003 a nodo sssc0004, vedere il codice che inizia con: "All the other connections... alle righe succesive
%------*********inizio posizionamento delle forme I colonna******--------------------
% Use join to connect a node to the previous one ------uso di join per connettere i nodi ai blocchi precedenti--------------
\node [proc, densely dotted, it] (sscom001) {Ricevimento comunicazione};
\node [test, join] (sscom002) {La documentazione formale della  comunicazione \'e completa?};
\node [proc, join] (sscom003) { Comunicazione di irricevibilità al richiedente)};
\node [proc, join] (sscom999) {Chiusura procedimento};
%-----------------------------fine I colonna---------------
%---------------inizio II  e III colonna------------------------------
\node [proc ] (ssri-cap) [left=of sscom001] {Comunicazione apertura pratica al registro imprese};
\node [proc, join] (ssri-cep) [left=of ssri-cap]  {comunicazione esito pratica al registro delle imrese};
%----- seconda colonna ----------------------------
\node [proc, ] (sscom004)[right=of sscom003] {Trasmissione al richiedente ricevuta di protocollo};
\node [proc, ] (sscom005) [left=of sscom003]{Trasmissione della Comunicazione al B.O. ente/ufficio destinatario};
\node [test, join] (sscom006) {Il B.O. ENTE/Ufficio destinatario trasmette al BO SUAP richiesta documentazione/provvedimento-nulla osta)};
\node [proc, join] (sscom007) {Il B.O. Suap trasmette provvedimento-nulla osta al richiedente};
\node [proc, ] (sscom008)[right=of sscom007] {Il B.O. SUAP trasmette la richiesta di documentazione integrativa al richiedente};
\node [proc, join] (sscom009) {Ricevimento documentazione integrativa da parte del richiedente};
\node [proc, join] (sscom011) { Il B.O. Suap trasmette documentazione integrativa al B.O. Ente/ufficio};
Presentazione osservazioni (10gg)
\node [proc, join] (sscom012) { Il B.O. ENTE/ufficio trasmette provvedimento/nulla osta al B.O. SUAP};
\node [proc, join] (sscom013) { Il B.O. SUAP trasmette provvedimento/nulla osta al richiedente};
\node [proc, ] (sscom012) [left=of sscom012]{Mancata integrazione da parte del richiedente};
\node [proc, join] (sspo014) {Il B.O. ENTE/Ufficio destinatario trasmette al BO SUAP provvedimento/comunicazione negativa};
\node [proc, join] (sscom014) {Il B.O. SUAP trasmette provvedimento/comunicazione negativa al richiedente};
%\node [proc, ] (sspo0023) [right=of sspo0020]{Mancata presentazione osservazioni entro 10gg};
%-------------------fine posizionamento nodi-----------------------------------https://preview.overleaf.com/public/rtkznwdyqxfw/images/909eaf975d88a4b576808e04852f55af05dd11cd.jpeg
%============disegno delle linee e scrittura esito=======
\draw [->,lcnorm] (sscom001.west) -- (ssri-cap);
\draw[->](sscom002.east) -| (sscom004) node[midway,above] {SI};
\draw[->](sscom002.west) -| (sscom005) node[midway,above] {SI};
\path (sscom002) -- (sscom003) node[midway,left] {NO};
\draw [] (sscom006) -- node {SI} (sscom007);
\draw [->] (sscom006.south) -| node {NO} (sscom008.north);
\draw [*->] (sscom008.south west) -| node {NO} (sscom012.mid east);
\draw [*->] (sscom013.east) -| node {NO} (sscom999.south east);
\draw [->] (sscom014.east) -| node {NO} (sscom999.mid east);
 \end{tikzpicture}
% =================================================
\end{document} 

Best Answer

With:

test/.style={base, diamond, aspect=2, align=center, inner sep=-1ex},

and manual breaking text in nodes:

\node [test, join] (sscom002) {La documentazione\\ 
                               formale della comunicazione\\
                               \'e completa?};

and

\node [test, join] (sscom006) {Il B.O. ENTE/Ufficio\\ 
                               destinatario trasmette al\\
                               BO SUAP richiesta documentazione/\\ 
                               provvedimento-nulla 
                               osta)};

I obtain the following looks of these nodes:

enter image description here

and

enter image description here

For complete code and flowchart I need your help. You MWE has some errors in text and line connections. From your forest of comment is also difficult to find code. Try to clean-up your code first, than I will see, what I can do for you.

Edit: Meanwhile cfr did in his answer what I ask you. I will take liberty to upgrade my answer on his MWE and on this base and some mine guessing and taste suggest the following changes:

  • instead diamond use shape signal. By this changes, in test nodes is far more easy to format text.
  • move labels of arrows to their beginning
  • made all node wider
  • for font use even smaller fonts size as cfr: \footnotesize
  • with \linespread{0.8} made text lines in nodes more condensed
  • introduce new node shape (for last nodes in flowchart)
  • change one node shape (I guess, that it should be type "test")
  • slightly rearranged nodes position

Complete code is:

\documentclass[border=5mm, tikz]{standalone}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usetikzlibrary{arrows.meta,
                chains,
                positioning,
                shapes.symbols}
\begin{document}
    \begin{tikzpicture}[
       font = \footnotesize,%\sffamily,
start chain = going below,
    node distance = 5mm and 7mm,
      base/.style = {draw, on chain, align=flush center,  
                     text width=34mm, minimum height=7ex, inner ysep=1mm},
     start/.style = {base, rectangle, densely dotted, fill=gray!10},
       end/.style = {base, rectangle, rounded corners, fill=gray!10},
      proc/.style = {base, rectangle},
      test/.style = {signal, base,
                     signal to=east and west,
                     text width=44mm, inner xsep=-1ex},
     arrow/.style = {-{Triangle[]}, draw, blue, thick},
every join/.style = {arrow},
                        ]
%---
\linespread{0.8}
%-------
\node (sscom001) [start]        {Ricevimento comunicazione};
\node (sscom002) [test,join]    {La\\ documentazione formale
                                 della comunicazione \'e completa?};
\node (sscom003) [proc, join]   {Comunicazione di irricevibilità al richiedente)};
%
\node (ssri-cap) [proc,
                  left=of sscom001] {Comunicazione apertura pratica al registro imprese};
\node (ssri-cep) [proc,join,
                  left=of ssri-cap] {Comunicazione esito pratica al registro delle imrese};
%
\node (sscom004) [end,right=of sscom003] 
                        {Trasmissione al richiedente ricevuta di protocollo};
\node (sscom999) [end]  {Chiusura procedimento};
%
\node (sscom005) [proc,
                  left =of sscom003] {Trasmissione della Comunicazione al B.O. ente / ufficio destinatario};
\node (sscom006) [test,join]{Il B.O. ENTE / Ufficio destinatario trasmette al BO SUAP
                                 (richiesta documentazione / provvedimento-nulla osta)};
\node (sscom007) [end,below left=of sscom006]    
                        {Il B.O. Suap trasmette provvedimento-nulla
                         osta al richiedente};
%
\node (sscom008) [test,below right=of sscom006] 
                        {Il B.O. SUAP trasmette la richiesta
                         di documentazione integrativa al richiedente};
%
\node (sscom009) [proc,join] {Ricevimento documentazione integrativa 
                              da parte del richiedente};
\node (sscom011) [proc,join] {Il B.O. Suap trasmette documentazione integrativa 
                              al B.O. Ente/ufficio}; 
%Presentazione osservazioni (10gg)
\node (sscom012) [proc,join] {Il B.O. ENTE/ufficio trasmette provvedimento / 
                              nulla osta al B.O. SUAP};
\node (sscom013) [proc,join] {Il B.O. SUAP trasmette provvedimento / 
                              nulla osta al richiedente};
\node (sscom012) [proc,
                  left=of sscom012] {Mancata integrazione da parte del richiedente};
\node (sspo014)  [proc,join] {Il B.O. ENTE/Ufficio destinatario trasmette 
                              al BO SUAP provvedimento/comunicazione negativa};
\node (sscom014) [proc,join] {Il B.O. SUAP trasmette provvedimento/comunicazione 
                              negativa al richiedente};
%
\draw[arrow,blue]    (sscom001) -- (ssri-cap);

\draw[arrow] (sscom003) |- (sscom999);
\draw[arrow] (sscom002.east) node[above right] {SI} -| (sscom004);
\draw[arrow] (sscom002.west) node[above  left] {SI} -| (sscom005);
\node[below right] at (sscom002.south) {NO};

\draw[arrow] (sscom006.west) node[above  left] {NO} -| (sscom007);

\draw [arrow] (sscom006.east) node [above right] {NO} -| (sscom008);
\draw [arrow] (sscom008.west) node [above  left] {NO} -| (sscom012);
\draw [arrow] (sscom013.east) node [above right] {NO} -| ([xshift=-3mm]sscom999.south);
\draw [arrow] (sscom014.east) node [above right] {NO} -| ([xshift=+3mm]sscom999.south);
    \end{tikzpicture}
\end{document}

And obtained flowchart is:

enter image description here