我有 3 个漂亮的箭头用于说明。一个是带有As the block size increase
刻字的弯曲箭头,第二个指向上方并带有VARIANCE
刻字的箭头,第三个也带有BIAS
刻字的箭头。
我只能在articleclass
它不能按照beamerclass
我想要的方式运行时才这样做。
我从以下地址获取了文本代码使用 tikz 在弯曲箭头内绘制弯曲文本(多行)和使用 TikZ 制作精美的箭头尽管我修改了它们。
这是我的 MWE
\documentclass[svgnames]{article}
\usepackage{tikz}
\usetikzlibrary{fadings,shapes.arrows,shadows}
\usetikzlibrary{decorations.text}
\usepackage{xparse}
\tikzfading[name=arrowfading, top color=transparent!0, bottom color=transparent!95]
\tikzset{arrowfill/.style={#1,general shadow={fill=black, shadow yshift=-0.8ex, path fading=arrowfading}}}
\tikzset{arrowstyle/.style n args={3}{draw=#2,arrowfill={#3}, single arrow,minimum height=#1, single arrow,
single arrow head extend=.3cm,}}
\NewDocumentCommand{\tikzfancyarrow}{O{2cm} O{FireBrick} O{top color=OrangeRed!20, bottom color=Red} m}{
\tikz[baseline=-0.5ex]\node [arrowstyle={#1}{#2}{#3}] {#4};
}
\begin{document}
\begin{tikzpicture}[mypostaction/.style 2 args={
decoration={
text align={
left indent=#1},
text along path,
text={#2}
},
decorate
}
]
\coordinate (specRoot) at (-10,0);
\coordinate (testTreeRoot) at (0,0);
\draw[-latex, blue!20!white, line width=5ex] (specRoot) to[in=135,out=45] (testTreeRoot);
\path [postaction={mypostaction={1cm}{As block length increases}},postaction={mypostaction={1cm}
/pgf/decoration/raise=-3mm}] (specRoot) to [in=135,out=45] (testTreeRoot);
\end{tikzpicture}
\begin{tikzpicture}
\tikzfancyarrow[1.5cm][DarkBlue][top color= PaleTurquoise,bottom color=DeepSkyBlue,shape border rotate=90]{VARIANCE}
\tikzfancyarrow[1.5cm][DarkBlue][top color= DeepSkyBlue,bottom color=PaleTurquoise,shape border rotate=270]{BIAS}
\end{tikzpicture}
\end{document}
这就是我想要的
我希望弯曲的花式箭头与 2 个短箭头并排放置(位于其余 2 个箭头的左侧),并以增加的方式指向(而不是像我的文本代码中那样向下)。
我希望带有刻字的箭头VARIANCE
直接位于带有BIAS
刻字的箭头的上方,并且无论文本长度如何,两个短箭头(具有适中的垂直空间)都具有相同的大小。
我希望箭头beamerclass
排列\usetheme{Madrid}
答案1
嵌套 s 通常不是一个好主意tikzpicture
。此外,在当前设置中,您需要添加fragile
到frame
选项中,因为样式有参数。我基本上必须完全重写代码才能获得
\documentclass[svgnames]{beamer}
\usetheme{Madrid}
\usepackage{tikz}
\usetikzlibrary{shapes.arrows,shadows.blur,positioning,arrows.meta,
bending,decorations.text,decorations.pathreplacing}
\usepackage{eqparbox}
\newbox\eqnodebox
\tikzset{equal size/.style={execute at begin
node={\setbox\eqnodebox=\hbox\bgroup},
execute at end node={\egroup\eqmakebox[#1][c]{\copy\eqnodebox}}},
equal size/.default=A,}
\begin{document}
\begin{frame}[t,fragile]
\frametitle{Some arrows}
\begin{tikzpicture}[mypostaction/.style n args=3{
decoration={
text align={
left indent=#1},
text along path,
text={#2},#3
},
decorate
},my arrow/.style={draw=DarkBlue,single arrow,single arrow head extend=.3cm,top color=PaleTurquoise,bottom
color=DeepSkyBlue,shape border rotate=90,blur shadow,minimum height=2cm}
]
\begin{scope}[local bounding box=Meow]
\node[my arrow,equal size=A](VAR){VARIANCE};
\node[my arrow,equal size=A,below=1ex of VAR,shape border rotate=-180]{BIAS};
\end{scope}
\draw[thick,decoration=brace,decorate] (Meow.south west) -- (Meow.north west)
coordinate[midway,xshift=-1em] (aux);
\draw[-{Latex[bend,length=5em]}, blue!20!white, line width=5ex,
postaction={mypostaction={1em}{As block length increases}{raise=-0.7ex}}]
(aux)++ (-5,-1) to[bend right] (aux);
\end{tikzpicture}
\end{frame}
\end{document}
有许多发生改变的事物。