如果我想改变 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
选择了 ,而round
不miter 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}