无法使用 TikZ fit 库摆脱奇怪的未满 \hbox

无法使用 TikZ fit 库摆脱奇怪的未满 \hbox

可能重复:
使用 fit 从 PGF 层获取 Badbox

这段代码在编译时会显示“段落第 23-23 行未满 \hbox(不良率 1484)”消息。第 23 行是\node[draw, inner sep = 10pt, fit=(MUL1) (MUL2)] {};。我该如何摆脱未满的框?

\documentclass[a4paper]{report}

\usepackage{tikz}
\usetikzlibrary{positioning,fit}

\pgfdeclarelayer{background}
\pgfsetlayers{background,main} 

\begin{document}

\begin{tikzpicture}
  \node[draw]                  (MUL1) {MUL1};
  \node[draw, right = of MUL1] (MUL2) {MUL2};

  \node[left =  of MUL1] (A) {A};
  \node[right = of MUL2] (B) {B};

  \draw[->] (A)    -- (MUL1);
  \draw[->] (MUL1) -- (MUL2);
  \draw[->] (MUL2) -- (B);

  \begin{pgfonlayer}{background}
    \node[draw, inner sep = 10pt, fit=(MUL1) (MUL2)] {};
  \end{pgfonlayer}      
\end{tikzpicture}

\end{document}

答案1

这与空节点有关。

写作

\begin{pgfonlayer}{background}
 \node[draw, inner sep = 10pt, fit=(MUL1) (MUL2)] {\hspace*{\fill}~};
\end{pgfonlayer}%      

反而会消除未满错误。看来一定有更好的方法来实现你的效果。

答案2

fitTikZ/pgf (v2.10) 库中有一个 bug 。TikZ/pgf 的最新 CVS 版本(参见我的回答如何安装当前版本的 TikZ?),您的 MWE 编译时没有错误或警告。

相关内容