4

I would like to define a very plain caption format that simply typesets the caption label and text as if it were normal inline text. Of course I would like to keep the the functionality of \caption (label/ref, hyperlinks, list of figures, etc.). I want to position the caption manually using TikZ nodes.

Is this somehow possible with the caption package?

An example to illustrate what I am trying to do:

\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 Answer 1

2

Yes, it's possible with the caption package. Just use the \captionof command, for instance inside a 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}.

alt text

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .