\framebox 中的边距

\framebox 中的边距

我有以下代码:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\framebox{\begin{tikzpicture}[color=black, line width=0.4mm]
    \draw (0,0) rectangle (5mm,5mm);
\end{tikzpicture}}
\end{document}

结果是

在此处输入图片描述

问题是:如何在 tikzpicture 环境中去除框周围的边距?

答案1

您也可以使用\frame宏来代替,它会在节点周围绘制一个紧密的框架。对于节点内的特殊内容,例如逐字内容,我推荐使用\Frame我最近的realboxes包中的宏。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\frame{\begin{tikzpicture}[color=black, line width=0.4mm]
    \draw (0,0) rectangle (5mm,5mm);
\end{tikzpicture}}%
\end{document}

答案2

Tikz为您提供了在图片周围添加框架的方法,即使没有边距:

\documentclass[parskip]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{backgrounds}

\begin{document}

\begin{tikzpicture}[show background rectangle,inner frame sep=0mm]
\draw (0,0) ellipse (25mm and 15mm);
\end{tikzpicture}

\end{document}

在此处输入图片描述

參閱tikz 手册, “25 背景库” 了解更多选项

答案3

您看到的边距是由两个不同的原因产生的。首先,我猜您的输入代码是

\framebox{
  \begin{tikzpicture}[color=black, line width=0.4mm]
    \draw (0,0) rectangle (5mm,5mm);
  \end{tikzpicture}
}

有两个虚假空格。事实上,如果代码如您的消息所示,外矩形将变成正方形。有一个参数\fboxsep用于存储框架与内容之间的间隔\framebox,其默认值为 3pt。要获得无间隔,您可以编写

\begingroup\setlength{\fboxsep}{0pt}%
  \fbox{\begin{tikzpicture}
    <TikZ commands>;
    \end{tikxpicture}}\endgroup

这样更改就\fboxsep仅在组内有效。

相关内容