假设我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,则可以使用png
class 选项来执行此操作。它有一个size
和一个density
选项来选择生成的图像大小。density
据我所知,这个选项是这里最重要的一个。
摘自standalone
v1.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=ENVIRONMENTNAME
class 选项,并按照手册中所述将每个页面包装在该环境中。请注意,该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}