我有一个使用 TikZ 代码生成的 PDF:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw [line width=10pt] (0,0)--(2,2)--(4,1)--(6,3);
\end{tikzpicture}
\end{document}
输出的PDF为(文件名为file01.pdf
):
\includegraphics
如果我使用以下代码将此 PDF 插入到另一个 TikZ 环境中的另一个文件中(请注意[line join=round]
选项):
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture} [line join=round]
\node (file1) at (0,0) {\includegraphics[]{file01.pdf}};
\end{tikzpicture}
\end{document}
输出 PDF 为:
这怎么可能?TikZ 环境如何更改最终输出中包含的 PDF 内容?我也尝试过使用color
和line width
选项,但它们对最终输出没有影响。
答案1
TikZ(或者说pgf
)在开始时重置了绘图状态的某些方面tikzpicture
。这包括颜色和线宽,但不包括线连接方法。PDF 在包含在其他 PDF 中时不会自动“重置”这些值,因此“子”PDF 会继承“父”中设置的任何值。因此,如果您更改线连接设置,这将显示在未明确设置它的任何包含的 PDF 中。从理论上讲,颜色或线宽也是如此,但 TikZ 重置意味着“子”实际上与“父”中的任何更改无关。
这一观点在https://github.com/pgf-tikz/pgf/issues/870. 可以申请
\tikzset{
every picture/.style={%
execute at begin picture={%
\pgfsetbuttcap%
\pgfsetmiterjoin%
\pgfsetmiterlimit{10}%
\pgfsetdash{}{0pt}%
}
}
}
强制适当的默认值。