我想定义一个非常简单的标题格式,只需将标题标签和文本排版为普通的内联文本即可。当然,我想保留 \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}.