\documentclass[border=2mm,tikz]{standalone}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{figure}[!htp]
% \resizebox{0.4\textwidth}{!}{
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\node at (0,0) {Me};
\end{tikzpicture}
% }
\label{fig:figure1}
\end{figure}
\end{document}
该代码有效,但如果我删除注释(以便使其resizebox
变为活动状态),我会收到很多错误:
Improper \prevdepth. }
Missing \endgroup inserted. }
Missing \endgroup inserted. }
Missing } inserted. }
\begin{figure} on input line 8 ended by \end{tikzpicture}. }
Too many }'s. }
Package graphics Error: Division by 0. }
Extra \endgroup. }
\begin{document} ended by \end{figure}. \end{figure}
Extra \endgroup. \end{figure}
running in backwards compatibility mode (unsuitable tick labels; missing features). Consider writing \pgfplotsset{compat=1.16} into your preamble.
Overfull \hbox (15.0pt too wide) in paragraph
Label(s) may have changed. Rerun to get cross-references right.
即使使用\pgfplotsset{compat=1.16}
也会出现错误。
这可能是什么问题?
答案1
根据standalone
软件包文档 (v1.3b – 2022/10/10),
- 课程选项
tikz
此选项声明内容包含一个或多个
tikzpicture
环境。这将设置multi=tikzpicture,varwidth=false
并加载tikz
包。 - 课程选项
multi
一组包含单个页面的环境必须作为选项值给出或使用 声明
\standaloneenv{<envname>, ...}
。 不应在此类环境之外使用任何排版材料。
因此,在 OP 的例子中,是外部\resizebox
打破了条件。
删除类选项tikz
并(手动)加载tikz
即可。此外,figure
这里不需要浮动环境。
\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\resizebox{0.4\textwidth}{!}{%
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\node at (0,0) {Me};
\end{tikzpicture}%
}
\end{document}
注意添加的两个字符%
,用于删除从换行符转换而来的空格字符。