有人可以解释一下吗(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}