
)
Estoy intentando crear una figura para una "mezcla conceptual" de la Lingüística Cognitiva. Logré crear "algo" con el paquete forestal, sin embargo, no estoy seguro de cómo agregar las líneas que puede encontrar en la figura original a continuación. Además, mi formato todavía parece un poco incorrecto (interlineado, etc.). ¿Alguien sabe cómo mejorarlo?
Aquí está mi MWE
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}% tikz
\usetikzlibrary{arrows.meta,decorations.pathmorphing,backgrounds,fit,positioning,shapes.symbols,chains}
\usepackage[]{forest}% linguistic figures
\begin{document}
\begin{figure}
\begin{center}
\begin{forest}
for tree = {
% node style
circle,
draw,
text width = 10.4em, text centered,
inner sep = 1pt,
anchor = north,
/tikz/every label/.append style = {align=left,
font=\sffamily\scriptsize\linespread{0.84}\selectfont},
% tree style
child anchor=north,
edge = {-{Straight Barb[angle=60:2pt 3]}, semithick},
l sep=12mm,
s sep=2mm,
}
% tree body code
[Agens\\ Patiens\\ Ort\\ Tätigkeit\\ Ziel\\ etc.,]
\end{forest}
\\
\begin{forest}
for tree = {
% node style
circle,
draw,
text width = 10.4em, text centered,
inner sep = 1pt,
anchor = north,
/tikz/every label/.append style = {align=left,
font=\sffamily\scriptsize\linespread{0.84}\selectfont},
% tree style
child anchor=north,
edge = {-{Straight Barb[angle=60:2pt 3]}, semithick},
l sep=12mm,
s sep=2mm,
}
% tree body code
[Agens: Metzger\\ Patiens: Tiere\\ Ort: Fleischerei\\ Tätigkeit: präparieren\\ Ziel: verkaufsfertig machen\\ etc.,]
\end{forest}
\hspace{2.5cm}
\begin{forest}
for tree = {
% node style
circle,
draw,
text width = 10.4em, text centered,
inner sep = 1pt,
anchor = north,
/tikz/every label/.append style = {align=left,
font=\sffamily\scriptsize\linespread{0.84}\selectfont},
% tree style
child anchor=north,
edge = {-{Straight Barb[angle=60:2pt 3]}, semithick},
l sep=12mm,
s sep=2mm,
}
% tree body code
[Agens: Chirurg\\ Patiens: Patient\\ Ort: OP-Saal\\ Tätigkeit: operieren\\ Ziel: heilen\\ etc.,]
\end{forest}
\\
\begin{forest}
for tree = {
% node style
circle,
draw,
text width = 10.4em, text centered,
inner sep = 1pt,
anchor = north,
/tikz/every label/.append style = {align=left,
font=\sffamily\scriptsize\linespread{0.84}\selectfont},
% tree style
child anchor=north,
edge = {-{Straight Barb[angle=60:2pt 3]}, semithick},
l sep=12mm,
s sep=2mm,
}
% tree body code
[Agens: Chirurg\\ Patiens: Patient\\ Ort: OP-Saal\\ Tätigkeit: präparieren\\ Ziel: heilen\\ etc.,]
\end{forest}
\end{center}
\end{figure}
\end{document}
Así se ve mi código actual:
Así es como quiero que se vea (la figura original):
¡Gracias a todos de antemano! ¡Que tengas un buen domingo!
Respuesta1
No creo que ganes nada aquí usando forest
. Yo solo usaría tikz
con tikzmark
. Haga que cada entrada sea una tikzmarknode
y luego haga una adicional tikzpicture
con opciones [remember picture, overlay]
para hacer referencia a los nodos. Luego dibuja las líneas discontinuas como quieras. Esto debería ayudarte a comenzar:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, tikzmark}
\tikzset{big circle/.style={draw, circle, minimum width=4cm, align=#1, font=\scriptsize}}
\begin{document}
\[
\begin{tikzpicture}[every node/.style={rectangle, outer sep=1mm, minimum height=5mm}, node distance=0cm and 3cm]
\node[big circle=center, label={90:{\textbf{generischer ,,space``}}}](A){
\tikzmarknode{a1}{Agens}\\
\tikzmarknode{a2}{Patiens}\\
\tikzmarknode{a3}{Ort}\\
\tikzmarknode{a4}{Tätigkeit}\\
\tikzmarknode{a5}{Ziel}\\ etc.};
\node[big circle=right, below left=of A](B){
\tikzmarknode{b1}{Agens: Metzger}\\
\tikzmarknode{b2}{Patiens: Tiere}\\
\tikzmarknode{b3}{Ort: Fleischerei}\\
\tikzmarknode{b4}{Tätigkeit: präparieren}\\
\tikzmarknode{b5}{Ziel: verkaufsfertig machen}\\ etc.};
\node[big circle=left, below right=of A](C){
\tikzmarknode{c1}{Agens: Chirurg}\\
\tikzmarknode{c2}{Patiens: Patient}\\
\tikzmarknode{c3}{Ort: OP-Saal}\\
\tikzmarknode{c4}{Tätigkeit: operieren}\\
\tikzmarknode{c5}{Ziel: heilen}\\ etc.};
\node[big circle=center, below right=of B, label={270:\textbf{,,blended space``}}](D){
\tikzmarknode{d1}{Agens: Chirurg}\\
\tikzmarknode{d2}{Patiens: Patient}\\
\tikzmarknode{d3}{Ort: OP-Saal}\\
\tikzmarknode{d4}{Tätigkeit: präparieren}\\
\tikzmarknode{d5}{Ziel: heilen}\\ etc.};
\end{tikzpicture}
\]
\begin{tikzpicture}[remember picture, overlay]
\draw[dashed](a1)--(b1.east)
(a2)--(b2.east)
(a3)--(b3.east)
(a4)--(b4.east)
(a5)--(b5.east)
(a1)--(c1.west)
(a2)--(c2.west)
(a3)--(c3.west)
(a4)--(c4.west)
(a5)--(c5.west);
\draw[very thick, dashed](b1.east)to[out=45, in=135](d1.west)
(c1.west)to[out=135, in=45](d1.east)
(b4.east)to[out=0, in=180](d4.west);
\end{tikzpicture}
\end{document}