
)
Estou tentando criar uma figura para uma "mistura conceitual" da Lingüística Cognitiva. Consegui criar "algo" com o pacote florestal, porém não tenho certeza de como adicionar as linhas que você encontra na figura original abaixo. Além disso, minha formatação ainda parece um pouco errada (espaçamento entre linhas, etc.). Alguém sabe como melhorá-la?
Aqui está meu 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}
É assim que meu código atual se parece:
Aqui está como eu quero que fique (a figura original):
Obrigado a todos antecipadamente! Tenha um bom domingo!
Responder1
Eu não acho que você ganha nada aqui usando forest
. Eu usaria apenas tikz
with tikzmark
. Faça cada entrada como a tikzmarknode
e, em seguida, faça uma adicional tikzpicture
com opções [remember picture, overlay]
para consultar os nós. Em seguida, desenhe as linhas tracejadas como desejar. Isso deve começar:
\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}