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