作为进步如何在节点的文本区域{}中使用 \pic?。如何做或避免让图片“闪电”在标题和正常的乳胶文本中起作用?
\documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{setspace}%offers nice setstretch
\usepackage{tikz}
\usetikzlibrary{positioning,arrows,arrows.meta,calc}
%ever last package
\usepackage{hyperref}
\hypersetup{colorlinks=true}
\begin{document}
\begin{center}
\begin{figure}[h]
\tikzset{%
pics/lightning/.style n args={3}{code={%
\draw[arrows={-Stealth[scale=#3]}] (#1) --
($(#1)!.4!(#2) + (.1,-.1)$) --
($(#1)!.4!(#2) + (-.1,.1)$) --
(#2);
}},
}%end tikzset
\begin{tikzpicture}%
[%
every node/.style={%
inner sep=0pt},%
]%
\begin{scope}[ text height=1.0em, text depth=.25em,]
\node (advbo) {\textit{Adverbiale Bestimmung}};
\node (so) [left =.9mm of advbo] {\textit{Substantiv}};
\node (ao) [left =.9mm of so] {\textit{Artikel}};
\node (ko) [left =.9mm of ao] {\textit{Komparativ}};
\node (l) [below= of ko] {Lieber};
\node (e1) [below= of ao] {einen};
\node (s) [below= of so] {Spatz};
\node (i) [below= of advbo] {in der Hand,};
\node (a) [below=.3mm of l] {als};
\node (e2) [below=.3mm of e1] {eine};
\node (t) [below=.3mm of s] {Taube};
\node (ad) [below=.3mm of i] {auf dem Dach.};
\node (ku) [below= of a] {\textit{Konjunktion}};
\node (au) [below= of e2] {\textit{Artikel}};
\node (su) [below= of t] {\textit{Substantiv}};
\node (advbu) [below= of ad] {\textit{Adverbiale Bestimmung}};
\end{scope}
\pic [red] {lightning={ko}{l}{1.2}};
\pic [red, rotate=180]{lightning={ku}{a}{1.2}};
\draw[->,>=stealth', very thick, red, opacity=.5] (ao) to (e1);
\draw[->,>=stealth', very thick, red, opacity=.5] (au) to (e2);
\draw[->,>=stealth', very thick, red, opacity=.5] (so) to (s);
\draw[->,>=stealth', very thick, red, opacity=.5] (su) to (t);
\draw[->,>=stealth', very thick, red, opacity=.5] (advbo) to (i);
\draw[->,>=stealth', very thick, red, opacity=.5] (advbu) to (ad);
\draw[xshift=2.75cm,yshift=-1.8cm]
node[right,text width=4cm,rounded corners,fill=red!10,inner sep=1em]%information text]
{
Parallelismus, der nicht ganz konsequent durchgestaltet ist, denn hier
(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
stimmen die Wortarten nicht "uberein.
\smallskip
\setstretch{0.1}
{\tiny{Der \textit{Komparativ} entstammt der Wortart \textit{Adjektiv}, der parallele Satzteil entstammt der Wortart \textit{Konjunktion}}}.
\setstretch{1.0}
};
\end{tikzpicture}
\caption{Parallelismus mit einer nicht
%uncommented raises undefinde control sequence
%(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
passenden Wortarten-Parallelisierung}\label{paraIincomplete}
\end{figure}
\end{center}
Parallelismus mit einer nicht
%DOESNT WOK TOO, same as above
%(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
passenden Wortarten-Parallelisierung
\end{document}
答案1
另一种选择是,不\pic
使用之字形箭头,使用不同的节点定位,也不使用包setspace
:
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,chains,positioning}
\tikzset{zigzag/.style = {%
to path={ -- ($(\tikztostart)!.48!-7:(\tikztotarget)$) --
($(\tikztostart)!.40!+7:(\tikztotarget)$) -- (\tikztotarget)
\tikztonodes},sharp corners}
}
%ever last package
\usepackage[colorlinks=true]{hyperref}
\begin{document}
\begin{figure}[h]
\begin{tikzpicture}[%
node distance = 11mm and 0mm,
start chain = going below,
every node/.style = {minimum height=1em, text depth=.25em,
align=center, on chain},
]
% first
\node (ko) {\textit{Komparativ}};
\node (i) {Lieber\\ als};
\node (ku) {\textit{Konjunktion}};
% second
\node (ao) [right= of ko]
{\textit{Artikel}};
\node (s) {einen\\eine};
\node (au) {\textit{Artikel}};
% third
\node (so) [right= of ao]
{\textit{Substantiv}};
\node (e1) {Spatz\\Taube};
\node (su) {\textit{Substantiv}};
% fourth
\node (advbo) [right= of so]
{\textit{Adverbiale Bestimmung}};
\node (l) {in der Hand,\\auf the Dach.};
\node (advbu) {\textit{Adverbiale Bestimmung}};
% arrows
\draw[red,thick,-stealth']
(ko) edge[zigzag] (i)
(ku) to [zigzag] (i);
\draw[-stealth', very thick, red, opacity=.5]
(ao) edge (s) (au) edge (s)
(so) edge (e1) (su) edge (e1)
(advbo) edge (l) (advbu) to (l);
% legend
\node[rounded corners=1em, fill=red!10,
text width=4cm, text depth={},
inner sep=1em, font=\scriptsize, align=justify,
right=2mm of advbu.east |- l]%information text
{ {\normalsize
Parallelismus, der nicht ganz konsequent durchgestaltet ist, denn hier
(\tikz[baseline=1pt,yscale=0.5]\draw[red,-stealth'] (0,4ex) to [zigzag] (0,0);)
stimmen die Wortarten nicht "uberein.
}\medskip
Der \textit{Komparativ} entstammt der Wortart \textit{Adjektiv}, der parallele Satzteil entstammt der Wortart \textit{Konjunktion}.
};
\end{tikzpicture}
\caption[Parallelismus mit einer nicht passenden Wortarten-Parallelisierung]
{Parallelismus mit einer nicht
(\tikz[baseline=1pt,yscale=0.5]\draw[red,-stealth'] (0,4ex) to [zigzag] (0,0);) passenden Wortarten-Parallelisierung}
\label{paraIincomplete}
\end{figure}
\end{document}
答案2
标题中的那个不起作用,因为它也被添加到图形列表中导致了一些问题。简单的解决方法是同时为 caption 提供可选参数,这是放置在 LoF 中的替代标题:
\caption[Parallelismus mit einer nicht passenden Wortarten-Parallelisierung]{Parallelismus mit einer nicht
%uncommented raises undefinde control sequence
(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
passenden Wortarten-Parallelisierung}
后文中的那个不起作用,因为您已在环境(形成一个组)pic
内定义了它figure
,并且该定义仅在该环境中为人所知。请将移至\tikzset
前言。
另请注意
拥有
figure
环境是没有意义的里面环境center
。figure
是浮动环境,因此它可能会移开并在文档中留下一些不必要的垂直空间。如果您想将 中的内容居中figure
,请\centering
在 之后添加\begin{figure}
。\tiny
用作\tiny small text
或{\tiny small text\par}
,而不是用作\tiny{small text}
——它不是像 eg 那样接受参数的宏\textit
。(它仍然基本有效,但我认为周围的括号small text
没有任何用处。此外,无论何时将其用作
{\tiny text}
,您都需要记住在结束括号前添加一个段落分隔符,即一个空行或{\tiny text\par}
。如果不这样做,baselineskip(从一行的底部到下一行的距离)将不会改变。这就是您使用 来破解宽行距的原因\setstretch
。Zarko 的答案中也存在同样的问题,\normalsize
文本的 baselineskip 太小,\par
在结束括号前添加 并查看它的变化。
\documentclass[]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows,arrows.meta,calc}
%ever last package
\usepackage{hyperref}
\hypersetup{colorlinks=true}
\tikzset{%
pics/lightning/.style n args={3}{code={%
\draw[arrows={-Stealth[scale=#3]}] (#1) --
($(#1)!.4!(#2) + (.1,-.1)$) --
($(#1)!.4!(#2) + (-.1,.1)$) --
(#2);
}},
redarrow/.style={->,>=stealth', very thick, red, opacity=.5}}%end tikzset
\begin{document}
\begin{figure}[h]
\begin{tikzpicture}%
[%
every node/.style={%
inner sep=0pt},%
]%
\begin{scope}[ text height=1.0em, text depth=.25em,]
\node (advbo) {\textit{Adverbiale Bestimmung}};
\node (so) [left =.9mm of advbo] {\textit{Substantiv}};
\node (ao) [left =.9mm of so] {\textit{Artikel}};
\node (ko) [left =.9mm of ao] {\textit{Komparativ}};
\node (l) [below= of ko] {Lieber};
\node (e1) [below= of ao] {einen};
\node (s) [below= of so] {Spatz};
\node (i) [below= of advbo] {in der Hand,};
\node (a) [below=.3mm of l] {als};
\node (e2) [below=.3mm of e1] {eine};
\node (t) [below=.3mm of s] {Taube};
\node (ad) [below=.3mm of i] {auf dem Dach.};
\node (ku) [below= of a] {\textit{Konjunktion}};
\node (au) [below= of e2] {\textit{Artikel}};
\node (su) [below= of t] {\textit{Substantiv}};
\node (advbu) [below= of ad] {\textit{Adverbiale Bestimmung}};
\end{scope}
\pic [red] {lightning={ko}{l}{1.2}};
\pic [red, rotate=180]{lightning={ku}{a}{1.2}};
\draw[redarrow] (ao) to (e1);
\draw[redarrow] (au) to (e2);
\draw[redarrow] (so) to (s);
\draw[redarrow] (su) to (t);
\draw[redarrow] (advbo) to (i);
\draw[redarrow] (advbu) to (ad);
\draw[xshift=2.75cm,yshift=-1.8cm]
node[right,text width=4cm,rounded corners,fill=red!10,inner sep=1em]%information text]
{
Parallelismus, der nicht ganz konsequent durchgestaltet ist, denn hier
(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
stimmen die Wortarten nicht "uberein.
\smallskip
\tiny Der \textit{Komparativ} entstammt der Wortart \textit{Adjektiv}, der parallele Satzteil entstammt der Wortart \textit{Konjunktion}. \par % alternatively add emtpy line before };
};
\end{tikzpicture}
\caption[Parallelismus mit einer nicht passenden Wortarten-Parallelisierung]{Parallelismus mit einer nicht
(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
passenden Wortarten-Parallelisierung}\label{paraIincomplete}
\end{figure}
Parallelismus mit einer nicht
(\tikz[baseline=1pt]\pic [red] {lightning={0pt,9pt}{0pt,-2pt}{.7}};)
passenden Wortarten-Parallelisierung
\end{document}