为“tikzpicture”添加标题的正确方法是什么?

为“tikzpicture”添加标题的正确方法是什么?

我有一些用 tikz 绘制的树,我想添加一些与它们相关的文本。我可以使用\captionwithin figure,但不能tikzpicture

更新:谢谢你的建议。figure似乎将我的第一张图片放在页面底部,将第二张图片放在第二页。我希望这些图片像以前一样靠近段落tikzpicture。有什么想法吗?

\par
Suppose we enter keys into a red-black tree in this order: 33, 47, 51, 50.
\begin{figure}
\begin{tikzpicture}
\node [blacknd] {33}
                child{ node [extnd] {}}
                child{ node [extnd] {}
        }
; \end{tikzpicture}
\caption{We start by adding 33 to an empty tree}
\end{figure}

\begin{figure}
\begin{tikzpicture}
\node [blacknd] {33}
                child{ node [extnd] {} }
                child{ node [rednd] {47}
                        child{ node [extnd] {} }
                        child{ node [extnd] {} }
        }
; \end{tikzpicture}
\caption{Then we add node 47. There are no imbalances to fix, since the new node's parent is black.}
\end{figure}

更新:我从这里的优秀页面找到了答案:http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions#Figures

我正在寻找的是“h”位置说明符。

答案1

您需要将 放在tikzpicturefigure;下面正确显示标题:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{caption}

\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}[object/.style={thin,double,<->}]
  \draw[object] (7cm,-1cm) -- (6cm,-2cm) node[midway,above] {a label};
\end{tikzpicture}
\caption{A caption.}
\end{figure}

\end{document}

答案2

我知道这个问题已经很老了并且已经解决了,但这里有一个额外的提示:您可以尝试使用包“capt-of”为任何类型的图形生成标题。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{capt-of}


\begin{document}

\begin{tikzpicture}[object/.style={thin,double,<->}]
      \draw[object] (7cm,-1cm) -- (6cm,-2cm) node[midway,above] {a label};
\end{tikzpicture}
\captionof{figure}{A caption.}

\end{document}

答案3

如果你发现自己经常使用 [h!] 选项,那么你需要考虑是否真的想使用图形。图形应该能够浮动,这样它就可以进入一个看起来不错的位置,而不是你引用它的位置。如果你知道你肯定希望图片位于你引用它的位置,那么可以考虑简单地将图片包含在内联中。

看看有些书上是怎么写的。我使用 Knuth 的《计算机编程艺术》来了解布局等,TeX 书可能更好,但我没有。

相关内容