第一种方法

第一种方法

我有代码,但标题不在图像的中心也不在图像的下方

梅威瑟:

\documentclass{article}

\usepackage{caption}  

\usepackage{tikzpagenodes}

\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}[remember picture,overlay,shift={(current page.north west)}]
\node[anchor=north west,xshift=3cm,yshift=-4cm]{\includegraphics[width=3cm]{example-image-a}};
\end{tikzpicture}
\caption*{ABC DEF}
\end{center}
\end{figure}
\end{document}

请帮忙将标题放在图片下方(0.4厘米)和中央

谢谢 在此处输入图片描述

答案1

像这样:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node (n1)[anchor=north west, inner sep=0pt,
           xshift=3cm, yshift=-4cm] at (current page.north west) {\includegraphics[width=3cm]{example-image-a}};
\node [below=4mm] at (n1.south) {ABC DEF};
\end{tikzpicture}
\end{document}

答案2

由于使用了overlayshift选项,您的 命令tikzpicture实际上与正常文本流断开了连接。您的\caption*命令与 无关tikzpicture,它只是将标题放在原来的位置,即一个基本上为空的 内figure。因此,我建议在这里完全省略figurecenter环境,因为除了保存标题之外,它们没有任何用处,而标题不会以这种方式排版在所需的位置。

第一种方法

如果您希望figure在下方添加类似标题tikzpicture,则可以使用使用创建的节点内的包中\captionof的功能,例如:captiontext width=3cm

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

\begin{document}

\begin{tikzpicture}[remember picture, overlay]
\node[inner sep=0, anchor=north west, text width=3cm, shift={(3cm,-4cm)}]
  at (current page.north west)
  {\includegraphics[width=3cm]{example-image-a}%
   \captionof{figure}{ABC DEF}};
\end{tikzpicture}

\end{document}

在此处输入图片描述

我使用了一种放置技术 ( \node[...] at (...) {...}),我发现它比您示例中使用的技术更容易理解。另外:

  • 我将其添加inner sep=0为节点选项的一部分,否则,您指定的偏移量将不会根据页面的左上角进行解释(尝试使用xshift=0cmyshift=0cm,或等效地使用shift={(0cm,0cm)})。

  • 我将其替换\usepackage{tikzpagenodes}\usepackage{tikz}。您可能认为tikzpagenodes在您的示例中需要它,因为它tikz作为副作用加载,并且您实际上需要tikz它而无需明确加载它;但是你不使用任何东西tikzpagenodes:该current page节点是 的一部分tikz,它不需要以任何方式加载tikzpagenodes,与您不使用的其他节点相反:current page text areacurrent page marginpar area和。在这里加载只是浪费时间和内存。current page header areacurrent page footer areatikzpagenodestikz

第二种方法

另一种方法是使用使节点成为多行节点的选项手动准备标题文本,例如align=center(参见文本参数:多行文本的对齐方式和宽度在里面Z 和 PGF 手册,第 229 页(版本 3.1.3),或者例如,这个答案):

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

\begin{document}

\begin{tikzpicture}[remember picture, overlay]
\node[inner sep=0, anchor=north west, align=center, shift={(3cm,-4cm)}]
  at (current page.north west)
  {\includegraphics[width=3cm]{example-image-a}\\
   \textbf{My:} hand-made caption};
\end{tikzpicture}

\end{document}

在此处输入图片描述

第三种方法

第二种方法的变体是将标题放在单独的节点中:这就是 Zarko 在他的回答

相关内容