Investigamos en diferentes foros para así tenerte la respuesta para tu inquietud, en caso de alguna inquietud déjanos tu inquietud y te responderemos sin falta, porque estamos para servirte.
Solución:
Esto es solo para explicar mi comentario anterior. Como dije, necesitas tres capas, como en esta publicación. Indico los pasos en el código, donde están en ámbitos separados.
- Organiza los nodos que desea organizar con una matriz (o
chains
o simplemente posicionamiento). - Encajas y llenas los nodos blancos en una capa que está detrás
main
, llamadobackground
aquí. - Encaja y rellena en gris estos nodos en una capa debajo, que se llama
behind
aquí.
documentclass[tikz,border=3pt]standalone
usetikzlibrarypositioning,matrix,fit,calc
pgfdeclarelayerbehind
pgfdeclarelayerbackground
pgfdeclarelayerforeground
pgfsetlayersbehind,background,main,foreground
begindocument
begintikzpicture[T/.style=text width=10em,node font=bfseries,
A/.style=align=center,B/.style=A,draw,C/.style=text width=10em,align=right,
L/.style=node font=tiny,text=blue,
F/.style=draw,dashed,fill=white,font=sffamily]
matrix[matrix of nodes,nodes=minimum width=10.3em] (mat) Data\[2em]
;
foreach X in 6,7,10
draw[-latex] (mat-X-1.south-
draw[-latex] (mat-2-1.south-|mat.center) -- (L2.north-|mat.center);
draw[-latex] (L2.south-|mat.center) --
(mat-6-1.north-|mat.center);
draw[-latex] (L2.south-|mat.center) --
(mat-6-1.north-|mat.center);
beginscope% step 2
beginpgfonlayerbackground
node[F,fit=(mat-1-1)(mat-2-1)](F1);
node[F,fit=(mat-3-1)(mat-8-1)](F2);
node[F,fit=(mat-9-1)(mat-13-1)](F3);
endpgfonlayer
draw[-latex] (F3.west) -| ++(-3em,4em) node[above] (Actions) Actions;
draw[-latex] (Actions.north) |- (mat-3-1-|F2.west)
node[pos=0.75,align=left,font=tiny,below]Control\ interaction;
draw[-latex] (Actions.north) |- (F1.west)
node[pos=0.75,align=left,font=tiny,above]Collection\ Selection;
node[above left=2em and 3em of mat.north east,node font=bfseries](title)
Typical Sonification Data Flow;
endscope
beginscope% step 3
beginpgfonlayerbehind
node[fit=(mat)(title),draw,fill=gray!20,inner sep=1ex];
endpgfonlayer
endscope
endtikzpicture
enddocument
O con su clase de documento y la flecha que falta.
documentclass[12pt,oneside]book usepackagetikz
usetikzlibrarypositioning,matrix,fit,calc
pgfdeclarelayerbehind
pgfdeclarelayerbackground
pgfdeclarelayerforeground
pgfsetlayersbehind,background,main,foreground
begindocument
begintikzpicture[T/.style=text width=10em,node font=bfseries,
A/.style=align=center,B/.style=A,draw,C/.style=text width=10em,align=right,
L/.style=node font=tiny,text=blue,
F/.style=draw,dashed,fill=white,font=sffamily]
matrix[matrix of nodes,nodes=minimum width=10.3em] (mat) Domain\[2em]
;
foreach X in 6,7,10
mat.center) --
(mat-thenumexprX+1relax-1.north-
draw[-latex] (mat-2-1.south-|mat.center) -- (L2.north-|mat.center);
draw[-latex] (L2.south-|mat.center) --
(mat-6-1.north-|mat.center);
draw[-latex] (L2.south-|mat.center) --
(mat-6-1.north-|mat.center);
draw[-latex] (mat-8-1.south-|mat.center) -- (mat-10-1.north-|mat.center);
beginscope% step 2
beginpgfonlayerbackground
node[F,fit=(mat-1-1)(mat-2-1)](F1);
node[F,fit=(mat-3-1)(mat-8-1)](F2);
node[F,fit=(mat-9-1)(mat-13-1)](F3);
endpgfonlayer
draw[-latex] (F3.west) -| ++(-3em,8em) node[above] (Actions) Actions;
draw[-latex] (Actions.north) |- (mat-3-1-|F2.west)
node[pos=0.75,align=left,font=tiny,below]Control\ interaction;
draw[-latex] (Actions.north) |- (F1.west)
node[pos=0.75,align=left,font=tiny,above]Collection\ Selection;
node[above left=2em and 3em of mat.north east,node font=bfseries](title)
Typical Sonification Data Flow;
endscope
beginscope% step 3
beginpgfonlayerbehind
node[fit=(mat)(title),draw,fill=gray!20,inner sep=1ex];
endpgfonlayer
endscope
endtikzpicture
enddocument
Editar
Como punto de partida (ampliado y simplificado desde la primera versión mi respuesta).
documentclass[12pt, tikz, margin=3mm]standalone
usetikzlibraryarrows.meta,
backgrounds,
chains,
fit,
positioning
begindocument
begintikzpicture[
node distance = 3mm and 0mm,
start chain = going below,
arr/.style = thick, -Triangle[angle=60:3pt 2], semithick,
box/.style = draw, dashed, fill=white,
minimum height=#1, text width=64mm,
inner sep=2mm, font=smallsffamily,,
sound/.style = box, solid,
text width=36mm,
on chain, join=by arr,
lbl/.style = font=scriptsizesffamily,
text=blue, align=right,
below left, anchor=north east,
FIT/.style = draw, fill=gray!30, inner xsep=2mm,
inner ysep=6mm, yshift=3mm,
fit=#1,
title/.style = font=smallbfseriessffamily, below right,
anchor=north west
]
node (f1) [box=24mm] ;
node (f1a) Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f1.north west) DOMAIN;
node (f2b) [lbl] at (f1.north east)
Information generator;
node (f1c) [above=of f1.south] Data;
node (f2) [box=52mm, below=of f1] ;
node (f2a) Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f2.north west) SONIFICATION;
node (f2b) [lbl] at (f2.north east)
Comunicaption Medium;
node (f2c) [below left=of f2b.south -| f2.east,
anchor=north east, align=right]
Task\ Model;
node (f2d) [sound,
below=of f2c.south -| f2] Sound Representation;
node (f2e) [sound] Sound ...;
node (f2f) [sound] Sound ...;
node (f3) [box=38mm, below=of f2] ;
node (f3a) Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f3.north west) USER;
node (f3b) [lbl] at (f3.north east)
Information receiver;
node (f3c) [below=of f3a.south -| f3] Ear;
node (f3d) [below=of f3c] Sound Perception (Brain);
node (f3e) [above left, align=right] at (f3.south east)
Musical Knowledge\
Acoustic Memory;
%%
draw[arr] (f1c) -- (f2d);
draw[arr] (f2f) -- (f3c);
draw[arr] (f3c) -- (f3d);
node (act) [left=11mm of f2f -| f2.west] Action;
draw[arr] (f3) -| (act);
draw[arr] (act) |- (f2a -| f2.west)
node[lbl,text=black] Control\ Interraction;
draw[arr] (act |- f2a) |- (f1.west)
node[lbl,text=black] Colection\ Selection;
%%%%
scoped[on background layer]
node (f) [FIT=(f1) (act) (f3)] ;
node Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f.north west) Typical Sonification Data Flow;
endtikzpicture
enddocument
El código de imagen es bastante elemental (excepto el uso de `cadenas para nodos de” sonido “en el módulo de Sonificación). Necesita un pequeño ajuste de la altura de los módulos, suficiente es un nivel de capa de fondo.
Editar (2) el MWE ahora se adopta para 12pt
tamaño de fuente. Han cambiado los anchos de la sound
nodos y alturas del box
nodos. Estos cambios son necesarios ya que el tamaño de las formas de los nodos está codificado de forma rígida y se adoptaron para 10pt
tamaño de fuente. En su pregunta, nos informa que utiliza el tamaño de fuente predeterminado de article
clase de documento, que es 10pt
.
Editar (3) en el MWE son los milímetros reemplazados por em
(en el código los cambios se indican mediante % <---
). El tamaño de esta distancia depende del tamaño de fuente utilizado (como sugiere el gato de @ Schrödinger en su comentario a continuación). También se considera su pregunta de seguimiento acerca de centrar los contenidos de sound
nodos:
documentclass[12pt,tikz, margin=3mm]standalone
usetikzlibraryarrows.meta,
backgrounds,
chains,
fit,
positioning
begindocument
begintikzpicture[
node distance = 0.8em and 0em, % <---
start chain = going below,
arr/.style = thick, -Triangle[angle=45:3pt 3], semithick, % <---
box/.style = draw, dashed, fill=white,
minimum height=#1, text width=18em, % <---
inner sep=2mm, font=smallsffamily,,
lbl/.style = font=scriptsizesffamily, text=blue, align=right,
below left, anchor=north east,
FIT/.style = draw, fill=gray!30, inner xsep=0.5em, % <---
inner ysep=1em, yshift=0.5em, % <---
fit=#1,
sound/.style = box, solid, text width=9em, % <---
align=center, on chain, join=by arr,
title/.style = font=smallbfseriessffamily,
below right, anchor=north west
]
node (f1) [box=4em] ; % <---
node (f1a) Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f1.north west) DOMAIN;
node (f2b) [lbl] at (f1.north east)
Information generator;
node (f1c) [above=of f1.south] Data;
node (f2) [box=13em, % <---
below=of f1] ;
node (f2a) Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f2.north west) SONIFICATION;
node (f2b) [lbl] at (f2.north east)
Comunicaption Medium;
node (f2c) [below left=of f2b.south -| f2.east,
anchor=north east, align=right]
Task\ Model;
node (f2d) [sound,
below=of f2c.south -| f2] Sound Representation;
node (f2e) [sound] Sound ...;
node (f2f) [sound] Sound ...;
node (f3) [box=9em, % <---
below=of f2] ;
node (f3a) Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f3.north west) USER;
node (f3b) [lbl] at (f3.north east)
Information receiver;
node (f3c) [below=of f3a.south -| f3] Ear;
node (f3d) [below=of f3c] Sound Perception (Brain);
node (f3e) [above left, align=right] at (f3.south east)
Musical Knowledge\
Acoustic Memory;
%%
draw[arr] (f1c) -- (f2d);
draw[arr] (f2f) -- (f3c);
draw[arr] (f3c) -- (f3d);
node (act) [left=3em of f2f -| f2.west] Action;
draw[arr] (f3) -| (act);
draw[arr] (act) |- (f2a -| f2.west)
node[lbl,text=black] Control\ Interraction;
draw[arr] (act |- f2a) |- (f1.west)
node[lbl,text=black] Colection\ Selection;
%%%%
scoped[on background layer]
node (f) [FIT=(f1) (act) (f3)] ;
node Dibujar un diagrama de flujo complicado (diagrama) en látex
at (f.north west) Typical Sonification Data Flow;
endtikzpicture
enddocument
enddocument
El resultado es similar al anterior, pero esta vez el cambio de tamaño de fuente no cambiará el aspecto de la imagen. Solo se escalará de acuerdo con el tamaño de fuente utilizado. Puede probar esto reemplazando el tamaño de fuente usado 12pt
con 11pt
o 10
pt`. Con esta imagen se volverá solo proporcionalmente más pequeña.
(tamaño de fuente 12 pt)
(tamaño de fuente 10pt)
valoraciones y comentarios
Nos puedes favorecer nuestro ensayo exponiendo un comentario y dejando una puntuación te estamos agradecidos.