如何在 TikZ 图片周围添加填充?

如何在 TikZ 图片周围添加填充?

文件中保存了以下 LaTeX 代码~\test.tex

\documentclass{article}
\usepackage{lipsum,tikz}
\begin{document}

\lipsum[1-1][1-2]
\tikz\draw (0,0) rectangle (1,1);
\lipsum[1-1][3-4]

\end{document}

当在终端中执行以下命令时:

cd ~
pdflatex 测试

在路径 处生成一个 PDF 文件~\test.tex。在 PDF 查看器中打开时,文件显示如下:

段落内的 TikZ 图片。

我想在图片周围添加空间。我尝试通过在 之后添加[inner sep=1cm]或来实现这一点,但这两种方法都没有对结果产生任何明显的影响。[outer sep=1cm]\tikz

请注意,上面的示例是我真正感兴趣的 TikZ 图片的简化的最小工作版本,因此解决方案必须是通用的。

答案1

innerouter sep适用于节点。

有多种方法可以做到这一点,即绘制相对于图表边界框的(不可见)路径。TikZ 定义了一个名为的节点,current bounding box该节点在任何给定点都围绕绘制到该点的图表内容,因此您可以使用它。这里有两个示例,第一个不使用库,第二个使用库fit

显然附加代码必须是最后的图表中的东西,\end{tikzpicture}在 的右括号之前\tikz{}

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum,tikz}
\usetikzlibrary{fit}
\begin{document}
\lipsum*[1]
    \tikz{\draw (0,0) rectangle (1,1); \draw (2,0) rectangle (3,1);\path (current bounding box.south west) +(-1,-1) (current bounding box.north east) +(1,1);}
\lipsum*[1]
    \tikz{\draw (0,0) rectangle (1,1); \draw (2,0) rectangle (3,1);\node[fit=(current bounding box), inner sep=1cm]{};}
\lipsum[1]
\end{document}

附录:

您可以将其应用于全部 tikzpictureevery picture在具有和 样式的文档中execute at end picture,如下所示:

\documentclass{article}
\usepackage{lipsum,tikz}

\tikzset{
every picture/.style={
  execute at end picture={
    \path (current bounding box.south west) +(-1,-1) (current bounding box.north east) +(1,1);
    }
  }
}
\begin{document}
\lipsum*[1]
\tikz{\draw (0,0) rectangle (1,1); \draw (2,0) rectangle (3,1);}
\lipsum*[1]
\tikz{\draw (0,0) rectangle (1,1); \draw (2,0) rectangle (3,1);}
\lipsum[1]
\end{document}

答案2

作为改变的替代方法current bounding box,您可以使用backgrounds库并修复background整个矩形tikzpicture

选项inner frame sep在图片周围添加一些填充,并且选项framed(或show background rectangle)绘制图片边框,这也无法用绘制background rectangle/.style={draw=none}

\documentclass{article}
\usepackage{lipsum,tikz}
\usetikzlibrary{backgrounds}
\begin{document}

\lipsum[1-1][1-2]
\tikz[background rectangle/.style={draw=none}, 
    inner frame sep=5mm, 
    framed
    ]{ \draw (0,0) rectangle (1,1); \draw (2,0) rectangle (3,1);}
\lipsum[1-1][3-4]

\end{document}

在此处输入图片描述

相关内容