我可以调整 TikZ 图片的大小以具有特定的尺寸(宽度、高度)吗?

我可以调整 TikZ 图片的大小以具有特定的尺寸(宽度、高度)吗?

假设我TikZ使用该类制作了一张图片 standalone,是否有一种简单的方法可以确定该图片的某个固定输出尺寸width=16cm, height=12cm?当我想将此图片导出到仅接受 PNG 的演示文稿时,这可能很有用,因此当我需要将矢量图像转换为光栅图像时。

我的一张 TikZ 图片的示例代码:

\documentclass[tikz]{standalone}
\usepackage{tikz-network}
\usepackage{tikz}


\begin{document}


\begin{tikzpicture}[scale=0.9]

\Vertex[x=0,y=1,label=\textbf{Genesis},shape=rectangle,size=3,color=blue!80!black,Math,fontsize=\large]{G1}

\Vertex[x=6,y=1,label=\textbf{Block 1},size=3,shape=rectangle,color=orange,Math,fontsize=\large]{b1}
\Text[x=0,y=0.5]{Index:0}
\Text[x=0,y=0]{Hash:a0}
\Vertex[x=12,y=1,label=\textbf{Block 2},size=3,shape=rectangle,color=orange,Math,fontsize=\large]{b2}
\Text[x=6,y=0.5]{Index:1}
\Text[x=6,y=0]{Hash:eaKvl}
\Vertex[x=18,y=1,label=\textbf{Block 3},size=3,shape=rectangle,color=orange,Math,fontsize=\large]{b3}

\Text[x=12,y=0.5]{Index:2}
\Text[x=12,y=0]{Hash:yezgLg1}

\Text[x=18,y=0.5]{Index:3}
\Text[x=18,y=0]{Hash:adLc2eZ}
\Edge[Direct=True,color=black,lw=2,bend=0](G1)(b1)
\Edge[Direct=True,color=black,lw=2,bend=0](b1)(b2)
\Edge[Direct=True,color=black,lw=2,bend=0](b2)(b3)

\end{tikzpicture}

\end{document}

生成图像的示例

答案1

如果您想从standalone文件中创建特定大小的 PNG,则可以使用pngclass 选项来执行此操作。它有一个size和一个density选项来选择生成的图像大小。density据我所知,这个选项是这里最重要的一个。

摘自standalonev1.2 手册第 17 页:

density:设置密度,单位为每英寸点数 (dpi)。可以是单个数值或“〈X〉x〈Y〉”。默认值:300
size:设置图像的大小。可以是单个数值或“〈X〉x〈Y〉”。如果为空,则大小由密度设置和 PDF 的大小决定。默认值:空

它的用法类似\documentclass[png={size=...,density=...}]{standalone}


否则,如果您出于其他原因想要将图片调整为特定的宽度和高度,则只需使用adjustbox周围的包即可tikzpicture。请注意,您需要删除类tikz的选项standalone,否则每个(外部)tikzpicture都会自动变成一个页面,这会与周围环境发生冲突。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{adjustbox}
\begin{document}

\begin{adjustbox}{width=16cm, height=12cm, keepaspectratio}
\begin{tikzpicture}
\node at (5,5) {some tikz content} ;
\draw (0,0) -- (10, 10);
\end{tikzpicture}
\end{adjustbox}%

\end{document}

如果您需要在文档中使用多个页面,请使用multi=ENVIRONMENTNAMEclass 选项,并按照手册中所述将每个页面包装在该环境中。请注意,该tikz选项只是缩写multi=tikzpicture,还会tikz为您加载包。

\documentclass[multi=PAGE]{standalone}
\usepackage{tikz}
\usepackage{adjustbox}
\begin{document}

\begin{PAGE}%
\begin{adjustbox}{width=16cm, height=12cm, keepaspectratio}
\begin{tikzpicture}
\node at (5,5) {some tikz content} ;
\draw (0,0) -- (10, 10);
\end{tikzpicture}
\end{adjustbox}%
\end{PAGE}

\begin{PAGE}%
\begin{adjustbox}{width=16cm, height=12cm, keepaspectratio}
\begin{tikzpicture}
\node at (5,5) {some other tikz content} ;
\draw (0,10) -- (10, 0);
\end{tikzpicture}
\end{adjustbox}%
\end{PAGE}

\end{document}

相关内容