我用 画了一条线,末端有一个箭头\draw[->] ...
。现在我想把箭头放大,并将其颜色改为红色(不影响线条)。有人知道怎么做吗?
答案1
以下是三种有效的方法:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\draw[red,
decoration={markings,mark=at position 1 with {\arrow[scale=4,blue]{>}}},
postaction={decorate},
shorten >=0.4pt
]
(0,1.0) -- (2,1.0);
\draw[draw=red,-triangle 90,fill=blue] (0,0.5) -- (2,0.5);
\draw[red] (0,0) -- (2,0);
\draw [-to,shorten >=-1pt,gray,ultra thick] (1.99,0) -- (2,0);
\end{tikzpicture}
\end{document}
我认为这里提出的第一种方法可能是可行的方法,但也许其他人会提出更优雅的解决方案。
答案2
从 PGF 3.0(可能是另一个版本;仅根据手册)开始,与使用帖子装饰相比,更改箭头尖端的样式要容易得多。以下是答案中给出的三个示例的类似版本https://tex.stackexchange.com/a/27287/6993由@Peter Grill 撰写:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\draw[red, arrows={->[scale=4,blue]}] (0,0.0) -- (2,0.0);
\draw[red, arrows={-Triangle[angle=90:10pt,red,fill=blue]}] (0,1.0) -- (2,1.0);
\draw[red, arrows={->[line width=5pt,gray,length=5mm,width=10mm]}] (0,2.0) -- (2,2.0);
\end{tikzpicture}
\end{document}
答案3
我同意 Peter 的解决方案是可行的,而且我认为更优雅(和可重用)的解决方案是使用 定义样式\tikzset
。下面的代码将使样式big blue arrow
在文档中的任何图片中可用。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{decorations.markings}
\begin{document}
\tikzset{
big blue arrow/.style={
decoration={markings,mark=at position 1 with {\arrow[scale=4,blue]{>}}},
postaction={decorate},
shorten >=0.4pt}}
\begin{tikzpicture}
\draw[red, big blue arrow] (0,1.0) -- (2,1.0);
\draw[draw=red,-triangle 90,fill=blue] (0,0.5) -- (2,0.5);
\draw[red] (0,0) -- (2,0);
\draw [-to,shorten >=-1pt,gray,ultra thick] (1.99,0) -- (2,0);
\end{tikzpicture}
\end{document}
定义接受参数的样式并指定默认值也很容易(我希望代码是不言自明的):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{decorations.markings}
\begin{document}
\tikzset{
big arrow/.style={
decoration={markings,mark=at position 1 with {\arrow[scale=4,#1]{>}}},
postaction={decorate},
shorten >=0.4pt},
big arrow/.default=blue}
\begin{tikzpicture}
\draw[red, big arrow] (0,1.0) -- (2,1.0);
\draw[red, big arrow=green] (0,0.5) -- (2,0.5);
\end{tikzpicture}
\end{document}