如何消除 tikzpicture 中的间距?

如何消除 tikzpicture 中的间距?

似乎在使用时Tikz,节点和/或tikzpicture环境会在绘图周围添加空间。下面的 MWE 中显示了一个示例,其中绘制了一个简单的正方形三次。首先,它只在单个中绘制tikzpicture,然后在嵌套中绘制tikzpicture,最后在嵌套中绘制tikzpictureinner sep调整。最后一张图片让我怀疑有些宽度需要设置为零。

\documentclass[tikz]{standalone}
\standaloneenv{tikzpicture} % New page for every image
% The code for the square
\newcommand\Square[1][]{
    \begin{tikzpicture}[#1]
        \draw (0,0)--(1,0)--(1,1)--(0,1)--cycle;
    \end{tikzpicture}
    }
\begin{document}
% Image with correct cropping
\Square[x=1.5cm,y=1.5cm]
% Image with a lot of space
\begin{tikzpicture}
    \node at (0,0){
        \Square[x=1.5cm,y=1.5cm]
        };
\end{tikzpicture}
% Image with some cropping
\begin{tikzpicture}
    \node[inner sep=0pt] at (0,0){
        \Square[x=1.5cm,y=1.5cm]
        };
\end{tikzpicture}
\end{document}

三个输出图像(或页面)如下。

在此处输入图片描述

如何消除这种间距?嵌套这些环境对于我正在处理的特定问题是必要的,并且\includegraphics[clip]{}不能与\standaloneenv{tikzpicture}(只是为了防止standalone裁剪失败而尝试的)结合使用。

答案1

您的定义中有虚假空格\Square

\newcommand\Square[1][]{% <--- a space was here
    \begin{tikzpicture}[#1]
        \draw (0,0)--(1,0)--(1,1)--(0,1)--cycle;
    \end{tikzpicture}% <--- a space was here
    }

这是我改变定义后得到的结果:

在此处输入图片描述

第一个方块效果很好,因为 TeX 处于“垂直模式”,所以它会忽略第一个空格;然后它会忽略最后一个空格,所以\par最后一个空格也会被忽略。在其他两种情况下,空格已经在 内tikzpicture,所以它们不再被忽略。

相关内容