可以放置在 TikZ 节点中的非常简单的标题吗?

可以放置在 TikZ 节点中的非常简单的标题吗?

我想定义一个非常简单的标题格式,只需将标题标签和文本排版为普通的内联文本即可。当然,我想保留 \caption 的功能(标签/引用、超链接、图片列表等)。我想使用 TikZ 节点手动定位标题。

使用字幕包可以实现这一点吗?

举一个例子来说明我正在做的事情:

\documentclass{article}
\usepackage{tikz}
\usepackage{caption}
\usepackage{hyperref}


\tikzset{%
caption/.style={%
    anchor=center, 
    draw=blue, fill=blue!20, 
    font=\color{blue}},
figure/.style={%
    inner sep=1cm,
    draw=blue, 
    minimum width=\linewidth}%
}%

\begin{document}

\begin{figure}
\begin{tikzpicture}
    \node[figure] (fig) {Nice figure.};
    \node[caption] at (fig.north) {Figure 0: My figure};
\end{tikzpicture}
\end{figure}

% Does not work
% \captionsetup[figure]{format=plain,skip=0pt,indention=0pt}
% \begin{figure}
% \begin{tikzpicture}
    % \node[figure] (fig) {Nice figure.};
    % \node[caption] at (fig.north) {%
        % \caption{My figure}\label{fig:myfig}};
% \end{tikzpicture}
% \end{figure}
% This is \autoref{fig:myfig}.

\end{document}

答案1

是的,使用 caption 包可以实现。只需使用以下命令\captionof,例如在 parbox 中:

\listoffigures
\bigskip

\captionsetup[figure]{format=plain,skip=0pt,indention=0pt}
\begin{figure}[hbp]
\begin{tikzpicture}
    \node[figure] (fig) {Nice figure.};
    \node[caption] at (fig.north) {%
        \parbox{4cm}{\captionof{figure}{My figure}\label{fig:myfig}}};
\end{tikzpicture}
\end{figure}
This is \autoref{fig:myfig}.

替代文本

相关内容