tikz-3dplot 周围有多余的空白?如何修复?

tikz-3dplot 周围有多余的空白?如何修复?

有人可以解释一下吗(MWE 源自这个 3D Box 示例):

  • 为什么下面的 MWE 在第二张图片的左侧产生了空白?这是由 2 个 set- 引起的coords。如果你将它们注释掉,空间就消失了,但框看起来不再一样了
  • 我怎样才能坐标局部而不是全局?问题是它们现在直接位于参数中tikzpicture,所以我无法将它们移动到环境内tikzpicture。好吧,你可以将它们移动到环境内,但这样就不起作用了(第二张图片看起来与第一张图片相同)。

在此处输入图片描述

平均能量损失

\documentclass{article}
\usepackage[table,dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{60}{125}
\tdplotsetrotatedcoords{0}{0}{0} %<- rotate around (z,y,z)
\begin{document}
\framebox { 
\begin{tikzpicture}[scale=1,tdplot_rotated_coords,
                    cube/.style={very thick,black},
                    grid/.style={very thin,gray}]%
\draw[cube,fill=green!10] (0,0,0) -- (0,2,0) -- (2,2,0) -- (2,0,0) -- cycle;%
\end{tikzpicture}
}
\framebox{
% If you comment these 2 lines out the space is gone (but not correctly rotated anymroe)
\tdplotsetmaincoords{35}{125}
\tdplotsetrotatedcoords{0}{0}{0} %<- rotate around (z,y,z)
% ---
\begin{tikzpicture}[scale=1,tdplot_rotated_coords,
                    cube/.style={very thick,black}]%
\draw[cube,fill=green!10] (0,0,0) -- (0,2,0) -- (2,2,0) -- (2,0,0) -- cycle;%
\end{tikzpicture}
}
\end{document}

答案1

{每次以或结尾一行时,}都会添加一个空格。唉,tikz-3dplot 经常这样做。 \tdplotsetmaincoords只添加 2 个空格,但\tdplotsetrotatedcoords添加了很多。tikz 解析器会忽略空格。

顺便说一句,tikz 似乎有自己的垃圾收集功能,因此设置全局 pgfkey 值并不是那么简单。

\documentclass{article}
\usepackage[table,dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{60}{125}
\tdplotsetrotatedcoords{0}{0}{0} %<- rotate around (z,y,z)
\begin{document}
\framebox {%
\begin{tikzpicture}[scale=1,tdplot_rotated_coords,
                    cube/.style={very thick,black},
                    grid/.style={very thin,gray}]%
\draw[cube,fill=green!10] (0,0,0) -- (0,2,0) -- (2,2,0) -- (2,0,0) -- cycle;%
\end{tikzpicture}%
}%
\framebox{%
\begin{tikzpicture}[scale=1,cube/.style={very thick,black}]%
\tdplotsetmaincoords{35}{125}%
\tdplotsetrotatedcoords{0}{0}{0}%<- rotate around (z,y,z)                      
\begin{scope} [tdplot_rotated_coords]                 
\draw[cube,fill=green!10] (0,0,0) -- (0,2,0) -- (2,2,0) -- (2,0,0) -- cycle;%
\end{scope}
\end{tikzpicture}%
}
\end{document}

相关内容