Forest-Paket für „Conceptual Blending“

Forest-Paket für „Conceptual Blending“

)

Ich versuche, eine Abbildung für eine „konzeptuelle Mischung“ aus der kognitiven Linguistik zu erstellen. Ich habe es geschafft, mit dem Forest-Paket „etwas“ zu erstellen, bin mir jedoch nicht sicher, wie ich die Zeilen hinzufügen soll, die Sie in der Originalabbildung unten finden. Außerdem scheint meine Formatierung immer noch etwas daneben zu sein (Zeilenabstand usw.). Weiß jemand, wie ich sie verbessern kann?

Hier ist mein 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}

So sieht mein aktueller Code aus:

mein Bild

So soll es aussehen (die Originalabbildung): Bildbeschreibung hier eingeben

Vielen Dank im Voraus! Habt einen schönen Sonntag!

Antwort1

Ich glaube nicht, dass Sie hier etwas gewinnen, wenn Sie verwenden forest. Ich würde einfach tikzmit verwenden tikzmark. Machen Sie jeden Eintrag zu einem tikzmarknodeund erstellen Sie dann einen weiteren tikzpicturemit Optionen [remember picture, overlay], um auf die Knoten zurückzuverweisen. Zeichnen Sie dann die gestrichelten Linien, wie Sie möchten. Dies sollte Ihnen den Einstieg erleichtern:

Bildbeschreibung hier eingeben

\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}

verwandte Informationen