"개념적 블렌딩"을 위한 포레스트 패키지

"개념적 블렌딩"을 위한 포레스트 패키지

)

인지언어학에서 "개념적 혼합"에 대한 그림을 만들려고 합니다. 포리스트 패키지를 사용하여 "무언가"를 생성했지만 아래 원본 그림에서 찾을 수 있는 줄을 추가하는 방법을 잘 모르겠습니다. 또한 내 서식이 여전히 약간 잘못된 것 같습니다(줄 간격 등). 이를 개선하는 방법을 아는 사람이 있습니까?

여기 내 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}

내 현재 코드는 다음과 같습니다.

내 이미지

내가 원하는 모습은 다음과 같습니다(원본 그림). 여기에 이미지 설명을 입력하세요

미리 감사드립니다! 좋은 일요일 보내세요!

답변1

나는 당신이 여기를 사용하여 아무것도 얻지 못한다고 생각합니다 forest. 나는 단지 tikz와 함께 사용할 것입니다 tikzmark. 각 항목을 a로 만든 tikzmarknode다음 노드를 다시 참조하는 tikzpicture옵션을 사용 하여 추가 항목을 만듭니다. [remember picture, overlay]그런 다음 원하는 대로 점선을 그립니다. 이렇게 하면 시작됩니다.

여기에 이미지 설명을 입력하세요

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

관련 정보