我正在尝试制作一些图表以包含在 tikz 中的其他文档中。由于渲染器需要时间(并且可能不是很聪明),因此图像大小很重要。
\documentclass[tikz,border=5pt]{standalone}
\usepackage{tikz}
\usepackage{pgfmath}
\begin{document}
\begin{tikzpicture}
%% 4,000 circles
\foreach \x in {0,1,...,40} {
\foreach \y in {0,1,...,100} {
\draw[fill=red] (40+\x,10+\y) circle [radius=0.3];
}
}
%% to have something else
\node[scale=60, rotate=-30] at (20,150) { Aladdin's Lamp };
\draw[dashed] (60,65) ellipse (35 and 75);
\end{tikzpicture}
\end{document}
生成的文档为 300K。以合理的分辨率转换为 png 甚至更大。我尝试使用模式来加快速度,但我往往会遇到溢出(某些维度或计数器或...被超出)。也许生成SVG这是个好主意。不确定。
我该如何处理这个问题?欢迎提出建议。
/iaw
答案1
\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{patterns}
\pgfdeclarepatternformonly{circles}
{\pgfpoint{-1}{-1}}{\pgfpoint{1}{1}}{\pgfpoint{1}{1}}
{
\pgfpathcircle{\pgfpointorigin}{0.3}
\pgfsetlinewidth{0.02}
\pgfsetstrokecolor{black}
\pgfusepathqfillstroke
}
\begin{document}
\begin{tikzpicture}
\fill[pattern=circles, pattern color=red] (40pt,10pt) rectangle (80pt,110pt);
\node[scale=1.5, rotate=-30] at (20pt,150pt) {Aladdin's Lamp};
\draw[dashed] (60pt,65pt) ellipse[x radius=35pt, y radius=75pt];
\end{tikzpicture}
\end{document}
答案2
您可以使用grid
。
\documentclass[tikz,border=5pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[thick, dash pattern=on 0mm off 10mm, line cap=round, double=red, double distance=6mm](40,10)grid(80,110);
%% to have something else
\node[scale=60, rotate=-30] at (20,150) { Aladdin's Lamp };
\draw[dashed] (60,65) ellipse (35 and 75);
\end{tikzpicture}
\end{document}