我经常使用every node/.style={blue,draw}
为每个节点设置样式,如下面的 MWE 所示
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style={blue,draw}]
\node {Text};
\end{tikzpicture}
\end{document}
我曾尝试将此方法应用于画不是节点,但我失败了。这是我的代码
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every draw/.style={->,red,thick}]
\draw(0,0)--(5,0);
\end{tikzpicture}
\end{document}
我们如何才能实现这个目标?
答案1
没有every draw
可用的。一种可能的方法是设置样式every path
。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every path/.style={->,red,thick}]
\draw(0,0)node[left]{$ A $}--(5,0)node[right]{$ B $};
\end{tikzpicture}
\end{document}
另一种解决方案是全局设置draw
。every picture
这样,颜色规范就不会影响节点!
\documentclass{article}
\usepackage{tikz}
\tikzset{every picture/.style={->,draw=red,thick}}
\begin{document}
\begin{tikzpicture}
\draw(0,0)node[left]{$ A $}--(5,0)node[right]{$ B $};
\end{tikzpicture}
\end{document}
答案2
答案3
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[>=stealth, every node/.style={midway, sloped, font=\tiny},
decoration={show path construction,
lineto code={
\draw [red, thick,->] (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);},}]
\path [decorate] (0,0) -- (3,1);
\end{tikzpicture}
\end{document}
答案4
继续上面的评论,这里有一个every path
在范围环境中使用来实现一组路径(包括节点)的样式效果的演示。请注意,范围之前和之后的绘制操作都获得默认样式。
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) rectangle ++(4,4);
\begin{scope}[every path/.style={draw, line width=2.0mm, color=red}]
\draw (1,1) -- ++(4,0);
\draw (2,2) rectangle ++(3,3);
\node at (3,3) {Narf};
\end{scope}
\draw (3,3) -- ++(4,0);
\node[draw] at (6,6) {Poit};
\end{tikzpicture}
\end{document}
要应用此技术并使样式适用于draw
但不适用node
,请将所有draw
命令置于范围内,并将所有node
命令保留在范围之外。