如何使用 TikZ 全局更改边缘属性?

如何使用 TikZ 全局更改边缘属性?

如果我想改变 tikz 图片中的所有边缘属性(例如,将边缘改为圆角,而不是斜接边缘)(全球图片),我可以这样做:

\begin{tikzpicture}[line join=round]

这很好。但是,当尝试对整个文档执行此操作时(全球)在序言中使用 tikzset(阅读后这似乎是一个合乎逻辑的步骤):

\tikzset{line join=round}

但它不起作用,尽管没有出现错误,并且每个 tikz 图像都使用默认设置(斜接),除非本地或全局图片另有规定。

有人知道如何全局设置此属性(以及线帽和斜接限制属性)吗?

编辑:按要求给出一个小例子:

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.8}
\tikzset{line join=round} % <-- This does not have any effect

\begin{document}

% Edges are not affected, as they are still 'mitered':
\begin{tikzpicture}
\begin{axis}
\addplot[color=black,line width=10pt] coordinates
{(0, 0) (1, 1) (2, 0) (3, 1) (4, 0)};
\end{axis}
\end{tikzpicture}

% This is how it's supposed to look like:
\begin{tikzpicture}[line join=round] % (!)
\begin{axis}
\addplot[color=black,line width=10pt] coordinates
{(0, 0) (1, 1) (2, 0) (3, 1) (4, 0)};
\end{axis}
\end{tikzpicture}

\end{document}

答案1

您可以使用以下every picture样式:

\documentclass{article}
\usepackage{tikz}

\tikzset{
  every picture/.append style={
    line join=round,
    line cap=round,
  }
}

\begin{document}

\begin{tikzpicture}[line width=10pt]
\draw (0,0) -- (0,3) -- (3,0);
\end{tikzpicture}

\end{document}

在此处输入图片描述

至于miter limit,如果你尝试类似

\tikzset{
  every picture/.append style={
    line join=round,
    line cap=round,
    miter limit=25
  }
}

您将看到该选项没有实际效果,因为line join选择了 ,而roundmiter limit适用。使用 定义样式line join=miter和 的可选参数miter limit

\documentclass{article}
\usepackage{tikz}

\tikzset{
  mystyle/.style={
    line join=miter,
    miter limit=#1
  },
  mystyle/.default=0 
}

\begin{document}

\begin{tikzpicture}[line width=10pt]
\draw[mystyle] (0,0) -- ++(5,0.5) -- ++(-5,0.5);
\draw[miter limit=25] (5,0) -- ++(5,0.5) -- ++(-5,0.5);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容