在 3D 中绘图时边界框比预期的大

在 3D 中绘图时边界框比预期的大

这是这个问题我想,但是那里提供的答案对于我的 3D 图片似乎不起作用。

我正在将 tikz 图片输入到 beamer 海报中,但我认为该过程的这一部分是无关紧要的,尽管如果不是的话我可以将其包括在内。

我的 tikz 图片如下所示:(spiral.tex)

\documentclass{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{arrows}
\usetikzlibrary{3d}
\tikzset{>=latex}

\begin{document}

\tdplotsetmaincoords{60}{60}
\tdplotsetrotatedcoords{0}{20}{70}

\begin{tikzpicture}[tdplot_rotated_coords,scale=0.5, decoration={coil}]

\draw [decorate, decoration={aspect=0.3, segment length=3.1mm,      amplitude=3mm}, color = red] (0,0) --(2.6,0);
\draw [->, red] (2.6,0)--(2.6,-0.5);

\draw [decorate, decoration={aspect=-0.3, segment length=3.1mm, amplitude=-3mm}, color = blue] (-0.4,-3) -- (2.2,-3);
\draw [->, blue] (2.2, -3)--(2.3, -2.5);

\draw [->] (-0.25, -1.5)--(2.75, -1.5) node[right] {$\bf k$};

\draw[->, ultra thick, red] (4.5, 0.75)--(4.32, -0.5);
\draw[->, ultra thick, blue] (3.75, -3.75)--(3.91, -2.5);

\end{tikzpicture}
\end{document}

如果你编译它,你会发现一大片空白延伸到图片的边缘。当我使用

\begin{figure}
\centering
\begin{subfigure}[c]{0.3\textwidth}
\input{Figures/Tikz/spiral.tex}
\end{subfigure}
~
\begin{subfigure}[c]{0.3\textwidth}
\input{Figures/Tikz/another3dtikzpicture.tex} %just an example of what I want to do with the tikz picture
\end{subfigure}
\end{figure}

在我的投影仪海报中。

我尝试了链接到的另一个问题中的一些建议,但似乎不起作用。我可以\useasboundingbox (-1, -4) rectangle (5, 1);在图片开头插入,但它什么也没做。我先通过绘制检查了框是否在正确的位置。

另外,使用该命令\draw [blue] (current bounding box.south west) rectangle (current bounding box.north east);查找我当前的边界框会出现错误: ! Dimension too large.

这些问题是否只出现在 3D 绘图中或我的代码中?我能做些什么来解决它?

以前我只是将我的 tikz 图片编译为文章并使用\includegraphics[clip, trim = l b r t]{spiral.pdf}但这并不是很令人满意。

谢谢。

答案1

您可以向类varwidth中添加选项standalone。如果愿意,可以添加一些边框。

\documentclass[varwidth,border=5pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{arrows}
\usetikzlibrary{3d}
\tikzset{>=latex}

\begin{document}

\tdplotsetmaincoords{60}{60}
\tdplotsetrotatedcoords{0}{20}{70}

\begin{tikzpicture}[tdplot_rotated_coords,scale=0.5, decoration={coil}]

\draw [decorate, decoration={aspect=0.3, segment length=3.1mm,      amplitude=3mm}, color = red] (0,0) --(2.6,0);
\draw [->, red] (2.6,0)--(2.6,-0.5);

\draw [decorate, decoration={aspect=-0.3, segment length=3.1mm, amplitude=-3mm}, color = blue] (-0.4,-3) -- (2.2,-3);
\draw [->, blue] (2.2, -3)--(2.3, -2.5);

\draw [->] (-0.25, -1.5)--(2.75, -1.5) node[right] {$\bf k$};

\draw[->, ultra thick, red] (4.5, 0.75)--(4.32, -0.5);
\draw[->, ultra thick, blue] (3.75, -3.75)--(3.91, -2.5);

\end{tikzpicture}
\end{document}

在此处输入图片描述

正如 Malipivo 所指出的,tikz选项也有效 →\documentclass[tikz]{standalone}并删除\usepackage{tikz}

相关内容