我想用 tikz 制作图片,然后用一些东西填充背景。
为了正确执行此操作,我想获取图片的大小(高度和宽度)。有没有命令可以给我图片的整个大小,类似这样的命令\textwidth
?
我正在使用 genealogytree 包制作家谱树,所以这里有类似 MWE 的东西。我正在复制将背景添加到图像的方法,来自手册标题页的示例。
\documentclass[11pt]{standalone}
\usepackage[all]{genealogytree}
\usepackage{incgraph}
\usetikzlibrary{backgrounds}
\begin{document}
\begin{tikzpicture}
\genealogytree[template=signpost]
{
child{
g{A}
p{B}
c{C}
c{D}
c{E}
}
}
\begin{scope}[on background layer]
\node (bg) [fill tile image*={width=4cm}{crinklepaper.png},
minimum width=5cm, minimum height=5cm,
inner sep=0pt,outer sep=0pt] at (current bounding box) {};
\end{scope}
\end{tikzpicture}
\end{document}
我得到了这样的结果
背景太高且太窄。
好吧,我当然可以微调它,写小一点的高度和大一点的宽度。但是当我向我的家谱树添加一些东西时,它就会改变。
有没有办法可以像\textwidth
在普通文档中导出那样导出图像的宽度?
我想minimum width=5cm, minimum height=5cm,
改变minimum width=\picturewidth, minimum height=\pictureheight,
答案1
使用tikz
库fit
:
\documentclass[11pt]{standalone}
\usepackage[all]{genealogytree}
\usetikzlibrary{backgrounds, fit}
\begin{document}
\begin{tikzpicture}
\genealogytree[template=signpost]
{
child{
g{A}
p{B}
c{C}
c{D}
c{E}
}
}
\begin{scope}[on background layer]
\node (bg) [
fill tile image={crinklepaper.png},
fit=(current bounding box),
inner sep=3pt
] {};
\end{scope}
\end{tikzpicture}
\end{document}